/usr/sbin/nginx alternatives

raven_kg на megaline.kg raven_kg на megaline.kg
Пн Сен 16 03:13:02 UTC 2024


Предположим, опакетить freenginx для семейства RHEL 8-9 совершенно не 
проблема, хотя и есть отдельные вопросы (именование юнита, разрешение 
конфликтов и т.д.). Но вот эта вот часть про alternatives вызывает 
некоторые вопросы к автору и его дилеру.

Во-первых, вы предлагаете объединить в один пакет кучу ОТДЕЛЬНЫХ 
проектов, сама по себе суть возникновения которых была в том, чтобы 
существовать ОТДЕЛЬНО.

Во-вторых, само по себе использование alternatives - весьма спорное 
предложение. Как мы помним, alternatives формирует цепочку симлинков: 
/usr/sbin/<service> -> /etc/alternatives/<service> -> 
/usr/sbin/<service-variant>. В моей практике несколько раз случались 
ситуации, когда после обновления пакетов симлинк 
/etc/alternatives/<service> начинал указывать в пустоту. Да, это 
вероятно была какая-то ошибка сборщика пакетов, но тем не менее, это 
достаточно неприятный инцидент. В случае с (free)nginx такое проишествие 
способно повлечь за собой достаточно неприятные последствия и лично мне 
очень бы не хотелось иметь на серверах мины замедленного действия.


15.09.2024 20:32, Hennadii Makhomed пишет:
> Здравствуйте, 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 в случае каких-то проблем.
>


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