Хочу обновить Nginx до новой версии, но боюсь, как бы что не сломалось, как думаете действия по инструкции и все будет хорошо или нет?

1 23
Dmitriy_2014
На сайте с 01.07.2014
Offline
276
#21

Вот что ещё пишут чуваки из ispmanager:

Вообще, у нас в планах поставлять собственную сборку nginx для всех осей. Она будет регулярно нами обновляться. Работаем над этим. Когда это случится пока сказать не могу.

Dmitriy_2014
На сайте с 01.07.2014
Offline
276
#22

Гляньте ради прикола сколько исправлений ошибок и изменений всякой фигни по сравнению со стандартной версией которая идет с дистрибутивом по дефолту, на вопрос зачем:

Изменения в nginx 1.24.0                                          11.04.2023

    *) Стабильная ветка 1.24.x.


Изменения в nginx 1.23.4                                          28.03.2023

    *) Изменение: теперь протокол TLSv1.3 разрешён по умолчанию.

    *) Изменение: теперь nginx выдаёт предупреждение при переопределении
       параметров listen-сокета, задающих используемые протоколы.

    *) Изменение: теперь, если клиент использует pipelining, nginx закрывает
       соединения с ожиданием дополнительных данных (lingering close).

    *) Добавление: поддержка byte ranges для ответов модуля
       ngx_http_gzip_static_module.

    *) Исправление: диапазоны портов в директиве listen не работали; ошибка
       появилась в 1.23.3.
       Спасибо Валентину Бартеневу.

    *) Исправление: для обработки запроса мог быть выбран неверный location,
       если в конфигурации использовался префиксный location длиннее 255
       символов.

    *) Исправление: не-ASCII символы в именах файлов на Windows не
       поддерживались модулями ngx_http_autoindex_module и
       ngx_http_dav_module, а также директивой include.

    *) Изменение: уровень логгирования ошибок SSL "data length too long",
       "length too short", "bad legacy version", "no shared signature
       algorithms", "bad digest length", "missing sigalgs extension",
       "encrypted length too long", "bad length", "bad key update", "mixed
       handshake and non handshake data", "ccs received early", "data
       between ccs and finished", "packet length too long", "too many warn
       alerts", "record too small", и "got a fin before a ccs" понижен с
       уровня crit до info.

    *) Исправление: при использовании HTTP/2 и директивы error_page для
       перенаправления ошибок с кодом 400 могла происходить утечка сокетов.

    *) Исправление: сообщения об ошибках записи в syslog не содержали
       информации о том, что ошибки происходили в процессе записи в syslog.
       Спасибо Safar Safarly.

    *) Изменение: при использовании zlib-ng в логах появлялись сообщения
       "gzip filter failed to use preallocated memory".

    *) Исправление: в почтовом прокси-сервере.


Изменения в nginx 1.23.3                                          13.12.2022

    *) Исправление: при чтении заголовка протокола PROXY версии 2,
       содержащего большое количество TLV, могла возникать ошибка.

    *) Исправление: при использовании SSI для обработки подзапросов,
       созданных другими модулями, в рабочем процессе мог произойти
       segmentation fault.
       Спасибо Ciel Zhao.

    *) Изменение: теперь, если при преобразовании в адреса имени хоста,
       указанного в директиве listen, возвращается несколько адресов, nginx
       игнорирует дубликаты среди этих адресов.

    *) Исправление: nginx мог нагружать процессор при небуферизированном
       проксировании, если использовались SSL-соединения с бэкендами.


Изменения в nginx 1.23.2                                          19.10.2022

    *) Безопасность: обработка специально созданного mp4-файла модулем
       ngx_http_mp4_module могла приводить к падению рабочего процесса,
       отправке клиенту части содержимого памяти рабочего процесса, а также
       потенциально могла иметь другие последствия (CVE-2022-41741,
       CVE-2022-41742).

    *) Добавление: переменные "$proxy_protocol_tlv_...".

    *) Добавление: ключи шифрования TLS session tickets теперь автоматически
       меняются при использовании разделяемой памяти в ssl_session_cache.

    *) Изменение: уровень логгирования ошибок SSL "bad record type" понижен
       с уровня crit до info.
       Спасибо Murilo Andrade.

    *) Изменение: теперь при использовании разделяемой памяти в
       ssl_session_cache сообщения "could not allocate new session"
       логгируются на уровне warn вместо alert и не чаще одного раза в
       секунду.

    *) Исправление: nginx/Windows не собирался с OpenSSL 3.0.x.

    *) Исправление: в логгировании ошибок протокола PROXY.
       Спасибо Сергею Брестеру.

    *) Изменение: при использовании TLSv1.3 с OpenSSL разделяемая память из
       ssl_session_cache расходовалась в том числе на сессии, использующие
       TLS session tickets.

    *) Изменение: таймаут, заданный с помощью директивы ssl_session_timeout,
       не работал при использовании TLSv1.3 с OpenSSL или BoringSSL.


Изменения в nginx 1.23.1                                          19.07.2022

    *) Добавление: оптимизация использования памяти в конфигурациях с
       SSL-проксированием.

    *) Добавление: теперь с помощью параметра "ipv4=off" директивы
       "resolver" можно запретить поиск IPv4-адресов при преобразовании имён
       в адреса.

    *) Изменение: уровень логгирования ошибок SSL "bad key share", "bad
       extension", "bad cipher" и "bad ecpoint" понижен с уровня crit до
       info.

    *) Исправление: при возврате диапазонов nginx не удалял строку заголовка
       "Content-Range", если она присутствовала в исходном ответе бэкенда.

    *) Исправление: проксированный ответ мог быть отправлен не полностью при
       переконфигурации на Linux; ошибка появилась в 1.17.5.


Изменения в nginx 1.23.0                                          21.06.2022

    *) Изменение во внутреннем API: теперь строки заголовков представлены
       связными списками.

    *) Изменение: теперь nginx объединяет произвольные строки заголовков с
       одинаковыми именами при отправке на FastCGI-, SCGI- и uwsgi-бэкенды,
       в методе $r->header_in() модуля ngx_http_perl_module, и при доступе
       через переменные "$http_...", "$sent_http_...", "$sent_trailer_...",
       "$upstream_http_..." и "$upstream_trailer_...".

    *) Исправление: если в заголовке ответа бэкенда было несколько строк
       "Vary", при кэшировании nginx учитывал только последнюю из них.

    *) Исправление: если в заголовке ответа бэкенда было несколько строк
       "WWW-Authenticate" и использовался перехват ошибок с кодом 401 от
       бэкенда или директива auth_request, nginx пересылал клиенту только
       первую из этих строк.

    *) Изменение: уровень логгирования ошибок SSL "application data after
       close notify" понижен с уровня crit до info.

    *) Исправление: соединения могли зависать, если nginx был собран на
       Linux 2.6.17 и новее, а использовался на системах без поддержки
       EPOLLRDHUP, в частности, на системах с эмуляцией epoll; ошибка
       появилась в 1.17.5.
       Спасибо Marcus Ball.

    *) Исправление: nginx не кэшировал ответ, если строка заголовка ответа
       "Expires" запрещала кэширование, а последующая строка заголовка
       "Cache-Control" разрешала кэширование.


Изменения в nginx 1.21.6                                          25.01.2022

    *) Исправление: при использование EPOLLEXCLUSIVE на Linux распределение
       клиентских соединений между рабочими процессами было неравномерным.

    *) Исправление: во время плавного завершения старых рабочих процессов
       nginx возвращал в ответах строку заголовка "Connection: keep-alive".

    *) Исправление: в директиве ssl_session_ticket_key при использовании
       TLSv1.3.


Изменения в nginx 1.21.5                                          28.12.2021

    *) Изменение: теперь nginx по умолчанию собирается с библиотекой PCRE2.

    *) Изменение: теперь nginx всегда использует sendfile(SF_NODISKIO) на
       FreeBSD.

    *) Добавление: поддержка sendfile(SF_NOCACHE) на FreeBSD.

    *) Добавление: переменная $ssl_curve.

    *) Исправление: при использовании HTTP/2 без SSL вместе с директивами
       sendfile и aio соединения могли зависать.


Изменения в nginx 1.21.4                                          02.11.2021

    *) Изменение: поддержка NPN вместо ALPN для установления
       HTTP/2-соединений упразднена.

    *) Изменение: теперь nginx закрывает SSL соединение, если клиент
       использует ALPN, но nginx не поддерживает ни один из присланных
       клиентом протоколов.

    *) Изменение: в директиве sendfile_max_chunk значение по умолчанию
       изменено на 2 мегабайта.

    *) Добавление: директива proxy_half_close в модуле stream.

    *) Добавление: директива ssl_alpn в модуле stream.

    *) Добавление: переменная $ssl_alpn_protocol.

    *) Добавление: поддержка SSL_sendfile() при использовании OpenSSL 3.0.

    *) Добавление: директива mp4_start_key_frame в модуле
       ngx_http_mp4_module.
       Спасибо Tracey Jaquith.

    *) Исправление: в переменной $content_length при использовании chunked
       transfer encoding.

    *) Исправление: при получении ответа некорректной длины от проксируемого
       бэкенда nginx мог тем не менее закэшировать соединение.
       Спасибо Awdhesh Mathpal.

    *) Исправление: некорректные заголовки от бэкендов логгировались на
       уровне info вместо error; ошибка появилась в 1.21.1.

    *) Исправление: при использовании HTTP/2 и директивы aio_write запросы
       могли зависать.


Изменения в nginx 1.21.3                                          07.09.2021

    *) Изменение: оптимизация чтения тела запроса при использовании HTTP/2.

    *) Исправление: во внутреннем API для обработки тела запроса при
       использовании HTTP/2 и буферизации обрабатываемых данных.


Изменения в nginx 1.21.2                                          31.08.2021

    *) Изменение: теперь nginx возвращает ошибку, если в запросе по
       протоколу HTTP/1.0 присутствует строка заголовка "Transfer-Encoding".

    *) Изменение: экспортные шифры больше не поддерживаются.

    *) Добавление: совместимость с OpenSSL 3.0.

    *) Добавление: теперь серверу аутентификации почтового прокси-сервера
       передаются строки заголовка "Auth-SSL-Protocol" и "Auth-SSL-Cipher".
       Спасибо Rob Mueller.

    *) Добавление: API для обработки тела запроса теперь позволяет
       буферизировать обрабатываемые данные.

    *) Исправление: SSL-соединения к бэкендам в модуле stream могли зависать
       после SSL handshake.

    *) Исправление: уровень безопасности, доступный в OpenSSL 1.1.0 и новее,
       не учитывался при загрузке сертификатов сервера, если был задан через
       "@SECLEVEL=N" в директиве ssl_ciphers.

    *) Исправление: SSL-соединения с gRPC-бэкендами могли зависать, если
       использовались методы select, poll или /dev/poll.

    *) Исправление: при использовании HTTP/2 тело запроса всегда
       записывалось на диск, если в запросе не было строки заголовка
       "Content-Length".


Изменения в nginx 1.21.1                                          06.07.2021

    *) Изменение: теперь nginx для метода CONNECT всегда возвращает ошибку.

    *) Изменение: теперь nginx всегда возвращает ошибку, если в запросе
       одновременно присутствуют строки заголовка "Content-Length" и
       "Transfer-Encoding".

    *) Изменение: теперь nginx всегда возвращает ошибку, если в строке
       запроса используются пробелы или управляющие символы.

    *) Изменение: теперь nginx всегда возвращает ошибку, если в имени
       заголовка используются пробелы или управляющие символы.

    *) Изменение: теперь nginx всегда возвращает ошибку, если в строке
       "Host" заголовка запроса используются пробелы или управляющие
       символы.

    *) Изменение: оптимизация тестирования конфигурации при использовании
       большого количества listen-сокетов.

    *) Исправление: nginx не экранировал символы """, "<", ">", "\", "^",
       "`", "{", "|", и "}" при проксировании с изменением URI запроса.

    *) Исправление: SSL-переменные могли быть пустыми при записи в лог;
       ошибка появилась в 1.19.5.

    *) Исправление: keepalive-соединения с gRPC-бэкендами могли не
       закрываться после получения GOAWAY-фрейма.

    *) Исправление: уменьшено потребление памяти для долгоживущих запросов
       при проксировании с использованием более 64 буферов.


Изменения в nginx 1.21.0                                          25.05.2021

    *) Безопасность: при использовании директивы resolver во время обработки
       ответа DNS-сервера могла происходить перезапись одного байта памяти,
       что позволяло атакующему, имеющему возможность подделывать UDP-пакеты
       от DNS-сервера, вызвать падение рабочего процесса или, потенциально,
       выполнение произвольного кода (CVE-2021-23017).

    *) Добавление: директивы proxy_ssl_certificate,
       proxy_ssl_certificate_key, grpc_ssl_certificate,
       grpc_ssl_certificate_key, uwsgi_ssl_certificate и
       uwsgi_ssl_certificate_key поддерживают переменные.

    *) Добавление: директива max_errors в почтовом прокси-сервере.

    *) Добавление: почтовый прокси-сервер поддерживает POP3 и IMAP
       pipelining.

    *) Добавление: параметр fastopen директивы listen в модуле stream.
       Спасибо Anbang Wen.

    *) Исправление: специальные символы не экранировались при автоматическом
       перенаправлении с добавлением завершающего слэша.

    *) Исправление: при использовании SMTP pipelining соединения с клиентами
       в почтовом прокси-сервере могли неожиданно закрываться.


Изменения в nginx 1.19.10                                         13.04.2021

    *) Изменение: в директиве keepalive_requests значение по умолчанию
       изменено на 1000.

    *) Добавление: директива keepalive_time.

    *) Добавление: переменная $connection_time.

    *) Изменение: при использовании zlib-ng в логах появлялись сообщения
       "gzip filter failed to use preallocated memory".


Изменения в nginx 1.19.9                                          30.03.2021

    *) Исправление: nginx не собирался с почтовым прокси-сервером, но без
       модуля ngx_mail_ssl_module; ошибка появилась в 1.19.8.

    *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
       "upstream sent response body larger than indicated content length";
       ошибка появилась в 1.19.1.

    *) Исправление: если клиент закрывал соединение в момент отбрасывания
       тела запроса, nginx мог не закрыть соединение до истечения
       keepalive-таймаута.

    *) Исправление: при ожидании задержки limit_req или auth_delay, а также
       при работе с бэкендами nginx мог не обнаружить, что соединение уже
       закрыто клиентом.

    *) Исправление: в методе обработки соединений eventport.


Изменения в nginx 1.19.8                                          09.03.2021

    *) Добавление: в директиве proxy_cookie_flags теперь флаги можно
       задавать с помощью переменных.

    *) Добавление: параметр proxy_protocol в директиве listen, директивы
       proxy_protocol и set_real_ip_from в почтовом прокси-сервере.

    *) Исправление: HTTP/2-соединения сразу закрывались при использовании
       "keepalive_timeout 0"; ошибка появилась в 1.19.7.

    *) Исправление: некоторые ошибки логгировались как неизвестные, если
       nginx был собран с glibc 2.32.

    *) Исправление: в методе обработки соединений eventport.


Изменения в nginx 1.19.7                                          16.02.2021

    *) Изменение: обработка соединений в HTTP/2 была изменена и теперь более
       соответствует HTTP/1.x; директивы http2_recv_timeout,
       http2_idle_timeout и http2_max_requests упразднены, вместо них
       следует использовать директивы keepalive_timeout и
       keepalive_requests.

    *) Изменение: директивы http2_max_field_size и http2_max_header_size
       упразднены, вместо них следует использовать директиву
       large_client_header_buffers.

    *) Добавление: теперь при исчерпании свободных соединений nginx
       закрывает не только keepalive-соединения, но и соединения в lingering
       close.

    *) Исправление: в логах могли появляться сообщения "zero size buf in
       output", если бэкенд возвращал некорректный ответ при
       небуферизированном проксировании; ошибка появилась в 1.19.1.

    *) Исправление: при использовании директивы return вместе с image_filter
       или xslt_stylesheet HEAD-запросы обрабатывались некорректно.

    *) Исправление: в директиве add_trailer.


Изменения в nginx 1.19.6                                          15.12.2020

    *) Исправление: ошибки "no live upstreams", если server в блоке upstream
       был помечен как down.

    *) Исправление: при использовании HTTPS в рабочем процессе мог произойти
       segmentation fault; ошибка появилась в 1.19.5.

    *) Исправление: nginx возвращал ошибку 400 на запросы вида
       "GET http://example.com?args HTTP/1.0".

    *) Исправление: в модулях ngx_http_flv_module и ngx_http_mp4_module.
       Спасибо Chris Newton.


Изменения в nginx 1.19.5                                          24.11.2020

    *) Добавление: ключ -e.

    *) Добавление: при сборке дополнительных модулей теперь можно указывать
       одни и те же исходные файлы в разных модулях.

    *) Исправление: SSL shutdown не работал при закрытии соединений с
       ожиданием дополнительных данных (lingering close).

    *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
       "upstream sent frame for closed stream".

    *) Исправление: во внутреннем API для обработки тела запроса.


Изменения в nginx 1.19.4                                          27.10.2020

    *) Добавление: директивы ssl_conf_command, proxy_ssl_conf_command,
       grpc_ssl_conf_command и uwsgi_ssl_conf_command.

    *) Добавление: директива ssl_reject_handshake.

    *) Добавление: директива proxy_smtp_auth в почтовом прокси-сервере.


Изменения в nginx 1.19.3                                          29.09.2020

    *) Добавление: модуль ngx_stream_set_module.

    *) Добавление: директива proxy_cookie_flags.

    *) Добавление: директива userid_flags.

    *) Исправление: расширение управления кэшированием stale-if-error
       ошибочно применялось, если бэкенд возвращал ответ с кодом 500, 502,
       503, 504, 403, 404 или 429.

    *) Исправление: если использовалось кэширование и бэкенд возвращал
       ответы с строкой заголовка Vary, в логах могли появляться сообщения
       "[crit] cache file ... has too long header".

    *) Изменение: при использовании OpenSSL 1.1.1 в логах могли появляться
       сообщения "[crit] SSL_write() failed".

    *) Исправление: в логах могли появляться сообщения "SSL_shutdown()
       failed (SSL: ... bad write retry)"; ошибка появилась в 1.19.2.

    *) Исправление: при использовании HTTP/2 в рабочем процессе мог
       произойти segmentation fault, если ошибки с кодом 400 с помощью
       директивы error_page перенаправлялись в проксируемый location.

    *) Исправление: утечки сокетов при использовании HTTP/2 и подзапросов в
       модуле njs.


Изменения в nginx 1.19.2                                          11.08.2020

    *) Изменение: теперь nginx начинает закрывать keepalive-соединения, не
       дожидаясь исчерпания всех свободных соединений, а также пишет об этом
       предупреждение в лог ошибок.

    *) Изменение: оптимизация чтения тела запроса при использовании chunked
       transfer encoding.

    *) Исправление: утечки памяти при использовании директивы ssl_ocsp.

    *) Исправление: в логах могли появляться сообщения "zero size buf in
       output", если FastCGI-сервер возвращал некорректный ответ; ошибка
       появилась в 1.19.1.

    *) Исправление: в рабочем процессе мог произойти segmentation fault,
       если размеры large_client_header_buffers отличались в разных
       виртуальных серверах.

    *) Исправление: SSL shutdown мог не работать.

    *) Исправление: в логах могли появляться сообщения "SSL_shutdown()
       failed (SSL: ... bad write retry)".

    *) Исправление: в модуле ngx_http_slice_module.

    *) Исправление: в модуле ngx_http_xslt_filter_module.


Изменения в nginx 1.19.1                                          07.07.2020

    *) Изменение: директивы lingering_close, lingering_time и
       lingering_timeout теперь работают при использовании HTTP/2.

    *) Изменение: теперь лишние данные, присланные бэкендом, всегда
       отбрасываются.

    *) Изменение: теперь при получении слишком короткого ответа от
       FastCGI-сервера nginx пытается отправить клиенту доступную часть
       ответа, после чего закрывает соединение с клиентом.

    *) Изменение: теперь при получении ответа некорректной длины от
       gRPC-бэкенда nginx прекращает обработку ответа с ошибкой.

    *) Добавление: параметр min_free в директивах proxy_cache_path,
       fastcgi_cache_path, scgi_cache_path и uwsgi_cache_path.
       Спасибо Adam Bambuch.

    *) Исправление: nginx не удалял unix domain listen-сокеты при плавном
       завершении по сигналу SIGQUIT.

    *) Исправление: UDP-пакеты нулевого размера не проксировались.

    *) Исправление: проксирование на uwsgi-бэкенды с использованием SSL
       могло не работать.
       Спасибо Guanzhong Chen.

    *) Исправление: в обработке ошибок при использовании директивы ssl_ocsp.

    *) Исправление: при использовании файловых систем XFS и NFS размер кэша
       на диске мог считаться некорректно.

    *) Исправление: если сервер memcached возвращал некорректный ответ, в
       логах могли появляться сообщения "negative size buf in writer".


Изменения в nginx 1.19.0                                          26.05.2020

    *) Добавление: проверка клиентских сертификатов с помощью OCSP.

    *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
       "upstream sent frame for closed stream".

    *) Исправление: OCSP stapling мог не работать, если не была указана
       директива resolver.

    *) Исправление: соединения с некорректным HTTP/2 preface не
       логгировались.
Dmitriy_2014
На сайте с 01.07.2014
Offline
276
#23
Прокликав по-быстрому по панельки ispmanager ничего особенного не заметил, такое ощущение что ей все равно, что подключили сторонний репозиторий, что обновили веб-сервер, но это на первый взгляд, т.к. настройки я никакие не менял и ничего не трогал, так просто глянул на скорую руку. Все работает как работает как будто бы ничего не изменилось, сам сервер все ОК, веб-сервер ОК, панелька все ОК, может быть она при перенастройках поплывет, ну тут если чё я репортую.
I7
На сайте с 12.06.2008
Offline
364
#24
Dmitriy_2014 #:
вчера жал apt update все ОК, сегодня жму ошибка, ну Linux, ты не перестаешь быть таким каким ты есть 1%

А Linux тут каким боком, если конкретный репозиторий упал или недоступен по IPv6?

Dmitriy_2014 #:
Прокликав по-быстрому по панельки ispmanager ничего особенного не заметил, такое ощущение что ей все равно, что подключили сторонний репозиторий, что обновили веб-сервер, но это на первый взгляд, т.к. настройки я никакие не менял и ничего не трогал, так просто глянул на скорую руку.

Панели всё равно при условии, что конфигурационные файлы лежат там же, где панель их ищет и при условии, что поддерживаются все те директивы, которые панель прописывает. Естественно, если это всё совместимо, то будет работать.

Dmitriy_2014
На сайте с 01.07.2014
Offline
276
#25
Ilya74 #:
А Linux тут каким боком, если конкретный репозиторий упал или недоступен по IPv6?
Да Linux тут не причём, это я уже понял, погорячился, это была проблема в доступности репозитория от Nginx, он то доступен был, то не доступен, то ошибка, то не ошибка это все сбивает с толка и портит настроение :)
Dmitriy_2014
На сайте с 01.07.2014
Offline
276
#26
Ilya74 #:
Панели всё равно при условии, что конфигурационные файлы лежат там же, где панель их ищет и при условии, что поддерживаются все те директивы, которые панель прописывает. Естественно, если это всё совместимо, то будет работать.
Надеюсь, что будет нормально работать панель управления сервером, ведь по сути я ничего не менял и все конфигурационные файлы должны остаться неизменными, а при обновлении вроде он спрашивал что-то про conf файлы, но я прожал Enter типа не изменять ничего, поэтому с точки зрения конфигурационных файлов и путей не должно вообще ничего поменяться, ну я так себе вижу :)
1 23

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий