Re: nginx-1.13.7
Hello! On Wed, Nov 22, 2017 at 12:33:59AM +0200, Sargas wrote: > А можете прокомментировать чуть подробнее про? > >Исправление: в переменной $upstream_status. Если в конфигурации было сказано "proxy_next_upstream http_503 http_504", то в переменной $upstream_status вместо статуса 503 / 504 отображался статус 502. Подробнее тут: http://hg.nginx.org/nginx/rev/882ad033d43c > >Исправление: в модуле ngx_http_fastcgi_module. Не сохранялась позиция парсинга заголовков FastCGI records, и если вдруг при получении заголовков ответа какой-то record header приходил частично (что на практике, судя по всему, не встречается, но теоретически возможно) - то парсинг ломался, и возникала ошибка. Подробнее тут: http://hg.nginx.org/nginx/rev/3b635e8fd499 -- Maxim Dounin http://mdounin.ru/ ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx-1.13.7
А можете прокомментировать чуть подробнее про? >Исправление: в переменной $upstream_status. >Исправление: в модуле ngx_http_fastcgi_module. Благодарю! 21 ноября 2017 г., 19:23 пользователь Maxim Dounin написал: > Hello! > > On Tue, Nov 21, 2017 at 12:18:41PM -0500, vitcool wrote: > > > Maxim Dounin Wrote: > > --- > > > Изменения в nginx 1.13.7 > > > 21.11.2017 > > > *) Исправление: nginx возвращал ошибку 500, если в директиве > > >xslt_stylesheet были заданы параметры без использования > > > переменных. > > > > > > Я прошу прощения, а nginx умеет делать xsl трансформацию? > > Да, начиная с 0.7.8. > Подробнее тут: > > http://nginx.org/ru/docs/http/ngx_http_xslt_module.html > > -- > Maxim Dounin > http://mdounin.ru/ > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
systemd: PID file /var/run/nginx.pid not readable (yet?) after start.
Здравствуйте, All! nginx установлен из официального репозитория nginx.org, CentOS 7.4 В логах вот такое наблюдается при перезапуске nginx 1.13.6: systemd: Starting nginx - high performance web server... nginx: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: nginx: configuration file /etc/nginx/nginx.conf test is successful systemd: Failed to read PID from file /var/run/nginx.pid: Invalid argument systemd: Started nginx - high performance web server. И вот такое при запуске nginx 1.13.7: systemd: Starting nginx - high performance web server... systemd: PID file /var/run/nginx.pid not readable (yet?) after start. systemd: Started nginx - high performance web server. Как это можно победить, чтобы в логах такого не было? Рекомендуют вот такой workaround: https://stackoverflow.com/a/42084804 И еще вот такое нашлось заодно: https://stackoverflow.com/a/42555993 Но это наверное неправильно будет, добавлять sleep 0.1 в юнит-файл? Обе эти ошибки возникают в systemd функции service_load_pid_file() https://github.com/systemd/systemd/blob/master/src/core/service.c#L815 Когда systemd не может прочитать pid-файл. Насколько я понял из комментариев в функции service_enter_start() https://github.com/systemd/systemd/blob/master/src/core/service.c#L1909 /* For forking services we wait until the start * process exited. */ И в функции service_sigchld_event(): https://github.com/systemd/systemd/blob/master/src/core/service.c#L2959 /* Forking services may occasionally move to a new PID. * As long as they update the PID file before exiting the old * PID, they're fine. */ Systemd считает что сервис запустился после того как start process exited ? А у nginx получается так, что start process exited, а pid файл еще не создан и это создает проблемы systemd? Можно ли как-то исправить поведение nginx, чтобы systemd не флудил в логи сообщениями об ошибках? -- Best regards, Gena ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx-1.13.7
Hello! On Tue, Nov 21, 2017 at 12:18:41PM -0500, vitcool wrote: > Maxim Dounin Wrote: > --- > > Изменения в nginx 1.13.7 > > 21.11.2017 > > *) Исправление: nginx возвращал ошибку 500, если в директиве > >xslt_stylesheet были заданы параметры без использования > > переменных. > > > Я прошу прощения, а nginx умеет делать xsl трансформацию? Да, начиная с 0.7.8. Подробнее тут: http://nginx.org/ru/docs/http/ngx_http_xslt_module.html -- Maxim Dounin http://mdounin.ru/ ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx-1.13.7
Maxim Dounin Wrote: --- > Изменения в nginx 1.13.7 > 21.11.2017 > *) Исправление: nginx возвращал ошибку 500, если в директиве >xslt_stylesheet были заданы параметры без использования > переменных. Я прошу прощения, а nginx умеет делать xsl трансформацию? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,277432,277435#msg-277435 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: gzip filter failed to use preallocated memory
> Возможно. Я отправил его коллегам на review, если возражений не > будет - закоммичу. Спасибо! Posted at Nginx Forum: https://forum.nginx.org/read.php?21,276955,277433#msg-277433 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
nginx-1.13.7
Изменения в nginx 1.13.7 21.11.2017 *) Исправление: в переменной $upstream_status. *) Исправление: в рабочем процессе мог произойти segmentation fault, если бэкенд возвращал ответ "101 Switching Protocols" на подзапрос. *) Исправление: если при переконфигурации изменялся размер зоны разделяемой памяти и переконфигурация завершалась неудачно, то в главном процессе происходил segmentation fault. *) Исправление: в модуле ngx_http_fastcgi_module. *) Исправление: nginx возвращал ошибку 500, если в директиве xslt_stylesheet были заданы параметры без использования переменных. *) Изменение: при использовании варианта библиотеки zlib от Intel в лог писались сообщения "gzip filter failed to use preallocated memory". *) Исправление: директива worker_shutdown_timeout не работала при использовании почтового прокси-сервера и при проксировании WebSocket-соединений. -- Maxim Dounin http://nginx.org/ ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Помогите разобраться с proxy pass uri decode
Hello! On Tue, Nov 21, 2017 at 05:11:54AM -0500, bodomic wrote: > Уже, кажется, все идеи перепробовал, ничего не помогает. > Попробую максимально точно описать проблему: На вход фронтенда приходит урл > с encoded символами, среди которых есть %20. На proxy_pass этот %20 > обращается обратно в пробел и всё ломается. > В простейшей конфигурации имеем: > Nginx: > > location ~ ^/api(.*) { > proxy_pass http://backend/api.php?q=$1; > } > > Apache (backend): > "GET /api.php?q=blabla1 blabla2"... > > > Ну и в логе ошибка "/api.php?q=blabla1 не валидный запрос без blabla2". > Я уже бессчётное количестко подходов сделал к экранированию и переписыванию > переменных, нужен divine intervention, который скажет, как правильно, > видимо. Проблема в том, что location работает с раскодированным URI запроса (и соответственно в $1 попадает раскодированная часть URI), а proxy_pass с переменными ожидает полностью сформированный и правильно закодированный URI, как например в конструкции proxy_pass http://127.0.0.1$request_uri; Для задачи "поменять URI запроса на /api.php?q=..." проще всего использовать rewrite, благо он умеет правильно кодировать URI при его изменении. Как-то так должно заработать (untested): location /api/ { rewrite ^/api(/.*) /api.php?q=$1? break; proxy_pass http://backend; } -- Maxim Dounin http://mdounin.ru/ ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Помогите разобраться с proxy pass uri decode
bodomic Wrote: --- > Уже, кажется, все идеи перепробовал, ничего не помогает. > Попробую максимально точно описать проблему: На вход фронтенда > приходит урл с encoded символами, среди которых есть %20. На > proxy_pass этот %20 обращается обратно в пробел и всё ломается. в аналогичной ситуации, я устал искать решение и стал передавать через заголовки, благо был доступ и к фронту и к бекенду я про proxy_set_header Posted at Nginx Forum: https://forum.nginx.org/read.php?21,277422,277424#msg-277424 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Помогите разобраться с proxy pass uri decode
Уже, кажется, все идеи перепробовал, ничего не помогает. Попробую максимально точно описать проблему: На вход фронтенда приходит урл с encoded символами, среди которых есть %20. На proxy_pass этот %20 обращается обратно в пробел и всё ломается. В простейшей конфигурации имеем: Nginx: location ~ ^/api(.*) { proxy_pass http://backend/api.php?q=$1; } Apache (backend): "GET /api.php?q=blabla1 blabla2"... Ну и в логе ошибка "/api.php?q=blabla1 не валидный запрос без blabla2". Я уже бессчётное количестко подходов сделал к экранированию и переписыванию переменных, нужен divine intervention, который скажет, как правильно, видимо. nginx version: nginx/1.10.2 built with OpenSSL 1.0.1f 6 Jan 2014 TLS SNI support enabled configure arguments: --with-cc-opt='-g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_flv_module --with-http_geoip_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_mp4_module --with-http_perl_module --with-http_random_index_module --with-http_secure_link_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module --with-mail --with-mail_ssl_module --with-stream --with-stream_ssl_module --with-threads --add-module=/build/nginx-1.10.2/debian/modules/headers-more-nginx-module --add-module=/build/nginx-1.10.2/debian/modules/nginx-auth-pam --add-module=/build/nginx-1.10.2/debian/modules/nginx-cache-purge --add-module=/build/nginx-1.10.2/debian/modules/nginx-dav-ext-module --add-module=/build/nginx-1.10.2/debian/modules/nginx-development-kit --add-module=/build/nginx-1.10.2/debian/modules/nginx-echo --add-module=/build/nginx-1.10.2/debian/modules/ngx-fancyindex --add-module=/build/nginx-1.10.2/debian/modules/nginx-http-push --add-module=/build/nginx-1.10.2/debian/modules/nginx-lua --add-module=/build/nginx-1.10.2/debian/modules/nginx-upload-progress --add-module=/build/nginx-1.10.2/debian/modules/nginx-upstream-fair --add-module=/build/nginx-1.10.2/debian/modules/ngx_http_substitutions_filter_module --add-module=/build/nginx-1.10.2/debian/modules/nginx_http_upstream_check_module --add-module=/build/nginx-1.10.2/debian/modules/graphite-nginx-module --add-module=/build/nginx-1.10.2/debian/modules/nginx-module-vts --add-module=/build/nginx-1.10.2/debian/modules/nginx-fluentd-module Posted at Nginx Forum: https://forum.nginx.org/read.php?21,277422,277422#msg-277422 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Kubernetes ingress
Проверил с патчем http://hg.nginx.org/nginx/rev/9c29644f6d03 - всё работает как нужно. Через минуту старые воркеры завершают свою работу. Спасибо Максим! 20 ноября 2017 г., 22:15 пользователь Sargas написал: > >Патч-то наложить не забыли? На всякий случае: в 1.3.6 патча нет, нужно > именно накладывать руками и пересобирать nginx. Если речь именно про > websocket'ы, то он должен был помочь. > Не забыл. Я взял ваш докер образ https://github.com/nginxinc/ > docker-nginx/blob/3ba04e37d8f9ed7709fd30bf4dc6c3 > 6554e578ac/mainline/stretch/Dockerfile , сделал чтобы для amd64 тоже с > исходников собирался nginx, добавил туда наложение патча перед компиляцией. > После чего собрал контейнер с ingress'ом использую контейнер с патченым > nginx'ом. > > Завтра днем перепроверю конечно. И заодно попробую с 1.13.7 > Благодарю! > > 20 ноября 2017 г., 20:25 пользователь Maxim Dounin > написал: > > Hello! >> >> On Mon, Nov 20, 2017 at 08:03:22PM +0300, Maxim Dounin wrote: >> >> > Hello! >> > >> > On Mon, Nov 20, 2017 at 04:28:04PM +0200, Sargas wrote: >> > >> > > Патч не помог, проверял со свежей версией nginx. Больше 10-ти минут >> воркеры >> > > находятся в nginx: worker process is shutting down >> > > >> > > # nginx -V >> > > nginx version: nginx/1.13.6 >> > >> > [...] >> > >> > Патч-то наложить не забыли? На всякий случае: в 1.3.6 патча нет, >> > нужно именно накладывать руками и пересобирать nginx. Если речь >> > именно про websocket'ы, то он должен был помочь. >> > >> > Впрочем, в любом случае сейчас уже закоммичен чуть более лучший >> > патч, который заодно лечит аналогичную проблему в mail и улучшает >> > ситуацию в stream, тут: >> > >> > http://hg.nginx.org/nginx/rev/9c29644f6d03 >> > >> > Релиз с ним (1.3.7) будет завтра. >> >> Err, 1.13.6 и 1.13.7 соответственно, конечно же. >> >> -- >> Maxim Dounin >> http://mdounin.ru/ >> ___ >> nginx-ru mailing list >> nginx-ru@nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru