Вызов скриптов или сервисов в NGINX через SYSTEMD: различия между версиями

Материал из support.qbpro.ru
Нет описания правки
Нет описания правки
Строка 9: Строка 9:
  [Install]
  [Install]
  WantedBy=sockets.target
  WantedBy=sockets.target
Создайте соответствующий nginxfeeder@.serviceфайл, вызываемый следующим образом:
 
2. Создайте соответствующий nginxfeeder@.serviceфайл, вызываемый следующим образом:
 
  [Service]
  [Service]
  ExecStart=/opt/scripts/nginxhandler.sh
  ExecStart=/opt/scripts/nginxhandler.sh
Строка 18: Строка 20:
  Group=wwwrun
  Group=wwwrun


2.Зарегистрируйте это в systemd (вам не нужно копировать скрипты в /etc) и запустите:
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
3. Проверьте его telnet 127.0.0.1 8765, и вы увидите результат работы вашего скрипта.
 
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>

Версия от 20:16, 17 октября 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.