Fwd: Проверка связки сертификат+ключ

2024-03-27 Пенетрантность Иван Григорьев
Здравствуйте.

Обнаружил необычное (на мой взгяд поведение) - если "смешать"
криптографические алгоритмы (сертификат ECDSA, ключ RSA или наоборот) то
nginx не ругается при релоаде и применяет конфигурацию (при выполнении
nginx -t тоже нет ошибок).

(абсурдность самой ситуации можно не обсуждать, но к сожалению бывает и
такое)

Это ожидаемое поведение или похоже на баг?

Проверял на разных версиях и ОС, но на всякий случай прикладываю:





*snake@carbon:~$ nginx -Vnginx version: nginx/1.24.0built by gcc 10.2.1
20210110 (Debian 10.2.1-6) built with OpenSSL 1.1.1n  15 Mar 2022 (running
with OpenSSL 1.1.1f  31 Mar 2020)TLS SNI support enabledconfigure
arguments: --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
-O2
-ffile-prefix-map=/data/builder/debuild/nginx-1.24.0/debian/debuild-base/nginx-1.24.0=.
-fstack-protector-strong -Wformat -Werror=format-security
-Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now
-Wl,--as-needed -pie'*
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Зеркало https://hg.nginx.org/pkg-oss на github

2024-02-05 Пенетрантность Иван

Здравствуйте!

Нельзя ли добавить на github зеркало сабжевого репа? Используем его для 
сборки nginx и модулей (отсутствующих в официальной поставке), 
зеркалируем реп во внутренний гитлаб, хотелось бы убрать костыли типа 
mercurial 2 git.



С уважением, Иван.
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Простой способ массового переноса http2 из listen в отдельную директиву

2023-12-28 Пенетрантность Иван

Здравствуйте!

Я про

nginx: [warn] the "listen ... http2" directive is deprecated, use the 
"http2" directive instead in /etc/nginx/sites-enabled/...:152



Надо http2 из параметра директивы listen перенести в отдельную

http2 on;


У меня несколько десятков блоков server. В некоторых http2 нужен, в 
некоторых (listen 80) нет. Есть какие-нибудь идеи как конвертацию 
сделать массово?



С уважением, Иван.
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Nuxt (Node.JS) + nginx-unit

2023-11-22 Пенетрантность Иван

Здравствуйте!

Собираемся внедрять в инфраструктуру ПО использующее фреймворк Nuxt 
(https://nuxt.com/) на Node.JS. На данный момент используем 
преимущественно unit+PHP . Соответственно не хотели бы отказываться от 
unit и для Nuxt. Однако разработчики проекта на Nuxt (не самого Nuxt, а 
ПО для нас) говорят, что с Nuxt доступен только вариант проксирования 
через unit, так как Nuxt использует unJS Nitro 
(https://nuxt.com/docs/getting-started/server), что лишает смысла 
использования unit (для проксирования мы и nginx можем).


Вопрос, к местному сообществу: можно ли использовать Nuxt с unit в 
режиме unit-http (https://unit.nginx.org/howto/samples/#node-js) или 
nodejs-loader 
https://unit.nginx.org/configuration/#configuration-nodejs-loader ?


С уважением, Иван.
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Что происходит при превышении keys_zone?

2023-08-25 Пенетрантность Иван

Здравствуйте!

Что происходит при превышении размера keys_zone, например, в директиве 
proxy_cache_path ? Пишется ли ошибка в логи и, если да, то на каком 
уровне логирования?


В моей памяти почему-то отложилось, что nginx не должен лимитировать 
количество файлов в кеше по этому параметру, а при превышении его должен 
сыпать ошибками в логи. Однако на практике мы сейчас, похоже, наблюдаем, 
что из-за того, что неверно посчитали keys_zone (указали 100m для кэша с 
более чем миллионом файлов, кеш не использовался на полную: не 
заполнялся даже близко к max_size, а в логах тишина.


С уважением, Иван.
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: Максимальная длина ключа proxy_cache_key

2022-12-22 Пенетрантность Иван

Здравствуйте!

Спасибо за идею, но не подойдет, там криптострочка: набор рандомных 
символов.


С уважением, Иван.

22.12.2022 15:52, Илья Шипицин пишет:

можно map-ой вытаскивать подстроку фикс длины из куки

чт, 22 дек. 2022 г. в 19:46, Иван :

Здравствуйте!

Подскажите, пожалуйста, какая максимальная длина значения ключа
*_cache_key ? Хотим сделать

proxy_cache_key $cookie_somecookie ,

где длина somecookie может быть до килобайта. Допустимо ли это и не
будет ли каких-то внезапных спецэффектов?


С уважением, Иван.
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Максимальная длина ключа proxy_cache_key

2022-12-22 Пенетрантность Иван

Здравствуйте!

Подскажите, пожалуйста, какая максимальная длина значения ключа 
*_cache_key ? Хотим сделать


proxy_cache_key $cookie_somecookie ,

где длина somecookie может быть до килобайта. Допустимо ли это и не 
будет ли каких-то внезапных спецэффектов?



С уважением, Иван.
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: Почему записи в access.log могут содержать пустой remote addr ?

2022-01-25 Пенетрантность Иван


Здравствуйте!

Сходу, если идея, то IP адреса может не быть, если запрос приходит в 
nginx через unix-сокет. Проверьте все ваши listen'ы или дайте nginx -T.


С уважением, Иван.

25.01.2022 11:21, Ilya Evseev пишет:

Дано: nginx 1.18.0-0ubuntu1.2 и access_log по умолчанию.

Проблема: некоторые записи в access.log содержат пустой IP клиента.

Примеры (обе строки начинаются с пробела, фактические запросы заменил на
"..."):

  - - [25/Jan/2022:07:56:46 +0300] "GET /... HTTP/1.1" 410 198 "-"
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/97.0.4692.99 Safari/537.36"
  - - [25/Jan/2022:08:01:14 +0300] "GET /... HTTP/1.1" 101 2 "-" "Mozilla/5.0
(Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/97.0.4692.71 Safari/537.36"

Как такое может быть?
remote_addr в настройках не переопределяется, set_real_ip_from не
используется.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,293434,293434#msg-293434

___
nginx-ru mailing list -- nginx-ru@nginx.org
To unsubscribe send an email to nginx-ru-le...@nginx.org

___
nginx-ru mailing list -- nginx-ru@nginx.org
To unsubscribe send an email to nginx-ru-le...@nginx.org


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

2021-03-31 Пенетрантность Иван

Здравствуйте!

Запускайте контейнер с nginx c network driver (параметр докера) - host, 
nginx будет слушать порт непосредственно на хосте, и будет знать 
реальный IP клиента.


Либо запустите отдельный nginx на хосте, который будет ставить заголовок 
X-Forwarded-For и проксировать запросы к nginx в докер, на котором в 
свою очередь включите директиву proxy в geo. В принципе проксирующий 
nginx может быть не обязательно на том же хосте, где докер-контейнер, а 
где угодно в сети.


С уважением, Иван.

31.03.2021 21:53, 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

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2021-03-31 Пенетрантность Иван

Здравствуйте!

Попробуйте

geo  $geo  {
 default  global;
 192.168.1.0/24   local;
}

server {
    location / {
    return 200 $geo;

    #return 200 $remote_addr;

    }
 }

и, дёрнуть curl'ом. Увидите что у вас в geo. А, если заменить на 
закомментированную строчку, то IP адрес, с которого обращаетесь, чтоб 
убедиться, что ничего не путаете.


С уважением, Иван.

31.03.2021 21:30, 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

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Is if evil with rewrite ... redirect?

2021-01-28 Пенетрантность Иван

Здравствуйте!

Вопрос коротко: является ли

rewrite ... redirect на 100% безопасным при использовании if внутри 
location.



Подробнее:

В https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/

The only 100% safe things which may be done inside if in a location 
context are:


  * return
<https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return>
...;
  * rewrite
<https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite>
... last;

то есть единственным вариантов rewrite на 100% безопасным с if в 
location написан rewrite с last. Учитывая написанное в статье далее и 
моё понимание nginx предполагаю, что rewrite можно не только с last, но 
так же с redirect и permanent, так как исключают выполнение других 
директив в рамках этого локейшена.


"Возможно опасными" тут могут быть только break и, вероятно, отсуствие 
флагов rewrite так как оставляют возможность выполнения других директив 
не из модуля rewrite.


Я прав?

С уважением, Иван.

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Непонятна работа limit_rate

2020-10-07 Пенетрантность Иван Мишин
При директивах
limit_rate_after 15k; #150Mb
limit_rate 2048k;
proxy_max_temp_file_size 0;
Скачивание происходит так как и ожидается, без обрывов и прочего, а так же
обрезается скорость правильным образом в соответствии с  директивами
limit_rate_after и  limit_rate.

Но вот при такой конфигурации:
limit_rate_after 15k; #150Mb
limit_rate 2048k;
proxy_max_temp_file_size 6144m;

Поведение не понятно. При таких параметрах директив работает так -
скачивается 150Мб и затем обрыв. Почему?

ср, 7 окт. 2020 г. в 18:07, Иван Мишин :

> При директивах
>
> вт, 6 окт. 2020 г. в 17:16, Maxim Dounin :
>
>> Hello!
>>
>> On Tue, Oct 06, 2020 at 10:42:47AM +0300, Evgeniy Berdnikov wrote:
>>
>> > On Mon, Oct 05, 2020 at 10:24:17PM +0300, Alexey wrote:
>> > > День добрый!
>> > >
>> > > Вы качаете файл, получаемых от прокси апстрима?
>> > >
>> https://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_max_temp_file_size
>> > >
>> > > Вы упираетесь в 1Гб временного файла. когда качается быстро, он
>> > > вообще в темп не пишется, если файл прилетает от апстрима быстрее
>> > > чем забираем, то он уже пишется во временный файл. вы успеваете
>> > > скачать столько, сколько прилетает до начала записи во временный
>> > > файл + макс размер файла.
>> >
>> >  Наличие лимита на размер временного файла это что, повод обрывать
>> закачку?
>>
>> Наличие лимита - ни разу не повод обрывать закачку, nginx её и не
>> обрывает.
>>
>> Другой вопрос, что если буфер забит - nginx'у некуда читать
>> дополнительные данные, и в результате бэкенд может закрыть
>> соединение по таймауту до того, как содержимое временного файла
>> будет отдано клиену и соответственно nginx сможет дальше читать
>> что-либо от бэкенда.
>>
>> При заявленном ограничении скорости в 2 мегабайта в секунду -
>> отправка клиенту гигабайта временных данных займёт секунд 500
>> минимум.  Если при этом с бэкенда эти данные летят по гигабитному
>> каналу со скоростью 100 мегабайт в секунду - прилетят они секунд за
>> 10.  То есть между nginx'ом и бэкендом 490 секунд ничего не будет
>> происходить.  Шансов на то, что бэкенд дождётся при настройках по
>> умолчанию - никаких.
>>
>> Соответственно нужно:
>>
>> - увеличить временный файл, чтобы ответы влезали;
>>
>> - или уменьшить временный файл, чтобы его содержимое могло
>>   отправиться до того, как сработает таймаут на бэкенде.
>>
>> Ну либо настраивать таймауты на бэкенде и/или ограничение
>> скорости, чтобы опять же временный файл мог отправиться до того,
>> как сработает таймаут на бэкенде.
>>
>> Вообще, когда речь идёт о том, что проксируются большие файлы -
>> одним из лучших решений может быть просто выключенная буферизация
>> на диск, "proxy_max_temp_file_size 0;".  Это позволяет избежать не
>> только проблем с таймаутами на бэкенде, но и траты ресурсов на
>> disk i/o, а равно проблем с переполнением диска под временные
>> файлы при большом количестве одновременных запросов.
>>
>> [...]
>>
>> --
>> Maxim Dounin
>> http://mdounin.ru/
>> ___
>> nginx-ru mailing list
>> nginx-ru@nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
>
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Непонятна работа limit_rate

2020-10-07 Пенетрантность Иван Мишин
При директивах

вт, 6 окт. 2020 г. в 17:16, Maxim Dounin :

> Hello!
>
> On Tue, Oct 06, 2020 at 10:42:47AM +0300, Evgeniy Berdnikov wrote:
>
> > On Mon, Oct 05, 2020 at 10:24:17PM +0300, Alexey wrote:
> > > День добрый!
> > >
> > > Вы качаете файл, получаемых от прокси апстрима?
> > >
> https://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_max_temp_file_size
> > >
> > > Вы упираетесь в 1Гб временного файла. когда качается быстро, он
> > > вообще в темп не пишется, если файл прилетает от апстрима быстрее
> > > чем забираем, то он уже пишется во временный файл. вы успеваете
> > > скачать столько, сколько прилетает до начала записи во временный
> > > файл + макс размер файла.
> >
> >  Наличие лимита на размер временного файла это что, повод обрывать
> закачку?
>
> Наличие лимита - ни разу не повод обрывать закачку, nginx её и не
> обрывает.
>
> Другой вопрос, что если буфер забит - nginx'у некуда читать
> дополнительные данные, и в результате бэкенд может закрыть
> соединение по таймауту до того, как содержимое временного файла
> будет отдано клиену и соответственно nginx сможет дальше читать
> что-либо от бэкенда.
>
> При заявленном ограничении скорости в 2 мегабайта в секунду -
> отправка клиенту гигабайта временных данных займёт секунд 500
> минимум.  Если при этом с бэкенда эти данные летят по гигабитному
> каналу со скоростью 100 мегабайт в секунду - прилетят они секунд за
> 10.  То есть между nginx'ом и бэкендом 490 секунд ничего не будет
> происходить.  Шансов на то, что бэкенд дождётся при настройках по
> умолчанию - никаких.
>
> Соответственно нужно:
>
> - увеличить временный файл, чтобы ответы влезали;
>
> - или уменьшить временный файл, чтобы его содержимое могло
>   отправиться до того, как сработает таймаут на бэкенде.
>
> Ну либо настраивать таймауты на бэкенде и/или ограничение
> скорости, чтобы опять же временный файл мог отправиться до того,
> как сработает таймаут на бэкенде.
>
> Вообще, когда речь идёт о том, что проксируются большие файлы -
> одним из лучших решений может быть просто выключенная буферизация
> на диск, "proxy_max_temp_file_size 0;".  Это позволяет избежать не
> только проблем с таймаутами на бэкенде, но и траты ресурсов на
> disk i/o, а равно проблем с переполнением диска под временные
> файлы при большом количестве одновременных запросов.
>
> [...]
>
> --
> Maxim Dounin
> http://mdounin.ru/
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Непонятна работа limit_rate

2020-10-05 Пенетрантность Иван Мишин
Забыл уточнить, что при обрыве в акцес логах все равно значится 200 код, а
в ерор логах пусто.

пн, 5 окт. 2020 г. в 19:47, Иван Мишин :

> Добрый день!
> Есть локейшн с настроенными вот такими директивами:
>   limit_rate_after 15k; #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

Непонятна работа limit_rate

2020-10-05 Пенетрантность Иван Мишин
Добрый день!
Есть локейшн с настроенными вот такими директивами:
  limit_rate_after 15k; #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

Проблема с отображением $remote_user

2020-08-06 Пенетрантность Иван Мишин
Всем привет.
Использую wget с ключами --http-user=USERNAME --http-password=PASSWORD при
этом в nginx в переменной $remote_user пусто. Пробовал и --user=USERNAME
--password=PASSWORD и wget  https:// USERNAME:passw...@example.com, но во
всех случаях в логах в переменной $remote_user  стоит прочерк. При этом с
curl все работает ок. Подскажите в чем проблема?
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Дублирование запросов

2019-10-01 Пенетрантность Иван Мишин
Добрый день!
Подскажите, может ли nginx отправлять один запрос сразу на несколько
апстримов, не round-robin, а именно дублирование/зеркалирование. Т.е.
например в апстриме три сервера, приходит запрос и nginx его отправлят
сразу на три апстрима/сервера.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Падает nginx в случае истечения срока действия сертификата

2019-08-02 Пенетрантность Иван Мишин
Добрый день. Есть множество хостов вида:

> server {
> listen 80;
> server_name example.com;
> location / {
> proxy_ssl_session_reuse off;
> proxy_ssl_certificate /etc/nginx/include/client/client.cer;
> proxy_ssl_certificate_key
> 'engine:gostengy:n6e6e829f94729896d0e38a814354dcdec4e456';
> proxy_ssl_ciphers
> GOST2012-GOST8912-GOST8912:GOST2001-GOST89-GOST89:HIGH;
> proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
> proxy_pass https://world.cnet;
> proxy_set_header Host world.net;
> proxy_set_header X-Real-IP $remote_addr;
>proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> }
> }


В случае если у одного из хостов истекает срок действия сертификата, то
отказывается работать nginx. Т.е. перестают работать абсолютно  все вирт
хосты.
В логах ошибка вида:

> [emerg] 2169#2169:
> ENGINE_load_private_key("9867b5ab2b2c88342766gg5e99a6a7c6ddc7e324") failed
> (SSL: error:80015033:lib(128):gng_support_getuserkey:GNG_ERR_LICENSE
> error:26096080:engine routines:ENGINE_load_private_key:failed loading
> private key)


хеши сертов в примерах изменил на ненастоящие.

Как сделать так чтобы nginx не ронял все хосты из-за того что на одном
хосте просрочился серт? Может есть какая-то деректива специальная чтобы
отключить например проверку срока годности сертификатов?

пт, 2 авг. 2019 г. в 18:29, Иван Мишин :

> Добрый день. Есть множество хостов вида:
>
>> server {
>> listen 80;
>> server_name example.com;
>> location / {
>> proxy_ssl_session_reuse off;
>> proxy_ssl_certificate /etc/nginx/include/client/client.cer;
>> proxy_ssl_certificate_key
>> 'engine:gostengy:n6e6e829f94729896d0e38a814354dcdec4e456';
>> proxy_ssl_ciphers
>> GOST2012-GOST8912-GOST8912:GOST2001-GOST89-GOST89:HIGH;
>> proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
>> proxy_pass https://world.cnet;
>> proxy_set_header Host world.net;
>> proxy_set_header X-Real-IP $remote_addr;
>>proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>> }
>> }
>
>
> В случае если у одного из хостов истекает срок действия сертификата, то
> отказывается работать nginx. Т.е. перестают работать абсолютно  все вирт
> хосты.
> В логах ошибка вида:
>
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Падает nginx в случае истечения срока действия сертификата

2019-08-02 Пенетрантность Иван Мишин
Добрый день. Есть множество хостов вида:

> server {
> listen 80;
> server_name example.com;
> location / {
> proxy_ssl_session_reuse off;
> proxy_ssl_certificate /etc/nginx/include/client/client.cer;
> proxy_ssl_certificate_key
> 'engine:gostengy:n6e6e829f94729896d0e38a814354dcdec4e456';
> proxy_ssl_ciphers
> GOST2012-GOST8912-GOST8912:GOST2001-GOST89-GOST89:HIGH;
> proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
> proxy_pass https://world.cnet;
> proxy_set_header Host world.net;
> proxy_set_header X-Real-IP $remote_addr;
>proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> }
> }


В случае если у одного из хостов истекает срок действия сертификата, то
отказывается работать nginx. Т.е. перестают работать абсолютно  все вирт
хосты.
В логах ошибка вида:
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: обработка set_real_ip_from для 400-х статусов

2019-07-26 Пенетрантность Иван Мишин
Столкнулся с такой же проблемой. Есть какое-то объяснение этому?

пт, 14 июн. 2019 г. в 20:12, Илья Шипицин :

> привет!
>
> стенд:
>
> nginx-1.17.0 из официального репо.
> конфиг
>
> user  root;
> worker_processes  1;
>
> error_log  /var/log/nginx/error.log warn;
> pid/var/run/nginx.pid;
>
> events {
> worker_connections  1024;
> }
>
>
> http {
> include   /etc/nginx/mime.types;
> default_type  application/octet-stream;
>
> log_format  custom  '$remote_addr\t$http_x_real_ip\t$status\t$uri';
> set_real_ip_from   127.0.0.1;
>
> access_log  /var/log/nginx/access.log  custom;
>
> server {
> listen   80;
> server_name  localhost;
> location / { return 200; }
> }
>
> server {
> listen   80;
> server_name  _;
> location / { return 200; }
> }
>
> }
>
>
> =
> делаю два запроса
>
> curl --header "X-Real-IP: 8.9.10.11" - -I  -k http://localhost/test
> curl --header "X-Real-IP: 8.9.10.11" - -I  -k http://localhost/%
>
> получаю
>
> # cat /var/log/nginx/access.log
> 8.9.10.11 8.9.10.11 200 /test
> 127.0.0.1 - 400
>
>
> почему магия с форматом лога и хедерами работает на 200-х статусах и не
> работает на 400-х ? это такая задумка ? выглядит как баг.
>
> Илья Шипицин
>
>
> ___
> 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

Re: [Unit] Миграция с fastcgi и её подводные камни

2019-07-02 Пенетрантность Иван
Здравствуйте!

Кстати, хотел бы присоединиться к вопросу, с давно тут озвученной
"хотелкой" - иметь возможность передавать (как вариант транслируя из
http_VARNAME) переменные типа $_SERVER['REMOTE_ADDR'] , $_SERVER['

HTTPS'] напрямую в пыху под юнитом, а не загонять сонм готовых
приложений в обертки делающие
$_SERVER['HTTPS']=$_SERVER['HTTP_X_SPECIALLY_FOR_UNIT_HTTPS'].


Прям вот всё еще останавливает от повсеместной интеграции этого
замечательного продукта в нашу инфраструктуру.


С уважением, Иван.

02.07.2019 10:21, Vadim A. Misbakh-Soloviov пишет:

> Здравствуйте!
>
> Пытаясь смигрировать очередной проект с PHP-FPM на Unit я в очередной раз 
> столкнулся с проблемой того, что у fastcgi есть такая полезная штука как 
> split_path_info, где можно задать какая часть URI является значением 
> SCRIPT_NAME (да и вообще существует возможность динамического формирования 
> этого значения при запросе), а какая - идёт в PATH_INFO.
>
> Сама по себе переменная PATH_INFO (как доступное значение для приложения 
> внутри массива $_SERVER) - ещё пол беды. Есть, конечно, приложения, которые 
> рассчитывают на него, но это вторично по отношению к тому, что ну уж 
> **очень** 
> не хватает возможности динамически задавать значение "script" (aka 
> SCRIPT_NAME 
> в fcgi) для приложения в Юните.
>
> Т.е. чтобы весь URI как есть передался в сообщённый в заголовках (ну а как 
> ещё? Не вижу иного способа передать информацию Юниту от NgX) скрипт.
>
> Без такой возможности приходится городить по 100500 блоков application для 
> каждого потенциально возможного "script" (хардкодить все значения, в общем). 
> Что, если честно, делает меня грустной пандой.
>
> Соответствено, сопровождение большинства приложений, которые из коробки 
> работают с ЧПУ (а таких нынче большинство) превращается в пытку :'(
> А уж если они ещё и о SEO решают заботиться по примеру вордпресса и внаглую 
> редиректить запросы типа "/scriptname.php?$uri" на "/?$uri" (явно полагаясь 
> на 
> то, что SCRIPT_NAME им передаётся и так), всё выходит на новый уровень...
>
> В общем, подскажите, пожалуйста:
> 1) есть ли возможность как-то передавать значения конфигурационных директив 
> приложения в заголовках запроса?
> 2) каковы шансы того, что если п.1 не является осуществимым сейчас, вы это 
> сделаете по реквесту из списка рассылки? :)
> 2а) и каковы шансы того, что это произойдёт в ближайших релизах? :)
> ___
> 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

Re: Сложный кеш POST запросов

2019-04-17 Пенетрантность Иван Мишин
>
> * не задали "proxy_cache_path" - прокси пока некуда кешировать
> * не включили само кеширование директивой proxy_cache 

Это  задано на уровне http.
Мой вопрос не в том что кеширование не работает, а в том что оно работает
не так как надо, не так как планировал.

вт, 16 апр. 2019 г. в 15:09, Andrey Kopeyko :

> Иван Мишин писал 2019-04-16 12:26:
> > Добрый день, помогите пожалуйста со
> > следующей проблемой:
>
> Добрый день, Иван!
>
> > Есть такой конфиг:
> ...
> > Но в моем случае это так не работает.
>
> Потому что вы
> * не задали "proxy_cache_path" - прокси пока некуда кешировать
> * не включили само кеширование директивой proxy_cache 
>
>
> --
> Best regards,
> Andrey A. Kopeyko 
> ___
> 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

Сложный кеш POST запросов

2019-04-16 Пенетрантность Иван Мишин
Добрый день, помогите пожалуйста со следующей проблемой:

Есть такой конфиг:
server {
server_name www.example.ru;

proxy_cache_methods POST;
proxy_cache_key $remote_addr$request_uri
proxy_cache_valid  200 302  5m;
expires 5m;

location /1test {
  proxy_pass   http://ololo;
  proxy_cache_methods GET;
  proxy_cache_key $server_name$request_uri
  proxy_cache_valid  200 302  1h;
  expires 1h;
}

location /2test {
  proxy_pass   http://ololo;
}

location /3test {
 proxy_pass   http://ololo;
proxy_cache_methods GET;
 proxy_cache_key $server_name$request_uri
  proxy_cache_valid  200 302  3d;
  expires 3d;
}
}

Суть конфига в том что при обращении на /*test/* POST запросом  должно
должен сработать кеш по ключу $remote_addr$request_uri у которого срок
годности 5m
При get запросе на /1test/* должен сработать кеш по ключу
$server_name$request_uri сроком на 1h
При get запросе на /2test/* кеша быть не должно
При get запросе на /3test/* должен сработать кеш по ключу
$server_name$request_uri сроком на 3d


Но в моем случае это так не работает. И я понимаю почему, потому что
происходит переопределение директив.


Подскажите как решить мне эту задачу?
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Ограничение доступа к папке по IP

2019-04-10 Пенетрантность Иван
Нет, не так. break и location существуют совершенно параллельно друг
другу. break
(https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#break)
только про директивы модуля rewrite.

А логика выбора location описывается полностью тут
https://nginx.org/ru/docs/http/ngx_http_core_module.html#location, и про
break там ничего.

09.04.2019 19:48, Vvedensky пишет:
> читал, что встретив этот оператор
> nginx прерывает дальнейшую работу (т.е. не пойдёт проверять следующий
> location). Это не так?
>
> Posted at Nginx Forum: 
> https://forum.nginx.org/read.php?21,283658,283696#msg-283696
>
> ___
> 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

Re: Ограничение доступа к папке по IP

2019-04-09 Пенетрантность Иван
Здравствуйте!

А зачем break в этих локейшенах?

Сходу ответа на Ваш вопрос у меня нет, но попробуйте сначала точно
выяснить куда приходит запрос: для каждого локейшена отдельный лог файл
и\или return 444 по очереди в каждый локейшен.  Как точно узнаете, если
всё еще будет не понятно, давайте целый вывод nginx -T .


С уважением, Иван.

07.04.2019 20:16, Vvedensky пишет:
> Здравствуйте.
> Необходимо ограничить доступ к файлам папки /orders-files (в ней содержатся
> файлы с расширением doc) по ip, делаю так:
> location ^~ /orders-files/ {
> allow  123.45.678.90;
> deny all;
> client_max_body_size 32M;
> access_log off;
> break;
> }
> location ~*
> ^.+\.(css|js|svg|jpg|jpeg|gif|png|ico|zip|rar|doc|xls|pdf|exe|wav|bmp|rtf)$
> {
> client_max_body_size 128M;
> access_log off;
> expires 7d;
> break;
> }
>
> Такое впечатление, что нижний location мешает. Не могли бы помочь
> разобраться...
>
> Posted at Nginx Forum: 
> https://forum.nginx.org/read.php?21,283658,283658#msg-283658
>
> ___
> 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

Re: nginx, fastcgi и деплой на симлинках

2019-03-21 Пенетрантность Иван
Здравствуйте.

Нежелание делать nginx reload (давать пользователю деплоя права
рута\sudo, например), когда можно не делать.

С уважением, Иван Прокудин.

21.03.2019 14:25, Alex Domoradov пишет:
> > а код продолжает работать версии 1.2.9 .
>
> а что мешает во время деплоя сделать nginx reload ?
>
> On Thu, Mar 21, 2019 at 1:21 PM Иван  <mailto:ng...@kinetiksoft.com>> wrote:
>
> Здравствуйте!
>
> Есть симлинк
>
> /home/live -> /home/releases/live/1.2.9
>
> при деплое он меняется на
>
> /home/live -> /home/releases/live/1.2.10
>
> а код продолжает работать версии 1.2.9 .
>
>
> Преполагаю, что должен помочь такой патч к конфигу nginx
>
> location /live/ {
>
> +   root /home/live;
>  include fastcgi_params;
> 
> -   fastcgi_param SCRIPT_FILENAME
> /home/live/register_user_new.php;
> +   fastcgi_param SCRIPT_FILENAME
> $realpath_root/register_user_new.php;
> }
>
> Верно? Короче говоря, непосредственно указать путь в fastcgi_param
> симлинки кешируются, а с realpath_root - всегда актуальны?
>
> С уважением, Иван Прокудин.
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org <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
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

nginx, fastcgi и деплой на симлинках

2019-03-21 Пенетрантность Иван
Здравствуйте!

Есть симлинк

/home/live -> /home/releases/live/1.2.9

при деплое он меняется на

/home/live -> /home/releases/live/1.2.10

а код продолжает работать версии 1.2.9 .


Преполагаю, что должен помочь такой патч к конфигу nginx

location /live/ {

+   root /home/live;
 include fastcgi_params;

-   fastcgi_param SCRIPT_FILENAME
/home/live/register_user_new.php;
+   fastcgi_param SCRIPT_FILENAME
$realpath_root/register_user_new.php;
}

Верно? Короче говоря, непосредственно указать путь в fastcgi_param
симлинки кешируются, а с realpath_root - всегда актуальны?

С уважением, Иван Прокудин.

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: rewrite some/url в some/url.html

2019-03-21 Пенетрантность Иван
Здравствуйте!

Чтоб не усложнять регэксп, попробуйте как-то так:

server {

location ~ \.html$ {

#обработка запросов ссылок с html

...

}

location ~ /$ {

#обработка запросов заканчивающихся на слэш

...

}


location / {

rewrite ^/(.+)$ /$1.html permanent

}

}

С уважением, Иван.

20.03.2019 20:08, Dzurillo пишет:
> Здравствуйте!
>
> Помогите пожалуйста написать rewrite. Мне нужно все ссылки вида
> http://some/url пробрасывать на http://some/url.html
> Т.е. три условия: request_uri не пустой, в конце урл нет слэша и урл не
> заканчивается на ".html"
> Пока дошел вот до этого:
>
> rewrite ^/(.+[^/])(?!.*\.html)$ $1.html permanent;
>
> Но работает не так как надо.
>
> Спасибо за помощь.
>
> Posted at Nginx Forum: 
> https://forum.nginx.org/read.php?21,283447,283447#msg-283447
>
> ___
> 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

Динамический upstream средствами dns в открытой версии nginx

2019-03-19 Пенетрантность Иван
Здравствуйте!


Есть необходимость выбирать апстрим для проксирования на основании
информации из mysql-базы. Есть мысль задействовать для этого DNS-сервер
с поддержкой mysql в бэкэнде (и A\ записи с небольшим, порядка 30-60
секунд TTL), например, powerdns и nginx примерно в такой конфигурации:

Пусть DNS отвечает на 127.0.1.1:53 . У него бэкэнд в мускуле, в котором
сотни A\ записей вида

user1.room1.example.com -> 1.1.1.1

user2.room1.example.com -> 1.10.1.2

user3.room2.example.com -> 1.200.1.100

и т.п.

которые (записи) периодически (раз в несколько часов) обновляет наше ПО.


В nginx на прокси примерно такая конфигурация:

location ~ ^/user/(?\w+)/(?\w+)$ {

    resolver 127.0.1.1;

    proxy_pass http://$user.$room.example.com;

}

Будет ли в такой конфигурации запрос вида GET /user/room2/user3 к прокси
уходить на 1.200.1.100, а GET /user/room1/user2 к прокси уходить на
1.10.1.2,

Когда я последний раз думал над этой схемой, мне казалось, что тут
что-то доступно только в коммерческой подписке.


С уважением, Иван.

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

unit: не работает SMTP в ruby

2019-03-05 Пенетрантность Иван
Здравствуйте!

Самосборный unit-ruby для ruby 2.4.5 из rvm. ОС: Debian Stretch. unit
1.8.0-1, сам unit из официальных репов.

Я предполагаю, что проблема не непосредственно в unit, но из-под другого
сервера приложений проблемы нет, так что попробую спросить тут.

Пытаюсь поднять redmine-3.4.9. под управлением unit. Всё работает
хорошо, кроме одного странного нюанса: при попытке отправить почту
получаю ошибку undefined method `read_nonblock' for
# , которая, как говорит гугл (я совсем не
программист, тем более на руби) говорит о том, что соединение не
установленно на ранней стадии. Я пробовал отключать шифрование или
включать - роли не играет.

Я специально сделал тестовое ПО, которое просто шлёт почту и ничего
больше, с ним та же проблема.

В руби для отправки почты используется actionmailer. Не работает
отправка по SMTP, вне зависимости от остальных настроек. Даже на
127.0.0.1:25 (postfix без шифрования и авторизации). Отправка с помощью
sendmail работает.

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

Повторить проблему не сложно: попробуйте запустить redmine 3.4.9 под
unit и настроить в нем отправку почты по SMTP. Вместо редмайна при
желании можно использовать программу пример из этой статьи:
https://launchschool.com/blog/handling-emails-in-rails , вот ёё код
https://github.com/iprok/sending_emails_with_rails (я допилил чуть-чуть).

Я сейчас обойду проблему, используя sendmail, но готов посильно
участвовать в решении проблемы с SMTP.


С уважением, Иван.

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: unit: документация как собрать модуль из исходников

2019-03-05 Пенетрантность Иван
Второй вопрос снимается, я смог. Но документацию про то, как правильно
собирать unit из исходников, получая в итоге deb-пакеты было бы
прекрасно получить.

То есть для примера, до 1.8.0 я мог собрать deb'ы с моим значением
RELEASE , примерно вот так:

RELEASE=2 make unit-ruby -j4

А сейчас методом тыка разобрался, что надо править changes.xml. Хотелось
бы перестать тыкать и получаться эту информацию из документации, если
это ничему не противоречит.

06.03.2019 02:37, Иван пишет:
> Здравствуйте!
>
> Пытаюсь собрать unit-ruby с ruby из rvm, а потом собрать deb unit-ruby с
> RELEASE=2 (unit-ruby_1.8.0-2~stretch_amd64.deb), при этом оставив в
> качестве зависимости unit-1.8.0-1.
>
> Это позволит положить только unit-ruby в наш внутренний репозиторий, а
> unit использовать из официальных.
>
> С unit < 1.8.0 у меня это получалось методом тыка, а с 1.8.0 проблемы.
>
> Подскажите, пожалуйста, есть ли какая-то документация "как собрать
> deb-пакет unit из исходников"?
>
> Возможно ли в скриптах для сборки unit 1.8.0 сделать так как я хочу?
>
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

unit: документация как собрать модуль из исходников

2019-03-05 Пенетрантность Иван
Здравствуйте!

Пытаюсь собрать unit-ruby с ruby из rvm, а потом собрать deb unit-ruby с
RELEASE=2 (unit-ruby_1.8.0-2~stretch_amd64.deb), при этом оставив в
качестве зависимости unit-1.8.0-1.

Это позволит положить только unit-ruby в наш внутренний репозиторий, а
unit использовать из официальных.

С unit < 1.8.0 у меня это получалось методом тыка, а с 1.8.0 проблемы.

Подскажите, пожалуйста, есть ли какая-то документация "как собрать
deb-пакет unit из исходников"?

Возможно ли в скриптах для сборки unit 1.8.0 сделать так как я хочу?

С уважением, Иван.

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: GeoIP

2019-02-10 Пенетрантность Иван
Здравствуйте!

Про конвертацию в формат доступный для geo прям свежая идея! Не
подскажете, "выдюжит" geo-модуль geoip данные по городам? Там будет ~150
000 записей.

Быть может у вас есть наработки для конвертации?

С уважением, Иван.

11.02.2019 04:05, Maxim Dounin пишет:
> Hello!
>
> On Fri, Feb 08, 2019 at 11:21:24PM +0500, Илья Шипицин wrote:
>
>> а какое-то развитие родного модуля будет с учетом новостей от MaxMind?
> http://mailman.nginx.org/pipermail/nginx-devel/2019-February/011858.html
>
> [...]
>
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: fcgiwrap не могу запустить

2019-01-25 Пенетрантность Иван
SCRIPT_NAME равен тому, чему его вы приравняете

(по умолчанию) fastcgi_params:fastcgi_param SCRIPT_NAME
$fastcgi_script_name;
которая в свою очередь описана
https://nginx.org/ru/docs/http/ngx_http_fastcgi_module.html#var_fastcgi_script_name

25.01.2019 12:13, Victor Sudakov пишет:
> Иван wrote:
>> Ну вообще я же не телепатически эту инфу получил. Всё достаточно понятно
>> написано в https://nginx.org/ru/docs/http/ngx_http_core_module.html#root :
>>
>> "Путь к файлу формируется путём простого добавления URI к значению
>> директивы |root|."
> Что касается отдачи статики, то понятно что понятно. А в fastcgi
> передаются две переменные, DOCUMENT_ROOT и SCRIPT_NAME, и пока я не
> осознал, что SCRIPT_NAME равен REQUEST_URI целиком (а не только его
> последней компоненте, как я ошибочно полагал), ничего и не работало.
>
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: fcgiwrap не могу запустить

2019-01-24 Пенетрантность Иван
Ну вообще я же не телепатически эту инфу получил. Всё достаточно понятно
написано в https://nginx.org/ru/docs/http/ngx_http_core_module.html#root :

"Путь к файлу формируется путём простого добавления URI к значению
директивы |root|."

24.01.2019 18:31, Victor Sudakov пишет:
> Victor Sudakov wrote:
 2019/01/23 15:29:36 [error] 93721#100134: *5 FastCGI sent in stderr: 
 "Cannot get script name, are DOCUMENT_ROOT and SCRIPT_NAME (or 
 SCRIPT_FILENAME) set and is the script executable?" while reading response 
 header from upstream, client: 10.10.10.3, server: , request: "GET 
 /cgi-bin/test HTTP/1.1", upstream: "fastcgi://unix:/tmp/fcgiwrap.socket:", 
 host: "admin.sibptus.ru"
> Не поленился изложить для памяти и Гугла: 
> https://victor-sudakov.dreamwidth.org/463780.html
>
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

unit: ошибка send

2018-12-15 Пенетрантность Иван
Здравствуйте.

Что в предыдущих версиях unit, что в свежей 1.6 практически сразу после
запуска в unit.log появилась запись:

2018/12/15 13:58:24 [error] 6403#6452 *1393 send(54, 7F2D3760, 43)
failed (32: Broken pipe)

Кроме как сама по себе в логах ошибка вроде нигде не проявилась.

debian stretch, unit 1.6 из репов с модулем php 7.0.27-0+deb9u1  .
php-приложение под очень высоким rps.

Мы хотели бы мониторить логи unit на появление ошибок, следовательно
любые подобные непонятки смущают.

С уважением, Иван.

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Ошибка сборки deb nginx 1.15.5

2018-10-23 Пенетрантность Иван
Здравствуйте.

Причина в том, что Вы не там смотрите. бинарник nginx скорее всего в
одной из директорий sbin. Пробуйте искать его из-под рута. Если не
найдете внимательно изучите вывод checkinstall он совершенно точно пишет
куда какие файлы кладёт.

Но для начала, прежде, чем заниматься самосборкой пакетов, рекомендую
получше освоится в используемой ОС. В частности с
https://wiki.debian.org/BuildingTutorial или аналогичным под ubuntu.

23.10.2018 20:31, analytic пишет:
> Я попробовал собрать nginx 1.15.5 checkinstall 1.6.2 в итоге в системе
> (ubuntu 16.04.05x64) не видно nginx.
> скрин: https://bit.ly/2yus5aE
> Ни при выполнении
> ./configure \
> --prefix=/usr/share/nginx \
> --conf-path=/etc/nginx/nginx.conf \
> --http-log-path=/var/log/nginx/access.log \
> --error-log-path=/var/log/nginx/error.log \
> --lock-path=/var/lock/nginx.lock \
> --pid-path=/run/nginx.pid \
> --modules-path=/usr/lib/nginx/modules \
> --http-client-body-temp-path=/var/lib/nginx/body \
> --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
> --http-proxy-temp-path=/var/lib/nginx/proxy \
> --http-scgi-temp-path=/var/lib/nginx/scgi \
> --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \
> --with-debug \
> --with-pcre-jit \
> --with-http_stub_status_module \
> --with-http_realip_module \
> --with-http_auth_request_module \
> --with-http_v2_module \
> --with-http_dav_module \
> --with-http_slice_module \
> --with-threads \
> --with-http_addition_module \
> --with-http_geoip_module=dynamic \
> --with-http_gunzip_module \
> --with-http_gzip_static_module \
> --with-http_sub_module \
> --with-http_xslt_module=dynamic \
> --with-stream=dynamic \
> --with-mail=dynamic
>
> ни при make ошибок не было обнаружено.
> Подскажите, пожалуйста, в чем может быть причина?
>
> Posted at Nginx Forum: 
> https://forum.nginx.org/read.php?21,281670,281673#msg-281673
>
> ___
> 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

Re: Проблема с SSl

2018-10-22 Пенетрантность Иван Мишин
если проблема в утилите openssl то почему servicen nignx reload исцеляет
систему?
На том же сервере работает еще и apache (очевидно с тем же openssl) и он
такой проблемы не имеет

пн, 22 окт. 2018 г. в 14:18, Maxim Dounin :

> Hello!
>
> On Fri, Oct 19, 2018 at 05:55:28PM +0300, Иван Мишин wrote:
>
> > Есть такой конфиг:
> >
> >  server {
> > > listen   443 ssl;
> > > server_name  test.ru;
> > >
> > > ssl_certificate /etc/nginx/include/test/lich-2012-srv.pem;
> > > ssl_certificate_key
> > > 'engine:gostengy:s38g83e8ae2e2183b3624f880eb1ca12ggcdfebf';
> > > ssl_verify_client off;
> > > ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
> > > ssl_ciphers GOST2012-GOST8912:GOST2001-GOST89:HIGH;
> > > ssl_prefer_server_ciphers  on;
> > >   location / {
> > > proxy_set_header X-Real-IP $remote_addr;
> > > proxy_set_header X-Forwarded-For
> > > $proxy_add_x_forwarded_for;
> > > proxy_hide_header  Host;
> > > proxy_set_header X-NginX-Proxy true;
> > > proxy_set_header Host test.loc;
> > > proxy_pass http://test.loc;
> > > proxy_redirect off;
> > > client_max_body_size 300M;
> > > sendfile on;
> > > send_timeout 300s;
> > > }
> > > }
> >
> >
> > Со временем сервер либо перестает работать совсем, либо работает через
> раз.
> > при этом в логах вот такая ошибка:
> >
> > > [crit] 28474#28474: *401018 SSL_do_handshake() failed (SSL:
> > > error:8001B035:lib(128):gng_keyhandle_getset:GNG_ERR_EXPORT_IMPORT
> > > error:1419D093:SSL routines:tls_process_cke_gost:decryption failed)
> while
> > > SSL handshaking, client: x.x.x.x, server: 0.0.0.0:443
> >
> > Просьба помочь с решением проблемы.
>
> Судя по диагностики, ваши проблемы - где-то в GOST engine.  Если
> по условиям задачи её можно выкинуть - очевидным решением будет
> выкинуть.  Если выкинуть нельзя - попробуйте поиграться с версиями
> OpenSSL'я и GOST engine, а равно попробуйте грузить ключ из файла,
> а не через engine.  Если ничего из этого не поможет - стоит
> стучаться непосредственно к ребятам, занимающимся оной GOST
> engine.
>
> --
> Maxim Dounin
> http://mdounin.ru/
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Проблема с SSl

2018-10-19 Пенетрантность Иван Мишин
Не совсем понял вопрос. Но да, тут используется крипто про

пт, 19 окт. 2018 г. в 18:12, Илья Шипицин :

> Это крипто про?
>
> On Fri, Oct 19, 2018, 7:55 PM Иван Мишин  wrote:
>
>> Есть такой конфиг:
>>
>>  server {
>>> listen   443 ssl;
>>> server_name  test.ru;
>>>
>>> ssl_certificate /etc/nginx/include/test/lich-2012-srv.pem;
>>> ssl_certificate_key
>>> 'engine:gostengy:s38g83e8ae2e2183b3624f880eb1ca12ggcdfebf';
>>> ssl_verify_client off;
>>> ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
>>> ssl_ciphers GOST2012-GOST8912:GOST2001-GOST89:HIGH;
>>> ssl_prefer_server_ciphers  on;
>>>   location / {
>>> proxy_set_header X-Real-IP $remote_addr;
>>> proxy_set_header X-Forwarded-For
>>> $proxy_add_x_forwarded_for;
>>> proxy_hide_header  Host;
>>> proxy_set_header X-NginX-Proxy true;
>>> proxy_set_header Host test.loc;
>>> proxy_pass http://test.loc;
>>> proxy_redirect off;
>>> client_max_body_size 300M;
>>> sendfile on;
>>> send_timeout 300s;
>>> }
>>> }
>>
>>
>> Со временем сервер либо перестает работать совсем, либо работает через
>> раз. при этом в логах вот такая ошибка:
>>
>>> [crit] 28474#28474: *401018 SSL_do_handshake() failed (SSL:
>>> error:8001B035:lib(128):gng_keyhandle_getset:GNG_ERR_EXPORT_IMPORT
>>> error:1419D093:SSL routines:tls_process_cke_gost:decryption failed) while
>>> SSL handshaking, client: x.x.x.x, server: 0.0.0.0:443
>>
>>
>> Просьба помочь с решением проблемы.
>> ___
>> 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-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Проблема с SSl

2018-10-19 Пенетрантность Иван Мишин
Есть такой конфиг:

 server {
> listen   443 ssl;
> server_name  test.ru;
>
> ssl_certificate /etc/nginx/include/test/lich-2012-srv.pem;
> ssl_certificate_key
> 'engine:gostengy:s38g83e8ae2e2183b3624f880eb1ca12ggcdfebf';
> ssl_verify_client off;
> ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
> ssl_ciphers GOST2012-GOST8912:GOST2001-GOST89:HIGH;
> ssl_prefer_server_ciphers  on;
>   location / {
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For
> $proxy_add_x_forwarded_for;
> proxy_hide_header  Host;
> proxy_set_header X-NginX-Proxy true;
> proxy_set_header Host test.loc;
> proxy_pass http://test.loc;
> proxy_redirect off;
> client_max_body_size 300M;
> sendfile on;
> send_timeout 300s;
> }
> }


Со временем сервер либо перестает работать совсем, либо работает через раз.
при этом в логах вот такая ошибка:

> [crit] 28474#28474: *401018 SSL_do_handshake() failed (SSL:
> error:8001B035:lib(128):gng_keyhandle_getset:GNG_ERR_EXPORT_IMPORT
> error:1419D093:SSL routines:tls_process_cke_gost:decryption failed) while
> SSL handshaking, client: x.x.x.x, server: 0.0.0.0:443


Просьба помочь с решением проблемы.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: unit: механизм определения адреса клиента типа realip и передача заголовков

2018-08-16 Пенетрантность Иван
Здравствуйте!

Кажется, до этого я отправил личное письмо. Исправляю и отвечаю в рассылку.

09.08.2018 10:37, Валентин Бартенев пишет:

> On Wednesday, 8 August 2018 22:53:41 MSK Иван wrote:
>> Здравствуйте!
>>
>> Правильно ли я понимаю, что сейчас unit не умеет передавать в
>> $_SERVER['REMOTE_ADDR']   ip клиента, а не проксирующего nginx?
>> Переделывать весь наш код, чтоб брал IP из другого заголовка будет жестко.
> Да, туда в настоящий момент передается информация из сокета.
>
> Я бы сейчас решил эту задачу маленькой прослойкой в виде небольшого php
> скрипта, который заменяет содержимое $_SERVER['REMOTE_ADDR'] из HTTP_
> заголовка, а далее выполняет уже основной скрипт, запрошенный.  Так не
> потребуется вносить каких-либо изменений в остальной код, а прослойку
> в бущуем можно будет просто убрать.

Пока что держимся на php-fpm. У нас много мелких микросервисов, везде
внедрять эту прослойку - руководство не поймет.

>> Планируется ли это исправить? Когда примерно? Сейчас это единственный
>> для меня блокирующий недостаток для внедрения unit массово в продакшен.
> Насколько я понимаю, некое подобие realip модуля решило бы Вашу задачу?
>
Конкретно с адресом бы решило. Но это необходимо, но совсем не
достаточно. Например, совершенно точно будет нехватать возможности
задать $_server[script_(file)name]. Очень многие продукты используют
ЧПУ, соотвественно без задания script_(file)name веб-сервером не
обойтись. PATH_INFO туда же.

Или даже не ЧПУ, у на видеостриминговый сервис. Мы отадаём плейлсты (*.m3u8) 
через пыху (x-accell-redirect). Как это реализовать, не задавая SCRIPT_FILENAME?
 

>> Так же интересно, когда планируется ввести возможность передавать вы
>> пыху любые заголовки массива $_SERVER, а не только HTTP_*. Это
>> собственно является решением и предыдущего вопроса.
> Сейчас это не очень простая задача.  Сама по себе возможность задавать
> массив $_SERVER не представляет сложности, но вряд ли будет полезно
> указывать там какие-то константы.  А что-то более осмысленное требует
> уже реализовывать поддержку переменных или какой-то похожий механизм.
> Возможно где-то к концу года, в начале следующего мы что-то подобное
> сделаем.
>
Пока что, похоже, без этого unit в прод не зайдет. Может можно "на
скорую руку" переменные вида
$_SERVER['HTTP_UNIT_VARNAME'] передавать в $_SERVER['VARNAME'] для PHP?
Это бы решило вопрос.

С уважением, Иван.

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

ignore long locked inactive cache entry

2018-07-31 Пенетрантность Иван
Здравствуйте! 

Регулярно в логах (пару раз за 5 минут) вижу

[alert] 17816#17816: ignore long locked inactive cache entry
9100488b2180c1fc582384712a73791d, count:1

Две прокси на один бэкэнд. Бэкэнд - сервер nginx, отдающий статику.
Прокси - два одинаковых сервера, в разных странах. Проявляется только на
одном

Настроена зоне кеширования

proxy_cache_path /var/cache/nginx.hdd/archive_video levels=2:2
keys_zone=a_v:10m inactive=2d max_size=145g use_temp_path=off;


В локейшене:

    proxy_buffer_size 128k;
    proxy_buffers 32 16k;
    proxy_set_header host backend;

    proxy_cache_valid 2d;

    proxy_cache_use_stale updating;
    proxy_cache_key "$proxy_host$uri$http_origin";
    proxy_cache_lock on;


С чем может быть связано?

Локейшен обрабатывает не вебсокеты, а статические файлы. Раньше вроде не
замечал, не помню когда начало появляться. Читал в поиске, что это может
быть связано с медленными ответами, но не понял откуда и куда. Между
прокси и бэкэндов - гигабит, в логах бэкэнда медленных ответов не
увидел. На проксях медленных ответов (больше 5 секунд) сильно больше,
чем сабжевых записей в логах, но это понятно, могут быть пользователи с
медленными каналами.


nginx -V
nginx version: nginx/1.14.0
built by gcc 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)
built with OpenSSL 1.1.0f  25 May 2017
TLS SNI support enabled
configure arguments: --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 -O2
-fdebug-prefix-map=/data/builder/debuild/nginx-1.14.0/debian/debuild-base/nginx-1.14.0=.
-specs=/usr/share/dpkg/no-pie-compile.specs -fstack-protector-strong
-Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC'
--with-ld-opt='-specs=/usr/share/dpkg/no-pie-link.specs -Wl,-z,relro
-Wl,-z,now -Wl,--as-needed -pie'

С уважением, Иван.

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

unit: 400 ошибка при заголовках, содержащих юникод

2018-07-02 Пенетрантность Иван
Здравствуйте!

Только я научил бэкэнд получать геоданные из HTTP_* заголовков, так
столкнулся со следующей проблемой.

Если в заголовке содержаться какие-то юникодные символы, например,
кириллица *или *'ü' , то unit возвращает 400 ошибку.

Это баг unit или заголовки по стандарту не умеют юникод?

Если баг, готов его оформить на гитхабе.

Если не баг и так задумано, то я совсем не понимаю как передавать geoip
данные от nginx (использую geoip2 модуль) к бэкэнду за unit. Если у меня
клиент из немецкого Baden-Württemberg Region или французского
Île-de-France, unit на каждый запрос вернет ему 400.

С уважением, Иван.

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

unit: будет ли поддержка задания переменных _SERVER ?

2018-07-01 Пенетрантность Иван
Здравствуйте!

Сегодня попробовал unit в продакшене. Немного отзывов, вопросы через абзац.

Переключил на него matomo(piwik), который обслуживает сайт с 30
посетителей ежедневно. В php-fpm мне давно не нравилось, как он
использует память в static режиме (он её, собственно, сжирает как не в
себя. последняя php  ветки 7.0). Так вот unit оказался прекрасным
продуктом с точки зрения производительности. Потребление памяти теперь
фискированное и упало в разы. Завтра буду пробовать переводить ядро
самого сайта.

Вопрос:ы

В nginx при работе с php-fpm по fastcgi, можно было подделать любой
заголовок, чаще всего это делалось с https. Сегодня мне очень не хватало
GEOIP_* заголовков. Если заголовки проксировать, то на бэкэнд они
приезжают с префиксом HTTP_, и бэкэнд их не видит. Планируется ли как-то
решить этот вопрос? Переменные окружения - это не то, это другой массив.

Планируется ли поддержка юникс-сокетов в listener'ах?

Статистика? Хотя бы аналогичная nginx_stats.

Ну и вы, наверное, в курсе, но у вас документация отстаёт от
действительности. Не описаны нововведения из unit 1.2.

В остальном - спасибо за прекрасный продукт!

С уважением, Иван.

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Необъяснимый 503 при limit_conn

2018-05-22 Пенетрантность Иван
sl_module --with-stream_ssl_preread_module
--with-cc-opt='-g -O2
-fdebug-prefix-map=/data/builder/debuild/nginx-1.14.0/debian/debuild-base/nginx-1.14.0=.
-specs=/usr/share/dpkg/no-pie-compile.specs -fstack-protector-strong
-Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC'
--with-ld-opt='-specs=/usr/share/dpkg/no-pie-link.specs -Wl,-z,relro
-Wl,-z,now -Wl,--as-needed -pie'


С уважением, Иван.

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Доли секунд в логах

2018-01-22 Пенетрантность Иван Мишин
>
> Берите $msec и в logstash прогоняйте через фильтр date с форматом UNIX_MS
> Ошибся, не UNIX_MS, а просто UNIX.

Спасибо, помогло! получил миллисекунды как хотел.

18 января 2018 г., 13:05 пользователь Alexey Remizov <ale...@remizov.org>
написал:

> On 18.01.2018 13:03, Alexey Remizov wrote:
> > On 18.01.2018 12:54, Иван Мишин wrote:
> >
> >> я логи обрабатываю с помощью logstash и складываю в elastic, а затем
> >> просматриваю их с помощью kibana.
> >> Мне важно получить в кибане юзерфрендли временную метку с миллисекундами
> >
> > Берите $msec и в logstash прогоняйте через фильтр date с форматом UNIX_MS
>
> Ошибся, не UNIX_MS, а просто UNIX.
>
> --
> С уважением.   WBR.
> Алексей.   Alexey.
>
> mailto:ale...@remizov.org
> jabber:remi...@jabber.ru
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Доли секунд в логах

2018-01-18 Пенетрантность Иван Мишин
я логи обрабатываю с помощью logstash и складываю в elastic, а затем
просматриваю их с помощью kibana.
Мне важно получить в кибане юзерфрендли временную метку с миллисекундами
(хотя бы, а лучше микро), т.к. виртуальных хостов много и логов тоже много,
поэтому в рамках одной секунды очень много записей попадает и какие запросы
за какими следуют не понятно.

18 января 2018 г., 12:38 пользователь Илья Шипицин <chipits...@gmail.com>
написал:

> я работаю с Log Parser: https://habrahabr.ru/post/85758/
>
> where по iso8601 оно умеет из коробки
>
> (было бы круто в документации поменять пример с time_local на time_iso8601)
>
> 18 января 2018 г., 14:34 пользователь Vadim A. Misbakh-Soloviov <
> ng...@mva.name> написал:
>
> Это смотря как и чем вы работаете.
>> И постгрес, и даже скриптовые языки прекрасно умеют конвертировать unix
>> timestamp в человекочитаемое время (более того, именно unix timestamp
>> наиболее
>> удобный для работы (машинной) формат времени.
>>
>> В письме от четверг, 18 января 2018 г. 12:32:41 MSK пользователь Иван
>> Мишин
>> написал:
>> > $msec выдает в лог вот такого вида время 1516267749.614
>> > Оно не человеческое, крайне не удобно будет работать с таким форматом
>> >
>> > 18 января 2018 г., 12:25 пользователь Gena Makhomed <g...@csdoc.com>
>> > написал:
>>
>> >
>> > > On 18.01.2018 10:15, Иван Мишин wrote:
>> > >
>> > >
>> > >
>> > > На данный момент в логах использую $time_local.
>> > >
>> > >> Хотелось бы фиксировать не только секунды, но и доли секунд.
>> Подскажите
>> > >> как
>> > >> это можно сделать?
>> > >>
>> > >>
>> > >
>> > >
>> > >
>> > > http://nginx.org/en/docs/http/ngx_http_log_module.html#var_msec
>> > >
>> > >
>> > >
>> > > Referer: http://nginx.org/en/docs/varindex.html
>> > >
>> > >
>> > >
>> > > --
>> > > Best regards,
>> > >
>> > >  Gena
>> > >
>> > >
>> > >
>> > >
>> > > ___
>> > > 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-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

Re: Доли секунд в логах

2018-01-18 Пенетрантность Иван Мишин
>
> $time_iso8601 - во всех смыслах более удобная штука. поддерживается любыми
> SQL-серверами и LogParser-ом

Тем не менее этот формат не мили ни микро секунды не показывает.

18 января 2018 г., 11:22 пользователь Илья Шипицин <chipits...@gmail.com>
написал:

>
>
> 18 января 2018 г., 13:15 пользователь Иван Мишин <simplebo...@gmail.com>
> написал:
>
>> На данный момент в логах использую $time_local.
>>
>
> time_local - это очень странный пример, он есть в документации,
> подозреваю, оттуда его тиражируют
>
>
>> Хотелось бы фиксировать не только секунды, но и доли секунд. Подскажите
>> как это можно сделать?
>>
>
> $time_iso8601 - во всех смыслах более удобная штука. поддерживается любыми
> SQL-серверами и LogParser-ом
>
>>
>> ___
>> 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-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Доли секунд в логах

2018-01-18 Пенетрантность Иван Мишин
На данный момент в логах использую $time_local.
Хотелось бы фиксировать не только секунды, но и доли секунд. Подскажите как
это можно сделать?
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: unit-0.3 beta

2017-12-30 Пенетрантность Иван
Здравствуйте!

Я не использую systemd и для меня перечисленное - приложения. Если unit - 
сервер приложений, то, очевидно, он запускает приложения.

С уважением, Иван Прокудин.

В письме от суббота, 30 декабря 2017 г. 4:43:31 MSK пользователь S.A.N 
написал:
> > Как по вашему, firefox - это сервис или приложение?  Можете обосновать
> > почему?
> 
> Я же не ради холивара это писал :)
> Клиентские GUI приложения сервисами сложно назвать, но для меня:
> PHP-FPM - это сервис
> Node.js - это сервис
> Python WSGI - это сервис
> Go Server - это сервис
> 
> Возможно у меня systemd головного мозга, но в вашем конфиге, раздел
> "listeners" я понимаю как директивы для systemd.socket и соответственно
> "applications" у меня ассоциируется с директивами для systemd.service, мне
> так проще унифицировать свои знание и ваше название Unit очень помогает
> сделать связь с unit от systemd.

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: unit-0.2 beta release

2017-12-15 Пенетрантность Иван
Прекрасная новость!

А пакеты для debian9? А когда планируется релиз?

В письме от пятница, 15 декабря 2017 г. 20:37:37 MSK пользователь Валентин 
Бартенев написал:
> On Friday 15 December 2017 17:57:42 Иван wrote:
> [..]
> 
> > А интеграция ruby в ближних планах есть?
> 
> В первом квартале 2018 планируем сделать Ruby и Perl.
> 
> --
> Валентин Бартенев
> ___
> 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

Re: unit-0.2 beta release

2017-12-15 Пенетрантность Иван
Здравствуйте!

В письме от пятница, 20 октября 2017 г. 22:58:00 MSK пользователь Igor Sysoev 
написал:

> 
> С точки зрения юнита, языки делятся на две категории:
> 1) встраивание языка в юнит: PHP, Python, Ruby, Perl - эти языки имеют
> некий
 стандартный интерфейс для встраивания в веб-сервер;
> 2) встраивание модуля юнита в приложение: Go, Node.js, Java.
> 
> Первое сделать, как правило, проще. Но перл не в ближних планах, поскольку
> его популярность падает.
> 


А интеграция ruby в ближних планах есть?

С уважением, Иван.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Юникс-сокет и fastcgi.

2017-11-30 Пенетрантность Иван
Здравствуйте!

Имеет ли смысл включать keepalive для подключения к php-fpm через юникс-сокет?

Попробовал сейчас включить, используя:

upstream e_php {
server unix:/run/php-fpm-e.socket;
keepalive 200;
}

location ~* \.php$ {
fastcgi_pass e_php;
fastcgi_keep_conn on;
}

Смотрю в статус пула php-fpm, там скорость изменения показателя "accepted conn" 
за 
секунду (в среднем 500 cps) не изменяется по сравнению с конфигурацией

location ~* \.php$ {
fastcgi_pass unix:/run/php-fpm-e.socket;
}

Я что-то неправильно делаю\понимаю?

С уважением, Иван.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: nginx и смена симлинков

2017-11-28 Пенетрантность Иван
Здравствуйте!

В письме от вторник, 28 ноября 2017 г. 21:34:02 MSK пользователь Илья Шипицин 
написал:
> 
> сделайте тут проксирование на апстрим (в котором перечислены несколько
> бекендов)
> fastcgi_connect_timeout  сделайте минимальным
> 
> 
> достаточно будет запустить тот или иной бекенд
> 
> (не уверен, что с unix-сокетами получится, в крайнем случае можно на tcp
> проксировать)
> 

Мне в итоге помог предложенный чуть ранее и дополненный тут: https://
stackoverflow.com/questions/23737627/php-opcache-reset-symlink-style-deployment/
23904770#23904770 

совет сделать

fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;

Меня теперь волнует не выполняет ли nginx тот самый "тяжелый" 
(как описано, например, https://habrahabr.ru/post/266909/) realpath 
при использовании $realpath_root.

По непосредственно вашему способу вопрос только один, учитывая исторически
багнутый reload в php-fpm не понятно как запускать\останавливать один пул php,
не трогая другие.

С уважением, Иван.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

nginx и смена симлинков

2017-11-28 Пенетрантность Иван
Здравствуйте!

nginx 1.12.2, debian 8, php-fpm (5.6)
*# *nginx -V 


Есть самописное приложение на php. У него есть две версии: stable и current. 
Для 
быстрой смены используется следующая схема:
/var/www/stable/ - тут лежит stable
/var/www/current/ - тут лежит current
/var/www/html - симлинк на на /var/www/stable или /var/www/current

В nginx пыха сконфигурирована как

root /var/www/html;
location / {
fastcgi_pass unix:/run/php-fpm.socket;
includefastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
}

Проблема в том. что при переключение stable->current (и наоборот), которая 
происходит примерно так:
# /var/www/html указывает на  /var/www/stable , переключаемся на current
rm /var/www/html; ln -s /var/www/current/  /var/www/html

до упора используются файлы из старой директории (stable в примере выше). Не 
помогает ни очистка opcache, ни рестарт пыхи. Только restart (возможно reload, 
не 
уверен) nginx. 
Хотелось бы
1) понять почему так. nginx где-то как-то кеширует куда указывает симлинк?
2) избежать этого ("троганья" nginx (в идеале и рестарта php-fpm), в принципе 
готовы 
поменять воркфлоу, но пока не понимаем как.

С уважением, Иван.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: помогите с проксированием

2017-11-13 Пенетрантность Иван Мишин
Максим, большое спасибо за развернутый ответ, осбенно за
>
> В наиболее сложном случае абсолютные адреса оказываются зашиты
>   не только в возвращаемых html-страницах (которые, при желании,
>   можно пытаться править с помощью sub_filter), но и в каких-нибудь
>   бинарных/проприетарных swf-файлах.  И поставленная задача вообще
>   не решается.


Это как раз мой случай оказался, поэтому свою задачу решу лучше через
поддомены.

13 ноября 2017 г., 16:25 пользователь Maxim Dounin <mdou...@mdounin.ru>
написал:

> Hello!
>
> On Mon, Nov 13, 2017 at 12:08:14PM +0300, Иван Мишин wrote:
>
> > Я догадываюсь какие модули нужны, но все мои попытки реализовать задачу
> > провалились.
> > Может ли кто-то подсказать более точнее?
>
> Более точнее так:
>
> - В простейшем случае задача сводится к тому, чтобы сделать
>   proxy_pass внутри соответствующего location'а:
>
>   location /site1/ {
>   proxy_pass http://xyz.com/;
>   }
>
>   Тут важно обратить внимание на "/" в proxy_pass - он говорит
>   nginx'у, что при проксировании следует менять префикс "/site1/" в
>   исходном URI запроса на "/".
>
>   Так будет работать, если бэкенд использует относительные адреса
>   для ресурсов, возвращает предсказуемые перенаправления (см.
>   proxy_redirect) и так далее.
>
> - В наиболее сложном случае абсолютные адреса оказываются зашиты
>   не только в возвращаемых html-страницах (которые, при желании,
>   можно пытаться править с помощью sub_filter), но и в каких-нибудь
>   бинарных/проприетарных swf-файлах.  И поставленная задача вообще
>   не решается.
>
> Где именно между этими крайними положениями находится ваш сайт -
> известно только вам.  А если не известно - то и выяснять,
> соответственно, вам.  Постепенно дополняя простейшую конфигурацию
> выше различными подпорками для решения возникающих проблем.
>
> Ну и не следует забывать, что в общем случае - задача не решается.
> И где-то в тот момент, когда возникает необходимость менять
> содержимое возвращаемых страниц с помощью sub_filter - имеет смысл
> задуматься о том, чтобы пойти и переделать бэкенд.  Или даже не
> переделать, а просто разобраться с ним чуть получше - часто
> бывает, что бэкенд всё умеет, просто его нужно соответствующим
> образом сконфигурировать.
>
> --
> Maxim Dounin
> http://mdounin.ru/
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: помогите с проксированием

2017-11-13 Пенетрантность Иван Мишин
Я догадываюсь какие модули нужны, но все мои попытки реализовать задачу
провалились.
Может ли кто-то подсказать более точнее?

12 ноября 2017 г., 22:38 пользователь Alex Domoradov <alex@gmail.com>
написал:

> По идее должно хватить rewrite + proxy_pass/proxy_redirect, но может
> зависеть от того, как криво реализован сам site1. Возможно еще понадобится
> http://nginx.org/en/docs/http/ngx_http_sub_module.html
>
> 2017-11-12 21:11 GMT+02:00 Иван Мишин <simplebo...@gmail.com>:
>
>> Есть nginx который занимается проксированием на бекенд.
>> как сделать так чтобы при запросе
>> xyz.com/site1
>> на бекенд ушел запрос вида xyz.com, но при этом в браузере клиент видел
>> xyz.com/site1
>>
>> ___
>> 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-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

помогите с проксированием

2017-11-12 Пенетрантность Иван Мишин
Есть nginx который занимается проксированием на бекенд.
как сделать так чтобы при запросе
xyz.com/site1
на бекенд ушел запрос вида xyz.com, но при этом в браузере клиент видел
xyz.com/site1
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Нелегальное проксирование сайта средствами nginx

2017-09-03 Пенетрантность Иван
На предмет совпадения с ипом вражеского прокси, конечно же. Вычислять 
ипы вражеского прокси можно, анализируя логи на частоту запросов с IP. Все 
IP, rps с которых, выше определенного порога - прокси. Вы же не делаете 
realip на * ?

Собственно, как альтернатива, превентивно можно отрубить вражеские 
прокси просто поставив limit_req с одного IP.

В письме от среда, 30 августа 2017 г. 12:20:11 MSK пользователь Alex 
Domoradov написал:
> > Вариант сходу - проверять $remote_addr, Вам не подойдет?
> 
> проверять на предмет чего?
> 
> 2017-08-30 10:50 GMT+03:00 Иван <ng...@kinetiksoft.com>:
> 
> 
> > Здравствуйте!
> >
> >
> >
> > Вариант сходу - проверять $remote_addr, Вам не подойдет?
> >
> >
> >
> > С уважением, Иван.
> >
> >
> >
> > В письме от среда, 30 августа 2017 г. 10:38:45 MSK пользователь Dmitry
> > Simonov написал:
> > 
> > > Коллеги!
> > >
> > >
> > >
> > > А есть какой-то более-менее достоверный способ определить, что вот 
эти
> > > и эти клиенты, - это nginx, который проксирует наш сервис куда-то на
> > > левый домен.
> > >
> > >
> > >
> > > В моём случае оригинал www.setup.ru, а проксированная нелегальная
> > > копия - www.britash.top
> > >
> > >
> > >
> > > Цель - запретить проксирование.
> > >
> > >
> > >
> > > ---
> > > Dmitriy V. Simonov
> > > ___
> > > 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-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Нелегальное проксирование сайта средствами nginx

2017-08-30 Пенетрантность Иван
Здравствуйте!

Вариант сходу - проверять $remote_addr, Вам не подойдет?

С уважением, Иван.

В письме от среда, 30 августа 2017 г. 10:38:45 MSK пользователь Dmitry 
Simonov написал:
> Коллеги!
> 
> А есть какой-то более-менее достоверный способ определить, что вот эти
> и эти клиенты, - это nginx, который проксирует наш сервис куда-то на
> левый домен.
> 
> В моём случае оригинал www.setup.ru, а проксированная нелегальная
> копия - www.britash.top
> 
> Цель - запретить проксирование.
> 
> ---
> Dmitriy V. Simonov
> ___
> 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

Re: Ошибки при установке NGINX

2017-08-18 Пенетрантность Иван
Здравствуйте!

Судя по логу, Вы уже пытались поставить nginx из репозиториев дистрибутива, а 
теперь пытаетесь поставить nginx из репозиториев разработчиков nginx. Чтоб все 
прошло хорошо, удалите хвосты от старого:

service nginx stop
killall nginx
apt-get purge nginx-core nginx

И после этого ставьте желаемую версию.

С уважением, Иван.

В письме от 17 августа 2017 16:01:10 пользователь Andrey_Bushman написал:
> Доброго времени суток.
> 
> Ubuntu-16.04-x86_64 (сервер)
> 
> Устанавливаю NGINX:
> > apt-get install nginx
> 
> Получаю ошибки:
> 
> 
> 
> Setting up nginx-core (1.10.3-0ubuntu0.16.04.2) ...
> Job for nginx.service failed because the control process exited with error
> code. See "systemctl status nginx.service" and "journalctl -xe" for
> details.
> invoke-rc.d: initscript nginx, action "start" failed.
> dpkg: error processing package nginx-core (--configure):
>  subprocess installed post-installation script returned error exit status 1
> dpkg: dependency problems prevent configuration of nginx:
>  nginx depends on nginx-core (>= 1.10.3-0ubuntu0.16.04.2) | nginx-full (>=
> 1.10.3-0ubuntu0.16.04.2) | nginx-light (>= 1.10.3-0ubuntu0.16.04.2) |
> nginx-extras (>= 1.10.3-0ubuntu0.16.04.2); however:
>   Package nginx-core is not configured yet.
>   Package nginx-full is not installed.
>   Package nginx-light is not installed.
>   Package nginx-extras is not installed.
>  nginx depends on nginx-core (<< 1.10.3-0ubuntu0.16.04.2.1~) | nginx-full
> (<< 1.10.3-0ubuntu0.16.04.2.1~) | nginx-light (<<
> 1.10.3-0ubuntu0.16.04.2.1~) | nginx-extras (<< 1.10.3-0ubuntu0.16.04.2.1~);
> however:
>   Package nginx-core is not configured yet.
>   Package nginx-full is not installed.
>   Package nginx-light is not installed.
>   Package nginx-extras is not installed.
> 
> dpkg: error processing package nginx (--configure):
>  dependency problems - leaving unconfigured
> Errors were encountered while processing:
>  nginx-core
>  nginx
> E: Sub-process /usr/bin/dpkg returned an error code (1)
> 
> 
> 
> Как установить nginx?
> 
> Спасибо
> 
> Posted at Nginx Forum:
> https://forum.nginx.org/read.php?21,276085,276085#msg-276085
> 
> ___
> 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

уникальность переменной $request_id

2017-08-15 Пенетрантность Иван Мишин
В документации как-то мало описания на эту тему. Хочется знать какова
повторяемость этой переменной?
И какой шанс повторяемости в случае использования пула nginx серверов
(например 6 штук), есть ли какие-то факты или предположения о том с какой
вероятностью могут сгенериться одинаковые айдишники на разных nginx
серверах?
В общем просьба раскрыть тему к ого есть достаточные знание об этой
переменной.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Зацикливание на редиректе

2017-08-08 Пенетрантность Иван
Здравствуйте!

Бесполезная нагрузка на сервер создается не более, чем от множественных 
запросов к 
серверу. Проблема не в сервере, а в неправильном понимании Вами стандарта. 
Уязвимости никакой нет, что Вам и пытались показать.

С уважением, Иван.

В письме от 8 августа 2017 08:11:32 пользователь CoDDoC написал:
> А вот интересно, от ботов тоже будем требовать соблюдения RFC?
> Я воспроизвел ситуацию, как создать бесполезную нагрузку на сервер при
> бесконечном редиректе. Правильно я делаю запрос или нет - в данном случае
> не важно. Важно то, что оно работает, и у сервера нет встроенных средств
> для корректной обработки такой ситуации. По большому счету, это называется
> уязвимостьвю. Дальше. господа разрабы, решать вам. Закрыть проблему или
> оставить все как есть и подождать, пока эту уязвимость начнут
> эксплуатировать.
> 
> Засим позволю себе откланяться, поскольку не имею времени продолжать
> бессмысленную дискуссию. Спасибо.
> 
> >Понедельник,  7 августа 2017, 16:12 +03:00 от Валентин Бартенев
> ><vb...@nginx.com>:>
> >On Monday 07 August 2017 15:26:11 CoDDoC wrote:
> >> Ну, хорошо. Пусть в моем примере вообще нет хоста.
> >> Тогда что такое  https://test.com ? Давайте назовем строкой запроса, суть
> >
> >проблемы от этого не меняется.
> >
> >В вашем примере это аргумент командной строки, который не участвует в
> >запросе. В строке запроса он не передается.
> >
> >> В документации так:
> >> " $host
> >> 
> >> в порядке приоритета: имя хоста из строки запроса, или имя
> >> хоста
> >
> >из поля “Host” заголовка запроса.,"
> >
> >> Объясните мне, пожалуйста, что понимать как "имя хоста из строки запроса"
> >> и
> >
> >"имя хоста из поля “Host” заголовка запроса".
> >
> >> Желательно с примером для курла, как особо одаренному.
> >
> >Что такое строка запроса описано в RFC:
> >https://tools.ietf.org/html/rfc7230#section-3.1.1
> >
> >Пример с curl:
> >
> >$ curl -ILH 'Host:  www.nginx.org ' -x  http://nginx.org:80/
> >http://nginx.org/>
> >> Далее, Вы приводите пример с netcat. Аналогично можно использовать
> >> telnet.
> >> Только ведь после получения Location ему нужно следовать. Полученный
> >
> >Location:  http://nginx.org/ куда возвращает? На HEAD  http://nginx.org/
> >HTTP/1.1.
> >
> >Первый пример netcat как раз содержит  http://nginx.org/ в строке запроса
> >и как вы можете наблюдать - редиректа нет.
> >
> >Второй пример не содержит в строке запроса хоста, а в заголовке Host
> >содержится  www.nginx.org и происходит редирект.
> >
> >> То же самое, только не вводить построчно:
> >> 
> >> curl -ILH 'Host:  www.nginx.org '  https://nginx.org/
> >> 
> >> И точно такое же зацикливание.___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Растет кол-во inode из-за кеша

2017-06-22 Пенетрантность Иван Мишин
Произвел полный сброс кеша, теперь все работает как надо. Спасибо Максим!

21 июня 2017 г., 16:40 пользователь Иван Мишин <simplebo...@gmail.com>
написал:

> В логи заглядывал еще до создания данной темы.
> лог настроен следующим образом
>
>> error_log  /var/log/nginx/error.log notice;
>
>  При этом до недавнего времени в логе проскакивали только сообщения
>
>> [alert] 5092#5092: send() failed (90: Message too long)
>
>  А теперь еще появились
>
>> [crit] 5093#5093: unlink() "/tmp/ram/1/52/201e725c28498b88055b145ac7253521"
>> failed (2: No such file or directory)
>
>
> Те сообщения о которых говорите вы, в моих логах отсутствуют.
> Сегодня произведу плановый рестарт сервера, заодно и кеш сбросится. Буду
> наблюдать
>
> 21 июня 2017 г., 15:46 пользователь Maxim Dounin <mdou...@mdounin.ru>
> написал:
>
> Hello!
>>
>> On Wed, Jun 21, 2017 at 11:09:00AM +0300, Иван Мишин wrote:
>>
>> > Максим, кеш дира /tmp/ram/  была забита на 100% 28Гб из 28Гб. Сбросил
>> часть
>> > кеша, получилось 25Гб занято из 28Гб. Затем исправил то о чем ты
>> говорил и
>> > начальный конфиг (приведенный в первом письме) стал выглядеть вот так:
>> >
>> > > proxy_cache_path /tmp/ram/ levels=1:2 use_temp_path=off
>> > > keys_zone=level-1:20m max_size=26000m inactive=1440m;
>> > > proxy_temp_path /tmp/cache/nginx/proxy_temp;
>> > > proxy_cache_key $server_name$request_uri;
>> >
>> >
>> >  Т.е. указал nginx что для кеша у него теперь 26Гб, тем самым оставив
>> 2Гб
>> > запас на отвлечение cache manager.
>> > Но по истечении некоторого времени у меня /tmp/ram/ снова забился до
>> 28Гб
>> > из "28Гб. Почему так произошло? Нужен больший запас для cache manager ?
>>
>> Во-первых, если в кеше мусор по результатам старых ошибок, то
>> cache manager не сможет за ним нормально следить: он ничего не
>> знает про мусор, и соответственно не включает его в размер того,
>> что занято кешом.  Чтобы привести всё к нормальному состоянию -
>> стоит очистить кеш полностью.
>>
>> Во-вторых, cache manager может не иметь возможности удалять файлы
>> и по другим причинам, в частности - элементы кеша могут оказаться
>> занятыми из-за падений рабочих процессов и/или утечек сокетов.
>> При попытке очистки таких элементов по inactive в лог будут
>> писаться сообщения "ignore long locked inactive cache entry" на
>> уровне alert (в 1.13.1 то же будет происходить и при очистке по
>> max_size).
>>
>> Основное, что бы я рекомендовал сделать в первую очередь - это
>> начать таки заглядывать в логи.  Все ваши проблемы наверняка были
>> обозначены там неоднократно и на критических уровнях логгирования.
>>
>> --
>> Maxim Dounin
>> http://nginx.org/
>> ___
>> 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

Re: Растет кол-во inode из-за кеша

2017-06-21 Пенетрантность Иван Мишин
В логи заглядывал еще до создания данной темы.
лог настроен следующим образом

> error_log  /var/log/nginx/error.log notice;

 При этом до недавнего времени в логе проскакивали только сообщения

> [alert] 5092#5092: send() failed (90: Message too long)

 А теперь еще появились

> [crit] 5093#5093: unlink()
> "/tmp/ram/1/52/201e725c28498b88055b145ac7253521" failed (2: No such file or
> directory)


Те сообщения о которых говорите вы, в моих логах отсутствуют.
Сегодня произведу плановый рестарт сервера, заодно и кеш сбросится. Буду
наблюдать

21 июня 2017 г., 15:46 пользователь Maxim Dounin <mdou...@mdounin.ru>
написал:

> Hello!
>
> On Wed, Jun 21, 2017 at 11:09:00AM +0300, Иван Мишин wrote:
>
> > Максим, кеш дира /tmp/ram/  была забита на 100% 28Гб из 28Гб. Сбросил
> часть
> > кеша, получилось 25Гб занято из 28Гб. Затем исправил то о чем ты говорил
> и
> > начальный конфиг (приведенный в первом письме) стал выглядеть вот так:
> >
> > > proxy_cache_path /tmp/ram/ levels=1:2 use_temp_path=off
> > > keys_zone=level-1:20m max_size=26000m inactive=1440m;
> > > proxy_temp_path /tmp/cache/nginx/proxy_temp;
> > > proxy_cache_key $server_name$request_uri;
> >
> >
> >  Т.е. указал nginx что для кеша у него теперь 26Гб, тем самым оставив 2Гб
> > запас на отвлечение cache manager.
> > Но по истечении некоторого времени у меня /tmp/ram/ снова забился до 28Гб
> > из "28Гб. Почему так произошло? Нужен больший запас для cache manager ?
>
> Во-первых, если в кеше мусор по результатам старых ошибок, то
> cache manager не сможет за ним нормально следить: он ничего не
> знает про мусор, и соответственно не включает его в размер того,
> что занято кешом.  Чтобы привести всё к нормальному состоянию -
> стоит очистить кеш полностью.
>
> Во-вторых, cache manager может не иметь возможности удалять файлы
> и по другим причинам, в частности - элементы кеша могут оказаться
> занятыми из-за падений рабочих процессов и/или утечек сокетов.
> При попытке очистки таких элементов по inactive в лог будут
> писаться сообщения "ignore long locked inactive cache entry" на
> уровне alert (в 1.13.1 то же будет происходить и при очистке по
> max_size).
>
> Основное, что бы я рекомендовал сделать в первую очередь - это
> начать таки заглядывать в логи.  Все ваши проблемы наверняка были
> обозначены там неоднократно и на критических уровнях логгирования.
>
> --
> Maxim Dounin
> http://nginx.org/
> ___
> 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

Re: Растет кол-во inode из-за кеша

2017-06-21 Пенетрантность Иван Мишин
>
> Вам же порекомендовали не использовать proxy_temp_path на другом разделе


Так так и сделал, почитал доку и  приписал параметр use_temp_path=off к
своему конфигу.
Вот цитата из доки.

> Поэтому лучше, если кэш будет находиться на той же файловой системе, что и
> каталог с временными файлами. Какой из каталогов будет использоваться для
> временных файлов определяется параметром use_temp_path(1.7.10).  Если
> параметр не задан или установлен в значение “on”, то будет использоваться
> каталог, задаваемый директивой proxy_temp_path
> <http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_temp_path> для
> данного location. Если параметр установлен в значение “off”, то временные
> файлы будут располагаться непосредственно в каталоге кэша.


21 июня 2017 г., 11:28 пользователь Vasiliy P. Melnik <ba...@vpm.net.ua>
написал:

>
>
> 21 июня 2017 г., 11:09 пользователь Иван Мишин <simplebo...@gmail.com>
> написал:
>
>> Максим, кеш дира /tmp/ram/  была забита на 100% 28Гб из 28Гб. Сбросил
>> часть кеша, получилось 25Гб занято из 28Гб. Затем исправил то о чем ты
>> говорил и начальный конфиг (приведенный в первом письме) стал выглядеть вот
>> так:
>>
>>> proxy_cache_path /tmp/ram/ levels=1:2 use_temp_path=off
>>> keys_zone=level-1:20m max_size=26000m inactive=1440m;
>>> proxy_temp_path /tmp/cache/nginx/proxy_temp;
>>>
>>
> Вам же порекомендовали не использовать proxy_temp_path на другом разделе.
> Если Вам он очень нужен - переместите го в тот же раздел, что и основной
> кеш, например в
> proxy_temp_path  /tmp/ram/proxy_temp
>
>
>
>> proxy_cache_key $server_name$request_uri;
>>
>>
>>  Т.е. указал nginx что для кеша у него теперь 26Гб, тем самым оставив 2Гб
>> запас на отвлечение cache manager.
>> Но по истечении некоторого времени у меня /tmp/ram/ снова забился до
>> 28Гб из "28Гб. Почему так произошло? Нужен больший запас для cache
>> manager ?
>>
>
> ___
> 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

Re: Растет кол-во inode из-за кеша

2017-06-21 Пенетрантность Иван Мишин
Максим, кеш дира /tmp/ram/  была забита на 100% 28Гб из 28Гб. Сбросил часть
кеша, получилось 25Гб занято из 28Гб. Затем исправил то о чем ты говорил и
начальный конфиг (приведенный в первом письме) стал выглядеть вот так:

> proxy_cache_path /tmp/ram/ levels=1:2 use_temp_path=off
> keys_zone=level-1:20m max_size=26000m inactive=1440m;
> proxy_temp_path /tmp/cache/nginx/proxy_temp;
> proxy_cache_key $server_name$request_uri;


 Т.е. указал nginx что для кеша у него теперь 26Гб, тем самым оставив 2Гб
запас на отвлечение cache manager.
Но по истечении некоторого времени у меня /tmp/ram/ снова забился до 28Гб
из "28Гб. Почему так произошло? Нужен больший запас для cache manager ?


19 июня 2017 г., 10:40 пользователь Иван Мишин <simplebo...@gmail.com>
написал:

> Максим, спасибо за детальное объяснение, на днях буду внедрять изменения и
> наблюдать, по происшествии времени отпишусь о результате.
>
> 16 июня 2017 г., 22:21 пользователь Vasiliy P. Melnik <ba...@vpm.net.ua>
> написал:
>
> Здравствуйте
>>
>> Раз уж пошла такая пьянка, то может подскажете, есть какие-то
>> противопоказания насчет использования use_temp_path=off
>>
>>
>> 16 июня 2017 г., 17:25 пользователь Maxim Dounin <mdou...@mdounin.ru>
>> написал:
>>
>> Hello!
>>>
>>> On Fri, Jun 16, 2017 at 04:57:04PM +0300, Иван Мишин wrote:
>>>
>>> > Крахов файловой системы не было, каталог /tmp/ram отдан исключительно
>>> под
>>> > кеш nginx. За последнюю неделю набежало 5941794 файлов нулевого
>>> размера в
>>> > кеш каталоге.
>>> > В общем эта проблема очень актуальна для меня и преследует уже не
>>> первый
>>> > месяц, есть у кого-нибудь идеи как я могу отдиагностировать ситуацию?
>>> > Максим, можно подробнее про "кончилось место при копировании из
>>> каталога со
>>> > временными файлами", не совсем понимаю что ты имеешь ввиду?
>>>
>>> Если proxy_temp_path и proxy_cache_path находятся на разных
>>> файловых системах, то просто переместить временный файл в кеш
>>> нельзя, приходится его копировать, создав новый файл.  Подробнее
>>> про это рассказывается в описании директивы proxy_cache_path:
>>>
>>> http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#pro
>>> xy_cache_path
>>>
>>> Если в процессе копирования произойдёт ошибка, например из-за
>>> того, что файловая система, на которой располагается кеш,
>>> переполнена, то в логе будет ошибка уровня alert, а в кеше
>>> останется лежать недописанный файл.
>>>
>>> Отмечу в скобках, что если вот это:
>>>
>>> > > > кеш в ramfs на 28Гб со следующими настройками:
>>> > > >
>>> > > > > proxy_cache_path /tmp/ram/ levels=1:2 keys_zone=level-1:20m
>>> > > > > max_size=28000m inactive=1440m;
>>>
>>> и правда озаначает, что размер ramfs - 28 гигабайт, то результат
>>> ожидаем.
>>>
>>> Вы сказали nginx'у, что начинать чистить кеш надо при превышении
>>> размера в 28 гигабайт.  Если cache manager отвлечётся хоть немного
>>> на другие задачи (а он может заниматься другими кешами, если они
>>> есть, или просто уйти спать на 10 секунд, почистив всё) - файловая
>>> система переполнится, и будут ошибки.  Вам надо менять настройки.
>>>
>>> --
>>> Maxim Dounin
>>> http://nginx.org/
>>> ___
>>> 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-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Не срабатывает realip в блоке if

2017-06-17 Пенетрантность Иван
Здравствуйте!

В конструкции

location /login/
set_real_ip_from proxy_IP;
if ($block_agent) {
return 403;
}
}

Всё, что попадает в блок if ($block_agent == 1), в логи пишется с $remote_addr 
проксирующего сервера (proxy_IP), то есть set_real_ip_from не отрабатывает. 
set_real_ip_from поместить в блок include nginx не дает. Пока что решил 
проблему меняя формат логов для в блоке if, но что это, баг\фича? И можно ли 
исправить?

# nginx -V
nginx version: nginx/1.12.0
built by gcc 4.9.2 (Debian 4.9.2-10) 
built with OpenSSL 1.0.1t  3 May 2016
TLS SNI support enabled
configure arguments: --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 -O2 
-fstack-protector-strong -Wformat -Werror=format-security -Wp,-
D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -Wl,--as-
needed -pie'

С уважением, Иван.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Растет кол-во inode из-за кеша

2017-06-16 Пенетрантность Иван Мишин
Крахов файловой системы не было, каталог /tmp/ram отдан исключительно под
кеш nginx. За последнюю неделю набежало 5941794 файлов нулевого размера в
кеш каталоге.
В общем эта проблема очень актуальна для меня и преследует уже не первый
месяц, есть у кого-нибудь идеи как я могу отдиагностировать ситуацию?
Максим, можно подробнее про "кончилось место при копировании из каталога со
временными файлами", не совсем понимаю что ты имеешь ввиду?

9 июня 2017 г., 18:38 пользователь Maxim Dounin <mdou...@mdounin.ru>
написал:

> Hello!
>
> On Fri, Jun 09, 2017 at 04:26:09PM +0300, Иван Мишин wrote:
>
> > Всем привет.
> > Столкнулся со следующей проблемой:
> > nginx последней стабильной версии
> > ОС CentsOS 6.9
> > кеш в ramfs на 28Гб со следующими настройками:
> >
> > > proxy_cache_path /tmp/ram/ levels=1:2 keys_zone=level-1:20m
> > > max_size=28000m inactive=1440m;
> > > proxy_temp_path /tmp/cache/nginx/proxy_temp;
> > > proxy_cache_key $server_name$request_uri;
> >
> >
> > Довольно активно растет кол-во inode на ramfs. Стал изучать ситуацию,
> > оказалось в кеше лежит куча файлов нулевого размера при чем среди них
> есть
> > и очень старые (месячной давности например). На 28Гб кеша, оказалось
> более
> > 6млн Inode задействовано, при этом после удаления нулевых файлов осталось
> > всего около 200к inode.
> > Вопрос зачем nginx хранит до бесконечности нулевые файлы? Как от этого
> > избавиться?
>
> Файлы нулевого размера в кеше - это не nginx, по крайней мере не
> его штатная работа, он просто не умеет ничего подобного создавать.
> Либо это последствия каких-то ошибок (кончилось место при
> копировании из каталога со временными файлами?), либо просто
> результат краха файловой системы.
>
> --
> Maxim Dounin
> http://nginx.org/
> ___
> 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

Растет кол-во inode из-за кеша

2017-06-09 Пенетрантность Иван Мишин
Всем привет.
Столкнулся со следующей проблемой:
nginx последней стабильной версии
ОС CentsOS 6.9
кеш в ramfs на 28Гб со следующими настройками:

> proxy_cache_path /tmp/ram/ levels=1:2 keys_zone=level-1:20m
> max_size=28000m inactive=1440m;
> proxy_temp_path /tmp/cache/nginx/proxy_temp;
> proxy_cache_key $server_name$request_uri;


Довольно активно растет кол-во inode на ramfs. Стал изучать ситуацию,
оказалось в кеше лежит куча файлов нулевого размера при чем среди них есть
и очень старые (месячной давности например). На 28Гб кеша, оказалось более
6млн Inode задействовано, при этом после удаления нулевых файлов осталось
всего около 200к inode.
Вопрос зачем nginx хранит до бесконечности нулевые файлы? Как от этого
избавиться?
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Кто же сильнее Cache-Control или X-Accel-Expires?

2017-04-20 Пенетрантность Иван
Здравствуйте!

Максим,спасибо за быстрый ответ! Может быть это указать в документации? Пока 
что процитированная часть документации, как мне кажется, прямо противоречит 
этому поведению.

С уважением, Иван.

В письме от 20 апреля 2017 21:08:33 пользователь Maxim Dounin написал:
> Hello!
> 
> On Thu, Apr 20, 2017 at 08:17:07PM +0300, Иван wrote:
> > Здравствуйте!
> > 
> > Есть конфиг бэкэнда, вот его кусочек:
> > 
> > location ~ \.m3u8$ {
> > expires -1;
> > add_header "X-Accel-Expires" "100"
> > }
> > 
> > Как следует из русской и английской документации:
> > http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_cache_valid
> > (кстати, как делать красивые короткие ссылки на документацию, которыми
> > оперирует в этом списке рассылки команда nginx?)
> > 
> > > Если в заголовке нет поля “X-Accel-Expires”, параметры кэширования
> > > определяются по полям заголовка “Expires” или “Cache-Control”.
> > 
> > То есть можно предположить, что приоритет у X-Accel-Expires.
> > Но нет. Как показывает моя практика и, например, этот вопрос:
> > https://serverfault.com/questions/641367/nginx-using-x-accel-expires-with-> 
> > > cache-control
> > 
> > Приоритет имеет Cache-control. То есть в такой конфигурации на фронтэнде:
> > 
> > location ^~ /video/ {
> > 
> > proxy_buffer_size 16k;
> > proxy_buffers 32 16k;
> > 
> > proxy_cache video;
> > proxy_cache_lock on;
> > 
> > proxy_cache_use_stale updating;
> > proxy_cache_key "$proxy_host$uri";
> > 
> > proxy_pass http://backend;
> > 
> > }
> > 
> > m3u8 файлы, проходящие через этот локейшен на приведенный выше локейшен
> > бэкэнда кешироваться не будут. Ситуацию спасает только
> > proxy_ignore_headers Expires Cache-Control;
> > 
> > Подскажите, пожалуйста, где ошибка: в nginx, документации или моём
> > понимании того или другого?
> 
> Текущая реализация такова, что если до заголовка X-Accel-Expires
> встретится заголовок Cache-Control или Expires, запрещающий
> кеширование совсем, то кеширование будет запрещено.
> 
> То же самое с Cache-Control vs. Expires: в соответствии со
> стандартом HTTP/1.1 заголовок Cache-Control имеет приоритет, но
> если до него в ответе был заголовок Expires, полностью запрещающий
> кеширование, то кеширование будет запрещено.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Как правильно кешировать запросы от анонимов?

2017-04-20 Пенетрантность Иван
Здравствуйте!

Достаточно популярная, как мне кажется, проблема. Хочу кешировать запросы к 
какому-то локейшену, например, к / , но только от анонимных пользователей. То 
есть тех, у которых еще нет для нас никаких кук.

Как это правильно сделать в условиях бэкэнда, который, как, например, извините 
за выражение, битрикс, ставит куку типа PHP_SESSID при любом запросе?

То есть по факту мой вопрос сводится к тому, как выполнять 
fastcgi_ignore_headers Set-Cookie;
или не выполнять в зависимости от каких-то условий, например, от наличия уже 
поставленных пользователю кук.

Пока я создал вот такого монстра (он работает, но мне не нравится):

map $http_cookie $main_cache {
default 0;
"" 1;
}

location = / {
if ($main_cache) {
rewrite ^ /_main_cache/ last;
}
fastcgi_pass unix:/run/php-fpm.socket;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_param HTTP_GEOCOUNTRY $geoip_country_code;
  
}
location = /_main_cache/ {
internal;

#Это чтоб в бэкэнд везде приходил правильный адрес, никто не должен знать про 
_main_cache
rewrite ^ / break;

fastcgi_cache main;
fastcgi_hide_header "Set-Cookie";
fastcgi_ignore_headers "Cache-Control" "Expires" "Set-Cookie";
fastcgi_cache_valid 200 10s;
fastcgi_cache_key "/";
fastcgi_cache_use_stale updating;
fastcgi_cache_lock on;

#Аноним после первого посещения не аноним, а так как мы игнорируем Set-Cookie 
ставим средствами nginx.

add_header "Set-Cookie" "visited=1; path=/";

fastcgi_pass unix:/run/php-fpm.socket;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_param HTTP_GEOCOUNTRY $geoip_country_code;
}


Можно как-то изящнее и феншуйнее? Пожалуйста, не предлагайте переделывать 
бэкэнд. Это нереально.

С уважением, Иван.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Кто же сильнее Cache-Control или X-Accel-Expires?

2017-04-20 Пенетрантность Иван
Здравствуйте! 

Есть конфиг бэкэнда, вот его кусочек:

location ~ \.m3u8$ {
expires -1;
add_header "X-Accel-Expires" "100"
}

Как следует из русской и английской документации:
http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_cache_valid 
(кстати, как делать красивые короткие ссылки на документацию, которыми 
оперирует в этом списке рассылки команда nginx?)

> Если в заголовке нет поля “X-Accel-Expires”, параметры кэширования
> определяются по полям заголовка “Expires” или “Cache-Control”.

То есть можно предположить, что приоритет у X-Accel-Expires.
Но нет. Как показывает моя практика и, например, этот вопрос: 
https://serverfault.com/questions/641367/nginx-using-x-accel-expires-with-cache-control

Приоритет имеет Cache-control. То есть в такой конфигурации на фронтэнде:

location ^~ /video/ {
proxy_buffer_size 16k;
proxy_buffers 32 16k;

proxy_cache video;
proxy_cache_lock on;

proxy_cache_use_stale updating;
proxy_cache_key "$proxy_host$uri";

proxy_pass http://backend;
}

m3u8 файлы, проходящие через этот локейшен на приведенный выше локейшен 
бэкэнда кешироваться не будут. Ситуацию спасает только
proxy_ignore_headers Expires Cache-Control;

Подскажите, пожалуйста, где ошибка: в nginx, документации или моём понимании 
того или другого?

С уважением, Иван.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: количество open sockets

2017-01-16 Пенетрантность Иван Мишин
>
>  ... open socket #12 left in connection 5

Нет у меня таких записей в логах.

12 января 2017 г., 19:32 пользователь Валентин Бартенев <vb...@nginx.com>
написал:

> On Wednesday 11 January 2017 10:21:32 Иван Мишин wrote:
> > В логах тишина, nginx самый свежий из стабильных nginx/1.10.2. Сторонние
> > модули не использую.
> > Как проверить что это именно утечка? И найти где эта утечка? Чтобы вы
> могли
> > это исправить в будущих версиях.
> >
>
> Имеет смысл удостовериться, что проверялся именно основной лог.  Об утекших
> соединения nginx обычно сообщает в error_log:
>
>   ... open socket #12 left in connection 5
>
> при завершении рабочего процесса.
>
>
> --
> Валентин Бартенев
> ___
> 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

Re: Растет кол-во открытых udp сокетов

2017-01-11 Пенетрантность Иван Мишин
>
> А Вам не шлют часом пакетики с zero windows?

Разобрался, нет не шлют.

11 января 2017 г., 15:07 пользователь Иван Мишин <simplebo...@gmail.com>
написал:

> А Вам не шлют часом пакетики с zero windows?
>
> Поясните пожалуйста что это такое?
>
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Растет кол-во открытых udp сокетов

2017-01-11 Пенетрантность Иван Мишин
>
> А Вам не шлют часом пакетики с zero windows?

Поясните пожалуйста что это такое?
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Растет кол-во открытых udp сокетов

2017-01-11 Пенетрантность Иван Мишин
Проблема сама ушла, но сейчас снова вернулась.
nginx имеет кучу процессов в состоянии shutting down

> nginx 2245  0.1  0.4 277892 170264 ?   S<2016  60:12 nginx:
> worker process is shutting down
> nginx 2246  0.1  0.4 277892 170268 ?   S<2016  60:04 nginx:
> worker process is shutting down
> nginx 2247  0.1  0.4 277892 170264 ?   S<2016  53:58 nginx:
> worker process is shutting down
> nginx 2248  0.1  0.4 277892 170268 ?   S<2016  61:46 nginx:
> worker process is shutting down
> nginx 2249  0.1  0.4 277892 170264 ?   S<2016  60:04 nginx:
> worker process is shutting down
> nginx 2250  0.1  0.4 277892 170264 ?   S<2016  61:02 nginx:
> worker process is shutting down
> root 12463  0.0  0.3 239260 117740 ?   Ss2016   0:02 nginx:
> master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
> nginx12466  0.1  0.3 225684 117204 ?   S<2016  63:19 nginx:
> worker process is shutting down
> nginx12472  0.2  0.3 226236 117596 ?   S<2016  68:23 nginx:
> worker process is shutting down
> nginx12475  0.1  0.3 226204 117592 ?   S<2016  65:29 nginx:
> worker process is shutting down
> root 34155  0.0  0.0 103336   916 pts/1S+   11:58   0:00 grep nginx
> nginx44094  1.0  0.4 280680 171700 ?   S<2016 301:38 nginx:
> worker process is shutting down
> nginx44095  0.9  0.4 280680 171700 ?   S<2016 260:05 nginx:
> worker process is shutting down
> nginx44096  0.9  0.4 280680 171700 ?   S<2016 280:09 nginx:
> worker process is shutting down
> nginx44097  0.9  0.4 280680 171700 ?   S<2016 274:12 nginx:
> worker process is shutting down
> nginx44098  1.0  0.4 280680 171700 ?   S<2016 304:19 nginx:
> worker process is shutting down
> nginx44099  1.0  0.4 280680 171700 ?   S<2016 289:29 nginx:
> worker process is shutting down
> nginx47185  2.0  0.4 280732 170500 ?   S<   Jan09  59:39 nginx:
> worker process
> nginx47186  2.0  0.4 280732 170504 ?   S<   Jan09  58:10 nginx:
> worker process
> nginx47187  1.7  0.4 280732 170504 ?   S<   Jan09  51:09 nginx:
> worker process
> nginx47188  1.7  0.4 280732 170504 ?   S<   Jan09  50:46 nginx:
> worker process
> nginx47189  1.8  0.4 280732 170504 ?   S<   Jan09  53:27 nginx:
> worker process
> nginx47190  2.0  0.4 280732 170504 ?   S<   Jan09  59:42 nginx:
> worker process
> nginx47191  0.0  0.3 239264 128296 ?   SJan09   1:04 nginx:
> cache manager process
> nginx58834  0.0  0.4 277892 170248 ?   S<2016  18:34 nginx:
> worker process is shutting down
> nginx58835  0.0  0.4 277892 170248 ?   S<2016  20:34 nginx:
> worker process is shutting down
> nginx58836  0.0  0.4 277892 170244 ?   S<2016  19:48 nginx:
> worker process is shutting down


 При этом netstat -nap | grep  выдает
например

> tcp0  0 x.x.x.x:49810y.y.y.y:80
> ESTABLISHED 2245/nginx


отправляюсь на  y.y.y.y (там у меня на 80 порту nginx) и делаю service
nginx stop и service nginx start.
Но возвращаясь на  x.x.x.x я снова вижу

>  При этом netstat -nap | grep  выдает
> например

tcp0  0 x.x.x.x:49810y.y.y.y:80
> ESTABLISHED 2245/nginx


Не пойму почему не отваливается соединение?

30 ноября 2015 г., 10:53 пользователь Aleksandr Sytar <sytar.a...@gmail.com>
написал:

>
>
> 30 ноября 2015 г., 10:42 пользователь Иван Мишин <simplebo...@gmail.com>
> написал:
>
>> Проблема в том что не отмирают старые процессы по несколько дней ( видел
>> те которые 10 дней даже живут), они то и держат "лишние" соединения.
>>
>> Вот конкретно сейчас есть процессы от 23 числа.:
>> nginx46065  1.5  0.3 237188 133192 ?   S<   Nov23 151:19 nginx:
>> worker process is shutting down
>> nginx46066  1.5  0.3 237060 133156 ?   S<   Nov23 144:16 nginx:
>> worker process is shutting down
>> nginx46069  1.6  0.3 237008 133836 ?   S<   Nov23 156:25 nginx:
>> worker process is shutting down
>>
>> Почему они за 7 дней до сих пор не умерли?
>>
>
> Потому что к ним еще подключены клиенты. Убейте клиентов и воркеры сам
> закроются
>
>
> ___
> 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

Re: количество open sockets

2017-01-10 Пенетрантность Иван Мишин
В логах тишина, nginx самый свежий из стабильных nginx/1.10.2. Сторонние
модули не использую.
Как проверить что это именно утечка? И найти где эта утечка? Чтобы вы могли
это исправить в будущих версиях.

9 января 2017 г., 16:32 пользователь Валентин Бартенев <vb...@nginx.com>
написал:

> On Thursday 29 December 2016 09:47:53 Иван Мишин wrote:
> > Есть несколько одинаковых nginx, обслуживающих около 100 хостов. На
> каждом
> > nginx используется кеш ramfs объемом 30Гб на каждый nginx. Последнее
> > несколько недель по непонятным причинам постоянно растет количество
> > opensockets. Причем даже в ненагруженные дни рост все равно есть.
> Пробовал
> > рестартовать ngnix, но opnesockets по прежнему растет. В чем может быть
> > проблема? На что обратить внимание?
>
> Обратить внимание на логи, на версию nginx, на используемые сторонние
> модули
> и конфигурацию.  Ошибки, приводящие к утечки сокетов, время от времени
> случаются и исправляются.
>
> --
> Валентин Бартенев
> ___
> 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

количество open sockets

2016-12-28 Пенетрантность Иван Мишин
Есть несколько одинаковых nginx, обслуживающих около 100 хостов. На каждом
nginx используется кеш ramfs объемом 30Гб на каждый nginx. Последнее
несколько недель по непонятным причинам постоянно растет количество
opensockets. Причем даже в ненагруженные дни рост все равно есть. Пробовал
рестартовать ngnix, но opnesockets по прежнему растет. В чем может быть
проблема? На что обратить внимание?
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Nginx alternative for Apache mod_proxy_html

2016-12-26 Пенетрантность Иван
Здравствуйте!

http://nginx.org/ru/docs/http/ngx_http_sub_module.html ?

С уважением, Иван.

В письме от 26 декабря 2016 04:42:16 пользователь milex написал:
> Добрый день, коллеги!
> 
> Есть ли в Nginx какая-то альтернатива Apache'вскому mod_proxy_html?
> Задача - менять адреса ресурсов в index при использовании Nginx как
> reverse-proxy для сайта на Wordpress.
> 
> Posted at Nginx Forum:
> https://forum.nginx.org/read.php?21,271702,271702#msg-271702
> 
> ___
> 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

Re: nginx socket fastcgi_params

2016-12-16 Пенетрантность Иван
Здравствуйте!

Я думаю не ошибусь, если скажу, что в большинстве инсталляций nginx 
используется unix-сокет и данные параметры точно передаются, например, прям 
сейчас у меня в продакшене. Опишите подробнее, с чего Вы предположили, что они 
не передаются, приведите конфиги и nginx -V.

В письме от 16 декабря 2016 05:39:59 пользователь skeletor написал:
> Всем привет.
> Если подключаться к nginx'y через unix-socket то не передаются
> fastcgi-параметры. Как минимум эти:
> 
> fastcgi_param   REMOTE_USER $remote_user;
> fastcgi_param   GEOIP_COUNTRY_CODE$geoip_city_country_code;
> fastcgi_param   GEOIP_COUNTRY_NAME$geoip_city_country_name;
> fastcgi_param   GEOIP_REGION$geoip_region;
> fastcgi_param   GEOIP_CITY  $geoip_city;
> 
> Проверяю вот так:
> 
> curl http://domain.dev/test.php
> curl --unix-socket /var/run/nginx.sock  http://domain.dev/test.php
> 
> Это нормально? Если нет, то как можно исправить?
> Спасибо.
> 
> Posted at Nginx Forum:
> https://forum.nginx.org/read.php?21,271610,271610#msg-271610
> 
> ___
> 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

failed (36: File name too long)

2016-12-02 Пенетрантность Иван Мишин
Коллеги, подскажите при загрузки (PUT) файла по webdav получаю 500 код и
ошибку в логах  failed (36: File name too long).

Загружаю файл следующего вида:
/2016/66/77/99/qwertqwertyq/кенапргшщолд_План_переплан_2016__тесттестт___на_подббннааа___пятть_для_ололоолололо___22_от_01.12.2016___без_трололо_2.xls_345fgh34kjhgndg457fndhheriifkkke56923kgisl45lfhn56j4kk67ls84hdlr.csv
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Редирект на необходимый урл в том случае если запрос включает параметры и соответствует паттерну

2016-11-05 Пенетрантность Иван
Здравствуйте!

В письме от 5 ноября 2016 10:19:49 пользователь Gena Makhomed написал:
> On 05.11.2016 8:43, sysadm wrote:
> > Спасибо за ответ, Гена. Я думал уже над чем-то подобным, но это означает
> > что сколько редиректов - столько ифов у нас появится. Т.е. будет
> > несколько сотен - будет несколько сотен ифов. А если приедет следующий
> > список на несколько тысяч подобных редиректов? Нормально ли это и
> > насколько это скажется на производительности?
> 
> Тогда http://nginx.org/ru/docs/http/ngx_http_map_module.html
> 
> http {
> 
>  map $request_uri $target_uri {
>  /example-category?col=name=filter-var1 /target/link;
>  # ...
>  }
> 

Если сотни или много тысяч, я бы использовал 
map $request_uri $target_uri {
include manythousandsofinclude.inc;
}

Тогда файл с инклюдами можно генерировать скриптом и по завершению reloadить 
nginx.

> server {
> 
>  if ($target_uri) {
>  return 301 $target_uri;
>  }
> 
> > Помимо этого с такой конструкцией нгинксу не нравится синтаксис:
> > nginx: [emerg] invalid number of arguments in "return" directive in
> > /etc/nginx/redirects/ecommerce.conf:2
> > nginx: configuration file /etc/nginx/nginx.conf test failed
> 
> http://nginx.org/ru/docs/http/ngx_http_rewrite_module.html#return
> 
> Синтаксис: return код URL;

Вы в своем первом сообщении rewrite с return просто перепутали и добавили 
permanent, чем ввели топикстартера в заблуждение.

С уважением, Иван.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Применение директивы для определенного IP адреса

2016-10-23 Пенетрантность Иван
В письме от 22 октября 2016 10:50:41 пользователь maxpostal написал:
>  #map $http_x_forwarded_for $binary_remote_addr {
> #   5.187.78.183 1;
> #}
> #limit_req_zone $binary_remote_addr zone=perserver:10m rate=1r/s;
> #limit_conn_zone $binary_remote_addr zone=perip:10m;
Закомментированный код измените дословно (не надо ни на что заменять $key!) 
на:
 map $http_x_forwarded_for $key {
   5.187.78.183 1;
}
limit_req_zone $key zone=perserver:10m rate=1r/s;
limit_conn_zone $key zone=perip:10m;

Тогда лимиты будут применены для всех с данным значением $key. Чтоб лимиты не 
применялись, значение $key должно быть пустым. Прочитайте, пожалуйста, 
описание map в документации, тогда станет понятнее.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Применение директивы для определенного IP адреса

2016-10-21 Пенетрантность Иван
В письме от 17 октября 2016 16:24:17 пользователь maxpostal написал:
> Иван, здравствуйте. Спасибо за помощь.
> 

> 
> limit_req_zone $key zone=perserver:10m rate=1r/s;
> limit_conn_zone $key zone=perip:10m;
> 
> то лимиты не работают :(
> 

Если их правильно прописать, они точно работают. :) У меня используются в 
продакшене. Покажите как конкретно Вы до этого map прописали.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: похоже на багу с syslog nginx

2016-10-17 Пенетрантность Иван Мишин
>
> для начала:
> 1) проверьте логи
> 2) проверьте tcpdump'ом на той машине, где nginx, чтобы исключить
> разного рода проблемы с сетью

Это все уже проверял.

 Вам же ответили в соседнем треде, созданном вами же: по стандарту
> больше 1 килобайта нельзя,

но у меня есть куча логов на 10-30кб и больше которые проходят без проблем.

всё что больше - доходить не обязано
> (точнее - обязано не доходить, но nginx не проверяет)

то что доходить не обязаны это понятно. Но nginx то обязан их отправлять. А
я слушал tcpdump ом и знаю точно что nginx не отправляет. В этом и вопрос,
почему nginx не отправляет? (а не почему не доходит)



14 октября 2016 г., 16:58 пользователь Maxim Dounin <mdou...@mdounin.ru>
написал:

> Hello!
>
> On Fri, Oct 14, 2016 at 04:33:04PM +0300, Иван Мишин wrote:
>
> > Не ужели никто не в курсе почему nginx не отправляет access логи в случае
> > описанном выше?
>
> Вам же ответили в соседнем треде, созданном вами же: по стандарту
> больше 1 килобайта нельзя, и всё что больше - доходить не обязано
> (точнее - обязано не доходить, но nginx не проверяет).  Дойдёт или
> не дойдёт - зависит от многих факторов, цифра в 9000 - очевидно,
> из размера jumbo frames.
>
> Да и вообще не стоит забывать, что UDP не является средством
> гарантированной доставки.  Хотите гарантированной доставки -
> пишите локальные файлы.  Или в локальный же unix-сокет
> syslog-демона, и уже из им отправляйте куда надо надёжным
> транспортом.
>
> --
> Maxim Dounin
> http://nginx.org/
>
> ___
> 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

Re: похоже на багу с syslog nginx

2016-10-14 Пенетрантность Иван Мишин
Не ужели никто не в курсе почему nginx не отправляет access логи в случае
описанном выше?

7 октября 2016 г., 17:44 пользователь Иван Мишин <simplebo...@gmail.com>
написал:

> В ходе разбирательства с прошлым моим вопросом
>>
>> Добрый день коллеги.
>> Заметил что длинные веб логи (например POST запросы)
>> Не доходят до  syslog сервер . Предположительно все что больше 32к не
>> проходит.
>> Подскажите есть ли какие-либо ограничения по этому поводу?
>
>
> Выяснил следующую вещь. Если отправлять POST запрос на nginx содержащий
> латиницу более 9000 символов, то nginx данное сообщение в логи не
> отправляет по syslog. Как проверял, отправлял POST содержащий текст вида
> "приветмир" длинна запроса 9000 символов, писал слитно без пробелов. На
> принимающем syslog сервере слушал tcpdump ом, тишина.
> Nginx настройки:
>
>> access_log syslog:server=x.x.x.x:514,facility=local4,severity=notice
>> main;
>> log_format  main'$http_host $remote_addr $remote_user [$time_local]
>> "$request" $status "$sent_http_content_type" $body_bytes_sent
>> "$http_referer" "$http_user_agent" "$http_cookie" $request_time
>> "$upstream_addr" NGINX-CACHE-$upstream_cache_status "$request_body" ';
>
>
>
>
>
>
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

похоже на багу с syslog nginx

2016-10-07 Пенетрантность Иван Мишин
В ходе разбирательства с прошлым моим вопросом
>
> Добрый день коллеги.
> Заметил что длинные веб логи (например POST запросы)
> Не доходят до  syslog сервер . Предположительно все что больше 32к не
> проходит.
> Подскажите есть ли какие-либо ограничения по этому поводу?


Выяснил следующую вещь. Если отправлять POST запрос на nginx содержащий
латиницу более 9000 символов, то nginx данное сообщение в логи не
отправляет по syslog. Как проверял, отправлял POST содержащий текст вида
"приветмир" длинна запроса 9000 символов, писал слитно без пробелов. На
принимающем syslog сервере слушал tcpdump ом, тишина.
Nginx настройки:

> access_log syslog:server=x.x.x.x:514,facility=local4,severity=notice main;
> log_format  main'$http_host $remote_addr $remote_user [$time_local]
> "$request" $status "$sent_http_content_type" $body_bytes_sent
> "$http_referer" "$http_user_agent" "$http_cookie" $request_time
> "$upstream_addr" NGINX-CACHE-$upstream_cache_status "$request_body" ';
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: размер сообщения отправляемого по syslog

2016-10-07 Пенетрантность Иван Мишин
попробовал другой контент POST запроса пропихнуть, прошло 39К. Странно...

7 октября 2016 г., 15:12 пользователь Anton Gorlov <stal...@altlinux.ru>
написал:

> На сколько помню это ограничение самого syslog
> размер 1 сообщение не может превышать размер сетевого пакета-хидеры.
>
> 07.10.2016 15:05, Иван Мишин пишет:
> > Добрый день коллеги.
> > Заметил что длинные веб логи (например POST запросы)
> > Не доходят до  syslog сервер . Предположительно все что больше 32к не
> > проходит.
> >
>
> ___
> 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

размер сообщения отправляемого по syslog

2016-10-07 Пенетрантность Иван Мишин
Добрый день коллеги.
Заметил что длинные веб логи (например POST запросы)
Не доходят до  syslog сервер . Предположительно все что больше 32к не
проходит.

Подскажите есть ли какие-либо ограничения по этому поводу?
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Применение директивы для определенного IP адреса

2016-10-03 Пенетрантность Иван
Здравствуйте!

http://nginx.org/en/docs/http/ngx_http_limit_req_module.html#limit_req_zone

"Запросы с пустым значением ключа не учитываются. "

То есть делайте что-то типа
map $http_x_forwarded_for $key {
10.0.0.1 1;
}
limit_req_zone $key zone=one:10m rate=1r/s;
location /download/ {
 limit_req zone=one burst=5;
   }

limit_conn аналогично.

С уважением, Иван.

В письме от 3 октября 2016 09:35:20 пользователь maxpostal написал:
> Здравствуйте!
> 
> Подскажите можно ли применять директивы для определенного IP адреса, а
> точнее для всех адресов, кроме указанного.
> 
> Использую модули ngx_http_limit_req_module и ngx_http_limit_conn_module, так
> вот, можно ли ограничить их действие для определенного IP, указав, что-то
> типа:
> 
> if ($http_x_forwarded_for !~ " ?10\.0\.0\.1?$") {
>   location /download/ {
> limit_conn addr 1;
> limit_req zone=one burst=5;
>   }
> }
> 
> ?
> 
> Заранее спасибо.
> 
> Posted at Nginx Forum:
> https://forum.nginx.org/read.php?21,270039,270039#msg-270039
> 
> ___
> 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

Re: 403 Forbidden

2016-09-20 Пенетрантность Иван
Здравствуйте!

У Вас веб-сервер запущен от одного пользователя, например, nginx, а домашние 
директории /home/* (/home/dima) практически всегда доступны на чтение только 
для их владельца. Вот отсюда ноги и растут. То есть Вам сразу верно сказали: 
проблема с правами на файловой системе. Вопрос не к nginx.

С уважением, Иван. 

В письме от 20 сентября 2016 11:41:29 пользователь misha_shar53 написал:
> С файлом как раз все в порядке. Все открывается.
> Проблемы возникают когда обращение идет через localhost.
> http://localhost/index.htm
> А в файле конфигурации указан каталог содержащий этот файл.
>   location /term.htm {  root /home/dima/www/;   }
> 
> Posted at Nginx Forum:
> https://forum.nginx.org/read.php?21,119063,269688#msg-269688
> 
> ___
> 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

Re: Странные текст и ключи в cache nginx

2016-09-08 Пенетрантность Иван
Здравствуйте!

В письме от 8 сентября 2016 12:05:00 пользователь Kira_Belka написал:
> включен кэш nginx.
> в закэшированом файле присутствует текст до
> HTTP/

Он там присутствовал точно с тех пор, как я туда посмотрел первый раз. Где-то 
после 1.8.0 точно. И это вполне нормально, так работает кеширование nginx.

> проблема проявилась недавно.
> В следствие этого кэш не работает валютно.
> 
Проблема в чём-то другом.

С уважением, Иван.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Увеличивается RPS и CPS при недоступности бэкэнда

2016-08-23 Пенетрантность Иван
Здравствуйте!

У нас цепочка проксей для стриминга видео (плейлисты - m3u8+чанки - ts): эджи 
от пользователей проксируют на ориджины,ориджины на источники видео (source).

Почему-то при выпадании (connection timeout) одного из source взлетает rps и 
cps на соотвествующие ориджины. При высокой нагрузке настолько, что все вообще 
встает колом.

nginx 1.10.1 под debian 8 из репов на nginx.org.

Конфигурация upstream на эджах:
upstream o-place {
server ip4_1:443 fail_timeout=60 max_fails=3 weight=3;
server ip6_1:443 fail_timeout=60 max_fails=3 weight=3;
server ip4_2:443 fail_timeout=60 max_fails=3 weight=1;
server ip6_2:443 fail_timeout=60 max_fails=3 weight=1;
server ip4_3:443 fail_timeout=60 max_fails=3 backup;
server ip6_3:443 fail_timeout=60 max_fails=3 backup;
keepalive 500;
}
Каждый ориджин тут задублирован по ИП4 и ИП6 (ip4_1 и ip6_1 - это один и тот 
же сервер, так же как и ip?_2, так же как и ip?_3), так как иногда между 
серверами отваливается по отдельности либо IP6, либо IP4.

У ориджинов в апстримах по одному source:
upstream source_place {
server ip4:443;
keepalive 200;
}

На эджах
proxy_next_upstream error timeout invalid_header http_500 http_502 http_504;

На ориджинах значение по умолчанию не менял.

Спасибо за помощь.

С уважением, Иван.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Вместо 304 всегда отдавать 200.

2016-08-15 Пенетрантность Иван
Здравствуйте!

А бэкэнда и нет. В смысле отдаем статические файлы с файловой системы.

В письме от 15 августа 2016 18:21:27 пользователь Валентин Бартенев написал:
> On Monday 15 August 2016 18:14:10 Иван wrote:
> > Здравствуйте!
> > 
> > Существует ли возможность заставить nginx всегда отдавать целиком ответ
> > 200 с соотвестующим содержимым, а не укороченный 304, когда ресурс не
> > изменился?
> > 
> > Пробовал по найденому в интернете:
> > if_modified_since off;
> > add_header Last-Modified "";
> > 
> > Не помогает - просто ничего не изменилось.
> > 
> > Зачем это нужно? Глючный клиент не понимает 304. Правильный путь: чинить
> > клиент - не подходит по временным соображениям. Клиент починят
> > когда-нибудь, а результат нужен как можно быстрее.
> 
> [..]
> 
> Раз ничего не изменилось, то 304 видимо прилетает у вас от бэкенда.
> Значит его и нужно править, либо запретить проксирование на него
> соответствующих заголовков.
> 
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Ограничение количества запросов

2016-08-09 Пенетрантность Иван
В письме от 8 августа 2016 06:21:14 пользователь 
nNgzlTtv3k5lzmKRvlmS22tSl8sJr68k написал:
> if ($http_user_agent ~*
> spider|bot|crawl|megaindex|yahoo){ set $bot_key $server_name; }

Здравствуйте!

Тут весьма плохо использовать if: 
https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/ .

Замените на map:
map $http_user_agent $bot_key {
~spider $server_name;
~bot $server_name;
и т.д.
}

С уважением, Иван.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: некоторые запросы держат соединение до бесконечности

2016-06-17 Пенетрантность Иван Мишин
>
> То есть запросов к серверу нет? С кем же клиент тогда устанавливает
>  соединения в цикле, перед тем как сообщает "Запрос HTTP послан,
>  ожидается ответ"?

Я же написал, что по завершению висяка появляется 500 ответ в логе.  Nginx
то логирует уже после обработки запроса, вот и нет ничего в логах в момент
зависания, после того как зависание проходит в лог идет запись.

Из того что я заметил пакеты не пропадают. клиент отправил запрос , сервер
его получил. а дальше тишина затем через время клиент делает вторую
попытку , сервер опять отправляет и тишина, после нескольких попыток,
сервер отвечает кодом 500 клиент это принимает и отваливается.



17 июня 2016 г., 11:08 пользователь Evgeniy Berdnikov <b...@protva.ru>
написал:

> On Fri, Jun 17, 2016 at 10:48:00AM +0300, Иван Мишин wrote:
> > >
> > > А в логе что?
> >
> > В логе пусто. По окончанию "виселицы" появлейтся лог запроса с 500
> ответом
>
>  То есть запросов к серверу нет? С кем же клиент тогда устанавливает
>  соединения в цикле, перед тем как сообщает "Запрос HTTP послан,
>  ожидается ответ"?
>
> > > Сравните дампы трафика на стороне клиента и на стороне сервера.
> >
> > Аномалий на первый взгляд не заметил
>
>  Как можно "не заметить аномалий", если клиент не получает ответ? :)
>
>  Вы не заметили, что пакеты не доходят от клиента к серверу, или что
>  пакеты от сервера к клиенту пропадают? Отчего происходит таймаут?
> --
>  Eugene Berdnikov
>
> ___
> 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

Re: некоторые запросы держат соединение до бесконечности

2016-06-17 Пенетрантность Иван Мишин
>
> А в логе что?

В логе пусто. По окончанию "виселицы" появлейтся лог запроса с 500 ответом


> Сравните дампы трафика на стороне клиента и на стороне сервера.

Аномалий на первый взгляд не заметил

16 июня 2016 г., 16:39 пользователь Pavel Mihaduk <le...@nixkid.com>
написал:

> Ой, прошу прощения, перепутал ящики
>
> On 16 июня 2016 г., at 16:32, Pavel Mihaduk <le...@nixkid.com> wrote:
>
> Готово. Только на wgshop почему-то 504 :)
>
> On 16 июня 2016 г., at 16:10, Иван Мишин <simplebo...@gmail.com> wrote:
>
> Нет, файрвола нет. nginx и httpd крутятся на одном сервере.
>
> 16 июня 2016 г., 15:32 пользователь Илья Шипицин <chipits...@gmail.com>
> написал:
>
>> а между nginx и httpd фаирвол ?
>>
>> 16 июня 2016 г., 17:05 пользователь Иван Мишин <simplebo...@gmail.com>
>> написал:
>>
>>> Всем привет.
>>> Коллеги есть проблема которую сам пока разгадать не могу. Прошу помощи.
>>> Есть nginx, за ним httpd.
>>>
>>> Делаю wget или curl на www.example.com/test/request (за этим урлом
>>> стоит php процесс)
>>> Обычно все обрабатывается нормально, но в некоторых случаях curl  и wget
>>> повисают, после долгой паузы получаю
>>>
>>> Запрос HTTP послан, ожидается ответ... Ошибка чтения (Время ожидания
>>>> соединения истекло) в заголовках.
>>>> Повтор.
>>>
>>> После чего происходит автоматически новая попытка. Соединение постоянно
>>> открыто. Может так висеть днями.
>>>
>>> strace nginx процесса на котором весит соединение выдает
>>>
>>>> --- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL, si_value={int=0,
>>>> ptr=0x1}} ---
>>>> rt_sigreturn()  = -1 EINTR (Interrupted system
>>>> call)
>>>> epoll_wait(36, 27293b0, 512, 500)   = -1 EINTR (Interrupted system
>>>> call)
>>>
>>>
>>> strace wget показывает
>>>
>>>> select(4, [3], NULL, NULL, {275, 67022}
>>>
>>>
>>> Помогите разобраться кто виноват в этой связке.
>>>
>>> ___
>>> 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-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-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

некоторые запросы держат соединение до бесконечности

2016-06-16 Пенетрантность Иван Мишин
Всем привет.
Коллеги есть проблема которую сам пока разгадать не могу. Прошу помощи.
Есть nginx, за ним httpd.

Делаю wget или curl на www.example.com/test/request (за этим урлом стоит
php процесс)
Обычно все обрабатывается нормально, но в некоторых случаях curl  и wget
повисают, после долгой паузы получаю

Запрос HTTP послан, ожидается ответ... Ошибка чтения (Время ожидания
> соединения истекло) в заголовках.
> Повтор.

После чего происходит автоматически новая попытка. Соединение постоянно
открыто. Может так висеть днями.

strace nginx процесса на котором весит соединение выдает

> --- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL, si_value={int=0,
> ptr=0x1}} ---
> rt_sigreturn()  = -1 EINTR (Interrupted system
> call)
> epoll_wait(36, 27293b0, 512, 500)   = -1 EINTR (Interrupted system
> call)


strace wget показывает

> select(4, [3], NULL, NULL, {275, 67022}


Помогите разобраться кто виноват в этой связке.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Firefox повторно исплользует соединение IPv6 на основании IPv4. Как с этим жить?

2016-06-02 Пенетрантность Иван
В письме от 2 июня 2016 00:25:25 пользователь Maxim Dounin написал:

> 
> [...]
> 
> > > > 2) Помогите найти аргументы для убеждения разработчиков ФФ, что этот
> > > > баг
> > > > надо исправлять. Если кто готов отписаться там, я открою обратно этот
> > > > баг.
> > > 
> > > См. аргументы выше.  На лицо явное нарушение стандарта.
> > 
> > Если б всё было так просто, поверьте, я бы не отнимал Ваше время.
> 
> Зачистую вопрос состоит лишь в том, чтобы ткнуть пальцем в нужное
> место стандарта, при этом грамотно и кратко сформулировать
> проблему.
> 

Здравствуйте!

Будет ли слишком нагло попросить Вас сформулировать проблему грамотно и 
кратко? Желательно на английском, ну или я сам переведу. В идеале я буду 
искренне 
благодарен любым разумным комментаториям в баге по приведенной ранее 
ссылке.

С уважением, Иван Прокудин.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

  1   2   >