Re: true 414 status code
Спасибо починилось. Пусть тут полежит: --- 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, Валентин Бартенев vb...@nginx.com 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 Content-Type: text/html Content-Length: 192 Connection: close [..] Это не 200, а просто невалидный ответ. Патч, исправляющий проблему, уже лежит на ревью: http://mailman.nginx.org/pipermail/nginx-devel/2013-April/003609.html Плюс вдогонку ещё один: # HG changeset patch # User Valentin Bartenev vb...@nginx.com # Date 1378228039 -14400 # Node ID 9f8ebfbe04f28544fd9cfc1473679aee13202506 # Parent 659464c695b7c70f64207462d0e1a4ee3d018583 Return reason phrase for 414. After 62be77b0608f nginx can return this code. diff -r 659464c695b7 -r 9f8ebfbe04f2 src/http/ngx_http_header_filter_module.c --- a/src/http/ngx_http_header_filter_module.c Mon Sep 02
Re: Использование try_files
location ^/(?filename.*)\.(php|html)$ { fastcgi_pass ...; fastcgi_param SCRIPT_FILENAME /path/to/index.php; fastcgi_param SCRIPT_NAME /index.php; fastcgi_param QUERY_STRING key=$filename; } 2013/9/6 Sargas sarga...@gmail.com: Сейчас используется if (!-e $request_filename) { rewrite ^/(.*)\.(php|html)$ /index.php?key=$1 break; } Хочется без if'а 4 сентября 2013 г., 3:25 пользователь Sargas sarga...@gmail.com написал: Приветствую. Подскажите, пожалуйста как переписать апачевские реврайты RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)\.(php|html)$ /index.php?key=$1 [L,QSA] на nginx/FastCGI с использованием try_files В документации (http://sysoev.ru/nginx/docs/faq.html) есть пример с именованным локейшеном location / { try_files $uri $uri/ @drupal; } location @drupal { fastcgi_pass ...; fastcgi_param SCRIPT_FILENAME /path/to/index.php; fastcgi_param SCRIPT_NAME /index.php; fastcgi_param QUERY_STRING q=$uri$args; ... прочие fastcgi_param } Вопрос в том как в QUERY_STRING передать имя файла, но без его расширения (php|html). Чтобы работали подобные ссылки http://www.example.com/channels.php = http://www.example.com/index.php?key=channels И вопрос по директиве accept_mutex http://nginx.org/ru/docs/ngx_core_module.html#accept_mutex Судя по описанию выключать её не рекомендуется. А в какой ситуации может понадобится её выключить? :) ___ 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
200 ответ при отсутсвии файла
День добрый, продублировал еще и в эту ветку, тк не уверен что проблема в самом php. Пытаюсь настроить nginx для wordpress (использование в сабдиректории) location /blog2 { access_log /data0/logs/nginx/blog_log blog2; error_log /var/log/nginx/test.log debug; index index.php; root /var/www/blog2.site.com; try_files $uri $uri/ /blog2/index.php?$args; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_split_path_info ^(/blog2)(/.*)$; fastcgi_index index.php; fastcgi_intercept_errors on; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { expires max; log_not_found off; } } при этом получаю 200 ответ на любой мой запрос напримет http://www.site.com/blog2/luboizapros 2 проблема, которую видно из логов, это то что nginx пытается найти файлы в /var/www/blog2.site.com/blog2 256.256.256.256 - - [05/Sep/2013:11:57:34 +] GET /blog2/index.php HTTP/1.1 200 226 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.65 Safari/537.36 0.00 256.256.256.256 - - [05/Sep/2013:11:57:40 +] GET /blog2 HTTP/1.1 200 226 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.65 Safari/537.36 0.00 подскажите pls что это или куда стоит обратить внимание для решения проблемы ? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,242619,242619#msg-242619 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: 200 ответ при отсутсвии файла
try_files $uri $uri/ /blog2/index.php?$args; при этом получаю 200 ответ на любой мой запрос ну так тут и написано - если файла нет, то отдать /blog2/index.php в чем проблема? ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Использование try_files
Спасибо, но не работает. Performing sanity check on nginx configuration: nginx: [emerg] unknown filename variable nginx: configuration file /usr/local/etc/nginx/nginx.conf test failed http://nginx.org/ru/docs/http/ngx_http_core_module.html#variables нет такой встроенной переменной :( 6 сентября 2013 г., 10:55 пользователь Alexander Moskalenko alexander.moskale...@gmail.com написал: location ^/(?filename.*)\.(php|html)$ { fastcgi_pass ...; fastcgi_param SCRIPT_FILENAME /path/to/index.php; fastcgi_param SCRIPT_NAME /index.php; fastcgi_param QUERY_STRING key=$filename; } 2013/9/6 Sargas sarga...@gmail.com: Сейчас используется if (!-e $request_filename) { rewrite ^/(.*)\.(php|html)$ /index.php?key=$1 break; } Хочется без if'а 4 сентября 2013 г., 3:25 пользователь Sargas sarga...@gmail.com написал: Приветствую. Подскажите, пожалуйста как переписать апачевские реврайты RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)\.(php|html)$ /index.php?key=$1 [L,QSA] на nginx/FastCGI с использованием try_files В документации (http://sysoev.ru/nginx/docs/faq.html) есть пример с именованным локейшеном location / { try_files $uri $uri/ @drupal; } location @drupal { fastcgi_pass ...; fastcgi_param SCRIPT_FILENAME /path/to/index.php; fastcgi_param SCRIPT_NAME /index.php; fastcgi_param QUERY_STRING q=$uri$args; ... прочие fastcgi_param } Вопрос в том как в QUERY_STRING передать имя файла, но без его расширения (php|html). Чтобы работали подобные ссылки http://www.example.com/channels.php = http://www.example.com/index.php?key=channels И вопрос по директиве accept_mutex http://nginx.org/ru/docs/ngx_core_module.html#accept_mutex Судя по описанию выключать её не рекомендуется. А в какой ситуации может понадобится её выключить? :) ___ 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: Использование try_files
nginx: [emerg] unknown filename variable Это вам прописано обновление nginx, до версии с поддержкой именованных групп в регекспах. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Использование try_files
Используется последний stable без сторонних модулей. # nginx -v nginx version: nginx/1.4.2 configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I /usr/local/include' --with-ld-opt='-L /usr/local/lib' --conf-path=/usr/local/etc/nginx/nginx.conf --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx-error.log --user=www --group=www --http-client-body-temp-path=/var/tmp/nginx/client_body_temp --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp --http-proxy-temp-path=/var/tmp/nginx/proxy_temp --http-scgi-temp-path=/var/tmp/nginx/scgi_temp --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp --http-log-path=/var/log/nginx-access.log --without-http-cache --with-http_geoip_module --with-http_realip_module --with-http_stub_status_module --with-pcre 6 сентября 2013 г., 12:26 пользователь Daniel Podolsky onoko...@gmail.comнаписал: nginx: [emerg] unknown filename variable Это вам прописано обновление 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
Ошибки SSL при отдаче файлов.
Приветствую ! Имеем nginx 1.4.2 под debian-ом. При отдаче файлов без использования SSL все ОК, при отдаче файлов с использованием SSL файлы отдаются, но в логах я вижу много записей SSL_get_error: 3 2013/09/06 12:26:36 [debug] 2504#0: *4 SSL buf copy: 16048 2013/09/06 12:26:36 [debug] 2504#0: *4 SSL to write: 16384 2013/09/06 12:26:36 [debug] 2504#0: *4 SSL_write: 16384 2013/09/06 12:26:36 [debug] 2504#0: *4 SSL buf copy: 16384 2013/09/06 12:26:36 [debug] 2504#0: *4 SSL to write: 16384 2013/09/06 12:26:36 [debug] 2504#0: *4 SSL_write: 16384 2013/09/06 12:26:36 [debug] 2504#0: *4 SSL buf copy: 16384 2013/09/06 12:26:36 [debug] 2504#0: *4 SSL to write: 16384 2013/09/06 12:26:36 [debug] 2504#0: *4 SSL_write: 16384 2013/09/06 12:26:36 [debug] 2504#0: *4 SSL buf copy: 16384 2013/09/06 12:26:36 [debug] 2504#0: *4 SSL to write: 16384 2013/09/06 12:26:36 [debug] 2504#0: *4 SSL_write: -1 2013/09/06 12:26:36 [debug] 2504#0: *4 SSL_get_error: 3 И так много раз пока качается файл. Приседания с sendfile on/off и размером разных буферов картину не меняют. Гугл и поиск по форуму ответа не подсказали, поэтому прошу совета здесь, в какую сторону смотреть ? Заранее благодарен, Иван. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,242624,242624#msg-242624 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Использование try_files
Используется последний stable без сторонних модулей. Вариантов 2: 1) вы невнимательно читали, и не дописали именованное выделение в регексп 2) у вас опечатка в конфиге, используется неверное имя именованного выделения ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Ошибки SSL при отдаче файлов.
On 09/06/13 13:32, gatesat wrote: При отдаче файлов без использования SSL все ОК, при отдаче файлов с использованием SSL файлы отдаются, но в логах я вижу много записей SSL_get_error: 3 ... 2013/09/06 12:26:36 [debug] 2504#0: *4 SSL_get_error: 3 То что сообщение выводится на уровне debug намекает на то, что на него можно не обращать внимание. Особенно если все работает. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Перенаправление пользователей в зависимости от занятости канала
Здравствуйте, romas1982. Вы писали 6 сентября 2013 г., 14:16:53: Добрый день, Есть канал в 500мб/c и задача раздавать видео через nginx. Но при условии, что в случае, если из 500мб/c будет съедено 400 - всех приходящих новых пользователей редиректить на внешний cdn. Подскажите пожалуйста, существует ли решение средствами nginx померять канал так, чтобы можно было if'ом,например, отгонять пользователей на cdn? (может модуль есть такой готовый). Измерять чем-то внешним, вешать/убирать флаг, наличие флага проверять nginx'ом. -- С уважением, Dmitry mailto:nginx...@sadok.spb.ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Использование try_files
Разобрался. Нужно было тильду добавить location ~^/(?filename.*)\.(php|html)$ Всем спасибо за помощь :) 6 сентября 2013 г., 12:50 пользователь Daniel Podolsky onoko...@gmail.comнаписал: Используется последний stable без сторонних модулей. Вариантов 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
Алгоритм удаления данных из кэша
Простите, если где-то тема освещалась, но не могу найти ни в доках, ни в рассылке, ни в гугле ... Хотелось бы понимать алгоритм по которому cache-manager удаляет объекты из кэша при недостаточности объёма самого кэша. Какие критерии учитываотся, в каком порядке и т.п.? Может быть есть где-то детальное описание? или курить исходники? ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: 200 ответ при отсутсвии файла
Это результат работы index.php Смотрите в его сторону. 06.09.2013 15:33, valch85 пишет: проблема в том что он отдает при этом пустую страницу и код ответа 200 при этом Posted at Nginx Forum: http://forum.nginx.org/read.php?21,242619,242637#msg-242637 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Dmitriy Lyalyuev http://lyalyuev.info ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Алгоритм удаления данных из кэша
Спасибо! Я считал что в nginx первичной является документация на русском, но в ней всё менее конкретно: Специальный процесс cache manager следит за максимальным размером кэша, заданным параметром max_size, и при превышении его размеров *удаляет наименее востребованные данные* наименее востребованные можно и понимать по разному (LRU и LFU на него, как минимум, тянут), и на название алгоритма не похоже )) Нет ли планов реализовать другие методы кэширования? ведь LRU далеко не для всех нагрузок оптимальна. 6 сентября 2013 г., 15:42 пользователь Валентин Бартенев vb...@nginx.comнаписал: On Friday 06 September 2013 14:34:02 Gelun, Artem wrote: Простите, если где-то тема освещалась, но не могу найти ни в доках, ни в рассылке, ни в гугле ... Хотелось бы понимать алгоритм по которому cache-manager удаляет объекты из кэша при недостаточности объёма самого кэша. Какие критерии учитываотся, в каком порядке и т.п.? Может быть есть где-то детальное описание? или курить исходники? http://nginx.org/r/proxy_cache_path/ru | The special cache manager process monitors the maximum cache size set by | the max_size parameter. When this size is exceeded, it removes the least | recently used data. http://en.wikipedia.org/wiki/Cache_algorithms#Least_Recently_Used -- Валентин Бартенев 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: Алгоритм удаления данных из кэша
On Friday 06 September 2013 17:25:42 Gelun, Artem wrote: Спасибо! Я считал что в nginx первичной является документация на русском, но в ней всё менее конкретно: Специальный процесс cache manager следит за максимальным размером кэша, заданным параметром max_size, и при превышении его размеров *удаляет наименее востребованные данные* наименее востребованные можно и понимать по разному (LRU и LFU на него, как минимум, тянут), и на название алгоритма не похоже )) Нет ли планов реализовать другие методы кэширования? ведь LRU далеко не для всех нагрузок оптимальна. Какие интересуют? -- Валентин Бартенев http://nginx.org/en/donation.html ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Алгоритм удаления данных из кэша
LFU, к примеру (сейчас у нас ситуация, когда из-за нехватки кэша (tmpfs) много вытеснений низкочастотными запросами высокочастотных) Вообще было бы здОрово добавить возможность написания кастомных модулей управления кэшом, чтобы не приходилось переписывать весь proxy_module или fastcgi_module если потребуется реализовать своё кэширование с каким-то совсем нестандартным алгоритмом. Ещё одно - многоуровневые кэши (конечно, их можно реализовать проксированием запросов на другой server, но это как-то криво и гонять несколько гигабит через loopback нехорошо) 6 сентября 2013 г., 17:34 пользователь Валентин Бартенев vb...@nginx.comнаписал: On Friday 06 September 2013 17:25:42 Gelun, Artem wrote: Спасибо! Я считал что в nginx первичной является документация на русском, но в ней всё менее конкретно: Специальный процесс cache manager следит за максимальным размером кэша, заданным параметром max_size, и при превышении его размеров *удаляет наименее востребованные данные* наименее востребованные можно и понимать по разному (LRU и LFU на него, как минимум, тянут), и на название алгоритма не похоже )) Нет ли планов реализовать другие методы кэширования? ведь LRU далеко не для всех нагрузок оптимальна. Какие интересуют? -- Валентин Бартенев 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