/usr/sbin/nginx alternatives

Hennadii Makhomed gmm на csdoc.com
Вс Сен 15 14:32:56 UTC 2024


Здравствуйте, All!

nginx развивается в разных направлениях,

freenginx
Angie
OpenResty
Tengine
nginx-plus
nginx

https://freenginx.org/ развивается достаточно динамично,
много исправлений ошибок, часто выходят новые mainline версии.

Но на странице https://freenginx.org/en/download.html не понятная
ситуация - есть .tar.gz архивы с исходными текстами, есть .zip архивы
с бинарными версиями nginx для операционных систем семейства Windows,
но нет rpm-пакетов и yum-репозиториев для Rocky Linux 9 / RHEL 9.

То есть, ситуация выглядит так, что поддержка операционных систем
семейства Windows даже на более высоком уровне, чем поддержка
операционных сисем семейства Enterprise Linux, у которых 10 лет
срок жизни дистрибутива и наивысший уровень надежности
и стабильности среди вообще всех дистрибутивов Linux.

Особенно - после того, как Solar Designer присоединился к проекту
Rocky Linux - https://x.com/solardiz/status/1709574519688487374

А вот с freenginx ситуация не понятная совершенно - его же сейчас
можно нормально использовать только в FreeBSD, потому что там есть
соответствующий порт. А для для Rocky Linux 9 / RHEL 9 - бинарников
на сайте https://freenginx.org/ нет, так что использовать его легко
и просто не получится - надо каждому пользователю freenginx самому
делать rpm пакеты, самому делать yum-репозитории, и потом - это все
еще и надо поддерживать в актулаьном состоянии, оперативно выпуская
новые версии с каждым выходом freenginx. То есть, пока что он не для
production? Или только для early adopters, у которых есть время
и возможность и желание, чтобы самим у себя поддерживать эту
инфранструктуру для сборки новых версий freenginx?

Просто не понимаю, как использовать freenginx в production.
Кто-либо это делает на Rocky Linux 9 / RHEL 9 ? Каким образом?

Или все пользователи freenginx - это только пользователи FreeBSD?
Там то все просто, потому что есть соответствующий порт в системе.

Так не хочется самому этим всем заморачиваться, потому что я ведь
внутрь одного rpm-пакета могу захотеть поместить все четыре бинарника,
биранринки nginx и nginx-debug, собранные из
https://freenginx.org/download/freenginx-1.27.4.tar.gz
и бинарники nginx и nginx-debug, собарнные из
https://nginx.org/download/nginx-1.27.1.tar.gz

To Konstantin Pavlov:

возможно ли будет внутрь https://nginx.org/en/linux_packages.html
хотя бы для Rocky Linux 9 / RHEL 9 включить не два бинарника,
как сейчас - nginx и nginx-debug, собранных на основании исходников
с сайта https://nginx.org/ но и еще два бинарника nginx и nginx-debug
собранных на основании исходников с сайта https://freenginx.org/ ?

тогда можно будет иметь всего один юнит-файл nginx.service
а переключение между различными реализациями бинарника nginx
можно будет делать через alternatives, как это уже сделано
для других программ в операционной системе Rocky Linux 9 / RHEL 9

# alternatives --list
# alternatives --display ld
# man alternatives

это было бы очень удобно и для /usr/sbin/nginx, потому что сейчас,
когда не используется alternatives - то приходится сооружать костыли
из двух unit-файлов

/usr/lib/systemd/system/nginx-debug.service
/usr/lib/systemd/system/nginx.service

которые отличаются между собой только именем бинарника:

-ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
+ExecStart=/usr/sbin/nginx-debug -c /etc/nginx/nginx.conf

а во всем остальном - полностью идентичны между собой.

когда делать переключение между различными вариантами nginx
средствами операционной системы - то это будет гораздо удобнее.
потому что все юнит-файлы и все скрипты не будут требовать изменений.

пока что - четыре варианта бинарников, но в будущем можно добавить
и другие форки и другие варианты бинарного файла /usr/sbin/nginx

To Konstantin Pavlov:

можно так сделать? хотя бы только для Rocky Linux 9 / RHEL 9

но вообще, сам механизм alternatives есть во многих дистрибутивах.
В Rocky Linux 9 / RHEL 9 бинарник alternatives - это разработка Red Hat.
В Debian / Ubuntu аналогичная бинарная программа - update-alternatives.

Это было бы удобно, чтобы для отладки временно можно было бы переключить
/usr/sbin/nginx с версии без debug на версию бинарника с debug,
или, чтобы можно было бы для эксперимента переключить /usr/sbin/nginx
с варианта nginx.org на вариант freenginx.org - для тестирования.

И если окажется, что в варианте бинарника от freenginx.org
ошибки нет, а в варианте бинарника от nginx.org ошибка есть,
то тогда можно будет значительно легче и проще устранить
проблему и в основной версии nginx и в закрытом форке nginx-plus.

можно так сделать?

если по каким-то причинам нельзя включать бинарники собранные
с исходников из сайта freenginx.org - то хотя бы можно сделать
переключение между версиями /usr/sbin/nginx с отладкой
и без отладки через механизм alternatives, а не через отдельные
unit-файлы systemd.

а по два комплекта бинарников - с сайта freenginx.org и nginx.org
можно уже делать внутри rpm-пакетов с сайта freenginx.org - основной
будет версия с сайта freenginx.org, альтернативной --версия с сайта
nginx.org, чтобы можно было бы быстро находить ошибки,
которые присутствуют в исходниках с сайта freenginx.org
но которых нет в исходниках с сайта nginx.org

это было бы очень удобно и таким образом - у пользователей
была бы возможность быстро переключаться между различными
вариантами nginx / freenginx в случае каких-то проблем.

-- 
Best regards,
  Gena



Подробная информация о списке рассылки nginx-ru