Re: keepAliveTimeout для Nginx и для сервера в upstream

2022-04-26 Пенетрантность budarin
Ух! забористо :)

спасибо за подробное описание - правда я, как чайник, сразу все не осилю:
скажу что сложности в понимании и настройки 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

2022-04-24 Пенетрантность budarin
с эфимерными портами все понятно

вопрос в другом: 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

2022-04-23 Пенетрантность budarin
Добрый день!

Хотелось бы понять суть и установить верные значения 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 в контейнере хотя браузер корректно разрешает имя

2021-08-12 Пенетрантность budarin
Понял, спасибо!

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 в контейнере хотя браузер корректно разрешает имя

2021-08-11 Пенетрантность budarin
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?

2021-06-03 Пенетрантность budarin
Спасибо!

Вы правы - заработаешься вот так и уже не видишь очевидных вещей! )

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?

2021-06-02 Пенетрантность budarin
результат остается тем же и при удалении заголовка

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?

2021-06-02 Пенетрантность budarin
имеем сервис работающий по 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

2021-05-16 Пенетрантность budarin
добавление в 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

2021-05-15 Пенетрантность budarin
В секции 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?

2021-05-14 Пенетрантность budarin
не могу туда все перенести - нужно если сервис перезапускается ободряющую
клиента страницу отдавать на 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?

2021-05-13 Пенетрантность budarin
есть ли хоть какие-то идеи как это исправить?

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?

2021-05-13 Пенетрантность budarin
понял, спасибо

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?

2021-05-13 Пенетрантность budarin
спасибо

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?

2021-05-13 Пенетрантность budarin
спасибо, но перл не очень хочется
решил использовать саму переменную 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?

2021-05-13 Пенетрантность budarin
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?

2021-05-12 Пенетрантность budarin
Мне нужно для 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?

2021-05-12 Пенетрантность budarin
не очень понятно >> на данном уровне не описаны свои директивы 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?

2021-05-12 Пенетрантность budarin
На уровне 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?

2021-05-12 Пенетрантность budarin
/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: Не удается подменить ошибки своими страницами

2021-04-01 Пенетрантность budarin
спасибо - ни разу им не пользовался и не знал о нем

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: Не удается подменить ошибки своими страницами

2021-04-01 Пенетрантность budarin
спасибо, решил проблему - были ошибки в конфиге

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: Не удается подменить ошибки своими страницами

2021-04-01 Пенетрантность budarin
коллеги, уже весь интернет перечитал - не могу решить проблему, помогите
пожалуйста!

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: Не удается подменить ошибки своими страницами

2021-04-01 Пенетрантность budarin
там 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: Не удается подменить ошибки своими страницами

2021-04-01 Пенетрантность budarin
не помогает (

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: Разный контент для пользователей разных сетей

2021-04-01 Пенетрантность budarin
решил - нужно было настроить резолвер докера

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: Разный контент для пользователей разных сетей

2021-04-01 Пенетрантность budarin
одно поправилось - другое отвалилось (
теперь не резолвится '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

Не удается подменить ошибки своими страницами

2021-03-31 Пенетрантность budarin
В папке /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: Разный контент для пользователей разных сетей

2021-03-31 Пенетрантность budarin
спасибо, получилось!

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: Разный контент для пользователей разных сетей

2021-03-31 Пенетрантность budarin
Понял в чем проблема (благодаря 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: Разный контент для пользователей разных сетей

2021-03-31 Пенетрантность budarin
Игорь, спасибо за ответ!

но к сожалению получаю 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

Разный контент для пользователей разных сетей

2021-03-31 Пенетрантность budarin
Нужно отдавать разный 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