Nginx Forum - Nginx Mailing List - Russian Форум, связанный с русским списком рассылки. http://www.ldmicj.icu/list.php?21 Sun, 22 Nov 2020 11:28:19 -0500 Phorum 5.2.16 http://www.ldmicj.icu/read.php?21,289943,289943#msg-289943 Авторизация при проксировании (1 reply) http://www.ldmicj.icu/read.php?21,289943,289943#msg-289943 fleedstix Nginx Mailing List - Russian Tue, 10 Nov 2020 17:30:09 -0500 http://www.ldmicj.icu/read.php?21,289912,289912#msg-289912 Re: proxy pass перенаправление на другой порт 404 как побороть? (3 replies) http://www.ldmicj.icu/read.php?21,289912,289912#msg-289912
location /torrserver/ {
rewrite ^/torrserver/(.*) /$1 break;
proxy_pass http://127.0.0.1:8090/$uri$is_args$args;
}

Расскажешь, заработало ли?


08.11.2020 17:59, redidka812 пишет:
> Есть служба работающая на локальной машине в частности torrserver,
> отзывается на порту 8090. хочу доступ к ней из интернета не через проброс
> порта 8090 за NAT, а через nginx(чтоб не создавать кучу портов за NAT о
> всех служб что есть в домашней сети, темболее часть из них без
> авторизации..
> Итак делаю:
> server {
> proxy_redirect off;
> proxy_set_header Host $host;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> listen 8080 ;
> location /torrserver/ {
> proxy_pass http://127.0.0.1:8090/;
>
> }
> Где 8080 порт проброшеный за NAT от nginx
> /torrserver/ - имя службы по которому nginx будет перенаправлять запросы на
> порт 8090
>
> И вводя в браузере
> IP:8080/torrserver
> Я попадаю на веб морду от to reserve слушаюшую на удаленной машине порт
> 8090, казалось бы вот оно счастье, но....
> Все кнопки/управление на этой странице возвращают ошибку 404
> Потому как происходит запрос другого адреса
> Например "настройки"
> Вида
> IP:8090/settings
> И.т.д..
> Если бы я заходил по 8090 то все бы работало..
> Через nginx при 8080/torrserver разумеется нет потому как страница
> 8090/settings в nginx не существует..
> Хочу так настроить редирект/проксирование
> Чтоб открыв страницу по
> IP:8080/tiorrserver
> Функционирование/переход с этой страницы по кнопкам управления на ней также
> шел через nginx
> Т.е. при клике например по томуже settings запрос уходил к
> 8080/torrserver/settings а не к 8090/settings
>
> Можно ли это реализовать? С помощью каких команд в конфиге nginx не в
> смысле конкретно /settings/ а все ссылки на этой странице обрабатывались
> как будто бы nginx между пользователем и службой torrserver вообще
> отсутствует , (не знаю как правильно сформулировать, своими словами, чтоб
> при удаленном доступе вместо IP:8090(проброшенрого порта 8090) служба
> отзывалась на IP:8080/transmission/ и полностью функционировало
> управление...
>
> Posted at Nginx Forum: http://www.ldmicj.icu/read.php?21,289911,289911#msg-289911
>
> _______________________________________________
> 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]]>
fox Nginx Mailing List - Russian Wed, 11 Nov 2020 01:08:30 -0500
http://www.ldmicj.icu/read.php?21,289911,289911#msg-289911 proxy_pass перенаправление на другой порт 404 как побороть? (no replies) http://www.ldmicj.icu/read.php?21,289911,289911#msg-289911 Итак делаю:
server {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
listen 8080 ;
location /torrserver/ {
proxy_pass http://127.0.0.1:8090/;

}
Где 8080 порт проброшеный за NAT от nginx
/torrserver/ - имя службы по которому nginx будет перенаправлять запросы на порт 8090

И вводя в браузере
IP:8080/torrserver
Я попадаю на веб морду от to reserve слушаюшую на удаленной машине порт 8090, казалось бы вот оно счастье, но....
Все кнопки/управление на этой странице возвращают ошибку 404
Потому как происходит запрос другого адреса
Например "настройки"
Вида
IP:8090/settings
И.т.д..
Если бы я заходил по 8090 то все бы работало..
Через nginx при 8080/torrserver разумеется нет потому как страница
8090/settings в nginx не существует..
Хочу так настроить редирект/проксирование
Чтоб открыв страницу по
IP:8080/tiorrserver
Функционирование/переход с этой страницы по кнопкам управления на ней также шел через nginx
Т.е. при клике например по томуже settings запрос уходил к
8080/torrserver/settings а не к 8090/settings

Можно ли это реализовать? С помощью каких команд в конфиге nginx не в смысле конкретно /settings/ а все ссылки на этой странице обрабатывались как будто бы nginx между пользователем и службой torrserver вообще отсутствует , (не знаю как правильно сформулировать, своими словами, чтоб при удаленном доступе вместо IP:8090(проброшенрого порта 8090) служба отзывалась на IP:8080/transmission/ и полностью функционировало управление...]]>
redidka812 Nginx Mailing List - Russian Sun, 08 Nov 2020 05:59:22 -0500
http://www.ldmicj.icu/read.php?21,289908,289908#msg-289908 nginx и обратное проксирование socks5? (no replies) http://www.ldmicj.icu/read.php?21,289908,289908#msg-289908 Есть privoxy -soksk5 настроенная для заворота трафика в tor..
Работает на порту 8118
Для ее использования в настройках прокси браузера соответственно надо указать ip:8118
-так все работает, но держать открытым и проброшенным за NAT порт без авторизации не очень правильно..
Хочу настроить ngnix , ,,чтоб убрать 8118 из пророщенных портов..
Делаю
listen 8080 {
location /privoxy/ {
proxy_pass http://127.0.0.1:8118/;
}

Где 8080-порт который слушает nginx и именно он будет проброшен за NAT
/privoxy/ -имя которое будет слушать nginx для проксирования на порт 8118


-и не работает, причем как-то странно, если в браузере изменить сокс с :ip:8118 на IP:8080/privoxy -еше пару минут работает, и трафик идёт через тор, но после пары обновлений страницы(сек через 30)- сокс похоже отваливается и в сеть я выхожу с IP от провайдера, а не от выходной годы Тор, как если бы сокс работал..
Подскажите можно ли настроить корректно , или nginx не умеет работать как обратное пробки для socks5?]]>
redidka812 Nginx Mailing List - Russian Sun, 08 Nov 2020 02:39:51 -0500
http://www.ldmicj.icu/read.php?21,289892,289892#msg-289892 upstream priority (8 replies) http://www.ldmicj.icu/read.php?21,289892,289892#msg-289892
Подскажите как можно сделать что-то максимально подобное для выбора
backend сервера по приоритету, в идеале нужно что-то

upstream backend {
server [::1]:81 priority=1;
server [::1]:82 priority=2;
server [::1]:83 priority=3;
server [::1]:84 priority=4;
server [::1]:85 priority=5;
}
т.е. пока жив хоть один с более высоким приоритетом - слать запросы на него ?

Из того что пробовал
upstream backend {
server [::1]:81 weight=1;
server [::1]:83 backup;
}
Так работает - однако не поддерживает 2+ бекенда

Из самого близкого что удалось сделать - через hash со статичным ключом
upstream backend {
hash 'http_balance';
server [::1]:81 weight=1 fail_timeout=60;
server [::1]:82 weight=2 fail_timeout=60;
server [::1]:83 weight=3 fail_timeout=60;
}
Проблема только что веса не всегда работают, - в данной конфигурации
выбирается server:82, хотя у 83 более высокий weight. Полная цепочка
при отказах - 82->83->81
Учитывается ли вес в такой конфигурации ?
С более высокими весами начинает работать как нужно 83->82->81
upstream backend {
hash 'http_balance';
server [::1]:81 weight=1 fail_timeout=60;
server [::1]:82 weight=10 fail_timeout=60;
server [::1]:83 weight=100 fail_timeout=60;
}
Хотелось бы понимать это совпадение или веса принимаются в расчет при
выборе hash-а?
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru]]>
Nikita Koshikov Nginx Mailing List - Russian Fri, 06 Nov 2020 17:56:04 -0500
http://www.ldmicj.icu/read.php?21,289886,289886#msg-289886 Відповідь: вопрос новичка по редиректу на номер порта (no replies) http://www.ldmicj.icu/read.php?21,289886,289886#msg-289886
    proxy_pass http://192.168.1.100:8091/;
    .....
}

---- Увімкнуто пт, 06 лист. 2020 12:52:42 +0200 redidka812 <nginx-forum@www.ldmicj.icu> написав ----



Добрый день,
Помогите разобраться.
у меня в домашней сети
Есть компьютер(Linux) на нем крутится несколько серверов (используется как
медиацентр):торрент качалка,Plex, dlna, и т.п.. каждый слушает свой порт.. и
все хорошо(в домашней сети)...
. Хочется управлять им удаленно, из интернета, для этого можно пробросить их
парты за NAT.. но во-первых не все сервера с авторизацией, да и просто
держать за натом кучу открытых портов мне кажется не самой лучшей идеей....
И можно поставить ngnix, за NAT вывести только его порт,а он уже будет
редиректить на соответствующие службы внутри домашней сети, а заодно по
необходимости прверять авторизацию
...
Я ещё совсем зелёный и у меня пока ничего не получилось.. по манам ставилю
ngnix..
При тесте на 80 порту выдает дефолтную страничку...
И пытаюсь добавить правила/серверы в конфиг.. запутался в именах серверов..
Т.е. Я хочу придумать им имена по названию служб
И в браузере вводить:http://IP:port/server_name
Чтобы ngnix слушающий 80й порт, сопоставлял server_name с тем что у него
имеются в конфиге
И редиректил на соответствующий порт
Пример:
В браузере удаленной машины ввожу
Http://192.168.1.100/transmission
Где -192.168.1.100(или внешний белый ip) адрес машины где крутится ngnix
"transmission"- имя сервера по которому ngnix должен опознать запрос и
перенаправить на соответствующий порт

В правилах ngnix
server {
...
server_name transmission www.transmission
location / {
proxy_pass http://192.168.1.100:8091/;
}
}

-где 8091 номер порта где отвечает transmission в локальной сети...
И так для всех служб для которых я хочу сделать редирект через ngnix
(Свое уникальное имя сервера и порт на котором запущена /слушает служба)
Далее рестарт ngnix

И пока ничего не получается, при удаленном запросе в браузере (из домаашней
сети)
http://192.168.1.100/transmission
Получаю 404, а хочу получить вебморду от торрент качалки...
Ч.Я Д.Н.Т?

Подскажите, как правильно прописать подобное перенаправление, и как
правильно придумывать имена серверов/сайтов (для служб запущенных на той же
машине где и ngnix , каждая служба отвечает на своем порту) чтоб редирект
через ngnix их распознавал?

Posted at Nginx Forum: http://www.ldmicj.icu/read.php?21,289885,289885#msg-289885

_______________________________________________
nginx-ru mailing list
mailto: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]]>
Dmytro Lavryk Nginx Mailing List - Russian Fri, 06 Nov 2020 06:00:04 -0500
http://www.ldmicj.icu/read.php?21,289885,289885#msg-289885 вопрос новичка по редиректу на номер порта (1 reply) http://www.ldmicj.icu/read.php?21,289885,289885#msg-289885 Помогите разобраться.
у меня в домашней сети
Есть компьютер(Linux) на нем крутится несколько серверов (используется как медиацентр):торрент качалка,Plex, dlna, и т.п.. каждый слушает свой порт.. и все хорошо(в домашней сети)...
. Хочется управлять им удаленно, из интернета, для этого можно пробросить их парты за NAT.. но во-первых не все сервера с авторизацией, да и просто держать за натом кучу открытых портов мне кажется не самой лучшей идеей....
И можно поставить ngnix, за NAT вывести только его порт,а он уже будет редиректить на соответствующие службы внутри домашней сети, а заодно по необходимости прверять авторизацию
...
Я ещё совсем зелёный и у меня пока ничего не получилось.. по манам ставилю ngnix..
При тесте на 80 порту выдает дефолтную страничку...
И пытаюсь добавить правила/серверы в конфиг.. запутался в именах серверов..
Т.е. Я хочу придумать им имена по названию служб
И в браузере вводить:http://IP:port/server_name
Чтобы ngnix слушающий 80й порт, сопоставлял server_name с тем что у него имеются в конфиге
И редиректил на соответствующий порт
Пример:
В браузере удаленной машины ввожу
Http://192.168.1.100/transmission
Где -192.168.1.100(или внешний белый ip) адрес машины где крутится ngnix
"transmission"- имя сервера по которому ngnix должен опознать запрос и перенаправить на соответствующий порт

В правилах ngnix
server {
...
server_name transmission www.transmission
location / {
proxy_pass http://192.168.1.100:8091/;
}
}

-где 8091 номер порта где отвечает transmission в локальной сети...
И так для всех служб для которых я хочу сделать редирект через ngnix
(Свое уникальное имя сервера и порт на котором запущена /слушает служба)
Далее рестарт ngnix

И пока ничего не получается, при удаленном запросе в браузере (из домаашней сети)
http://192.168.1.100/transmission
Получаю 404, а хочу получить вебморду от торрент качалки...
Ч.Я Д.Н.Т?

Подскажите, как правильно прописать подобное перенаправление, и как правильно придумывать имена серверов/сайтов (для служб запущенных на той же машине где и ngnix , каждая служба отвечает на своем порту) чтоб редирект через ngnix их распознавал?]]>
redidka812 Nginx Mailing List - Russian Sun, 08 Nov 2020 02:11:47 -0500
http://www.ldmicj.icu/read.php?21,289821,289821#msg-289821 wordpress+postfixadmin conf (no replies) http://www.ldmicj.icu/read.php?21,289821,289821#msg-289821 Если ввести wordpress.example.com/mailadmin/public/login.php то postfixadmin доступен.
Можно как то в конфиге Nginx сделать алиас /mailadmin/public/login.php просто на /mailadmin/?]]>
fingolor Nginx Mailing List - Russian Wed, 28 Oct 2020 18:19:01 -0400
http://www.ldmicj.icu/read.php?21,289811,289811#msg-289811 nginx-1.19.4 (no replies) http://www.ldmicj.icu/read.php?21,289811,289811#msg-289811
*) Добавление: директивы ssl_conf_command, proxy_ssl_conf_command,
grpc_ssl_conf_command и uwsgi_ssl_conf_command.

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

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


--
Maxim Dounin
http://nginx.org/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru]]>
Maxim Dounin Nginx Mailing List - Russian Tue, 27 Oct 2020 11:28:13 -0400
http://www.ldmicj.icu/read.php?21,289759,289759#msg-289759 Не работает редирект на HTTPS. OpenSSL. (15 replies) http://www.ldmicj.icu/read.php?21,289759,289759#msg-289759
Нужна помощь по вопросу SSL шифрования.

Объясню, что есть и что уже имеется.

Основная задача ?поднять RocketChat на локальном сервере и обеспечить шифрование при доступе к локальному серверу из вне.

Для этих целей использовал Ubuntu 18.04 LTS на виртуалке на сервере. В качестве веб-сервера использовал Nginx - 1.14.0 (Ubuntu), а в качестве СУБД использую MongoDB - db version v4.0.20. Использование Nginx и MongoDB описано в мануале по установке RocketChat.
Все это удалось сделать и все хорошо работает. То есть Nginx + MongoDB + RocketChat хорошо работают как в локальной сети, так и из вне (с помощью проброса портов). Однако не удается подключить SSL ?сертификат. Так как сервер поднимался локально (доступ из вне и локально осуществляется через IP-адрес сервера и порт) и отсутствует какой-то домен, то получение SSL-сертификата от Let’S Encrypt является проблематичным, поэтому выбрал самоподписанный SSL-сертификат на основе OpenSSL.
Приватный ключ, сертификат, а также ключ Диффи-Хеллмана сделал. Конфиги nginx.conf, а также конфиг в папке /etc/nginx/sites-available/rocketchat.conf настроил, однако по каким-то причинам доступ к чату есть через HTTP, но нет через HTTPS.

С этой темой сижу уже достаточно долго. Пробовал много способов и много различных конфигов, но все равно не работает.
Причем пробовал как с отключенным UFW, так и с включенным (разрешал подключение по портам 80, 443, *нужный мне порт*). Также в iptables тоже разрешил 3 предыдущих порта, но эффекта ноль.

А вот тут я приведу конфиги.
/etc/nginx/nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
worker_connections 768;
# multi_accept on;
}

http {
##
# Basic Settings
##
#sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;

# server_names_hash_bucket_size 64;
# server_name_in_redirect off;

include /etc/nginx/mime.types;
default_type application/octet-stream;

##
# SSL Settings
##
##
# Logging Settings
##

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

##
# Gzip Settings
##

gzip on;

# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml applicatio$

##
# Virtual Host Configs
##

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*.conf;
}

#mail {
# # See sample authentication script at:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "USER";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# server {
# listen localhost:110;
# protocol pop3;
# proxy on;
# }
#
# server {
# listen localhost:143;
# protocol imap;
# proxy on;
# }
#}

/etc/nginx/sites-available/default.conf

upstream backend {
server 127.0.0.1;
}

#HTTP
server {
#Делаю конфиг согласно https://techlist.top/translation-nginx-to-https/
listen 80;
server_name *IP локального сервера*;
return 301 https://$server_name$request_uri;
}

#HTTPS
server {
#Порт, который будет слушать Nginx для SSL
listen 443 ssl http2;

#Имя сайта
server_name *IP локального сервера*;

#Корневая директория и индексный файл (ничего не менял)
root /var/www/html;
index index.html index.htm index.nginx-debian.html;

#Лог-файлы
access_log /var/www/html/access_https.log;
error_log /var/www/html/error_https.log;

#SSL-секция

#Сертификат и ключ
ssl_certificate /etc/ssl/certs/rccrt.crt;
ssl_certificate_key /etc/ssl/private/rckey.key;

#SSL-сессия
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;

#Diffie-Hellman ключ для DHE-шифров
ssl_dhparam /etc/ssl/certs/dhparam.pem;

#Используемые протоколы
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;

#Наборы шифров
ssl_ciphers '*набор шифров*';

#Приоритет серверных шифров
ssl_prefer_server_ciphers on;

#Включение HSTS (Strict-Transport-Security)(15768000 seconds = 6 месяцев)
add_header Strict-Transport-Security max-age=15768000;

resolver 8.8.8.8 8.8.4.4 valid=300s;

# server_name _;

location / {
# Параметры проксирования
proxy_send_timeout 600;
proxy_read_timeout 600;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header HTTPS YES;
# IP-адрес целевой площадки для проксирования
proxy_pass http://192.168.1.108;
}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php7.0-fpm:
# fastcgi_pass unix:/run/php/php7.0-fpm.sock;
#}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}

Далее делаю «копию» в папку sites-enabled
sudo ln -s /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/

Проверяю синтаксис
sudo nginx -t
(на что получаю положительный ответ)
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

И последовательно делаю перезапуск Nginx
sudo service nginx restart
sudo systemctl restart nginx

В итоге, набирая IP и порт и пытаясь подключиться по HTTPS, в Google Chrome вижу ошибку ERR_CONNECTION_CLOSED. В чем может быть проблема?]]>
Zalman_ Nginx Mailing List - Russian Tue, 20 Oct 2020 08:40:12 -0400
http://www.ldmicj.icu/read.php?21,289685,289685#msg-289685 nginx не реагирует If-Modified-Since (1 reply) http://www.ldmicj.icu/read.php?21,289685,289685#msg-289685
nginx раздает статические файлы графики. Сейчас заметил, что он не реагирует на If-Modified-Since и каждый раз отдает файл заново с кодом ответа 200, вместо 304.

Подскажите, что прописать в конфиге, чтобы он учитывал дату последнего изменения файла графики?

Спасибо.]]>
grey Nginx Mailing List - Russian Thu, 08 Oct 2020 05:42:10 -0400
http://www.ldmicj.icu/read.php?21,289652,289652#msg-289652 Непонятна работа limit_rate (12 replies) http://www.ldmicj.icu/read.php?21,289652,289652#msg-289652 Есть локейшн с настроенными вот такими директивами:
limit_rate_after 150000k; #150Mb
limit_rate 2048k;

Пробую качать с помощью wget большой файл, и примерно через 7 минут 49-55
секунд закачка обрывается ну и соответственно объем (1.1Гб) скачанных
данных в зависимости от времени слегка разный.
Как только убирают указанные выше две директивы, так все логично быстро
качается и самое главное без обрыва , качается целиком.
А проблема заключается в том что указанными директивами я лишь хотел
подрезать скорость, но не понятно почему при этом файл не скачивается до
конца! До 1.1Гб файлы скачиваются нормально, а больше уже нет. Хотел было
грешить на таймауты какие-нибудь, но время обрыва хоть и примерно
одинаковое, но все же не постоянное, поэтому идею с таймаутами отбросил.

Прошу подсказать как решить проблему?
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru]]>
Иван Мишин Nginx Mailing List - Russian Wed, 07 Oct 2020 11:24:07 -0400
http://www.ldmicj.icu/read.php?21,289619,289619#msg-289619 Странные 502 ответы. (4 replies) http://www.ldmicj.icu/read.php?21,289619,289619#msg-289619
Клиенты обращаются на несколько прокси серверов, которые проксирую запросы на другие (промежуточные) прокси и промежуточные прокси уже проксируют запрос на сервера оригинации.
Client <-> Edge_proxy <-> proxy_промежуточные <-> Origin server



Периодически возникают проблемы с 502-ми ответами в логе с одного из upstream серверов.
При этом на запрос к апстриму, где в логе 502, есть записи в error.log вида

2020/09/29 07:28:09 [error] 13038#13038: *4641196828 upstream prematurely closed connection while reading response header from upstream, client: <IP>, server: <DOMAIN>, request: "GET <URI> HTTP/1.1", upstream: "http://<IP>/<URI>", host: "<domain>"
или
2020/09/29 07:54:54 [error] 40174#40174: *3165979465 upstream prematurely closed connection while reading response header from upstream, client: <IP>, server: <DOMAIN>, request: "GET <URI> HTTP/1.1", upstream: "http://<IP>/<URI>", host: "<domain>"

Сам лог запроса:
IP <domain> [30/Sep/2020:10:12:57 +0000] "GET <URI> HTTP/1.1" 200 MISS "UPSTREAM1, UPSTREAM2" 75539 "-" "User_agent" "0.079" "-" "TLSv1.2/ECDHE-RSA-AES128-GCM-SHA256" "21/7498183988" 75945 "0, 75539" "-, 0.076" "0.000, 0.076" "502, 200" RU 3dca4fc6a9c7cf10a8448faa0 443

Где "0.000, 0.076" - request_time
"502, 200" - соотв коды ответов для Upstream1, Upstream2.

При этом через секунду или даже меньше, запросы с этого промежуточного прокси-сервера приходят с 200-м кодом.
+ очень смущает то, что время ответа 0.000. Значит никакие таймауты не превышались.

Проблем с сетью между серверами нет, MTR показывает 0% потерь на дистанции 1час+.
Ресурсов на серверах хватает.

Помогите, пожалуйста, понять в чем проблема.]]>
elc Nginx Mailing List - Russian Thu, 01 Oct 2020 09:54:09 -0400
http://www.ldmicj.icu/read.php?21,289612,289612#msg-289612 Изменения в блоке if (2 replies) http://www.ldmicj.icu/read.php?21,289612,289612#msg-289612 Начал замечать, что с недавних пор, (на версии 1.19.1 точно, и, скорее всего на 1.17.Х) поведение if поменялось. При этом в документации (что en, что ru - одинаково) сказано, что такая конструкция будет работать:

if ($slow) {
limit_rate 10k;
}

но на практике нужно писать

if ($slow = 1) {
limit_rate 10k;
}

иначе не работает.

Могу привести конкретный пример, где у меня не работает "упрощенный" (то есть без сравнения с 1) if:

map $is_bot:$uri:$http_referer $very_bad {
default '';
"~*0:(\/api):(.*bad\.html)" '1';
}

...
if ($very_bad = 1) {return 403;}

Именно так работает. Если же указать

if ($very_bad) {return 403;}

то не работает.

Есть такие, у которых нормально работает "упрощённый" if на новых версиях?]]>
skeletor Nginx Mailing List - Russian Wed, 30 Sep 2020 10:06:12 -0400
http://www.ldmicj.icu/read.php?21,289592,289592#msg-289592 Re: Почему пустой if ломает работу try files? (8 replies) http://www.ldmicj.icu/read.php?21,289592,289592#msg-289592 >
> Имеется nginx 1.19.2 со следующей настройкой:
>
> server {
> location / {
> if ($http_user_agent ~ "TestAgent") { }
> try_files $uri $uri/ /index.html;
> }
> }
>
> Почему попадание в if меняет логику работы последующего try_files?

https://wiki.nginx.org/IfIsEvil

--
Sergey Kandaurov

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru]]>
Sergey Kandaurov Nginx Mailing List - Russian Wed, 30 Sep 2020 01:50:01 -0400
http://www.ldmicj.icu/read.php?21,289591,289591#msg-289591 Почему пустой if ломает работу try_files? (no replies) http://www.ldmicj.icu/read.php?21,289591,289591#msg-289591
server {
location / {
if ($http_user_agent ~ "TestAgent") { }
try_files $uri $uri/ /index.html;
}
}

Проверяю:

1) curl http://127.0.0.1/unknown -- правильно возвращает index.html
2) curl http://127.0.0.1/ -H 'User-Agent: TestAgent' -- правильно возвращает index.html
3) curl http://127.0.0.1/unknown -H 'User-Agent: TestAgent' -- неправильно возвращает ошибку 404

Почему попадание в if меняет логику работы последующего try_files?]]>
Ilya Evseev Nginx Mailing List - Russian Tue, 29 Sep 2020 12:12:13 -0400
http://www.ldmicj.icu/read.php?21,289588,289588#msg-289588 nginx-1.19.3 (no replies) http://www.ldmicj.icu/read.php?21,289588,289588#msg-289588
*) Добавление: модуль 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.


--
Maxim Dounin
http://nginx.org/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru]]>
Maxim Dounin Nginx Mailing List - Russian Tue, 29 Sep 2020 10:48:13 -0400
http://www.ldmicj.icu/read.php?21,289562,289562#msg-289562 статический контент и NodeJS Express (8 replies) http://www.ldmicj.icu/read.php?21,289562,289562#msg-289562 developer-режиме. В качестве http-сервера используется ExpressJS.
В production-режиме появляется проблема - http GET запросы возвращают
404-ю ошибку для всех новых файлов, загруженных после старта приложения
в каталог public.

Пример: если до старта файл public/static/old.jpg существовал, GET
запрос вернет его с кодом 200.
Если мы загрузили через nodejs-приложение файл public/static/new.jpg
GET-запрос будет возвращать ошибку 404. Если перезапустить приложение,
GET на public/static/new.jpg будет возвращать 200.

Гугление проблемы привело к пониманию, что это не ошибка, а особенность
Express-сервера и для production рекомендуется использовать связку
nginx+express. Как мне настроить работу этой связки, я не вполне
представляю, поэтому прошу помощи здесь.
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru]]>
Cyril Zlachevsky Nginx Mailing List - Russian Tue, 29 Sep 2020 05:46:06 -0400
http://www.ldmicj.icu/read.php?21,289495,289495#msg-289495 Пяти секундная задержка на отправку (1 reply) http://www.ldmicj.icu/read.php?21,289495,289495#msg-289495
Использую NGINX в качестве Load balancer.
Столкнулся с тем, что некоторые 200 приходят с задержкой в несколько секунд.

Изучил логи, вижу следующее:
2020/09/24 12:37:58 [debug] 18718#0: *1888 free: 00007F344ED96750
2020/09/24 12:37:58 [debug] 18718#0: *1888 free: 00007F344ECDFA30
2020/09/24 12:37:58 [debug] 18718#0: *1888 free: 00007F344ED94200, unused: 8
2020/09/24 12:37:58 [debug] 18718#0: *1888 free: 00007F344ED4B380, unused: 400
2020/09/24 12:37:58 [debug] 18718#0: timer delta: 1
2020/09/24 12:37:58 [debug] 18718#0: worker cycle
2020/09/24 12:37:58 [debug] 18718#0: epoll timer: -1
//6 секунд задержки
2020/09/24 12:38:04 [debug] 18718#0: epoll: fd:9 ev:0001 d:00007F344DCE31F0
2020/09/24 12:38:04 [debug] 18718#0: accept on 0.0.0.0:443, ready: 0
2020/09/24 12:38:04 [debug] 18718#0: posix_memalign: 00007F344EC7F450:512 @16
2020/09/24 12:38:04 [debug] 18718#0: *2331 accept: 192.168.10.86:55013 fd:11

Прошу помощи, как это можно поправить? Что случилось?]]>
Sergey Smirnov Nginx Mailing List - Russian Thu, 24 Sep 2020 09:32:14 -0400
http://www.ldmicj.icu/read.php?21,289466,289466#msg-289466 Проблемы со связностью по ipv6 сайта nginx.org (60 replies) http://www.ldmicj.icu/read.php?21,289466,289466#msg-289466
Если у клиента ipv6 адрес, то домен nginx.org гарантированно не
ресолвится первый раз, второй и последующие - ресолвится, потом через два
часа по новой.

Как решение проблемы, добавить NS для nginx.org, имеющий ipv6 адрес
(подключение).

А пока вынуждены таким костылем пользоваться:

ping -4 -w 1 -c 1 -q nginx.org >> /dev/null

Спасибо.
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru]]>
Vladislav V. Prodan Nginx Mailing List - Russian Fri, 16 Oct 2020 05:14:03 -0400
http://www.ldmicj.icu/read.php?21,289421,289421#msg-289421 nginx 1.18 lua51 (1 reply) http://www.ldmicj.icu/read.php?21,289421,289421#msg-289421 Подскажите пожалуйста по проблеме как быть.
Установил lua51 и указала поддержку в nginx lua.
Создал виртуал хост, делаю проверку синтаксиса.

Nginx ставил из портов.

nginx -t
nginx: [emerg] unknown directive "content_by_lua_block" in /usr/local/etc/nginx/sites-enabled/test.jpeg_png:49
nginx: configuration file /usr/local/etc/nginx/nginx.conf test failed

Почему-то не видится директива content_by_lua_block.

Система freebsd 11.3

Nginx собран с --add-dynamic-module=/usr/ports/www/nginx/work/lua-nginx-module-0.10.17

nginx -V
nginx version: nginx/1.18.0
built with OpenSSL 1.1.1g 21 Apr 2020
TLS SNI support enabled
configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I /usr/local/include' --with-ld-opt='-L /usr/local/lib' --conf-path=/usr/local/etc/nginx/nginx.conf --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx/error.log --user=www --group=www --modules-path=/usr/local/libexec/nginx --with-file-aio --http-client-body-temp-path=/var/tmp/nginx/client_body_temp --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp --http-proxy-temp-path=/var/tmp/nginx/proxy_temp --http-scgi-temp-path=/var/tmp/nginx/scgi_temp --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp --http-log-path=/var/log/nginx/access.log --with-http_v2_module --with-http_addition_module --with-http_auth_request_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-pcre --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_sub_module --with-cc-opt='-DNGX_HAVE_INET6=0 -I /usr/local/include' --without-mail_imap_module --without-mail_pop3_module --without-mail_smtp_module --with-threads --with-stream=dynamic --add-dynamic-module=/usr/ports/www/nginx/work/ngx_devel_kit-0.3.1 --add-dynamic-module=/usr/ports/www/nginx/work/lua-nginx-module-0.10.17

Софт в системе установлен такой:

lua-resty-core-0.1.19 =
lua-resty-lrucache-0.10 =
lua51-5.1.5_9 =
lua51-luarocks-3.3.1 =
luajit-openresty-2.1.20200102 =]]>
bagas Nginx Mailing List - Russian Tue, 15 Sep 2020 22:48:03 -0400
http://www.ldmicj.icu/read.php?21,289400,289400#msg-289400 Re: ngx http userid module и атрибуты куки (no replies) http://www.ldmicj.icu/read.php?21,289400,289400#msg-289400 >В последних версиях chrome атрибуты кук "SameSite=None; Secure" стали
>обязательны, если необходимо, что-бы куки были доступны при обращении со
>сторонних ресурсов, например, если ресурс работает через frame’? Я
>использую модуль ngx_http_userid_module для идентификации уникальных
>пользователей, и это перестало работать в вышеописанных условиях. Модуль
>манипулировать этими атрибутами не умеет. Пробовал header_filter_by_lua,
>но так тоже не получилось получить доступ до нужной куки. Есть какой-то
>способ, кроме создания еще одного server, и изменения уже проксируемых кук?

Прямого решения нет, но есть простой и рабочий хак:

userid_path '/; SameSite=None; Secure';

--
Cheers,
Oleg A. Mamontov

mailto: oleg@mamontov.net

skype: lonerr11
cell: +7 (903) 798-1352
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru]]>
Oleg A. Mamontov Nginx Mailing List - Russian Fri, 11 Sep 2020 11:52:07 -0400
http://www.ldmicj.icu/read.php?21,289398,289398#msg-289398 Не могу понять как работает location... (1 reply) http://www.ldmicj.icu/read.php?21,289398,289398#msg-289398 Посоветуйте, не могу въехать).
Есть такие настройки сервера, помимо стандарных настроек nginx:
server {
listen xxx.xxx.xxx.xxx:80 default_server;
server_name my_host;
return 404;
access_log off;
error_log /var/log/nginx/error_by_ip.log crit;
}
server {
listen xxx.xxx.xxx.xxx:443 default_server;
server_name my_host;
return 404;
access_log off;
error_log /var/log/nginx/error_by_ip.log crit;
}
server {
listen 80;
server_name my_host;

rewrite ^/ua/articles/koronavirus-vse-shcho-potribno-znaty-pro-nogo$ https://my_host/blog-item/koronavirus-vse-shcho-potribno-znaty-pro-noho/ permanent;

location = / { return 301 https://apteka-ds.com.ua; }
}

Вопрос:

первый вход на
http://my_host/ua/articles/koronavirus-vse-shcho-potribno-znaty-pro-nogo
ведет на
https://my_host/blog-item/koronavirus-vse-shcho-potribno-znaty-pro-noho/.

когда захожу второй раз на
http://my_host/ua/articles/koronavirus-vse-shcho-potribno-znaty-pro-nogo
ведет на
https://my_host/error-404

чищу кеш браузера, снова первый раз заходит, следующие лажа.
Куда рыть? голова уже квадратная)]]>
akoval Nginx Mailing List - Russian Fri, 11 Sep 2020 10:45:38 -0400
http://www.ldmicj.icu/read.php?21,289396,289396#msg-289396 ngx_http_userid_module и атрибуты куки (no replies) http://www.ldmicj.icu/read.php?21,289396,289396#msg-289396 BieZax Nginx Mailing List - Russian Fri, 11 Sep 2020 08:32:15 -0400 http://www.ldmicj.icu/read.php?21,289382,289382#msg-289382 Ридирект RDP в зависимости от доступности (no replies) http://www.ldmicj.icu/read.php?21,289382,289382#msg-289382 lexey Nginx Mailing List - Russian Thu, 10 Sep 2020 08:43:17 -0400 http://www.ldmicj.icu/read.php?21,289378,289378#msg-289378 резолвятся не все имена host-файла (5 replies) http://www.ldmicj.icu/read.php?21,289378,289378#msg-289378
хотелось бы всё таки разобраться с вопросом резолвинга имён

у нас есть докер-контейнер с nginx 1.18.0 с Docker Hub
в него мы подкладываем в /etc/hosts файл свои несколько записей (условно):

10.0.3.4 docker_srv_a
10.0.3.5 docker_srv_b
10.0.3.6 docker_srv_c

никакой разницы нет в дальнейшем использовании docker_srv_[a,b,c] в nginx.conf, при этом, srv_a и srv_b работают, а srv_c нет

проверяли всё до знаков пунктуации ?нет разницы в описании, но имя docker_srv_c nginx не видит

пересборка, дублирование в родительской машинке в /etc/hosts, перезапуски nginx ?ничего не помогает
сам контейнер видит записи (через ping), nginx не видит одну из них ?docker_srv_c

все записи, но в особенности последняя резолвится (ping) в контейнере (docker exec -it nginx ping docker_srv_c), но последняя не резолвится в nginx

в error log ошибка:

2020/09/10 13:24:58 [error] 22#22: *40 no resolver defined to resolve docker_srv_c, client: ? server: ? request: "GET /srv_c/api HTTP/1.1", host: "?quot;

перевод строки ещё один на всякий случай добавлял в конец /etc/hosts ?не помогло

далее, поверх этих имён я просто повесил upstream'ы и, все три записи стали видны!
убираю апстримы, пишу напрямую в proxy_pass http://docker_srv_c ?не может разрешить имя

всё же какой-то глюк тут явно есть?
что за внутренняя процедура в nginx relover по умолчанию и почему она не полностью следует hosts-файлу?

почему резолвится только часть имён? да и что за чудеса, чем upstream так помогает резолвингу?
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru]]>
Alexey Galygin Nginx Mailing List - Russian Thu, 10 Sep 2020 10:08:01 -0400
http://www.ldmicj.icu/read.php?21,289352,289352#msg-289352 Как закрыть сервер для всех стран кроме своей и сервисов гугл (7 replies) http://www.ldmicj.icu/read.php?21,289352,289352#msg-289352 Народ, как решаете данную проблему?
Сайт постоянно сканируют левые боты и атаки с других стран...
Но сервисы гугла нужны.
Как закрыть сайт на уровне сервера?]]>
akoval Nginx Mailing List - Russian Mon, 05 Oct 2020 03:38:13 -0400
http://www.ldmicj.icu/read.php?21,289344,289344#msg-289344 Re: Вычислить длину user agent (2 replies) http://www.ldmicj.icu/read.php?21,289344,289344#msg-289344
On Tue, Sep 8, 2020, 11:21 AM Dmytro Lavryk <nginx-forum@www.ldmicj.icu>
wrote:

> Прилетали такие запросы:
> 103.47.172.95 [08/Sep/2020:00:18:57 +0300] "GET / HTTP/1.1" 499 0
> "https://yahoo.com" "M"
> 186.6.101.4 [08/Sep/2020:00:19:14 +0300] "GET / HTTP/1.1" 499 0
> "https://facebook.com" "k"
> 117.102.116.82 [08/Sep/2020:00:19:16 +0300] "GET / HTTP/1.1" 499 0
> "https://bing.com" ")"
> 43.249.140.230 [08/Sep/2020:00:19:16 +0300] "GET / HTTP/1.1" 499 0
> "https://baidu.com" "("
> 61.5.39.35 [08/Sep/2020:00:19:17 +0300] "GET / HTTP/1.1" 499 0
> "https://bing.com" "U"
> 189.50.9.250 [08/Sep/2020:00:19:17 +0300] "GET / HTTP/1.1" 499 0
> "https://google.com" "2"
> 191.97.9.186 [08/Sep/2020:00:19:17 +0300] "GET / HTTP/1.1" 499 0
> "https://reddit.com" "M"
> 198.50.163.192 [08/Sep/2020:00:19:18 +0300] "GET / HTTP/1.1" 499 0
> "https://facebook.com" "n"
> 103.113.197.1 [08/Sep/2020:00:19:18 +0300] "GET / HTTP/1.1" 499 0
> "https://gmail.com" "v"
>
> Очевидно юзер-агент "левый". Пришла мысль резать по длине его
> (юзер-агента).
> например если короче Х символов - отдавать просто 403 и не мучаться, потому
> что это явно не нормальная ситуация. Существует ли такая возможность? Или
> нужно на перле/луа прикручивать скрипты?
>
> Ну что-то типа такого хотелось бы:
> if ($http_user_agent_length < 7) {
> return 403;
> }
>
> Posted at Nginx Forum:
> http://www.ldmicj.icu/read.php?21,289343,289343#msg-289343
>
> _______________________________________________
> 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]]>
Илья Шипицин Nginx Mailing List - Russian Sun, 20 Sep 2020 15:09:09 -0400
http://www.ldmicj.icu/read.php?21,289343,289343#msg-289343 Вычислить длину user_agent (no replies) http://www.ldmicj.icu/read.php?21,289343,289343#msg-289343 103.47.172.95 [08/Sep/2020:00:18:57 +0300] "GET / HTTP/1.1" 499 0 "https://yahoo.com" "M"
186.6.101.4 [08/Sep/2020:00:19:14 +0300] "GET / HTTP/1.1" 499 0 "https://facebook.com" "k"
117.102.116.82 [08/Sep/2020:00:19:16 +0300] "GET / HTTP/1.1" 499 0 "https://bing.com" ")"
43.249.140.230 [08/Sep/2020:00:19:16 +0300] "GET / HTTP/1.1" 499 0 "https://baidu.com" "("
61.5.39.35 [08/Sep/2020:00:19:17 +0300] "GET / HTTP/1.1" 499 0 "https://bing.com" "U"
189.50.9.250 [08/Sep/2020:00:19:17 +0300] "GET / HTTP/1.1" 499 0 "https://google.com" "2"
191.97.9.186 [08/Sep/2020:00:19:17 +0300] "GET / HTTP/1.1" 499 0 "https://reddit.com" "M"
198.50.163.192 [08/Sep/2020:00:19:18 +0300] "GET / HTTP/1.1" 499 0 "https://facebook.com" "n"
103.113.197.1 [08/Sep/2020:00:19:18 +0300] "GET / HTTP/1.1" 499 0 "https://gmail.com" "v"

Очевидно юзер-агент "левый". Пришла мысль резать по длине его (юзер-агента). например если короче Х символов - отдавать просто 403 и не мучаться, потому что это явно не нормальная ситуация. Существует ли такая возможность? Или нужно на перле/луа прикручивать скрипты?

Ну что-то типа такого хотелось бы:
if ($http_user_agent_length < 7) {
return 403;
}]]>
Dmytro Lavryk Nginx Mailing List - Russian Tue, 08 Sep 2020 02:21:21 -0400
http://www.ldmicj.icu/read.php?21,289321,289321#msg-289321 запуск автотестов с включенным asan (address sanitizer) (3 replies) http://www.ldmicj.icu/read.php?21,289321,289321#msg-289321
для тестирования самодельного модуля, использовали такую методику

взяли https://github.com/nginx/nginx-tests
собрали nginx с самодельным модулем и gcc asan (не суть, могли бы взять
clang asan).
собрали кучу вариантов прохода по коду (это круто), нашли сколько-то
дефектов в своем модуле.

интересные вещи возникают с asan, причем, воспроизводятся на оригинальном
nginx.
это непонятно. можете прокомментировать ?

1. беру nginx из официальной репы. смотрю "nginx -V", добавляю
-fsanitize=address к cc-opts
2. выставляю ASAN_OPTIONS="log_path=asan.log"
3. запукаю тесты, смотрю, что упало в asan.log (а там есть сработки, это
немного неожиданно)

скрипт

#!/bin/bash

set -e

sysctl kernel.core_pattern=/tmp/core-%e-%s-%u-%g-%p-%t
ulimit -c unlimited
export version=1.19.2

mkdir t
cd t

wget http://nginx.org/download/nginx-${version}.tar.gz
tar xf nginx-${version}.tar.gz

cd nginx-${version}

../configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx
--modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid
--lock-path=/var/run/nginx.lock
--http-client-body-temp-path=/var/cache/nginx/client_temp
--http-proxy-temp-path=/var/cache/nginx/proxy_temp
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp
--http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx
--with-compat --with-file-aio --with-threads --with-http_addition_module
--with-http_auth_request_module --with-http_dav_module
--with-http_flv_module --with-http_gunzip_module
--with-http_gzip_static_module --with-http_mp4_module
--with-http_random_index_module --with-http_realip_module
--with-http_secure_link_module --with-http_slice_module
--with-http_ssl_module --with-http_stub_status_module
--with-http_sub_module --with-http_v2_module --with-mail
--with-mail_ssl_module --with-stream --with-stream_realip_module
--with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g
-O0
-fdebug-prefix-map=/data/builder/debuild/nginx-1.19.2/debian/debuild-base/nginx-1.19.2=.
-fstack-protector-strong -Wformat -Werror=format-security
-Wp,-D_FORTIFY_SOURCE=2 -fPIC -fsanitize=address'
--with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now
-Wl,--as-needed -pie -fsanitize=address -lasan' --with-debug


make
export ASAN_OPTIONS="log_path=asan.log"
export TEST_NGINX_BINARY=`pwd`/objs/nginx
export TEST_NGINX_GLOBALS='user root; '
export TEST_NGINX_GLOBALS_HTTP='error_log /tmp/e.log;'
git clone https://github.com/nginx/nginx-tests
prove -r nginx-tests


сработки

# locate asan.log
/root/t/nginx-1.19.2/nginx-tests/asan.log.46464
/root/t/nginx-1.19.2/nginx-tests/asan.log.46728
/root/t/nginx-1.19.2/nginx-tests/asan.log.46866
/root/t/nginx-1.19.2/nginx-tests/asan.log.46876
/root/t/nginx-1.19.2/nginx-tests/asan.log.47784
/root/t/nginx-1.19.2/nginx-tests/asan.log.47931
/root/t/nginx-1.19.2/nginx-tests/asan.log.47957
/root/t/nginx-1.19.2/nginx-tests/asan.log.47983
/root/t/nginx-1.19.2/nginx-tests/asan.log.48005
/root/t/nginx-1.19.2/nginx-tests/asan.log.48760
/root/t/nginx-1.19.2/nginx-tests/asan.log.48770
/root/t/nginx-1.19.2/nginx-tests/asan.log.48818
/root/t/nginx-1.19.2/nginx-tests/asan.log.49079
/root/t/nginx-1.19.2/nginx-tests/asan.log.49329

пример первой

# cat /root/t/nginx-1.19.2/nginx-tests/asan.log.46464

=================================================================
==46464==ERROR: LeakSanitizer: detected memory leaks

Indirect leak of 16384 byte(s) in 1 object(s) allocated from:
#0 0x7f36e86dbaa5 in posix_memalign
(/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10eaa5)
#1 0x5627781c130d in ngx_memalign src/os/unix/ngx_alloc.c:57
#2 0x5627781231ef in ngx_palloc_block src/core/ngx_palloc.c:186
#3 0x562778123166 in ngx_palloc_small src/core/ngx_palloc.c:173
#4 0x562778122f91 in ngx_palloc src/core/ngx_palloc.c:127
#5 0x5627782744f4 in ngx_http_add_variable
src/http/ngx_http_variables.c:449
#6 0x56277828046b in ngx_http_variables_add_core_vars
src/http/ngx_http_variables.c:2622
#7 0x56277822fd37 in ngx_http_core_preconfiguration
src/http/ngx_http_core_module.c:3262
#8 0x562778213c81 in ngx_http_block src/http/ngx_http.c:227
#9 0x56277817679d in ngx_conf_handler src/core/ngx_conf_file.c:463
#10 0x5627781757c4 in ngx_conf_parse src/core/ngx_conf_file.c:319
#11 0x56277816b106 in ngx_init_cycle src/core/ngx_cycle.c:275
#12 0x5627781188ae in main src/core/nginx.c:291
#13 0x7f36e7fa40b2 in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x270b2)

Indirect leak of 16384 byte(s) in 1 object(s) allocated from:
#0 0x7f36e86dbaa5 in posix_memalign
(/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10eaa5)
#1 0x5627781c130d in ngx_memalign src/os/unix/ngx_alloc.c:57
#2 0x5627781231ef in ngx_palloc_block src/core/ngx_palloc.c:186
#3 0x562778123166 in ngx_palloc_small src/core/ngx_palloc.c:173
#4 0x562778122f91 in ngx_palloc src/core/ngx_palloc.c:127
#5 0x562778123957 in ngx_pcalloc src/core/ngx_palloc.c:302
#6 0x5627783a72da in ngx_http_proxy_create_loc_conf
src/http/modules/ngx_http_proxy_module.c:2854
#7 0x56277821386d in ngx_http_block src/http/ngx_http.c:209
#8 0x56277817679d in ngx_conf_handler src/core/ngx_conf_file.c:463
#9 0x5627781757c4 in ngx_conf_parse src/core/ngx_conf_file.c:319
#10 0x56277816b106 in ngx_init_cycle src/core/ngx_cycle.c:275
#11 0x5627781188ae in main src/core/nginx.c:291
#12 0x7f36e7fa40b2 in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x270b2)

Indirect leak of 16384 byte(s) in 1 object(s) allocated from:
#0 0x7f36e86dbaa5 in posix_memalign
(/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10eaa5)
#1 0x5627781c130d in ngx_memalign src/os/unix/ngx_alloc.c:57
#2 0x5627781231ef in ngx_palloc_block src/core/ngx_palloc.c:186
#3 0x562778123166 in ngx_palloc_small src/core/ngx_palloc.c:173
#4 0x562778122f91 in ngx_palloc src/core/ngx_palloc.c:127
#5 0x562778123957 in ngx_pcalloc src/core/ngx_palloc.c:302
#6 0x562778126bba in ngx_hash_init src/core/ngx_hash.c:392
#7 0x562778281545 in ngx_http_variables_init_vars
src/http/ngx_http_variables.c:2730
#8 0x56277821470b in ngx_http_block src/http/ngx_http.c:314
#9 0x56277817679d in ngx_conf_handler src/core/ngx_conf_file.c:463
#10 0x5627781757c4 in ngx_conf_parse src/core/ngx_conf_file.c:319
#11 0x56277816b106 in ngx_init_cycle src/core/ngx_cycle.c:275
#12 0x5627781188ae in main src/core/nginx.c:291
#13 0x7f36e7fa40b2 in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x270b2)

Indirect leak of 16384 byte(s) in 1 object(s) allocated from:
#0 0x7f36e86dbaa5 in posix_memalign
(/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10eaa5)
#1 0x5627781c130d in ngx_memalign src/os/unix/ngx_alloc.c:57
#2 0x5627781231ef in ngx_palloc_block src/core/ngx_palloc.c:186
#3 0x562778123166 in ngx_palloc_small src/core/ngx_palloc.c:173
#4 0x562778122f91 in ngx_palloc src/core/ngx_palloc.c:127
#5 0x562778123957 in ngx_pcalloc src/core/ngx_palloc.c:302
#6 0x5627783dfe02 in ngx_http_scgi_create_loc_conf
src/http/modules/ngx_http_scgi_module.c:1232
#7 0x56277822dbd8 in ngx_http_core_location
src/http/ngx_http_core_module.c:2968
#8 0x56277817679d in ngx_conf_handler src/core/ngx_conf_file.c:463
#9 0x5627781757c4 in ngx_conf_parse src/core/ngx_conf_file.c:319
#10 0x56277822cfe6 in ngx_http_core_server
src/http/ngx_http_core_module.c:2875
#11 0x56277817679d in ngx_conf_handler src/core/ngx_conf_file.c:463
#12 0x5627781757c4 in ngx_conf_parse src/core/ngx_conf_file.c:319
#13 0x562778213db5 in ngx_http_block src/http/ngx_http.c:237
#14 0x56277817679d in ngx_conf_handler src/core/ngx_conf_file.c:463
#15 0x5627781757c4 in ngx_conf_parse src/core/ngx_conf_file.c:319
#16 0x56277816b106 in ngx_init_cycle src/core/ngx_cycle.c:275
#17 0x5627781188ae in main src/core/nginx.c:291
#18 0x7f36e7fa40b2 in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x270b2)

Indirect leak of 16384 byte(s) in 1 object(s) allocated from:
#0 0x7f36e86dbaa5 in posix_memalign
(/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10eaa5)
#1 0x5627781c130d in ngx_memalign src/os/unix/ngx_alloc.c:57
#2 0x5627781231ef in ngx_palloc_block src/core/ngx_palloc.c:186
#3 0x562778123166 in ngx_palloc_small src/core/ngx_palloc.c:173
#4 0x562778122f91 in ngx_palloc src/core/ngx_palloc.c:127
#5 0x562778123957 in ngx_pcalloc src/core/ngx_palloc.c:302
#6 0x5627783d1c12 in ngx_http_uwsgi_create_loc_conf
src/http/modules/ngx_http_uwsgi_module.c:1443
#7 0x5627782b22d9 in ngx_http_upstream src/http/ngx_http_upstream.c:5805
#8 0x56277817679d in ngx_conf_handler src/core/ngx_conf_file.c:463
#9 0x5627781757c4 in ngx_conf_parse src/core/ngx_conf_file.c:319
#10 0x562778213db5 in ngx_http_block src/http/ngx_http.c:237
#11 0x56277817679d in ngx_conf_handler src/core/ngx_conf_file.c:463
#12 0x5627781757c4 in ngx_conf_parse src/core/ngx_conf_file.c:319
#13 0x56277816b106 in ngx_init_cycle src/core/ngx_cycle.c:275
#14 0x5627781188ae in main src/core/nginx.c:291
#15 0x7f36e7fa40b2 in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x270b2)

Indirect leak of 16384 byte(s) in 1 object(s) allocated from:
#0 0x7f36e86dbaa5 in posix_memalign
(/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10eaa5)
#1 0x5627781c130d in ngx_memalign src/os/unix/ngx_alloc.c:57
#2 0x5627781225ac in ngx_create_pool src/core/ngx_palloc.c:23
#3 0x562778169b2d in ngx_init_cycle src/core/ngx_cycle.c:69
#4 0x5627781188ae in main src/core/nginx.c:291
#5 0x7f36e7fa40b2 in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x270b2)

Indirect leak of 8192 byte(s) in 1 object(s) allocated from:
#0 0x7f36e86dabc8 in malloc
(/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10dbc8)
#1 0x5627781c10fb in ngx_alloc src/os/unix/ngx_alloc.c:22
#2 0x562778123488 in ngx_palloc_large src/core/ngx_palloc.c:220
#3 0x562778122fa6 in ngx_palloc src/core/ngx_palloc.c:131
#4 0x56277812479e in ngx_array_push src/core/ngx_array.c:76
#5 0x5627781293c2 in ngx_hash_add_key src/core/ngx_hash.c:840
#6 0x5627782747a6 in ngx_http_add_variable
src/http/ngx_http_variables.c:468
#7 0x562778384f28 in ngx_http_map_block
src/http/modules/ngx_http_map_module.c:230
#8 0x56277817679d in ngx_conf_handler src/core/ngx_conf_file.c:463
#9 0x5627781757c4 in ngx_conf_parse src/core/ngx_conf_file.c:319
#10 0x562778213db5 in ngx_http_block src/http/ngx_http.c:237
#11 0x56277817679d in ngx_conf_handler src/core/ngx_conf_file.c:463
#12 0x5627781757c4 in ngx_conf_parse src/core/ngx_conf_file.c:319
#13 0x56277816b106 in ngx_init_cycle src/core/ngx_cycle.c:275
#14 0x5627781188ae in main src/core/nginx.c:291
#15 0x7f36e7fa40b2 in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x270b2)

Indirect leak of 6464 byte(s) in 1 object(s) allocated from:
#0 0x7f36e86dabc8 in malloc
(/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10dbc8)
#1 0x5627781c10fb in ngx_alloc src/os/unix/ngx_alloc.c:22
#2 0x562778123488 in ngx_palloc_large src/core/ngx_palloc.c:220
#3 0x562778122fa6 in ngx_palloc src/core/ngx_palloc.c:131
#4 0x562778126c4a in ngx_hash_init src/core/ngx_hash.c:399
#5 0x562778281545 in ngx_http_variables_init_vars
src/http/ngx_http_variables.c:2730
#6 0x56277821470b in ngx_http_block src/http/ngx_http.c:314
#7 0x56277817679d in ngx_conf_handler src/core/ngx_conf_file.c:463
#8 0x5627781757c4 in ngx_conf_parse src/core/ngx_conf_file.c:319
#9 0x56277816b106 in ngx_init_cycle src/core/ngx_cycle.c:275
#10 0x5627781188ae in main src/core/nginx.c:291
#11 0x7f36e7fa40b2 in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x270b2)

Indirect leak of 4280 byte(s) in 1 object(s) allocated from:
#0 0x7f36e86dabc8 in malloc
(/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10dbc8)
#1 0x5627781c10fb in ngx_alloc src/os/unix/ngx_alloc.c:22
#2 0x562778123488 in ngx_palloc_large src/core/ngx_palloc.c:220
#3 0x562778122fa6 in ngx_palloc src/core/ngx_palloc.c:131
#4 0x562778123957 in ngx_pcalloc src/core/ngx_palloc.c:302
#5 0x5627781288aa in ngx_hash_keys_array_init src/core/ngx_hash.c:723
#6 0x5627782803af in ngx_http_variables_add_core_vars
src/http/ngx_http_variables.c:2608
#7 0x56277822fd37 in ngx_http_core_preconfiguration
src/http/ngx_http_core_module.c:3262
#8 0x562778213c81 in ngx_http_block src/http/ngx_http.c:227
#9 0x56277817679d in ngx_conf_handler src/core/ngx_conf_file.c:463
#10 0x5627781757c4 in ngx_conf_parse src/core/ngx_conf_file.c:319
#11 0x56277816b106 in ngx_init_cycle src/core/ngx_cycle.c:275
#12 0x5627781188ae in main src/core/nginx.c:291
#13 0x7f36e7fa40b2 in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x270b2)

Indirect leak of 4280 byte(s) in 1 object(s) allocated from:
#0 0x7f36e86dabc8 in malloc
(/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10dbc8)
#1 0x5627781c10fb in ngx_alloc src/os/unix/ngx_alloc.c:22
#2 0x562778123488 in ngx_palloc_large src/core/ngx_palloc.c:220
#3 0x562778122fa6 in ngx_palloc src/core/ngx_palloc.c:131
#4 0x562778123957 in ngx_pcalloc src/core/ngx_palloc.c:302
#5 0x5627781287f3 in ngx_hash_keys_array_init src/core/ngx_hash.c:717
#6 0x5627782803af in ngx_http_variables_add_core_vars
src/http/ngx_http_variables.c:2608
#7 0x56277822fd37 in ngx_http_core_preconfiguration
src/http/ngx_http_core_module.c:3262
#8 0x562778213c81 in ngx_http_block src/http/ngx_http.c:227
#9 0x56277817679d in ngx_conf_handler src/core/ngx_conf_file.c:463
#10 0x5627781757c4 in ngx_conf_parse src/core/ngx_conf_file.c:319
#11 0x56277816b106 in ngx_init_cycle src/core/ngx_cycle.c:275
#12 0x5627781188ae in main src/core/nginx.c:291
#13 0x7f36e7fa40b2 in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x270b2)

Indirect leak of 4280 byte(s) in 1 object(s) allocated from:
#0 0x7f36e86dabc8 in malloc
(/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10dbc8)
#1 0x5627781c10fb in ngx_alloc src/os/unix/ngx_alloc.c:22
#2 0x562778123488 in ngx_palloc_large src/core/ngx_palloc.c:220
#3 0x562778122fa6 in ngx_palloc src/core/ngx_palloc.c:131
#4 0x562778123957 in ngx_pcalloc src/core/ngx_palloc.c:302
#5 0x56277812873c in ngx_hash_keys_array_init src/core/ngx_hash.c:712
#6 0x5627782803af in ngx_http_variables_add_core_vars
src/http/ngx_http_variables.c:2608
#7 0x56277822fd37 in ngx_http_core_preconfiguration
src/http/ngx_http_core_module.c:3262
#8 0x562778213c81 in ngx_http_block src/http/ngx_http.c:227
#9 0x56277817679d in ngx_conf_handler src/core/ngx_conf_file.c:463
#10 0x5627781757c4 in ngx_conf_parse src/core/ngx_conf_file.c:319
#11 0x56277816b106 in ngx_init_cycle src/core/ngx_cycle.c:275
#12 0x5627781188ae in main src/core/nginx.c:291
#13 0x7f36e7fa40b2 in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x270b2)

Indirect leak of 4096 byte(s) in 1 object(s) allocated from:
#0 0x7f36e86dabc8 in malloc
(/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10dbc8)
#1 0x5627781c10fb in ngx_alloc src/os/unix/ngx_alloc.c:22
#2 0x562778123488 in ngx_palloc_large src/core/ngx_palloc.c:220
#3 0x562778122fa6 in ngx_palloc src/core/ngx_palloc.c:131
#4 0x56277812479e in ngx_array_push src/core/ngx_array.c:76
#5 0x5627781293c2 in ngx_hash_add_key src/core/ngx_hash.c:840
#6 0x5627782747a6 in ngx_http_add_variable
src/http/ngx_http_variables.c:468
#7 0x56277828046b in ngx_http_variables_add_core_vars
src/http/ngx_http_variables.c:2622
#8 0x56277822fd37 in ngx_http_core_preconfiguration
src/http/ngx_http_core_module.c:3262
#9 0x562778213c81 in ngx_http_block src/http/ngx_http.c:227
#10 0x56277817679d in ngx_conf_handler src/core/ngx_conf_file.c:463
#11 0x5627781757c4 in ngx_conf_parse src/core/ngx_conf_file.c:319
#12 0x56277816b106 in ngx_init_cycle src/core/ngx_cycle.c:275
#13 0x5627781188ae in main src/core/nginx.c:291
#14 0x7f36e7fa40b2 in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x270b2)

SUMMARY: AddressSanitizer: 129896 byte(s) leaked in 12 allocation(s).



реально утечки )) ?
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru]]>
Илья Шипицин Nginx Mailing List - Russian Sat, 05 Sep 2020 03:44:10 -0400
Žɳ1005app