Re: Помогите с rewrite

2019-07-07 Пенетрантность Vladimir Getmanshchuk
Не уверен, но мне кажется вот так:
return http://somesite.com/directory/$arg_arg1/$arg_arg2 301;

http://nginx.org/en/docs/http/ngx_http_core_module.html#variables

On Sat, Jul 6, 2019 at 5:43 PM Dmytro Lavryk 
wrote:

> Чего-то видимо туплю. Подскажите как такое организовать:
> есть урл вида http://somesite.com/directory/?arg1=SOME-ARG1&arg2=SOME-ARG2
> нужно получить редирект на
> http://somesite.com/directory/SOME-ARG1/SOME-ARG2
>
> Posted at Nginx Forum:
> https://forum.nginx.org/read.php?21,284765,284765#msg-284765
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru



-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Влияние на производительность проверок на существоание файла (-f) в rewrite модуле

2019-05-23 Пенетрантность Vladimir Getmanshchuk
Кстати конструкцию можно сильно упростить через try_files
/maintenance_on.html ... ;

On Thu, May 23, 2019 at 3:44 PM Maxim Dounin  wrote:

> Hello!
>
> On Thu, May 23, 2019 at 03:10:28PM +0500, Dmitry Sergeev wrote:
>
> > Всем привет. Не поделится ли кто-нибудь опытом, сильно ли может повлиять
> > на произовдительность конструкция:
> >
> > >  location / {
> > >  if (-f /var/www/maintenance_on.html) {
> > >  return 503;
> > >  }
> > >
> > >
> > >  ...
> > >  }
> > >
> > >
> > >  # Error pages.
> > >  error_page 503 /maintenance_on.html;
> > >  location = /maintenance_on.html {
> > >  root /var/www;
> > >  }
> > Например 7-10 location  с такими проверками на хосте 4K запросов в
> секунду?
> > На каждый запрос он будет проверять существование файла? Или как-то это
> > делает по таймауту, который можно настроить?
>
> При такой конфигурации на каждый запрос[*] будет делаться
> системный вызов stat().  Скорее всего необходимые данные будут в
> кэше операционной системы, и этот системный вызов будет быстрым,
> так что на производительности это скажется минимально.
>
> Так что если речь не идёт о борьбе за каждый процент - про
> производительность подобной конструкции можно не переживать.
> Другой вопрос, что сама по себе конструкция не очень, выкатку
> нужно уметь делать без перерывов в обслуживании.
>
> [*] Вообще-то в можно ещё и настроить кэширование внутри nginx'а,
> чтобы сэкономить системные вызовы (http://nginx.org/r/open_file_cache).
> Но практика показывает, что на производительность это влияет
> минимально, а вот выстрелить себе в ногу неатомарным изменением
> файлов станет легко.
>
> --
> Maxim Dounin
> http://mdounin.ru/
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru



-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: epoll_ctl: file exists ?

2019-05-02 Пенетрантность Vladimir Getmanshchuk
Максим, если найдете свободную минуту - расскажите пожалуйста почему.
Спасибо.

On Tue, Apr 30, 2019 at 5:39 PM Maxim Dounin  wrote:

> Hello!
>
> On Tue, Apr 30, 2019 at 01:58:20PM +0500, Илья Шипицин wrote:
>
> > привет,
> >
> > насколько опасно вот такое ?
> >
> >
> > 2019/04/29 21:52:39 [alert] 1714#1714: *168061675 epoll_ctl(1, 1188)
> failed
> > (17: File exists) while proxying upgraded connection, client:
> > 82.114.112.115, server: market.kontur.ru, request: "GET /wsapi/
> HTTP/2.0",
> > upstream: "http://192.168.188.40:2339/wsapi/";, host: "xxx.xxx.xxx"
>
> Судя по всему, имеет место попытка запихнуть вебсокеты в HTTP/2.
> Работать - не будет.
>
> --
> Maxim Dounin
> http://mdounin.ru/
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru



-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: специальные символы в запросах

2019-04-23 Пенетрантность Vladimir Getmanshchuk
ИМХО, вы не тем занимаетесь, боритесь с XSS на backend + хидер для
браузеров:

# This header enables the Cross-site scripting (XSS) filter built into most
recent web browsers.
# It's usually enabled by default anyway, so the role of this header is to
re-enable the filter for
# this particular website if it was disabled by the user.
# https://www.owasp.org/index.php/List_of_useful_HTTP_headers
add_header X-XSS-Protection "1; mode=block";

On Tue, Apr 23, 2019 at 9:57 AM anatolr  wrote:

> Пытаюсь закрыть выполнение такого вида запросов к сайту
> содержащих специальный символ <   или >
>
> http://www.host.ru/index.php/>
> document.body.style.backgroundImage=url('http://
> .../orig_.jpg')";
>
> делаю с помощью
>
> location ~* ^(.*)(\<)+(.*)$ {
> return 404;
> }
>
> но запрос не перехватывается  код > 3C
>
> пробовал в hex кодe  как-то так (.*)[^\3С]+(.*)
>
> как правильно указать в location такого вида символы?
>
> Прошу помогите пожайлуста как запретить такие строки в nginx?
>
> Posted at Nginx Forum:
> https://forum.nginx.org/read.php?21,283878,283878#msg-283878
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru



-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: underscores_in_headers - баг в документации ?

2019-04-12 Пенетрантность Vladimir Getmanshchuk
Все, теперь понял о чем вы. Действительно неправильная формулировка.

пт, 12 квіт. 2019 о 16:47 Илья Шипицин  пише:

> "Если директива указана на уровне server
> <https://nginx.org/ru/docs/http/ngx_http_core_module.html#server>, её
> значение используется только в том случае, если сервер является сервером по
> умолчанию. Указанное значение распространяется на все виртуальные серверы,
> слушающие на том же адресе и порту."
>
> документация. не поправили
>
> пт, 12 апр. 2019 г. в 18:40, Vladimir Getmanshchuk :
>
>> Не понимаю в чем баг, underscores_in_headers работает в контексте server
>> где она описана.
>>
>> On Wed, Apr 10, 2019 at 2:25 PM Sergey Kandaurov 
>> wrote:
>>
>>>
>>> > On 9 Apr 2019, at 23:31, Илья Шипицин  wrote:
>>> >
>>> > привет!
>>> >
>>> > допустим, у нас своеобразное приложение. с подчеркиванием в хедерах
>>> (не спрашивайте, у меня нет идей, чем заправлялись разработчики)
>>> >
>>> > читаем
>>> >
>>> >
>>> https://nginx.org/ru/docs/http/ngx_http_core_module.html#underscores_in_headers
>>> >
>>> > ок. директиву надо писать в дефолт сервере.
>>> > пишем
>>> >
>>> > log_format underscore '$http_header_underscore\t$status';
>>> >
>>> > server {
>>> > listen   80;
>>> > server_name  localhost;
>>> >
>>> > access_log /var/log/nginx/test.log underscore;
>>> >
>>> > location / {
>>> > proxy_pass http://127.0.0.1:81;
>>> > }
>>> >
>>> > }
>>> >
>>> > server {
>>> > listen   80 default_server;
>>> > server_name  _;
>>> >
>>> > underscores_in_headers on;
>>> >
>>> > location / {   return 404;   }
>>> > }
>>> >
>>> > server {
>>> > listen   81;
>>> > server_name  localhost;
>>> >
>>> > location / {  return 418;   }
>>> >
>>> > }
>>> >
>>> >
>>> >
>>> > можете проверить (я проверял на 1.15.11 без доп модулей) - не работает.
>>> > зато, если добавить в соответствующий сервер - работает.
>>> >
>>> > баг ?
>>>
>>> Нет, изменение поведения: hg.nginx.org/nginx/rev/c4d3310574e0
>>> Видимо, забыли поправить документацию.
>>>
>>> --
>>> Sergey Kandaurov
>>>
>>> ___
>>> nginx-ru mailing list
>>> nginx-ru@nginx.org
>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>
>>
>>
>> --
>> Yours sincerely,
>> Vladimir Getmanshchuk
>> ___
>> 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

-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: underscores_in_headers - баг в документации ?

2019-04-12 Пенетрантность Vladimir Getmanshchuk
Не понимаю в чем баг, underscores_in_headers работает в контексте server
где она описана.

On Wed, Apr 10, 2019 at 2:25 PM Sergey Kandaurov  wrote:

>
> > On 9 Apr 2019, at 23:31, Илья Шипицин  wrote:
> >
> > привет!
> >
> > допустим, у нас своеобразное приложение. с подчеркиванием в хедерах (не
> спрашивайте, у меня нет идей, чем заправлялись разработчики)
> >
> > читаем
> >
> >
> https://nginx.org/ru/docs/http/ngx_http_core_module.html#underscores_in_headers
> >
> > ок. директиву надо писать в дефолт сервере.
> > пишем
> >
> > log_format underscore '$http_header_underscore\t$status';
> >
> > server {
> > listen   80;
> > server_name  localhost;
> >
> > access_log /var/log/nginx/test.log underscore;
> >
> > location / {
> > proxy_pass http://127.0.0.1:81;
> > }
> >
> > }
> >
> > server {
> > listen   80 default_server;
> > server_name  _;
> >
> > underscores_in_headers on;
> >
> > location / {   return 404;   }
> > }
> >
> > server {
> > listen   81;
> > server_name  localhost;
> >
> > location / {  return 418;   }
> >
> > }
> >
> >
> >
> > можете проверить (я проверял на 1.15.11 без доп модулей) - не работает.
> > зато, если добавить в соответствующий сервер - работает.
> >
> > баг ?
>
> Нет, изменение поведения: hg.nginx.org/nginx/rev/c4d3310574e0
> Видимо, забыли поправить документацию.
>
> --
> Sergey Kandaurov
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru



-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: GeoIP

2019-02-11 Пенетрантность Vladimir Getmanshchuk
Работает в проде на нагрузках 1K rps. Проблем нет.

On Mon, Feb 11, 2019 at 9:41 AM Иван  wrote:

> Здравствуйте!
>
> Про конвертацию в формат доступный для 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



-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: GeoIP

2019-02-07 Пенетрантность Vladimir Getmanshchuk
Угу, все в этом треде, используйте вторую версию...

On Thu, Feb 7, 2019 at 10:09 PM Илья Шипицин  wrote:

> я один прозевал новость, что GeoLite всё ? ))
>
> https://support.maxmind.com/geolite-legacy-discontinuation-notice/
>
> чт, 10 янв. 2019 г. в 19:47, Oleg A. Mamontov :
>
>> On Thu, Jan 10, 2019 at 08:53:12AM -0500, kycedbi wrote:
>> >> В данный момент рассматривается вопрос доработки ngx_http_geoip_module
>> >> для поддержки MaxMind GeoIP2, но пока это из области возможных планов
>> >> с неопределенными сроками.
>> >Благодарю за информацию.
>> >А в nginx, случаем, нету программы, с помощью которой можно было бы
>> ускорить
>> >реализацию некоторого функционала за донаты?
>>
>> Нет, программы такого формата у нас не существует, но качественные
>> предложения по дополнению функциональности от сообщества охотно
>> принимаются, подробнее можно прочитать тут:
>> http://nginx.org/ru/docs/contributing_changes.html
>>
>> --
>> Cheers,
>> Oleg A. Mamontov
>>
>> mailto: o...@mamontov.net
>>
>> skype:  lonerr11
>> cell:   +7 (903) 798-1352
>> ___
>> nginx-ru mailing list
>> nginx-ru@nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru



-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: GeoIP

2019-01-05 Пенетрантность Vladimir Getmanshchuk
Всем спасибо за ответы.

Гена, с City скрипт тоже корректно работает?

On Fri, Jan 4, 2019 at 5:58 PM Gena Makhomed  wrote:

> On 04.01.2019 17:12, Vladimir Getmanshchuk wrote:
>
> > Вчера maxmind таки дропнул GeoIP Country файл со своих серверов,
> > в связи с чем хотелось бы разобраться, что вообще происходить с GeoIP и
> > nginx.
> > Разъясните пожалуйста ситуацию.
> >
> > Как я все это вижу:
> > У maxmind была коммерческая GeoIP библиотека данных и программная
> > библиотека для работы с ней,
> > так же была бесплатная, но не очень точная библиотека данных под
> названием
> > GeoLite.
> > Nginx работал с обоими этими либами через ngx_http_geoip_module...
> > Спустя какое то время maxmind выпустил вторую версию коммерческой либы, а
> > так-же бесплатной либы под названием GeoLite2 и отказался от поддержки
> > первой версии,
> > а вчера вообще дропнул файлы со своих серверов.
> >
> > Все ли так?
> > Поддерживает ли ngx_http_geoip_module GeoLite2?
> > Если нет, то планируется ли разработка поддержки?
> > Какие есть альтернативы maxmind и/или этому модулю?
>
> Есть альтернативы модулю ngx_http_geoip_module.
>
> Я просто конвертирую GeoLite2 в формат, который понимает nginx
> с помощью своего скрипта https://github.com/makhomed/nginx-geo
> запускаемого через крон раз в сутки, так что таким образом
> у меня в nginx используется всегда самая свежая база GeoLite2
> через модуль http://nginx.org/en/docs/http/ngx_http_geo_module.html
>
> Встроенный в nginx модуль ngx_http_geo_module не использует никаких
> сторонних библиотек, так что он работает максимально стабильно
> и надежно, при этом использует минимальное количество памяти.
>
> --
> Best regards,
>   Gena
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru



-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

GeoIP

2019-01-04 Пенетрантность Vladimir Getmanshchuk
Добрый день!

Вчера maxmind таки дропнул GeoIP Country файл со своих серверов,
в связи с чем хотелось бы разобраться, что вообще происходить с GeoIP и
nginx.
Разъясните пожалуйста ситуацию.

Как я все это вижу:
У maxmind была коммерческая GeoIP библиотека данных и программная
библиотека для работы с ней,
так же была бесплатная, но не очень точная библиотека данных под названием
GeoLite.
Nginx работал с обоими этими либами через ngx_http_geoip_module...
Спустя какое то время maxmind выпустил вторую версию коммерческой либы, а
так-же бесплатной либы под названием GeoLite2 и отказался от поддержки
первой версии,
а вчера вообще дропнул файлы со своих серверов.

Все ли так?
Поддерживает ли ngx_http_geoip_module GeoLite2?
Если нет, то планируется ли разработка поддержки?
Какие есть альтернативы maxmind и/или этому модулю?

-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: SSL lags

2018-11-29 Пенетрантность Vladimir Getmanshchuk
Ага, спасибо, че-то я сам всем советую, а сам забываю...
Вообщем после TCP handshake 0.1s пауза от curl, а потом только TSLv1.2
Client Hello

On Thu, Nov 29, 2018 at 1:09 PM Илья Шипицин  wrote:

> так срисуйте tcpdump/wireshark
> оно же с раскладкой по времени все пакеты покажет
>
> (в случае https прекрасно видна стадия установки соединения)
>
> чт, 29 нояб. 2018 г. в 15:44, Vladimir Getmanshchuk :
>
>> Очень похоже это какой-то глюк curl(запускаю с той же машины),
>> я тут случайно сделал time wget https://server/object, и вот что получил:
>>
>> WGET
>> real  0m0.004s (http)
>> real  0m0.012s (https)
>> CURL
>> real  0m0.012s (http)
>> real  0m0.139s (https)
>>
>> On Wed, Nov 28, 2018 at 9:09 PM Maxim Dounin  wrote:
>>
>>> Hello!
>>>
>>> On Wed, Nov 28, 2018 at 07:48:54PM +0200, Vladimir Getmanshchuk wrote:
>>>
>>> > Максим, спасибо за ответ!
>>> >
>>> > Сертификат действительно от LetsEncrypt,
>>> > отключение ssl_dhparam не помогло, на подобном сервере тоже с
>>> LetsEncrypt
>>> > тем же curl:
>>> > time_connect: 0.010
>>>
>>> Время time_connect - это время установления TCP-соединения, и в
>>> контексте исходного вопроса не интересно совершенно, в обоих
>>> приведённых в исходном письме примерах оно просто 0.  Сравнивать
>>> имеет смысл time_total.
>>>
>>> > Подскажите куда можно еще глянуть?
>>> > Могу прислать debug или strace или что еще...
>>>
>>> Для начала - как уже было предложено, глянуть в сертификат
>>> ("openssl x509 -text -noout -in /path/to/cert.pem") и посмотреть,
>>> какой алгоритм используется и сколько бит ключ.  Если RSA и больше
>>> 2048 бит - поменять на 2048 бит или ECDSA.
>>>
>>> Если не поможет - имеет смысл снять дамп трафика с помощью
>>> tcpdump'а и посмотреть, где именно тратится время.  Возможно,
>>> из-за чего-то вылезают сетевые проблемы, или проблема вообще на
>>> стороне клиента.
>>>
>>> --
>>> Maxim Dounin
>>> http://mdounin.ru/
>>> ___
>>> nginx-ru mailing list
>>> nginx-ru@nginx.org
>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>
>>
>>
>> --
>> Yours sincerely,
>> Vladimir Getmanshchuk
>> ___
>> 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



-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: SSL lags

2018-11-29 Пенетрантность Vladimir Getmanshchuk
Очень похоже это какой-то глюк curl(запускаю с той же машины),
я тут случайно сделал time wget https://server/object, и вот что получил:

WGET
real  0m0.004s (http)
real  0m0.012s (https)
CURL
real  0m0.012s (http)
real  0m0.139s (https)

On Wed, Nov 28, 2018 at 9:09 PM Maxim Dounin  wrote:

> Hello!
>
> On Wed, Nov 28, 2018 at 07:48:54PM +0200, Vladimir Getmanshchuk wrote:
>
> > Максим, спасибо за ответ!
> >
> > Сертификат действительно от LetsEncrypt,
> > отключение ssl_dhparam не помогло, на подобном сервере тоже с LetsEncrypt
> > тем же curl:
> > time_connect: 0.010
>
> Время time_connect - это время установления TCP-соединения, и в
> контексте исходного вопроса не интересно совершенно, в обоих
> приведённых в исходном письме примерах оно просто 0.  Сравнивать
> имеет смысл time_total.
>
> > Подскажите куда можно еще глянуть?
> > Могу прислать debug или strace или что еще...
>
> Для начала - как уже было предложено, глянуть в сертификат
> ("openssl x509 -text -noout -in /path/to/cert.pem") и посмотреть,
> какой алгоритм используется и сколько бит ключ.  Если RSA и больше
> 2048 бит - поменять на 2048 бит или ECDSA.
>
> Если не поможет - имеет смысл снять дамп трафика с помощью
> tcpdump'а и посмотреть, где именно тратится время.  Возможно,
> из-за чего-то вылезают сетевые проблемы, или проблема вообще на
> стороне клиента.
>
> --
> Maxim Dounin
> http://mdounin.ru/
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru



-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: SSL lags

2018-11-28 Пенетрантность Vladimir Getmanshchuk
Максим, спасибо за ответ!

Сертификат действительно от LetsEncrypt,
отключение ssl_dhparam не помогло, на подобном сервере тоже с LetsEncrypt
тем же curl:
time_connect: 0.010

Подскажите куда можно еще глянуть?
Могу прислать debug или strace или что еще...

On Wed, Nov 28, 2018 at 7:07 PM Maxim Dounin  wrote:

> Hello!
>
> On Wed, Nov 28, 2018 at 06:20:12PM +0200, Vladimir Getmanshchuk wrote:
>
> > Странная ситуация с SSL - жуткий лаг на отдаче:
> >
> >
> > # curl -w "time_connect: %{time_connect}\ntime_total: %{time_total}\n" -X
> > GET -s -q http://1.1.1.1/google663dfea033864f54.html -o /dev/null
> >
> > time_connect: 0.000
> >
> > time_total: 0.001
> >
> >
> > # curl -w "time_connect: %{time_connect}\ntime_total: %{time_total}\n" -X
> > GET -s -q https://1.1.1.1/google663dfea033864f54.html --insecure -o
> > /dev/null
> >
> > time_connect: 0.000
> >
> > time_total: *0.106*
>
> В SSL есть операция SSL handshake, и в зависимости от используемых
> шифров и сертификатов - она может занимать как просто много
> времени, так и очень много времени.  (Ну и поскольку curl между
> запусками не может сохранять ранее установленную сессию - каждый
> запуск будет требовать полного handshake'а.)
>
> В частности, если вдруг используется обмен ключами с помощью
> алгоритма Диффи-Хеллмана - будет тормозить.  Особенно если задать
> параметры где-нибудь на 4096 бит.  Смотрите внимательно, что
> именно за шифры у вас используются, и если DHE - то что именно у
> вас лежит в ssl_dhparam.  Ну или просто уберите ssl_dhparam из
> конфига - по умолчанию nginx просто не будет использовать DHE.
>
> Кроме того, будет тормозить, если используются RSA-сертификаты
> больше 2048 бит.  Смотрите, что за сертификат используется.
> RSA-сертификаты на 4096 бит - зачастую по умолчанию прилетают из
> модных и молодёжных инструментов получения сертификатов от
> LetsEncrypt, но малопригодны для работы web-сервера.
>
> --
> Maxim Dounin
> http://mdounin.ru/
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru



-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

SSL lags

2018-11-28 Пенетрантность Vladimir Getmanshchuk
Странная ситуация с SSL - жуткий лаг на отдаче:


# curl -w "time_connect: %{time_connect}\ntime_total: %{time_total}\n" -X
GET -s -q http://1.1.1.1/google663dfea033864f54.html -o /dev/null

time_connect: 0.000

time_total: 0.001


# curl -w "time_connect: %{time_connect}\ntime_total: %{time_total}\n" -X
GET -s -q https://1.1.1.1/google663dfea033864f54.html --insecure -o
/dev/null

time_connect: 0.000

time_total: *0.106*


# nginx -V

nginx version: nginx/1.14.1

built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9)

built with OpenSSL 1.0.2g  1 Mar 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,-Bsymbolic-functions
-Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'


# cat /etc/nginx/conf.d/ssl.conf

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_prefer_server_ciphers on;

ssl_dhparam /etc/nginx/ssl/dhparam.pem;

ssl_ciphers
'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';

ssl_session_timeout 1d;

ssl_session_cache shared:SSL:1024m;

ssl_stapling on;

    ssl_stapling_verify on;


-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Как заставить Nginx отдавать error 521?

2017-12-15 Пенетрантность Vladimir Getmanshchuk
так 523 или 521?

я бы сделал
location @return52x {
  return 521;
}

а потом как то туда передавать управления.. не знаю как..

2017-12-15 16:47 GMT+02:00 Ilya Evseev :

> Есть Nginx-frontend, он может вернуть Error 502 "Bad Gateway", если backend
> недоступен.
> Есть Nginx-backend, он тоже может вернуть Error 502.
>
> Как научить Nginx-frontend возвращать в случае недоступности backend'a не
> 502, а 523 "Origin is unreachable"?
>
> Posted at Nginx Forum: https://forum.nginx.org/read.
> php?21,277785,277785#msg-277785
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru




-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Массированный rewrite или map ?

2017-06-05 Пенетрантность Vladimir Getmanshchuk
На бэкенде дорого, это форки и tcp оверхед, плюс наверно нагрузка на базу..

Я бы оставил map

вт, 30 трав. 2017 о 18:15 Konstantin Tokarev  пише:

>
>
> 30.05.2017, 17:53, "Dee Dee" :
> > Добрый день всем.
> >
> > У меня возникла проблема на, казалось бы, простой задаче. У меня есть
> > порядка 300 штук редиректов в разделе блог вида:
> >
> > /blog?page=post&blog=blog_EN&id=298
> > /blog/topic1-theme-for-russian-speakers/
> > /blog?page=post&blog=blog_RU&id=300 /blog/webinar-new-staff/
> >
> > Как я понимаю, тут location это "blog" а далее пошли уже $args.
> > У меня получилось сделать это через map вида:
> >
> > map $args $link {
> > "blog?page=post&blog=blog_EN&id=300" "/blog/webinar-new-staff/";
> >  
> > default "/blog/";
> > }
> >
> > и
> >
> > if ($args) {
> > return 301 $scheme://$host$link;
> > }
> >
> > Всё работает. Но map из трёхсот записей кажется мне громоздким.
> > Есть ли какие-либо варианты решения задачи, которые более элегантны, чем
> мой
> > ?
>
> В бэкэнде это делать
>
> >
> > Заранее большое спасибо!
> >
> > Posted at Nginx Forum:
> https://forum.nginx.org/read.php?21,274512,274512#msg-274512
> >
> > ___
> > nginx-ru mailing list
> > nginx-ru@nginx.org
> > http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
> --
> Regards,
> Konstantin
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru

-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Проксирование HTTPS + авторизация на бэкэенде по ключам

2017-05-29 Пенетрантность Vladimir Getmanshchuk
Авторизируйте клиента на фронте и просто передавайте переменные удачной/не
удачной авторизации на бэк, а там уже или 403 или "здрасьте заходите",
опшинал только верификацию настройте..

пн, 29 трав. 2017 о 17:43 RomkaV  пише:

> Доброго времени суток!
> На фронтэнде установление сертификат компании, на бэкэнде организована
> авторизация клиентов по ключам.  Есть задача: надо сделать локейшн на
> фронтэнде, который проксируется на бэкэнд, опять же надо, чтоб клиентский
> сертификат попал на бэкенд.  На текущий момент зашел в тупик - сертификат
> клиента не попадает на бэкэнд через фронтэнд.
> Возможно ли такое реализовать?
>
> # Frontend
> server {
> listen 127.0.0.1:443 ssl default_server;
>
> ssl on;
> ssl_certificate /etc/nginx/ssl/server.crt;
> ssl_certificate_key /etc/nginx/ssl/server.key;
> ssl_client_certificate /etc/nginx/ssl/ca.crt;
> ssl_crl /etc/nginx/ssl/revoked/crl.pem;
> ssl_verify_client on;
>
> root /var/www/;
> index index.html index.htm ;
>
> }
>
> #Backend
> server {
> listen  127.0.0.1:8443;
>
> ssl on;
> ssl_certificate /etc/nginx/company_ssl/ssl.company.com.crt;
> ssl_certificate_key /etc/nginx/company_ssl/ssl.company.com.key;
>
> root /var/www2/;
>
>
> location / {
> proxy_pass https://127.0.0.1:443;
> proxy_set_header X-SSL-CLIENT-CERT $ssl_client_cert;
> proxy_set_header X-SSL-ClIENT-S-DN   $ssl_client_s_dn;
> proxy_set_header X-CLIENT-VERIFY $ssl_client_verify;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_set_header X-Forwarded-Proto https;
> proxy_redirect off;
> }
> }
>
> Posted at Nginx Forum:
> https://forum.nginx.org/read.php?21,274494,274494#msg-274494
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru

-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: nginx-1.12.0

2017-05-16 Пенетрантность Vladimir Getmanshchuk
Добрый день!

$variable_name - выдуманная конечно, реально $http_request_id и $request_id

2017-05-15 18:21 GMT+03:00 Maxim Dounin :

> Hello!
>
> On Sun, May 14, 2017 at 10:38:13PM +0300, Vladimir Getmanshchuk wrote:
>
> > Добрый вечер!
> >
> > После обновления на 1.12 в конфиге:
> > map $http_variable_name $variable_name {
> > ...
> > }
> >
> > ругается:
> > nginx: [emerg] the duplicate "variable_name" variable
>
> Судя по сообщению, вы пытаетесь переопределить встроенную
> переменную.
>
> В nginx'е нет переменной с именем $variable_name, так что если
> данное имя переменной настоящее - то посмотрите на список
> используемых сторонних модулей, возможно проблема там.
>
> Или же нужен полный (минимальный) конфиг, на котором
> воспроизводится проблема.
>
> --
> Maxim Dounin
> http://nginx.org/
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>



-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: nginx-1.12.0

2017-05-14 Пенетрантность Vladimir Getmanshchuk
Добрый вечер!

После обновления на 1.12 в конфиге:
map $http_variable_name $variable_name {
...
}

ругается:
nginx: [emerg] the duplicate "variable_name" variable

debian jessie

2017-04-12 18:19 GMT+03:00 Maxim Dounin :

> Изменения в nginx 1.12.0
> 12.04.2017
>
> *) Стабильная ветка 1.12.x.
>
>
> --
> Maxim Dounin
> http://nginx.org/
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru




-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: proxy_set_header и наследие

2017-03-24 Пенетрантность Vladimir Getmanshchuk
Hi

В случае конкретно заголовка Host - nginx испольузет первое из
> полученных значений.  Это поведение, впрочем, историческое, и
> стоит подумать о том, чтобы возвращать в подобных случаях 400, т.к.
> синтаксис заголовка Host нескольких значений не допускает, и
> свежий RFC 7230 явно требует именно 400 в случае нескольких
> заголовков Host.
>
>
Может следует делать ресет в proxy_set_header для хедера Host,
что бы избежать 400, когда несколько NGINX в каскаде? :)

-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: proxy_set_header и наследие

2017-03-24 Пенетрантность Vladimir Getmanshchuk
Hi!

2017-03-23 19:00 GMT+02:00 Maxim Dounin :

> Hello!
>

Спасибо за скорый и развернутый ответ.


> Документация о таком поведение - явно говорит,
> http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_set_header:
>
> : Директивы наследуются с предыдущего уровня при условии, что на
> : данном уровне не описаны свои директивы proxy_set_header.
>
> Не стоит удивляться такому поведению.  Вместо этого - стоит его
> понять и пользоваться преимуществами.
>

Читал.


>
> > 2) Если делаешь proxy_set_header дважды (иногда пересекается из-за
> > include), то получаешь два хедера в HTTP запросе(от чего некоторые
> backends
> > сходят с ума, когда видят два хедера Host(например).
> > Почему не брать значение из последнего proxy_set_header?
>
> В HTTP вполне допустимо использование нескольких одинаковых
> заголовков, более того - явно специфицировано, когда можно, а
> когда - нельзя, и как трактовать.  И во многих случаях это
> используется.
>
> Было бы странно ограничивать людей в том, что они могут написать в
> конфиге, причём совсем не так, как специфицирует используемый
> протокол.
>

А какое из значений двух хедеров "Host" будет использовать NGINX для
определения server_name?


>
> > Поймите правильно, не хочется писать proxy_set_header в каждом (вложенном
> > тоже?) локейшене, а использовать наследие.
>
> Не пишите, кто же вас заставляет.
>
> В случае правильно и грамотно написанной конфигурации - обычно
> хватает одного набора директив proxy_set_header на уровне http,
> возможно - с отдельными вкраплениями "специальных" наборов.
>

Так и есть, но у меня меняется хедер Host на некоторых locations,
что-бы отправить "сквозной" запрос на нужный мне микросервис внутри бэкэнда,
без использования "прослойки"..


> Если очень нужно вносить локальные изменения в конкретных
> location'ах - можно использовать директиву include с неким базовым
> набором, дополняя его по необходимости.  Но если вы регулярно
> сталкиваетесь с подобной проблемой - скорее всего вы что-то
> делаете не так.
>

Так и решил, но выглядет не очень кошерно...

-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

proxy_set_header и наследие

2017-03-23 Пенетрантность Vladimir Getmanshchuk
Доброе время суток!

С этим proxy_set_header какой-то АД:

1) Почему proxy_set_header дикректива уровнем ниже перетирает ВСЕ
proxy_set_header уровнем выше, а не только тот хедер который ресетишь?

2) Если делаешь proxy_set_header дважды (иногда пересекается из-за
include), то получаешь два хедера в HTTP запросе(от чего некоторые backends
сходят с ума, когда видят два хедера Host(например).
Почему не брать значение из последнего proxy_set_header?

Поймите правильно, не хочется писать proxy_set_header в каждом (вложенном
тоже?) локейшене, а использовать наследие.

Спасибо за внимание, извините за непонимание :)

-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: nginx cache issue

2016-11-06 Пенетрантность Vladimir Getmanshchuk
Отбой :)

On Sun, Nov 6, 2016 at 7:27 PM, Vladimir Getmanshchuk 
wrote:

> Добрый вечер, тут какой то ад, не работает кеш, уже более часа потратил:
>
> *# *nginx -V
>
> nginx version: nginx/1.10.0 (Ubuntu)
>
> built with OpenSSL 1.0.2g  1 Mar 2016
>
> TLS SNI support enabled
>
> configure arguments: --with-cc-opt='-g -O2 -fPIE -fstack-protector-strong
> -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2'
> --with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro
> -Wl,-z,now' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf
> --http-log-path=/var/log/nginx/access.log 
> --error-log-path=/var/log/nginx/error.log
> --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid
> --http-client-body-temp-path=/var/lib/nginx/body
> --http-fastcgi-temp-path=/var/lib/nginx/fastcgi
> --http-proxy-temp-path=/var/lib/nginx/proxy 
> --http-scgi-temp-path=/var/lib/nginx/scgi
> --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit
> --with-ipv6 --with-http_ssl_module --with-http_stub_status_module
> --with-http_realip_module --with-http_auth_request_module
> --with-http_addition_module --with-http_dav_module --with-http_geoip_module
> --with-http_gunzip_module --with-http_gzip_static_module
> --with-http_image_filter_module --with-http_v2_module
> --with-http_sub_module --with-http_xslt_module --with-stream
> --with-stream_ssl_module --with-mail --with-mail_ssl_module --with-threads
>
>
> *# *grep catalog  /etc/nginx/conf.d/proxy.conf
>
> proxy_cache_path /dev/shm/nginx_cache_*catalog*_microservice levels=1:2
> keys_zone=*catalog*_microservice:500m inactive=30d max_size=1G;
>
>
> из vhost:
>
>
> location /v2/categories/parents/ {
>
>   access_log  /var/log/nginx/access_monitoring.log monitoring
> buffer=16k;
>
>   proxy_cache catalog_microservice;
>
>   proxy_cache_key "$request_method$host$request_uri";
>
>   proxy_ignore_headers "Cache-Control" "Expires";
>
>   proxy_cache_valid 200 10m;
>
>   proxy_pass http://app-backend;
>
> }
>
>
>
> *# *curl -XGET -I http://catalog.my.site/v2/categories/parents/1164?
> country_id=8
>
> HTTP/1.1 200 OK
>
> Server: nginx/1.10.0 (Ubuntu)
>
> Date: Sun, 06 Nov 2016 17:25:19 GMT
>
> Content-Type: application/json; charset=UTF-8
>
> Content-Length: 710
>
> Connection: keep-alive
>
> Access-Control-Allow-Origin: *
>
> Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
>
> Access-Control-Allow-Headers: Content-Type, Authorization
>
> *# *find /dev/shm/nginx_cache_catalog_microservice/  -type f | wc -l
>
> 0
>
>
>
> --
> Yours sincerely,
> Vladimir Getmanshchuk
>



-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

nginx cache issue

2016-11-06 Пенетрантность Vladimir Getmanshchuk
Добрый вечер, тут какой то ад, не работает кеш, уже более часа потратил:

*# *nginx -V

nginx version: nginx/1.10.0 (Ubuntu)

built with OpenSSL 1.0.2g  1 Mar 2016

TLS SNI support enabled

configure arguments: --with-cc-opt='-g -O2 -fPIE -fstack-protector-strong
-Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2'
--with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now'
--prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf
--http-log-path=/var/log/nginx/access.log
--error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock
--pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi
--http-proxy-temp-path=/var/lib/nginx/proxy
--http-scgi-temp-path=/var/lib/nginx/scgi
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit
--with-ipv6 --with-http_ssl_module --with-http_stub_status_module
--with-http_realip_module --with-http_auth_request_module
--with-http_addition_module --with-http_dav_module --with-http_geoip_module
--with-http_gunzip_module --with-http_gzip_static_module
--with-http_image_filter_module --with-http_v2_module
--with-http_sub_module --with-http_xslt_module --with-stream
--with-stream_ssl_module --with-mail --with-mail_ssl_module --with-threads


*# *grep catalog  /etc/nginx/conf.d/proxy.conf

proxy_cache_path /dev/shm/nginx_cache_*catalog*_microservice levels=1:2
keys_zone=*catalog*_microservice:500m inactive=30d max_size=1G;


из vhost:


location /v2/categories/parents/ {

  access_log  /var/log/nginx/access_monitoring.log monitoring
buffer=16k;

  proxy_cache catalog_microservice;

  proxy_cache_key "$request_method$host$request_uri";

  proxy_ignore_headers "Cache-Control" "Expires";

  proxy_cache_valid 200 10m;

  proxy_pass http://app-backend;

}



*# *curl -XGET -I
http://catalog.my.site/v2/categories/parents/1164?country_id=8

HTTP/1.1 200 OK

Server: nginx/1.10.0 (Ubuntu)

Date: Sun, 06 Nov 2016 17:25:19 GMT

Content-Type: application/json; charset=UTF-8

Content-Length: 710

Connection: keep-alive

Access-Control-Allow-Origin: *

Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS

Access-Control-Allow-Headers: Content-Type, Authorization

*# *find /dev/shm/nginx_cache_catalog_microservice/  -type f | wc -l

0



-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

CVE-2015-0235 - GHOST

2015-01-28 Пенетрантность Vladimir Getmanshchuk
JFYI

Here is a list of potential targets that we investigated (they all call

*gethostbyname*, one way or another), but to the best of our knowledge,

the buffer overflow cannot be triggered in any of them:


apache, cups, dovecot, gnupg, isc-dhcp, lighttpd, mariadb/mysql,

nfs-utils, *nginx*, nodejs, openldap, openssh, postfix, proftpd,

pure-ftpd, rsyslog, samba, sendmail, sysklogd, syslog-ng, tcp_wrappers,

vsftpd, xinetd.




http://seclists.org/oss-sec/2015/q1/283


-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Как настроить 301й редирект на nginx

2014-12-21 Пенетрантность Vladimir Getmanshchuk
как то так, если я не ошибся в регулярке:

location ~* shopby {
rewrite ^/(.*)/shopby/.*\.html$ /$1.html permanent;
}

но уверен есть способы поизящнее...

On Sun, Dec 21, 2014 at 3:20 PM, Gavich  wrote:

> Нужно сделать редирект с страниц вида
> /цифры_буквы_дефис_1/shopby/цифры_буквы_дефис_2.html
> на /цифры_буквы_дефис_1.html.
> Например с
> /196-vse-dlja-zhenschin/shopby/sisley-rimowa-ianis_chamalidy.html
> на 196-vse-dlja-zhenschin.html
> Как изменить конфиг сайта?
>
> Сейчас настройки сайта такие:
>
> server {
> server_name moda-spb.ru www.moda-spb.ru;
> listen 176.9.36.66;
> root /var/www/moda-spb.ru;
> index index.php;
>
> location / {
> index index.html index.php;
> try_files $uri $uri/ @handler;
> expires 30d;
> }
>
> location ^~
> /(app|includes|lib|media/downloadable|pkginfo|report/config.xml|var)/ {
> internal; }
> location /var/export/ { internal; }
> location /. { return 404; }
> location @handler { rewrite / /index.php; }
> location ~* .php/ { rewrite ^(.*.php)/ $1 last; }
> location ~* .php$ {
> if (!-e $request_filename) { rewrite / /index.php last; }
> expires off;
> fastcgi_pass php-fpm;
> fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
> fastcgi_param MAGE_RUN_CODE default;
> fastcgi_param MAGE_RUN_TYPE store;
> include fastcgi_params;
> }
> }
>
> Posted at Nginx Forum:
> http://forum.nginx.org/read.php?21,255708,255708#msg-255708
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru




-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: ошибка 400 request header or cookie too large

2013-09-19 Пенетрантность Vladimir Getmanshchuk
Добрый день!

Все просто: http://wiki.nginx.org/HttpCoreModule#large_client_header_buffers


2013/9/19 Дмитрий Бехтерев 

> Добрый день!
> Ошибку 400 Bad request (request header or cookie too large) выдает
> nginx, стоящий на фронт-енде (на бэк-енде апач). Ошибка плавающая, может
> быть при посещениях разных ссылок с разных браузеров.
> Жалуются клиенты региональные. В Москве ни у кого, в т.ч. у себя отловить
> не смог.
>  Подскажите, куда копать. Можно ли как-то включить лог таких ошибок.
> Спасибо.
>
> __**_
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/**mailman/listinfo/nginx-ru<http://mailman.nginx.org/mailman/listinfo/nginx-ru>




-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: true 414 status code

2013-09-06 Пенетрантность Vladimir Getmanshchuk
Спасибо починилось.
Пусть тут полежит:

--- src/http/ngx_http_header_filter_module.c.orig 2013-05-13
10:43:28.0 +
+++ src/http/ngx_http_header_filter_module.c 2013-09-05 14:37:15.011369647
+
@@ -92,10 +92,7 @@
 ngx_string("411 Length Required"),
 ngx_string("412 Precondition Failed"),
 ngx_string("413 Request Entity Too Large"),
-ngx_null_string,  /* "414 Request-URI Too Large", but we never send it
-   * because we treat such requests as the HTTP/0.9
-   * requests and send only a body without a header
-   */
+ngx_string("414 Request-URI Too Large"),
 ngx_string("415 Unsupported Media Type"),
 ngx_string("416 Requested Range Not Satisfiable"),

@@ -270,6 +267,12 @@
 len += NGX_INT_T_LEN;
 status_line = NULL;
 }
+
+if (status_line && status_line->len == 0) {
+status = r->headers_out.status;
+len += NGX_INT_T_LEN;
+status_line = NULL;
+}
 }

 clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);


On Wed, Sep 4, 2013 at 1:51 PM, Валентин Бартенев  wrote:

> On Wednesday 04 September 2013 13:54:18 Vladimir Getmanshchuk wrote:
> > Даже идиотизм типа:
> >
> > error_page 414 =414 @414;
> >
> > location @414 {
> >   return 414;
> > }
> > не дал результат - получаю 200
> >
> > 2013/09/04 09:40:10 [info] 5564#0: *45 client sent too long URI while
> > reading client request line, client: 123.123.123.123, server:
> > host.example.com, request: "GET
> >
> /file.php?qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasd
> >
> fghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiop
> >
> asdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyu
> >
> iopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwer
> >
> tyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmq
> >
> wertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvb
> >
> nmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzx
> >
> cvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjk
> >
> lzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfg
> >
> hjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopas
> >
> dfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuio
> >
> pasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwerty
> >
> uiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwe
> >
> rtyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnm
> >
> qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcv
> >
> bnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklz
> >
> xcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghj
> >
> klzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdf
> >
> ghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopa
> >
> sdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyui
> >
> opasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwert
> >
> yuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqw
> >
> ertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbn
> >
> mqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxc
> > vbnmqwertyuiopasdfghjklzxcvbnmqwer 2013/09/04 09:40:10 [debug] 5564#0:
> *45
> > http finalize request: 414, "?" a:1, c:1
> > 2013/09/04 09:40:10 [debug] 5564#0: *45 event timer del: 15:
> 1378287669763
> > 2013/09/04 09:40:10 [debug] 5564#0: *45 http special response: 414, "?"
> > 2013/09/04 09:40:10 [debug] 5564#0: *45 test location: "@414"
> > 2013/09/04 09:40:10 [debug] 5564#0: *45 using location: @414 "?"
> > 2013/09/04 09:40:10 [debug] 5564#0: *45 rewrite phase: 3
> > 2013/09/04 09:40:10 [debug] 5564#0: *45 http finalize request: 414, "?"
> > a:1, c:2
> > 2013/09/04 09:40:10 [debug] 5564#0: *45 http special response: 414, "?"
> > 2013/09/04 09:40:10 [debug] 5564#0: *45 http set discard body
> > 2013/09/04 09:40:10 [debug] 5564#0: *45 xslt filter header
> > 2013/09/04 09:40:10 [debug] 5564#0: *45 HTTP/1.1
> > Server: nginx/1.2.9
> > Date: Wed, 04 Sep 2013 09:40:10 GMT
>

Re: true 414 status code

2013-09-04 Пенетрантность Vladimir Getmanshchuk
Даже идиотизм типа:

error_page 414 =414 @414;

location @414 {
  return 414;
}
не дал результат - получаю 200

2013/09/04 09:40:10 [info] 5564#0: *45 client sent too long URI while
reading client request line, client: 123.123.123.123, server:
host.example.com, request: "GET
/file.php?qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwer
2013/09/04 09:40:10 [debug] 5564#0: *45 http finalize request: 414, "?"
a:1, c:1
2013/09/04 09:40:10 [debug] 5564#0: *45 event timer del: 15: 1378287669763
2013/09/04 09:40:10 [debug] 5564#0: *45 http special response: 414, "?"
2013/09/04 09:40:10 [debug] 5564#0: *45 test location: "@414"
2013/09/04 09:40:10 [debug] 5564#0: *45 using location: @414 "?"
2013/09/04 09:40:10 [debug] 5564#0: *45 rewrite phase: 3
2013/09/04 09:40:10 [debug] 5564#0: *45 http finalize request: 414, "?"
a:1, c:2
2013/09/04 09:40:10 [debug] 5564#0: *45 http special response: 414, "?"
2013/09/04 09:40:10 [debug] 5564#0: *45 http set discard body
2013/09/04 09:40:10 [debug] 5564#0: *45 xslt filter header
2013/09/04 09:40:10 [debug] 5564#0: *45 HTTP/1.1
Server: nginx/1.2.9
Date: Wed, 04 Sep 2013 09:40:10 GMT
Content-Type: text/html
Content-Length: 192
Connection: close



2013/9/3 Vladimir Getmanshchuk 

> Все одно получаю 200й код.
>
>
> 2013/9/2 Валентин Бартенев 
>
>> On Monday 02 September 2013 16:58:05 Vladimir Getmanshchuk wrote:
>> > Здорово!
>> >
>> > Но не повлияет ли это на производительность?
>> >
>> > Спасибо!
>> >
>>
>> Не повлияет.
>>
>> --
>> Валентин Бартенев
>> http://nginx.org/en/donation.html
>> ___
>> nginx-ru mailing list
>> nginx-ru@nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>
>
>
>
> --
> Yours sincerely,
> Vladimir Getmanshchuk
>



-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: true 414 status code

2013-09-03 Пенетрантность Vladimir Getmanshchuk
Все одно получаю 200й код.


2013/9/2 Валентин Бартенев 

> On Monday 02 September 2013 16:58:05 Vladimir Getmanshchuk wrote:
> > Здорово!
> >
> > Но не повлияет ли это на производительность?
> >
> > Спасибо!
> >
>
> Не повлияет.
>
> --
> Валентин Бартенев
> http://nginx.org/en/donation.html
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>



-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: true 414 status code

2013-09-02 Пенетрантность Vladimir Getmanshchuk
Здорово!

Но не повлияет ли это на производительность?

Спасибо!


2013/9/2 Gena Makhomed 

> On 02.09.2013 7:00, Валентин Бартенев wrote:
>
> > JFYI, 
> > http://hg.nginx.org/nginx/rev/**62be77b0608f<http://hg.nginx.org/nginx/rev/62be77b0608f>
>
> спасибо, теперь nginx стал еще лучше и удобнее.
>
> --
> Best regards,
>  Gena
>
>
> __**_
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/**mailman/listinfo/nginx-ru<http://mailman.nginx.org/mailman/listinfo/nginx-ru>
>



-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: true 414 status code

2013-09-01 Пенетрантность Vladimir Getmanshchuk
Амм... Спасибо за скорость и лаконичность.

Судя по http://www.w3.org/Protocols/HTTP/HTRESP.html, в HTTP/0.9 тоже есть
status codes, или я что то недопонимаю?
Да! И еще, в "аутпуте" curl, nginx отвечает "HTTP/1.1 200 OK"




2013/8/31 Валентин Бартенев 

> On Sunday 01 September 2013 00:32:16 Vladimir Getmanshchuk wrote:
> > Здравствуйте!
> >
> > Подскажите пожалуйста, а как без "грязных хаков" получить от nginx, 414
> > status code, на запросы, размер которых, превышает large_client_header_
> > buffers?
> >
> > Постоянно получаю 200 http status code и нижеприведенное в body:
> >
> > 
> > 414 Request-URI Too Large
> > 
> > 414 Request-URI Too Large
> > nginx/1.2.9
> > 
> > 
>
> Это не "200 http status code", а HTTP/0.9 ответ с ошибкой.
>
> --
> Валентин Бартенев
> http://nginx.org/en/donation.html
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru




-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

true 414 status code

2013-08-31 Пенетрантность Vladimir Getmanshchuk
Здравствуйте!

Подскажите пожалуйста, а как без "грязных хаков" получить от nginx, 414
status code, на запросы, размер которых, превышает large_client_header_
buffers?

Постоянно получаю 200 http status code и нижеприведенное в body:


414 Request-URI Too Large

414 Request-URI Too Large
nginx/1.2.9




-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

limit request and real ip

2013-06-19 Пенетрантность Vladimir Getmanshchuk
Добрый день!

1. Допустим дано:
http {
...

set_real_ip_from 10.0.0.0/8;
real_ip_header X-Forwarded-For;

limit_req_zone  $binary_remote_addr  zone=one:10m   rate=1r/s;
...
}
значит ли это что у меня в $binary_remote_addr будет реальный ip клиента?
или все же ip будет из сети 10.0.0.0/8 ?

2. Если все же второе, то верно ли что мне следует описывать зону как
описанно ниже?
http {
...

limit_req_zone  $http_x_forwarded_for  zone=one:10m   rate=1r/s;
...
}

Спасибо!

-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru