udp support

2013-09-02 Пенетрантность Vadim A. Misbakh-Soloviov
Всем привет! :)
Я тут немного поковырялся в /etc/services и в
/usr/share/nmap/nmap-services и обнаружил, что есть такая штука, как

8008/tcp http-alt
8008/udp http-alt

В связи с этим стало интересно: в NgX нет (?) поддержки UDP по каким-то
причинам, или просто потому что не было нужды? :)



signature.asc
Description: OpenPGP digital signature
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Неправильные (огромные) значения $request time для FastCGI-запросов

2013-09-02 Пенетрантность Alex Domoradov
 Я даже и не знаю, что вам сказать
русская халява - она такая

2013/9/2 Maxim Dounin mdou...@mdounin.ru:
 Hello!

 On Sat, Aug 31, 2013 at 04:50:28PM -0400, sofiamay wrote:

 А что, за год баг так и не исправили? Разрабы даже не удосужились здесь
 отписаться? Баг хотябы в багтрекере висит?
 Подтверждаю, у меня тоже $request_time выдаёт бред:

 240648971536.2381542
 240648971536.2381542
 240648971536.2381542
 240648971536.2381542
 240648971536.2381542

 Одно и то же для многих запросов подряд, потом опять на другой бред меняет!
 Когда это исправят? Зачем в Nginx сделана переменная $request_time если она
 показывает всякий бред, мне думается её нужно убрать, а через несколько лет,
 когда разрабы соизволят исправить баг, вернуть. Пока же от неё больше вреда
 чем пользы.

 P.S. Использую Windows и PHP как FastCGI.

 Я даже и не знаю, что вам сказать.  Привыкайте - это open source.
 Тут вам никто ничего не должен, и править вылезающие у вас баги -
 вам.  Надеяться, что кто-то придёт, и за вас исправит, тем более
 на Windows - по меньшей мере наивно.

 Впрочем, патч:

 diff -r 683283f8b5fd src/http/modules/ngx_http_log_module.c
 --- a/src/http/modules/ngx_http_log_module.cThu Aug 29 20:39:13 2013 +0400
 +++ b/src/http/modules/ngx_http_log_module.cMon Sep 02 04:38:34 2013 +0400
 @@ -780,7 +780,7 @@ ngx_http_log_request_time(ngx_http_reque
   ((tp-sec - r-start_sec) * 1000 + (tp-msec - r-start_msec));
  ms = ngx_max(ms, 0);

 -return ngx_sprintf(buf, %T.%03M, ms / 1000, ms % 1000);
 +return ngx_sprintf(buf, %T.%03M, (time_t) ms / 1000, ms % 1000);
  }


 diff -r 683283f8b5fd src/http/ngx_http_variables.c
 --- a/src/http/ngx_http_variables.c Thu Aug 29 20:39:13 2013 +0400
 +++ b/src/http/ngx_http_variables.c Mon Sep 02 04:38:34 2013 +0400
 @@ -1992,7 +1992,7 @@ ngx_http_variable_request_time(ngx_http_
   ((tp-sec - r-start_sec) * 1000 + (tp-msec - r-start_msec));
  ms = ngx_max(ms, 0);

 -v-len = ngx_sprintf(p, %T.%03M, ms / 1000, ms % 1000) - p;
 +v-len = ngx_sprintf(p, %T.%03M, (time_t) ms / 1000, ms % 1000) - p;
  v-valid = 1;
  v-no_cacheable = 0;
  v-not_found = 0;

 --
 Maxim Dounin
 http://nginx.org/en/donation.html

 ___
 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-ru Digest, Vol 47, Issue 4

2013-09-02 Пенетрантность Андрей Середенко
В таком случае, если отрабатывает только последний из if'ов - то в данной
конфигурации:

 location ~* /test/url/Page.asmx {
proxy_pass http://test_upstream;
proxy_redirect off;
proxy_set_header   Host $host;
proxy_set_header   Remote-Addr  $remote_addr;
proxy_set_header   X-Real-IP$remote_addr;
proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
proxy_set_header   X-Public-Url http://$host$request_uri;
...
some other proxy options
...
#
set $my_ipsrc 0;
# allow 10.10.1.75/32;
if ($remote_addr = 10.10.1.75) { set $my_ipsrc 1; }
# allow 10.20.1.20/32;
if ($remote_addr = 10.20.1.20) { set $my_ipsrc 1; }
# allow 10.20.1.21/32;
if ($remote_addr = 10.20.1.21) { set $my_ipsrc 1; }
# allow 10.100.1.0/24;
if ($remote_addr = 10.100.1.0/24) { set $my_ipsrc 1; }
# allow 178.111.122.133/32;
if ($remote_addr = 178.111.122.133) { set $my_ipsrc 1; }
# deny all;
if ($my_ipsrc = 0) { return 500; }
   }

всем, кроме последнего адреса, должно возвращаться 500 ?
или лыжи не едут? :)


2 сентября 2013 г., 4:16 пользователь nginx-ru-requ...@nginx.org написал:

 Сообщения, предназначенные для списка рассылки nginx-ru, необходимо
 отправлять по адресу
 nginx-ru@nginx.org

 Для изменения параметров подписки вы можеже использовать веб-страницу
 http://mailman.nginx.org/mailman/listinfo/nginx-ru

 Для получения информации о том, как пользовать почтовым интерфейсом,
 отправьте письмо, в теле или теме которого будет слово 'help', по
 адресу:
 nginx-ru-requ...@nginx.org

 Адрес человека, ответственного за этот список рассылки:
 nginx-ru-ow...@nginx.org

 При ответе, пожалуйста, измение тему письма так, чтобы она была более
 содержательной чем Re: Содержание дайджеста списка рассылки
 nginx-ru...

 Today's Topics:

1. Re: true 414 status code (Vladimir Getmanshchuk)
2. Re: 400 Bad Request 1.5.4 (1.5.3 = OK) (locojohn)
3. Re: If is Evil (Daniel Podolsky)
4. Re: true 414 status code (Валентин Бартенев)
5. Re: true 414 status code (Валентин Бартенев)
6. Re: If is Evil (Maxim Dounin)
7. Re: If is Evil (Васильев Zmey! Олег)
8. Re: Неправильные (огромные) значения $request time для
   FastCGI-запросов (Maxim Dounin)


 -- Пересылаемое сообщение --
 From: Vladimir Getmanshchuk vlad...@gmail.com
 To: nginx-ru@nginx.org
 Cc:
 Date: Sun, 1 Sep 2013 23:33:57 +0300
 Subject: Re: true 414 status code
 Амм... Спасибо за скорость и лаконичность.

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




 2013/8/31 Валентин Бартенев n...@vbart.ru

 On Sunday 01 September 2013 00:32:16 Vladimir Getmanshchuk wrote:
  Здравствуйте!
 
  Подскажите пожалуйста, а как без грязных хаков получить от nginx, 414
  status code, на запросы, размер которых, превышает large_client_header_
  buffers?
 
  Постоянно получаю 200 http status code и нижеприведенное в body:
 
  html
  headtitle414 Request-URI Too Large/title/head
  body bgcolor=white
  centerh1414 Request-URI Too Large/h1/center
  hrcenternginx/1.2.9/center
  /body
  /html

 Это не 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


 -- Пересылаемое сообщение --
 From: locojohn nginx-fo...@nginx.us
 To: nginx-ru@nginx.org
 Cc:
 Date: Sun, 01 Sep 2013 16:44:45 -0400
 Subject: Re: 400 Bad Request 1.5.4 (1.5.3 = OK)
 Oleksandr V. Typlyns'kyi Wrote:

Как видно из кода стороннего модуля(а туда тоже следовало бы
  посмотреть),
там несколько return NGX_HTTP_BAD_REQUEST без записи чего-либо в лог
  ошибок.
И они явно намекают на content type который теперь
  application/javascript.
Добавление его в concat_types должно помочь.

 Спасибо за отличный хинт!  Добавление application/javascript в
 concat_types не помогло, пришлось подпатчить исходный модуль concat:

 --- ngx_http_concat_module.c
 +++ ngx_http_concat_module.c
 @@ -30,7 +30,7 @@


  static ngx_str_t  ngx_http_concat_default_types[] = {
 -ngx_string(application/x-javascript),
 +ngx_string(application/javascript),
  ngx_string(text/css),
  ngx_null_string
  };

 Ещё раз - спасибо!

 Posted at Nginx Forum:
 http://forum.nginx.org/read.php?21,242399,242424#msg-242424




 -- Пересылаемое сообщение --
 From: Daniel Podolsky onoko...@gmail.com
 To: nginx-ru nginx-ru@nginx.org
 Cc:
 Date: Mon, 2 Sep 2013 00:47:34 

502 уступили место 504

2013-09-02 Пенетрантность DenisM
Привет.
После включения кеша fastcgi ошибки 502 сменились на 504. Это ожидаемое
поведение?

fastcgi_cache_path /var/cache/nginx
levels=2
keys_zone=NAME:50m
max_size=1024m
inactive=5m;
fastcgi_temp_path /var/cache/nginx/fastcgi_temp;
fastcgi_cache_key
$cookie_uid|$scheme|$request_method|$host|$request_uri;
fastcgi_cache_methods GET HEAD;
map $request_uri $no_cache {
default 1;
~/gsa/index 0;
~/product/ 0;
}
fastcgi_no_cache $no_cache;
fastcgi_cache_bypass $no_cache;

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

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

Re: nginx-ru Digest, Vol 47, Issue 4

2013-09-02 Пенетрантность Alexander Moskalenko
В данной конфигурации нужно выкинуть все if и сделать map + if.
Либо использовать allow+deny, как это обычно делают.

2013/9/2 Андрей Середенко andrei.serede...@gmail.com:
 В таком случае, если отрабатывает только последний из if'ов - то в данной
 конфигурации:

  location ~* /test/url/Page.asmx {
 proxy_pass http://test_upstream;
 proxy_redirect off;
 proxy_set_header   Host $host;
 proxy_set_header   Remote-Addr  $remote_addr;
 proxy_set_header   X-Real-IP$remote_addr;
 proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
 proxy_set_header   X-Public-Url http://$host$request_uri;
 ...
 some other proxy options
 ...
 #
 set $my_ipsrc 0;
 # allow 10.10.1.75/32;
 if ($remote_addr = 10.10.1.75) { set $my_ipsrc 1; }
 # allow 10.20.1.20/32;
 if ($remote_addr = 10.20.1.20) { set $my_ipsrc 1; }
 # allow 10.20.1.21/32;
 if ($remote_addr = 10.20.1.21) { set $my_ipsrc 1; }
 # allow 10.100.1.0/24;
 if ($remote_addr = 10.100.1.0/24) { set $my_ipsrc 1; }
 # allow 178.111.122.133/32;
 if ($remote_addr = 178.111.122.133) { set $my_ipsrc 1; }
 # deny all;
 if ($my_ipsrc = 0) { return 500; }
}

 всем, кроме последнего адреса, должно возвращаться 500 ?
 или лыжи не едут? :)


 2 сентября 2013 г., 4:16 пользователь nginx-ru-requ...@nginx.org написал:

 Сообщения, предназначенные для списка рассылки nginx-ru, необходимо
 отправлять по адресу
 nginx-ru@nginx.org

 Для изменения параметров подписки вы можеже использовать веб-страницу
 http://mailman.nginx.org/mailman/listinfo/nginx-ru

 Для получения информации о том, как пользовать почтовым интерфейсом,
 отправьте письмо, в теле или теме которого будет слово 'help', по
 адресу:
 nginx-ru-requ...@nginx.org

 Адрес человека, ответственного за этот список рассылки:
 nginx-ru-ow...@nginx.org

 При ответе, пожалуйста, измение тему письма так, чтобы она была более
 содержательной чем Re: Содержание дайджеста списка рассылки
 nginx-ru...

 Today's Topics:

1. Re: true 414 status code (Vladimir Getmanshchuk)
2. Re: 400 Bad Request 1.5.4 (1.5.3 = OK) (locojohn)
3. Re: If is Evil (Daniel Podolsky)
4. Re: true 414 status code (Валентин Бартенев)
5. Re: true 414 status code (Валентин Бартенев)
6. Re: If is Evil (Maxim Dounin)
7. Re: If is Evil (Васильев Zmey! Олег)
8. Re: Неправильные (огромные) значения $request time для
   FastCGI-запросов (Maxim Dounin)


 -- Пересылаемое сообщение --
 From: Vladimir Getmanshchuk vlad...@gmail.com
 To: nginx-ru@nginx.org
 Cc:
 Date: Sun, 1 Sep 2013 23:33:57 +0300
 Subject: Re: true 414 status code
 Амм... Спасибо за скорость и лаконичность.

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




 2013/8/31 Валентин Бартенев n...@vbart.ru

 On Sunday 01 September 2013 00:32:16 Vladimir Getmanshchuk wrote:
  Здравствуйте!
 
  Подскажите пожалуйста, а как без грязных хаков получить от nginx, 414
  status code, на запросы, размер которых, превышает large_client_header_
  buffers?
 
  Постоянно получаю 200 http status code и нижеприведенное в body:
 
  html
  headtitle414 Request-URI Too Large/title/head
  body bgcolor=white
  centerh1414 Request-URI Too Large/h1/center
  hrcenternginx/1.2.9/center
  /body
  /html

 Это не 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


 -- Пересылаемое сообщение --
 From: locojohn nginx-fo...@nginx.us
 To: nginx-ru@nginx.org
 Cc:
 Date: Sun, 01 Sep 2013 16:44:45 -0400
 Subject: Re: 400 Bad Request 1.5.4 (1.5.3 = OK)
 Oleksandr V. Typlyns'kyi Wrote:

Как видно из кода стороннего модуля(а туда тоже следовало бы
  посмотреть),
там несколько return NGX_HTTP_BAD_REQUEST без записи чего-либо в лог
  ошибок.
И они явно намекают на content type который теперь
  application/javascript.
Добавление его в concat_types должно помочь.

 Спасибо за отличный хинт!  Добавление application/javascript в
 concat_types не помогло, пришлось подпатчить исходный модуль concat:

 --- ngx_http_concat_module.c
 +++ ngx_http_concat_module.c
 @@ -30,7 +30,7 @@


  static ngx_str_t  ngx_http_concat_default_types[] = {
 -ngx_string(application/x-javascript),
 +ngx_string(application/javascript),
  ngx_string(text/css),
  ngx_null_string
  };

 Ещё раз - спасибо!

 Posted at Nginx Forum:
 

Re: nginx-ru Digest, Vol 47, Issue 4

2013-09-02 Пенетрантность Maxim Dounin
Hello!

On Mon, Sep 02, 2013 at 11:38:22AM +0300, Андрей Середенко wrote:

 В таком случае, если отрабатывает только последний из if'ов - то в данной
 конфигурации:
 
  location ~* /test/url/Page.asmx {

[...]

 set $my_ipsrc 0;
 # allow 10.10.1.75/32;
 if ($remote_addr = 10.10.1.75) { set $my_ipsrc 1; }
 # allow 10.20.1.20/32;
 if ($remote_addr = 10.20.1.20) { set $my_ipsrc 1; }
 # allow 10.20.1.21/32;
 if ($remote_addr = 10.20.1.21) { set $my_ipsrc 1; }
 # allow 10.100.1.0/24;
 if ($remote_addr = 10.100.1.0/24) { set $my_ipsrc 1; }

JFYI: эта проверка никогда не срабатывает, т.к. операция = - это 
сравнение со строкой, а адрес не может выглядеть как 
10.100.1.0/24.

 # allow 178.111.122.133/32;
 if ($remote_addr = 178.111.122.133) { set $my_ipsrc 1; }
 # deny all;
 if ($my_ipsrc = 0) { return 500; }
}
 
 всем, кроме последнего адреса, должно возвращаться 500 ?
 или лыжи не едут? :)

Вы неправильно прочитали то, что было написано.  Запрос будет 
обрабатываться в контексте неявного location'а, относящегося к 
последнему сработавшему if'у.  E.g., для ip 10.10.1.75 запрос 
будет обротан в контексте

if ($remote_addr = 10.10.1.75) { set $my_ipsrc 1; }

со всеми вытекающими из этого последствиями вроде отсутствия 
try_files.

Но вообще конфигурация, скажем так, далека от разумного.  
Правильно - использовать allow/deny (+ error_page, если нужно 
вместо 403 выдать 500) или geo{}.

Ссылки по теме:

http://nginx.org/ru/docs/http/ngx_http_access_module.html
http://nginx.org/ru/docs/http/ngx_http_geo_module.html

-- 
Maxim Dounin
http://nginx.org/en/donation.html

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

Re: true 414 status code

2013-09-02 Пенетрантность Gena Makhomed

On 02.09.2013 7:00, Валентин Бартенев wrote:

 JFYI, 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

Re: true 414 status code

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

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

Спасибо!


2013/9/2 Gena Makhomed g...@csdoc.com

 On 02.09.2013 7:00, Валентин Бартенев wrote:

  JFYI, 
  http://hg.nginx.org/nginx/rev/**62be77b0608fhttp://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-ruhttp://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 Пенетрантность Валентин Бартенев
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

Помогите разобраться с проверкой рефера

2013-09-02 Пенетрантность GrooPER
Не могу разобраться с проверкой реферера, что нужно: если реферер не с моего
сайта отдавать статику без jpg (он будет обрабатываться апачем бля наложения
ватермарка) если реферер с сайта то отдавать статику NGINXом включая и jpg 

мой код в конфиге:


location * {
valid_referers none blocked www.mysite.net 
www.mysite.net;
 
if ($invalid_referer) {
set $chek_referer
jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf;
}

if (!-f $invalid_referer) {
set $chek_referer
jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf;
}
}

location ~* ^.+\.($chek_referer)$ {
root /var/www/user/data/www/img.mysite.net;
access_log 
/var/www/httpd-logs/img.mysite.net.access.log ;
access_log /var/www/nginx-logs/user isp;
}

помогите разобраться

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

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

Адаптация правил работающих в mod_rewrite для nginx

2013-09-02 Пенетрантность ad...@sysadmins.el.kg

Доброго времени суток.

Нужно перенести один виртуалхост с сервера с apache на сервер с nginx. 
Все бы ничего, да вот правила rewrite там жуткие, даже не представляю 
как это все запустить под nginx.


в httpd.conf:
RewriteMap  decode prg:/usr/local/etc/apache22/decode.pl

decode.pl - перловый скрипт, выправляющий закодированые части url, такие 
как слеши, пробелы и пр спецсимволы в читабельный и понимаемый mod_proxy 
вид:

#!/usr/bin/perl

use URI::Escape;

$| = 1;
while (STDIN) {

print uri_unescape($_);
}

в .htaccess:
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^url=(.*)$ [NC]
RewriteRule .* ${decode:%1} [P,L,NE]

Можно-ли такую вот конструкцию реализовать в nginx и если да, то как?

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