[РЕШЕНО] openbsd 5.2 + nginx = cgi ? (вопросы по нгинксу и cgi)

FreeBSD, NetBSD, OpenBSD, DragonFly и т. д.

Модератор: arachnid

Ответить
Аватара пользователя
kasak
Сообщения: 893
ОС: OpenBSD
Контактная информация:

[РЕШЕНО] openbsd 5.2 + nginx = cgi ?

Сообщение kasak »

всем привет! наконец-то вышла новая версия моей любимой системы openbsd, под версией 5.2 и Тео огорошил меня вот этой новостью:
nginx (see also nginx(8)) has been added to OpenBSD, ultimately to replace the Apache 1.3 derived httpd(8). For new installations, you are encouraged to utilize nginx rather than httpd, existing installations are encouraged to start planning replacing the stock httpd with nginx.


Это одновременно и хорошо и плохо! С одной стороны я и раньше использовал нгинкс в качестве прокси для внутренних http серверов. Однако на родном httpd у меня запущен lightsquid который впрочем очень легко настроить имея этот самый родной httpd, а вот в nginx это сделать у меня не получается, потому как я не нашёл способ как заставить nginx понимать cgi. самый частый совет который я слышал: Установите это на нормальный http сервер и содайте прокси через нгинкс. Ну до этого я и сам мог догадаться.

Вобщем вопрос: возможно ли заставить nginx из openbsd понимать index.cgi и подготовиться к скорому удалению httpd 1.3 из openbsd?
Linux kasakoff 5.10.7-200.fc33.x86_64 #1 SMP Tue Jan 12 20:20:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Спасибо сказали:
Аватара пользователя
kasak
Сообщения: 893
ОС: OpenBSD
Контактная информация:

Re: [РЕШЕНО] openbsd 5.2 + nginx = cgi ?

Сообщение kasak »

мне удалось таки запустить lightsquid через хитрые действия.

Я начал поиски со статьи http://wiki.nginx.org/SimpleCGI
где было рассказано как запустить простой врапер. Для его запуска мне потребовалось усновить дополнительно пакеты fcgi-2.4.0p7 и p5-FCGI-ProcManager-0.19

в самом скрипте я поменял путь /var/run/ на /var/www/run потому как не надо сорить во всей системе. Однако же он не заработал всё равно потому что нгинкс не хотел видеть сокет.

Код: Выделить всё

[crit] 19817#0: *3 connect() to unix:/var/www/run/cgiwrap-dispatch.sock failed (2: No such file or directory) while connecting to upstream, client: 192.168.3.18, server: warder, request: "GET /lightsquid/ HTTP/1.1", upstream: "fastcgi://unix:/var/www/run/cgiwrap-dispatch.sock:", host: "warder"


хотя сокет при этом успешно создавался. Я попробовал запустить скрипт не через сокет а через tcp, и мне удалось увидеть всего одну страничку после чего скрипт успешно завис. Покопавшись в интернете я нашёл комент человека который спас ситуацию! :

тыц в том числе ссылку на файл: http://remote.su/fcgiwrap.tar.gz

через сокет оно снова не захотело работать, однако заработало через tcp и теперь у меня есть рабочий вариант lightsquid через nginx. И я окончательно выпилил httpd.

К сожалению остался открытым вопрос почему не работает скрипт через сокет, и где тот самый человек который написал правильный скрипт.

Однако изучая ссылки по которым искал этот враппер нашёл что в openbsd оказывается есть пакет который называется fcgi-cgi который и подошёл для успешной замены этого самого скрипта. Так что всё решение оказалось очень простым:

1) установить fcgi-cgi
2) проксировать скрипты на него

кстати если запускать fcgi-cgi скриптом из /etc/rc.d/fcgi-cgi то он запускается на 127.0.0.1:9001 и пользователь-группа: www:www
а к fcgi-cgi автоматически ставится ещё и spawn-fcgi который может запускать fcgi-cgi через сокет. Так что проблем солвед! Да здравствует openbsd!
Linux kasakoff 5.10.7-200.fc33.x86_64 #1 SMP Tue Jan 12 20:20:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: [РЕШЕНО] openbsd 5.2 + nginx = cgi ?

Сообщение skeletor »

А я собрал из исходников fcgiwrap и использую его.
Спасибо сказали:
Аватара пользователя
kasak
Сообщения: 893
ОС: OpenBSD
Контактная информация:

Re: [РЕШЕНО] openbsd 5.2 + nginx = cgi ?

Сообщение kasak »

skeletor писал(а):
20.11.2012 16:48
А я собрал из исходников fcgiwrap и использую его.


всё таки я придерживаюсь официальных пакетов, с ними проще работать при обновлениях
Linux kasakoff 5.10.7-200.fc33.x86_64 #1 SMP Tue Jan 12 20:20:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: [РЕШЕНО] openbsd 5.2 + nginx = cgi ?

Сообщение Stauffenberg »

kasak писал(а):
20.11.2012 23:21
skeletor писал(а):
20.11.2012 16:48
А я собрал из исходников fcgiwrap и использую его.


всё таки я придерживаюсь официальных пакетов, с ними проще работать при обновлениях

Да, проект советует использовать пакеты. Порты больше для разработчиков и для поиграться, но не для серверов на работе :console:
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: [РЕШЕНО] openbsd 5.2 + nginx = cgi ?

Сообщение skeletor »

Дело в том, что в OpenBSD не так много портов (а пакетов и того меньше), что бы можно было об этом говорить. Вот, например, под FreeBSD есть порт fcgiwrap, почему нельзя сделать такой же и под OpenBSD? А извращаться и делать из 2-х пакетов связку в этом случае не выход.
Я лично тоже придерживаюсь портов и пакетов, их лучше обновлять, но если разработчик забил на создание порта, так что теперь, не использовать его или использовать костыли или делать мега-пупер связку? Гораздо проще собрать этот софт из исходников. Ну а для супер-гуру, можно создать самому порт и написать разработчикам, что бы включили его в порты или пакеты.
Пускай каждый остаётся при своём мнении.
ИМХО.
Спасибо сказали:
Ответить