Вызов скриптов или сервисов в NGINX через SYSTEMD: различия между версиями
Материал из support.qbpro.ru
Vix (обсуждение | вклад) Нет описания правки |
Vix (обсуждение | вклад) Нет описания правки |
||
| (не показана 1 промежуточная версия этого же участника) | |||
| Строка 9: | Строка 9: | ||
[Install] | [Install] | ||
WantedBy=sockets.target | WantedBy=sockets.target | ||
2. Создайте соответствующий nginxfeeder@.serviceфайл, вызываемый следующим образом: | |||
[Service] | [Service] | ||
ExecStart=/opt/scripts/nginxhandler.sh | ExecStart=/opt/scripts/nginxhandler.sh | ||
| Строка 18: | Строка 20: | ||
Group=wwwrun | Group=wwwrun | ||
3.Зарегистрируйте это в systemd (вам не нужно копировать скрипты в /etc) и запустите: | |||
systemctl enable `pwd`/nginxfeeder.socket | systemctl enable `pwd`/nginxfeeder.socket | ||
systemctl enable `pwd`/nginxfeeder@.service | systemctl enable `pwd`/nginxfeeder@.service | ||
systemctl start nginxfeeder.socket | systemctl start nginxfeeder.socket | ||
4. Проверьте его telnet 127.0.0.1 8765, и вы увидите результат работы вашего скрипта. | |||
* Теперь ваш скрипт доступен по адресу 127.0.0.1:8765, и вы можете использовать proxy_pass директиву nginx,<br> | * Теперь ваш скрипт доступен по адресу 127.0.0.1:8765, и вы можете использовать proxy_pass директиву nginx,<br> | ||
| Строка 28: | Строка 31: | ||
* [https://stackoverflow.com/questions/22891148/how-to-run-a-shell-script-on-every-request ИСТОЧНИК] | * [https://stackoverflow.com/questions/22891148/how-to-run-a-shell-script-on-every-request ИСТОЧНИК] | ||
* [https://habr.com/ru/articlExecStartes/942760/ Systemd: полное руководство для админов + примеры] | |||
Текущая версия от 20:32, 20 октября 2025
1. Создайте службу systemd nginxfeeder.socket, которая будет прослушивать указанный порт, например 8765, и вызывать *nginxfeeder.service:
[Unit]
Description=Nginx callback status
[Socket]
ListenStream=127.0.0.1:8765
Accept=yes
[Install]
WantedBy=sockets.target
2. Создайте соответствующий nginxfeeder@.serviceфайл, вызываемый следующим образом:
[Service] ExecStart=/opt/scripts/nginxhandler.sh StandardError=journal StandardInput=socket StandardOutput=socket User=wwwrun Group=wwwrun
3.Зарегистрируйте это в systemd (вам не нужно копировать скрипты в /etc) и запустите:
systemctl enable `pwd`/nginxfeeder.socket systemctl enable `pwd`/nginxfeeder@.service systemctl start nginxfeeder.socket
4. Проверьте его telnet 127.0.0.1 8765, и вы увидите результат работы вашего скрипта.
- Теперь ваш скрипт доступен по адресу 127.0.0.1:8765, и вы можете использовать proxy_pass директиву nginx,
чтобы вызвать его для определенного URL.
