Вопрос или проблема
Я не нашёл никаких официальных источников, которые бы ясно говорили о том, что версия nginx соответствует Семантическому Версионированию.
Пожалуйста, предоставьте подтверждающий источник для вашего ответа.
В принципе, я хочу знать, могу ли я изменить минорную версию без поломок, но снова, не нашёл ни одного ясного источника, который бы это говорил…
Nginx никогда не следовал семантическому версионированию. Он использует старую систему версионирования ядра linux, где нечетные номера версий являются “нестабильными”, а четные версии – “стабильными”.
Таким образом, единственное обещание состоит в том, что изменения в “стабильной” версии не нарушают совместимость.
Но, чтобы быть честным, я никогда не видел серьёзных сломов в nginx. Да, иногда он меняет значения по умолчанию, что потенциально может вызвать неожиданное поведение.
По сути, вам следует прочитать список изменений, чтобы понять, безопасно ли обновление и скорректировать вашу конфигурацию соответствующим образом.
Ответ или решение
Nginx не придерживается принципов семантического версионирования, как это описано в официальной документации Semantic Versioning (semver.org). Данная система публично определяет правила изменения версий программного обеспечения, прилагая специальные требования к мажорным, минорным и патч-версии. Однако в случае с Nginx применяются другие подходы, аналогичные тем, что используются в ядре Linux.
Правила версионирования в Nginx
Nginx использует следующую схему версионирования:
- Четные номера версий (например, 1.18.0) считаются "стабильными". Это означает, что обновления в рамках таких версий, как правило, не должны вызывать поломок обратно совместимых изменений.
- Нечетные номера версий (например, 1.19.0) обозначают "нестабильные" издания. Эти версии могут содержать экспериментальные функции и потенциально несовместимые изменения.
Обязательства по совместимости
Хотя команда разработчиков Nginx, как правило, гарантирует, что изменения в стабильных версиях не являются разрушительными, это не означает, что не будет изменений в поведении по умолчанию или других неопределённых изменений, которые могут повлиять на функциональность. Таким образом, перед тем как обновлять версию, пользователям рекомендуется:
- Изучить changelog для выявления изменений между версиями.
- Оценить потенциальное влияние этих изменений на существующие конфигурации.
Рекомендации по обновлениям
В связи с тем, что прямо утверждается, что изменения в стабильных версиях Nginx "не являются разрушительными", можно использовать минорные версии для обновлений без значительного риска. Тем не менее, всегда следует проверить изменения в конфигурации, так как изменения по умолчанию или небольшие изменения поведения могут привести к неожиданным результатам.
Особенно полезно:
- Сравнивать изменения в конфигурации и производительности,
- Тестировать обновления в предсистеме перед применением на продуктивных серверах.
Заключение
Таким образом, Nginx не следует строгим правилам семантического версионирования и использует свою собственную схему, что стоит учитывать при обновлении сервера. Пользователям важно проявлять осторожность, внимательно изучая изменения версий и в случае необходимости выполнять тестирование перед переходом на новую версию.
Если у вас остались вопросы или вы хотите разграничить подходы к обновлению, не стесняйтесь обращаться за дополнительной информацией!