Re: keepAliveTimeout для Nginx и для сервера в upstream
Ух! забористо :) спасибо за подробное описание - правда я, как чайник, сразу все не осилю: скажу что сложности в понимании и настройки keepAlive для связки браузер-nginx-гupstreams стало больше Хорошо бы если было бы описание на примере разбора и установки параметров для всей цепочки Со стороны браузера хотелось бы разумного keepAlive, а на бэкэнде хочется равномерного распределения нагрузки между всеми хостами в апстриме без удержания постоянных соединений Был бы очень благодарен за разбор на примере - можно было бы оформить потом в статью чтобы было полезно всем - я думаю многие с этим сталкиваются но мало кто реально понимает и правильно настраивает такую связку для keepAlive Тема нигде толком не освещена - перечитал весь интернет Posted at Nginx Forum: https://forum.nginx.org/read.php?21,294036,294053#msg-294053 ___ nginx-ru mailing list -- nginx-ru@nginx.org To unsubscribe send an email to nginx-ru-le...@nginx.org
Re: keepAliveTimeout для Nginx и для сервера в upstream
с эфимерными портами все понятно вопрос в другом: Nginx имеет настройку keepAliveTimeout для браузера, при этом он устанавливает соединение с upstream сервером у которого есть свои настройки keepAliveTimeout - как все это связано между собой? как Nginx работает с соединениями в upstream (также как браузер с сервером т.е. держит его до истечения keepAliveTimeout или закрывает его сразу по завершению запроса)? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,294036,294041#msg-294041 ___ nginx-ru mailing list -- nginx-ru@nginx.org To unsubscribe send an email to nginx-ru-le...@nginx.org
keepAliveTimeout для Nginx и для сервера в upstream
Добрый день! Хотелось бы понять суть и установить верные значения keepAliveTimeout как для Nginx так и для серверов в upstream. Каково вообще оптимальное значение этого параметра для клиента в браузере для обычного web-приложения в Nginx? Удерживает ли Nginx alive соединение с серверами в upstream? Какими должны быть эти значения чтобы оптимально - держать открытыми только "живые соединения" и оперативно закрывать не активные чтобы не держать кучу соединений - оптимально позволять загружать запросами инстансы в upstream если Nginx не держит постоянного соединения с конкретным upstream, то понятно что параметр keepAliveTimeout в инстансе сервиса должен быть минимальным чтобы Nginx мог равномерно распределить нагрузку между несколькими серверами upstream если же Nginx держит постоянное соединение с сервером upstream то насколько я понимаю параметр keepAliveTimeout у них должен быть одинаковым? или может не париться и держать все соединения живыми максимально долго? Проясните пожалуйста ситуацию. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,294036,294036#msg-294036 ___ nginx-ru mailing list -- nginx-ru@nginx.org To unsubscribe send an email to nginx-ru-le...@nginx.org
Re: CLI tools не могут разрешить хост который указан в nginx в контейнере хотя браузер корректно разрешает имя
Понял, спасибо! Posted at Nginx Forum: https://forum.nginx.org/read.php?21,292205,292211#msg-292211 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
CLI tools не могут разрешить хост который указан в nginx в контейнере хотя браузер корректно разрешает имя
OS: macOS 11.5.2 (20G95) NGINX запущен как контейнер, порты привязаны к хосту ports: - target: 80 published: 80 protocol: tcp mode: host - target: 443 published: 443 protocol: tcp mode: host в конфигурации определен сервер http { server { listen 443 quic; listen 443 ssl http2; server_name web_app.localhost; ... } } Если в браузере указать URL - https://web_app.localhost - ,браузер корректно разрешает имя и отображает страницу Если в терминале выполнить - curl https://web_app.localhost - получим ошибку: curl: (6) Could not resolve host: web_app.localhost /etc/host: --- ## # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost # Added by Docker Desktop # To allow the same kube context to work on the host and the container: 127.0.0.1 kubernetes.docker.internal # End of section /etc/resolv.conf : -- # # macOS Notice # # This file is not consulted for DNS hostname resolution, address # resolution, or the DNS query routing mechanism used by most # processes on this system. # # To view the DNS configuration used by this system, use: # scutil --dns # # SEE ALSO # dns-sd(1), scutil(8) # # This file is automatically generated. # nameserver 192.168.0.1 Posted at Nginx Forum: https://forum.nginx.org/read.php?21,292205,292205#msg-292205 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Почему браузер не выставляет заголовок If-None-Match/ I f-Modified-Since для ресурсов у которых установлен etag?
Спасибо! Вы правы - заработаешься вот так и уже не видишь очевидных вещей! ) Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291736,291756#msg-291756 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Почему браузер не выставляет заголовок If-None-Match/ I f-Modified-Since для ресурсов у которых установлен etag?
результат остается тем же и при удалении заголовка add_header Cache-Control "public, max-age=60"; Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291736,291737#msg-291737 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Почему браузер не выставляет заголовок If-None-Match/ I f-Modified-Since для ресурсов у которых установлен etag?
имеем сервис работающий по https все ресурсы имеют уже сжатые копии в gzip и brotli конфигурация для ресурса: location ~* \.(?:manifest|webmanifest)$ { etagon; add_header Cache-Control "public, max-age=60"; add_header X-Content-Type-Options "nosniff" always; } сервер отдает ресурсы с заголовками cache-control: public, max-age=60 content-encoding: br content-type: application/manifest+json; charset=utf-8 date: Thu, 03 Jun 2021 00:22:26 GMT etag: W/"60b812ee-436" last-modified: Wed, 02 Jun 2021 23:23:26 GMT server: nginx vary: Accept-Encoding x-content-type-options: nosniff при повторном запросе в заголовках запроса нет ни If-None-Match ни If-Modified-Since почему? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291736,291736#msg-291736 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Только css и manifest не отдают charset
добавление в location для css и manifest инструкции charset utf-8 не приводит к желаемому результату Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291531,291532#msg-291532 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Только css и manifest не отдают charset
В секции http добавляю charset utf-8 Описываю ресурсы location ~* \.(?:css|js|json|txt)$ { etagon; add_header Cache-Control "public, max-age=31536000, immutable"; } location ~* \.(?:manifest|webmanifest)$ { etagon; add_header Cache-Control "public, max-age=31536000, immutable"; } location ~* \.(?:css|js|json|txt)$ { etag on; expires max; add_header Cache-Control "public, max-age=31536000, immutable"; } все ресурсы (html, js) отдаются с заголовком content-type: ...; charset=utf-8, а css и manifest отдаются без него Почему? как исправить? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291531,291531#msg-291531 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Как запретить для location error pages определенные на уровне server?
не могу туда все перенести - нужно если сервис перезапускается ободряющую клиента страницу отдавать на 502ю ошибку Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291519,291522#msg-291522 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Как запретить для location error pages определенные на уровне server?
есть ли хоть какие-то идеи как это исправить? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291501,291517#msg-291517 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Почему не применются заголоки для locations, определенные в server?
понял, спасибо Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291500,291516#msg-291516 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Можно ли сгенерировать случайную строку в переменну так как это делает nginx для request id?
спасибо Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291512,291515#msg-291515 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Можно ли сгенерировать случайную строку в переменну так как это делает nginx для request id?
спасибо, но перл не очень хочется решил использовать саму переменную request_id - она ведь для каждого запроса уникальна Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291513,291514#msg-291514 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Как запретить для location error pages определенные на уровне server?
server { error_page 404 /404.html; error_page 404 /404.html; error_page 502 504 /502.html; error_page 503 /503.html; error_page 500 501 504 /500.html; location ~ [4-5][0-9][0-9].html { internal; } location / { proxy_intercept_errors on; } location /api { proxy_intercept_errors off; <-- вот тут не нужно перехватывать ошибки и поменять их файлами но они перехватываются (( } } Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291501,291509#msg-291509 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Можно ли сгенерировать случайную строку в переменну так как это делает nginx для request id?
Мне нужно для CSP политики генерировать случайный nonce для каждого запроса и записывать его в заголовок политики и затем этот же none передать в заголовках апстриму Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291507,291507#msg-291507 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Почему не применются заголоки для locations, определенные в server?
не очень понятно >> на данном уровне не описаны свои директивы add_header. не описаны любые или такие же??? речь как раз о случае когда я описываю в server и не описываю в location - заголовки не появляются в запросах к location Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291500,291504#msg-291504 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Как запретить для location error pages определенные на уровне server?
На уровне server определены error_pages для location "/" Для остальных locations не нужно отдавать эти страницы, в случае возникновения ошибок Пытаюсь в этих секциях выставлять proxy_intercept_errors off; но бесполезно - при возникновении ошибки отдается страница а не ответ из upstream Как победить? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291501,291501#msg-291501 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Почему не применются заголоки для locations, определенные в server?
/etc/nginx/config/system/security.conf - server_tokens off; add_header X-Frame-Options "deny"; add_header X-XSS-Protection"1; mode=block" always; nginx.conf - server { ... include /etc/nginx/config/system/security.conf;<- если разместить тут то заголовки не применяются location /log { ... include /etc/nginx/config/system/security.conf; proxy_pass http://logger; } location / { ... include /etc/nginx/config/system/security.conf; proxy_pass http://web_app; } } Имеем конфиг показанный выше Если импортировать security.conf на уровне server - заголовки не применяются к запросам в locations Заголовки применяются только если разместить импорт security.conf внутри каждой секции location Почему? В описании add_header написано что директива наследуется, а по факту - нет! Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291500,291500#msg-291500 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Не удается подменить ошибки своими страницами
спасибо - ни разу им не пользовался и не знал о нем Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291126,291140#msg-291140 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Не удается подменить ошибки своими страницами
спасибо, решил проблему - были ошибки в конфиге Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291126,291139#msg-291139 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Не удается подменить ошибки своими страницами
коллеги, уже весь интернет перечитал - не могу решить проблему, помогите пожалуйста! Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291126,291137#msg-291137 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Не удается подменить ошибки своими страницами
там root /var/www нужен для location потому что выше определен root /var/www/web - иначе nginx будет искать .html по пути /var/www/web, но они то лежат в /var/www Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291126,291135#msg-291135 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Не удается подменить ошибки своими страницами
не помогает ( Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291126,291134#msg-291134 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Разный контент для пользователей разных сетей
решил - нужно было настроить резолвер докера resolver127.0.0.11 ipv6=off valid=5s; resolver_timeout5s; Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291116,291131#msg-291131 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Разный контент для пользователей разных сетей
одно поправилось - другое отвалилось ( теперь не резолвится 'host.docker.internal' set $local 'host.docker.internal'; location ~ ^/api/(.*)$ { proxy_pass http://$local:5005/$1; } теперь отваливается с ошибкой: 335#335: *60 no resolver defined to resolve host.docker.internal Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291116,291130#msg-291130 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Не удается подменить ошибки своими страницами
В папке /var/www лежат файлы 404.html 502.html 503.html 500.html остальные ресурсы лежат в папке /var/www/web работающий конфиг: http { upstream web_app { least_conn; server 10.0.1.43:3000; } server { listen 443; listen 443 ssl; server_name localhost; root /var/www/web; error_page404 /404.html; error_page502 504 /502.html; error_page503 /503.html; error_page500 501 504 /500.html; location ~ [4-5][0-9][0-9].html { internal; root /var/www; include /etc/nginx/config/disable/access_logs.conf; } location / { proxy_pass http://web_app; } location ~* \.(?:html|css|js)$ { etagon; sendfileon; tcp_nopush on; tcp_nodelay on; add_header Cache-Control "public"; } } удаляю из конфига описание upstream и жду что вместо стандартного ответа на клиенте я получу кастомную страницу, но получаю стандартный ответ 404 Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291126,291126#msg-291126 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Разный контент для пользователей разных сетей
спасибо, получилось! Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291116,291124#msg-291124 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Разный контент для пользователей разных сетей
Понял в чем проблема (благодаря return 200 $remote_addr) - у меня nginx и сервисы в докере а там своя подсеть10.0.0.0/24 насколько я понимаю все запросы там будут из этой подсети получается я не смогу различить локальная это сеть или интернет- пользователь? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291116,291121#msg-291121 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Разный контент для пользователей разных сетей
Игорь, спасибо за ответ! но к сожалению получаю global в локальной сети на машине где стоит nginx и где тестирую похоже что не срабатывает geo модуль - как можно проверить? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291116,291118#msg-291118 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Разный контент для пользователей разных сетей
Нужно отдавать разный index.html для локальных пользователей и пользователей интернета Делаю так location /local.html { allow 192.168.1.0/24; deny all; internal; } location /global.html { deny 192.168.1.0/24; allow all; internal; } location / { try_files /global.html /local.html =404; } пользователи локальной сети видят global.html да и напрямую если указать урл конкретного документа имеется доступ ( Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291116,291116#msg-291116 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru