From chipitsine на gmail.com Mon Aug 1 05:50:20 2011 From: chipitsine на gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Mon, 1 Aug 2011 11:50:20 +0600 Subject: Load balancer with traffic limit In-Reply-To: <4E35A835.2030805@csdoc.com> References: <4E1F63B2.6030007@itcraft.org> <4E1FFEDD.7030408@amhost.net> <4E200149.60307@itcraft.org> <4E25BA8B.2090907@itcraft.org> <4E271D1E.3020704@itcraft.org> <4E272B7A.5020601@csdoc.com> <4E35A835.2030805@csdoc.com> Message-ID: 1 августа 2011 г. 1:08 пользователь Gena Makhomed написал: > On 21.07.2011 9:03, Pasha Klets wrote: > >> я бы постеснялся в этот список включать ucarp, >> если честно, вы его на практике пробовали ? > > uCARP - нет. только читал про него в презентации яндекса: > http://download.yandex.ru/company/experience/rit2008/highload_lapan.pdf представьте, два узла объединены в CARP-кластер. у каждого узла есть свой MAC-адрес, также есть общий синтетический MAC-адрес для кластера.партнеры делают "arp who has?", запоминают синтетический MAC адрес и общаюся с ним. все вроде логично? таким образом работает VRRP и CARP на xBSD-системах. в uCARP синтетического адреса нет и общение идет с хостовым MAC-ом. ваша обязанность как администратора - накрутить up/down-crрипты, чтобы при переходе был принудительный ARP-анонс нового хостового MAC (иначе вы уйдете в 10-минутный таймаут, пока arp-запись не протухнет). готовы рисовать костыли на up-скриптах, не забудете? какой-то еще негатив от uCARP-а был, сразу не вспомню. > >> Про ucarp - могу скачать что это очень сырая и кривая реализация, >> которую непонятно кто использует в продакшене, я так и не нашел >> упоминаний. > > ясно. значит скорее всего это опечатка у них в презентации, > и они в данный момент у себя используют уже что-то другое. это единственная реализация CARP под линукс )) > > -- > Best regards, >  Gena > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > From nginx-forum на nginx.us Mon Aug 1 06:55:09 2011 From: nginx-forum на nginx.us (wlkatz) Date: Mon, 01 Aug 2011 02:55:09 -0400 Subject: worker process 27566 exited on signal 11 (core dumped) Message-ID: <5541e4777b3ce9852eee7ea9d59964f5.NginxMailingListRussian@forum.nginx.org> Доброго времени суток, nginx 1.0.5 регулярно падает в корку. = Кусок error.log: ======================= 2011/07/30 19:52:20 [alert] 27568#0: ignore long locked inactive cache entry 3100e24078efbd8068c3dd9507872585, count:1 2011/07/30 19:52:20 [alert] 27568#0: ignore long locked inactive cache entry 5e90d09912bb9cde7907a60e81cc441c, count:1 2011/07/30 19:52:20 [alert] 27568#0: ignore long locked inactive cache entry 61ea5a91579473e979c7310493849140, count:1 2011/07/30 19:52:20 [alert] 27568#0: ignore long locked inactive cache entry 214ee8d8a6f598b8390ffc07b89ffa10, count:1 2011/07/30 19:52:20 [alert] 27568#0: ignore long locked inactive cache entry 04d1e6387316bbc871ffdc765166bdc3, count:1 2011/07/30 19:52:20 [alert] 27568#0: ignore long locked inactive cache entry 87a3a7daed702aa2789657b44f3a6295, count:1 2011/07/30 19:52:20 [alert] 27568#0: ignore long locked inactive cache entry a9f3240afab6b913a75752fcf3c9b27b, count:1 2011/07/30 19:52:20 [alert] 27568#0: ignore long locked inactive cache entry 09a7df03ac70a236760fed06b59c8183, count:1 2011/07/30 19:52:20 [alert] 27568#0: ignore long locked inactive cache entry 111ac3185befc0a48fabbfcdfb8c462f, count:1 2011/07/30 19:52:21 [alert] 27568#0: ignore long locked inactive cache entry fb0215325acd6fd906279b538f2a4094, count:1 2011/07/30 19:52:21 [alert] 27568#0: ignore long locked inactive cache entry 8e22a632abc87810439101d7e909021b, count:1 2011/07/30 19:52:21 [alert] 27568#0: ignore long locked inactive cache entry 040f0c750f0e8f3ddb475e7dccede96d, count:1 2011/07/30 19:52:21 [alert] 27568#0: ignore long locked inactive cache entry 544b4c8ca55f729cb64ca93c0c9b007e, count:1 2011/07/30 19:52:21 [alert] 27568#0: ignore long locked inactive cache entry 1a69483a7d98d0cc05fe26d4cd3b1c96, count:1 2011/07/30 19:52:21 [alert] 27568#0: ignore long locked inactive cache entry 40fb34fa5ca0716a2d92dd4357b3d62a, count:1 2011/07/30 19:52:21 [alert] 27568#0: ignore long locked inactive cache entry 2e3d35f04a1936e413a2173d076f1cbc, count:1 .... 2011/07/30 19:52:23 [alert] 13101#0: worker process 27566 exited on signal 11 (core dumped) = Анализ корки: ================== root на f3:/files1/core# gdb /usr/local/nginx/sbin/nginx core GNU gdb 6.8-debian Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i486-linux-gnu"... warning: Can't read pathname for load map: Input/output error. Reading symbols from /lib/tls/i686/cmov/libpthread.so.0...done. Loaded symbols for /lib/tls/i686/cmov/libpthread.so.0 Reading symbols from /lib/tls/i686/cmov/libcrypt.so.1...done. Loaded symbols for /lib/tls/i686/cmov/libcrypt.so.1 Reading symbols from /usr/lib/libpcre.so.3...done. Loaded symbols for /usr/lib/libpcre.so.3 Reading symbols from /usr/lib/i686/cmov/libcrypto.so.0.9.8...done. Loaded symbols for /usr/lib/i686/cmov/libcrypto.so.0.9.8 Reading symbols from /usr/lib/libz.so.1...done. Loaded symbols for /usr/lib/libz.so.1 Reading symbols from /lib/tls/i686/cmov/libc.so.6...done. Loaded symbols for /lib/tls/i686/cmov/libc.so.6 Reading symbols from /lib/ld-linux.so.2...done. Loaded symbols for /lib/ld-linux.so.2 Reading symbols from /lib/tls/i686/cmov/libdl.so.2...done. Loaded symbols for /lib/tls/i686/cmov/libdl.so.2 Reading symbols from /lib/tls/i686/cmov/libnss_compat.so.2...done. Loaded symbols for /lib/tls/i686/cmov/libnss_compat.so.2 Reading symbols from /lib/tls/i686/cmov/libnsl.so.1...done. Loaded symbols for /lib/tls/i686/cmov/libnsl.so.1 Reading symbols from /lib/tls/i686/cmov/libnss_nis.so.2...done. Loaded symbols for /lib/tls/i686/cmov/libnss_nis.so.2 Reading symbols from /lib/tls/i686/cmov/libnss_files.so.2...done. Loaded symbols for /lib/tls/i686/cmov/libnss_files.so.2 Core was generated by `nginx: worker process '. Program terminated with signal 11, Segmentation fault. [New process 27566] #0 ngx_rbtree_delete (tree=0xb37e7040, node=0xb37ea700) at src/core/ngx_rbtree.h:75 75 while (node->left != sentinel) { (gdb) bt #0 ngx_rbtree_delete (tree=0xb37e7040, node=0xb37ea700) at src/core/ngx_rbtree.h:75 #1 0x08086c0f in ngx_http_file_cache_free (c=0x85269f0, tf=0x0) at src/http/ngx_http_file_cache.c:935 #2 0x0807d36a in ngx_http_upstream_finalize_request (r=0x812b388, u=0x8526760, rc=504) at src/http/ngx_http_upstream.c:3010 #3 0x0807f59c in ngx_http_upstream_next (r=0x812b388, u=0x8526760, ft_type=4) at src/http/ngx_http_upstream.c:2868 #4 0x0807f61b in ngx_http_upstream_process_header (r=0x812b388, u=0x8526760) at src/http/ngx_http_upstream.c:1476 #5 0x0807de7b in ngx_http_upstream_handler (ev=0x0) at src/http/ngx_http_upstream.c:912 #6 0x0805f06d in ngx_event_expire_timers () at src/event/ngx_event_timer.c:149 #7 0x0805efa2 in ngx_process_events_and_timers (cycle=0x80d1388) at src/event/ngx_event.c:261 #8 0x08064c23 in ngx_worker_process_cycle (cycle=0x80d1388, data=0x0) at src/os/unix/ngx_process_cycle.c:800 #9 0x080634e1 in ngx_spawn_process (cycle=0x80d1388, proc=0x8064b6b , data=0x0, name=0x80a5225 "worker process", respawn=-4) at src/os/unix/ngx_process.c:196 #10 0x08064266 in ngx_start_worker_processes (cycle=0x80d1388, n=4, type=-4) at src/os/unix/ngx_process_cycle.c:360 #11 0x080657cf in ngx_master_process_cycle (cycle=0x80d1388) at src/os/unix/ngx_process_cycle.c:249 #12 0x0804bac0 in main (argc=1, argv=0xbff383a4) at src/core/nginx.c:405 = Конфиг: ============= upstream backend { server 172.17.255.122:8080 weight=1; server 172.17.255.123:8080 weight=2; server 172.17.255.136:8080 weight=5; server 172.17.255.137:8080 weight=2; server 172.17.255.138:8080 weight=3; server 172.17.255.135:8080 weight=3; server 172.17.255.142:8080 weight=2; server 172.17.255.127:8080 weight=1 backup; } server { listen 80; client_max_body_size 201M; server_name www.my.ru my.ru ; location ~* ^.+\.(jpg|jpeg|gif|png|bmp|ico|css|zip|bz2|tgz|gz|rar|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|rtf|js|htm|html|smi|wma|wmv|asf|mp3|swf|flv|mp4|st|cur|xml|docx|xlsx)$ { expires 12h; root /var/www/new/data; access_log /var/log/nginx/real_my.log main; } location /a_php/channel/ajax/ { access_log /var/log/nginx/my__aj_b1.log umain; proxy_pass http://172.17.255.121:8080; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_cache wholepage; proxy_cache_valid 200 301 302 304 15s; proxy_cache_use_stale updating; proxy_cache_key "$request_method|$http_if_none_match|$host|$request_uri"; proxy_hide_header "Set-Cookie"; proxy_ignore_headers "Cache-Control" "Expires"; } location /ajax/ { access_log /var/log/nginx/my__counterb1.log umain; proxy_pass http://172.17.255.121:8080; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_body_buffer_size 256k; proxy_send_timeout 20; proxy_read_timeout 20; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; reset_timedout_connection on; } location ~ a?dmin { access_log /var/log/nginx/my__adm.log umain; proxy_pass http://172.17.255.122:8080; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_body_buffer_size 256k; proxy_send_timeout 120; proxy_read_timeout 120; proxy_buffer_size 10k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; reset_timedout_connection on; } location ~ crontab/admin { access_log /var/log/nginx/my__adm.log umain; proxy_pass http://172.17.255.122:8080; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_body_buffer_size 256k; proxy_send_timeout 120; proxy_read_timeout 120; proxy_buffer_size 8k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; reset_timedout_connection on; } location /cgi-bin/setcron.cgi { access_log /var/log/nginx/my__cron.log umain; proxy_pass http://172.17.255.122:8080; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_body_buffer_size 256k; proxy_send_timeout 20; proxy_read_timeout 20; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; reset_timedout_connection on; } location / { access_log /var/log/nginx/my__apache.log umain; proxy_pass http://backend; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_body_buffer_size 256k; proxy_send_timeout 120; proxy_read_timeout 120; proxy_buffer_size 12k; proxy_buffers 8 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; reset_timedout_connection on; } error_page 404 /?an=e404; error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/nginx-default; } } = Кора залита по адресу: ===================== http://www.onlinedisk.ru/file/705858/ Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213161,213161#msg-213161 From gmm на csdoc.com Mon Aug 1 08:25:49 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Mon, 01 Aug 2011 11:25:49 +0300 Subject: =?UTF-8?B?RndkOiBSZTog0YDQsNGB0YjQuNGA0LXQvdC40LUgcmV0dXJu?= In-Reply-To: <20100618100517.GA60075@rambler-co.ru> References: <20100618100517.GA60075@rambler-co.ru> Message-ID: <4E36630D.8020304@csdoc.com> документация по директиве return которая отсутствует на сайте: http://sysoev.ru/nginx/docs/http/ngx_http_rewrite_module.html#return -------- Original Message -------- Subject: Re: расширение return Date: Fri, 18 Jun 2010 14:05:17 +0400 From: Igor Sysoev Reply-To: nginx-ru на nginx.org To: nginx-ru на nginx.org On Thu, Jun 17, 2010 at 02:20:52PM +0400, Igor Sysoev wrote: > On Thu, Jun 17, 2010 at 02:15:22PM +0400, Igor Sysoev wrote: > > > On Thu, Jun 17, 2010 at 11:07:12AM +0100, Valery Kholodkov wrote: > > > > > О, можно будет сделать более универсальный eval: > > > > > > eval $a { > > > return 200 "blah"; > > > } > > > > А какая семантика ? > > > > Вообще-то я не хочу ничего добавлять в этот мерзкий rewrite модуль, > > но return мне нравится. Да и понадобилось по работе. > > Я бы ещё сделал > > location /old/ { > location ~ ^/old(.+)$ { > return http://site.com$1; > } > > или > > location /old/ { > location ~ ^/old(.+)$ { > return 301 http://site.com$1; > } > > Вот такую личную неприязнь я испытываю к rewrite, что кушать не могу! Итак, патч. Варианты использования: # старые return 204; return 404; return 500; # новые return 200; return 200 "OK\n"; return 404 "not found\n"; # не перехватывается error_page return 301 http://site.ru$request_uri; return 302 http://site.ru$request_uri; return 303 http://site.ru$request_uri; return http://site.ru$request_uri; # по умолчанию 302 return https://site.ru$request_uri; # по умолчанию 302 return $scheme://site.ru$request_uri; # по умолчанию 302 -- Игорь Сысоев http://sysoev.ru From nginx-forum на nginx.us Mon Aug 1 08:31:32 2011 From: nginx-forum на nginx.us (ruslansvs) Date: Mon, 01 Aug 2011 04:31:32 -0400 Subject: nginx+php-fpm php.ini In-Reply-To: <4de54da72d255e0f9ea39101ba9d8852.NginxMailingListRussian@forum.nginx.org> References: <4de54da72d255e0f9ea39101ba9d8852.NginxMailingListRussian@forum.nginx.org> Message-ID: А какая директива укажет путь к php.ini ? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213134,213163#msg-213163 From v.v.biriukov на gmail.com Mon Aug 1 09:03:02 2011 From: v.v.biriukov на gmail.com (Viacheslav Biriukov) Date: Mon, 1 Aug 2011 12:03:02 +0300 Subject: Load balancer with traffic limit In-Reply-To: References: <4E1F63B2.6030007@itcraft.org> <4E1FFEDD.7030408@amhost.net> <4E200149.60307@itcraft.org> <4E25BA8B.2090907@itcraft.org> <4E271D1E.3020704@itcraft.org> <4E272B7A.5020601@csdoc.com> <4E35A835.2030805@csdoc.com> Message-ID: Используйте Pacemaker crm c IPaddr2 ресурсом. Он обновлеет arp. 1 августа 2011 г. 8:50 пользователь Илья Шипицин написал: > 1 августа 2011 г. 1:08 пользователь Gena Makhomed написал: > > On 21.07.2011 9:03, Pasha Klets wrote: > > > >> я бы постеснялся в этот список включать ucarp, > >> если честно, вы его на практике пробовали ? > > > > uCARP - нет. только читал про него в презентации яндекса: > > http://download.yandex.ru/company/experience/rit2008/highload_lapan.pdf > > представьте, два узла объединены в CARP-кластер. у каждого узла есть > свой MAC-адрес, также есть общий синтетический MAC-адрес для > кластера.партнеры делают "arp who has?", запоминают синтетический MAC > адрес и общаюся с ним. все вроде логично? таким образом работает VRRP > и CARP на xBSD-системах. > > в uCARP синтетического адреса нет и общение идет с хостовым MAC-ом. > ваша обязанность как администратора - накрутить up/down-crрипты, чтобы > при переходе был принудительный ARP-анонс нового хостового MAC (иначе > вы уйдете в 10-минутный таймаут, пока arp-запись не протухнет). > > готовы рисовать костыли на up-скриптах, не забудете? > > какой-то еще негатив от uCARP-а был, сразу не вспомню. > > > > >> Про ucarp - могу скачать что это очень сырая и кривая реализация, > >> которую непонятно кто использует в продакшене, я так и не нашел > >> упоминаний. > > > > ясно. значит скорее всего это опечатка у них в презентации, > > и они в данный момент у себя используют уже что-то другое. > > это единственная реализация CARP под линукс )) > > > > > -- > > Best regards, > > Gena > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru на nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Viacheslav Biriukov BR http://biriukov.com ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From pasha на klets.name Mon Aug 1 09:03:16 2011 From: pasha на klets.name (Pasha Klets) Date: Mon, 1 Aug 2011 12:03:16 +0300 Subject: Load balancer with traffic limit In-Reply-To: References: <4E1F63B2.6030007@itcraft.org> <4E1FFEDD.7030408@amhost.net> <4E200149.60307@itcraft.org> <4E25BA8B.2090907@itcraft.org> <4E271D1E.3020704@itcraft.org> <4E272B7A.5020601@csdoc.com> <4E35A835.2030805@csdoc.com> Message-ID: >>ваша обязанность как администратора - накрутить up/down-crрипты, чтобы при переходе был принудительный ARP-анонс нового хостового MAC (иначе вы уйдете в 10-минутный таймаут, пока arp-запись не протухнет). + не стоит забывать о времени выполнения такого анонса.. я делал это arping, и в /26 это было далеко не моментально.. приходилось запускать в фоне, чтобы ucarp не тормозить.. 1 августа 2011 г. 8:50 пользователь Илья Шипицин написал: > 1 августа 2011 г. 1:08 пользователь Gena Makhomed написал: > > On 21.07.2011 9:03, Pasha Klets wrote: > > > >> я бы постеснялся в этот список включать ucarp, > >> если честно, вы его на практике пробовали ? > > > > uCARP - нет. только читал про него в презентации яндекса: > > http://download.yandex.ru/company/experience/rit2008/highload_lapan.pdf > > представьте, два узла объединены в CARP-кластер. у каждого узла есть > свой MAC-адрес, также есть общий синтетический MAC-адрес для > кластера.партнеры делают "arp who has?", запоминают синтетический MAC > адрес и общаюся с ним. все вроде логично? таким образом работает VRRP > и CARP на xBSD-системах. > > в uCARP синтетического адреса нет и общение идет с хостовым MAC-ом. > ваша обязанность как администратора - накрутить up/down-crрипты, чтобы > при переходе был принудительный ARP-анонс нового хостового MAC (иначе > вы уйдете в 10-минутный таймаут, пока arp-запись не протухнет). > > готовы рисовать костыли на up-скриптах, не забудете? > > какой-то еще негатив от uCARP-а был, сразу не вспомню. > > > > >> Про ucarp - могу скачать что это очень сырая и кривая реализация, > >> которую непонятно кто использует в продакшене, я так и не нашел > >> упоминаний. > > > > ясно. значит скорее всего это опечатка у них в презентации, > > и они в данный момент у себя используют уже что-то другое. > > это единственная реализация CARP под линукс )) > > > > > -- > > Best regards, > > Gena > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru на nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- @p01nt ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Mon Aug 1 09:04:07 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 1 Aug 2011 13:04:07 +0400 Subject: worker process 27566 exited on signal 11 (core dumped) In-Reply-To: <5541e4777b3ce9852eee7ea9d59964f5.NginxMailingListRussian@forum.nginx.org> References: <5541e4777b3ce9852eee7ea9d59964f5.NginxMailingListRussian@forum.nginx.org> Message-ID: <20110801090407.GU1137@mdounin.ru> Hello! On Mon, Aug 01, 2011 at 02:55:09AM -0400, wlkatz wrote: > Доброго времени суток, nginx 1.0.5 регулярно > падает в корку. > > = Кусок error.log: > ======================= > 2011/07/30 19:52:20 [alert] 27568#0: ignore long locked inactive cache > entry 3100e24078efbd8068c3dd9507872585, count:1 [...] > Program terminated with signal 11, Segmentation fault. > [New process 27566] > #0 ngx_rbtree_delete (tree=0xb37e7040, node=0xb37ea700) at > src/core/ngx_rbtree.h:75 > 75 while (node->left != sentinel) { > (gdb) bt > #0 ngx_rbtree_delete (tree=0xb37e7040, node=0xb37ea700) at > src/core/ngx_rbtree.h:75 > #1 0x08086c0f in ngx_http_file_cache_free (c=0x85269f0, tf=0x0) at > src/http/ngx_http_file_cache.c:935 > #2 0x0807d36a in ngx_http_upstream_finalize_request (r=0x812b388, > u=0x8526760, rc=504) at src/http/ngx_http_upstream.c:3010 > #3 0x0807f59c in ngx_http_upstream_next (r=0x812b388, u=0x8526760, > ft_type=4) at src/http/ngx_http_upstream.c:2868 > #4 0x0807f61b in ngx_http_upstream_process_header (r=0x812b388, > u=0x8526760) at src/http/ngx_http_upstream.c:1476 > #5 0x0807de7b in ngx_http_upstream_handler (ev=0x0) at > src/http/ngx_http_upstream.c:912 > #6 0x0805f06d in ngx_event_expire_timers () at > src/event/ngx_event_timer.c:149 > #7 0x0805efa2 in ngx_process_events_and_timers (cycle=0x80d1388) at > src/event/ngx_event.c:261 [...] > proxy_cache wholepage; > proxy_cache_valid 200 301 302 304 15s; > proxy_cache_use_stale updating; А что при этом написано в "proxy_cache_path"? Maxim Dounin From nginx-forum на nginx.us Mon Aug 1 09:13:27 2011 From: nginx-forum на nginx.us (wlkatz) Date: Mon, 01 Aug 2011 05:13:27 -0400 Subject: worker process 27566 exited on signal 11 (core dumped) In-Reply-To: <5541e4777b3ce9852eee7ea9d59964f5.NginxMailingListRussian@forum.nginx.org> References: <5541e4777b3ce9852eee7ea9d59964f5.NginxMailingListRussian@forum.nginx.org> Message-ID: Опа, ни-че-го.... Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213161,213167#msg-213167 From mdounin на mdounin.ru Mon Aug 1 09:51:25 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 1 Aug 2011 13:51:25 +0400 Subject: worker process 27566 exited on signal 11 (core dumped) In-Reply-To: References: <5541e4777b3ce9852eee7ea9d59964f5.NginxMailingListRussian@forum.nginx.org> Message-ID: <20110801095125.GW1137@mdounin.ru> Hello! On Mon, Aug 01, 2011 at 05:13:27AM -0400, wlkatz wrote: > Опа, ни-че-го.... Что-то там должно быть, ищите. :) Собственно, проблема более или менее ясна и без этого: время жизни кеша выставлено очень короткое, и nginx решает, что запись в кеше протухла и блокировка на ней осталась от упавшего рабочего процесса. В то время как процесс реально работает с этой записью. Запись удаляют, а процесс который с ней работал - в результате падает. Надо править. Workaround: увеличить время жизни для кеша как минимум до времени, в течении которого может работать один запрос. Если время зажато через proxy_cache_path ... inactive=<время> ... то там и увеличить. Со значением по умолчанию (10 минут) проблем быть не должно. Maxim Dounin From nginx-forum на nginx.us Mon Aug 1 10:02:45 2011 From: nginx-forum на nginx.us (wlkatz) Date: Mon, 01 Aug 2011 06:02:45 -0400 Subject: worker process 27566 exited on signal 11 (core dumped) In-Reply-To: References: <5541e4777b3ce9852eee7ea9d59964f5.NginxMailingListRussian@forum.nginx.org> Message-ID: Спасибо большое, попробую Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213161,213170#msg-213170 From nginx-forum на nginx.us Mon Aug 1 10:28:05 2011 From: nginx-forum на nginx.us (wlkatz) Date: Mon, 01 Aug 2011 06:28:05 -0400 Subject: worker process 27566 exited on signal 11 (core dumped) In-Reply-To: References: <5541e4777b3ce9852eee7ea9d59964f5.NginxMailingListRussian@forum.nginx.org> Message-ID: <6ca276a27b2038ce9f3dd6153b28dca1.NginxMailingListRussian@forum.nginx.org> Update. Директивы действительно нет в конфиге нигде, но nginx пишет в /var/cache/nginx/temp и /var/cache/nginx/proxy. Что видимо являются значениями по-умолчанию. Соответственно время таймаута тоже по-умолчанию (10 мин). Что не согласуется с: > Со значением по умолчанию (10 минут) проблем быть не должно. Может быть проблема во взаимодействием с OpenAFS откуда берется весь статичный контент? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213161,213171#msg-213171 From mdounin на mdounin.ru Mon Aug 1 10:33:59 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 1 Aug 2011 14:33:59 +0400 Subject: worker process 27566 exited on signal 11 (core dumped) In-Reply-To: <6ca276a27b2038ce9f3dd6153b28dca1.NginxMailingListRussian@forum.nginx.org> References: <5541e4777b3ce9852eee7ea9d59964f5.NginxMailingListRussian@forum.nginx.org> <6ca276a27b2038ce9f3dd6153b28dca1.NginxMailingListRussian@forum.nginx.org> Message-ID: <20110801103359.GY1137@mdounin.ru> Hello! On Mon, Aug 01, 2011 at 06:28:05AM -0400, wlkatz wrote: > Update. > Директивы действительно нет в конфиге > нигде, но nginx пишет в /var/cache/nginx/temp и > /var/cache/nginx/proxy. Что видимо являются > значениями по-умолчанию. Если бы директивы не было в конфиге, nginx бы не запустился, ругнувшись как-то так: nginx: [emerg] "proxy_cache" zone "one" is unknown in ... Судя по том, что приведён только кусок с блоком server{} - используется "debian-style" конфигурация с кучей кусочков конфига и "include *". Ищите, к каком-то из include'ов должен быть proxy_cache_path. Maxim Dounin From nginx-forum на nginx.us Mon Aug 1 10:53:30 2011 From: nginx-forum на nginx.us (wlkatz) Date: Mon, 01 Aug 2011 06:53:30 -0400 Subject: worker process 27566 exited on signal 11 (core dumped) In-Reply-To: <5541e4777b3ce9852eee7ea9d59964f5.NginxMailingListRussian@forum.nginx.org> References: <5541e4777b3ce9852eee7ea9d59964f5.NginxMailingListRussian@forum.nginx.org> Message-ID: Посыпаю голову пеплом, действительно... proxy_cache_path /var/cache/nginx/proxy levels=1 keys_zone=wholepage:60m inactive=2m; Глубокое расследование инцидента показывает что хронология событий такая: 19:51:5x - отвал OpenAFS 19:52:xx - ругань на кеш 19:52:23 - сдох воркер Может быть такое поведение nginx связано с тем, что сдохло "хранилище" откуда нужно было подтянуть статику? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213161,213173#msg-213173 From mdounin на mdounin.ru Mon Aug 1 10:57:33 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 1 Aug 2011 14:57:33 +0400 Subject: worker process 27566 exited on signal 11 (core dumped) In-Reply-To: References: <5541e4777b3ce9852eee7ea9d59964f5.NginxMailingListRussian@forum.nginx.org> Message-ID: <20110801105733.GA1137@mdounin.ru> Hello! On Mon, Aug 01, 2011 at 06:53:30AM -0400, wlkatz wrote: > Посыпаю голову пеплом, действительно... > proxy_cache_path /var/cache/nginx/proxy levels=1 keys_zone=wholepage:60m > inactive=2m; > > Глубокое расследование инцидента > показывает что хронология событий > такая: > 19:51:5x - отвал OpenAFS > 19:52:xx - ругань на кеш > 19:52:23 - сдох воркер > > Может быть такое поведение nginx связано > с тем, что сдохло "хранилище" откуда > нужно было подтянуть статику? Сдохло "хранилище", запросы стали занимать больше времени, 2 минут стало не хватать, ... (далее nginx повёл себя некорректно, см. мой ответ ранее). Maxim Dounin From nginx-forum на nginx.us Mon Aug 1 11:03:25 2011 From: nginx-forum на nginx.us (wlkatz) Date: Mon, 01 Aug 2011 07:03:25 -0400 Subject: worker process 27566 exited on signal 11 (core dumped) In-Reply-To: References: <5541e4777b3ce9852eee7ea9d59964f5.NginxMailingListRussian@forum.nginx.org> Message-ID: Ясно, спасибо. Какое-нибудь Workaround в таких случаях посоветовать можете, кроме увеличения inactive=<время>? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213161,213175#msg-213175 From nginx-forum на nginx.us Mon Aug 1 13:37:51 2011 From: nginx-forum на nginx.us (ruslansvs) Date: Mon, 01 Aug 2011 09:37:51 -0400 Subject: nginx+php-fpm php.ini In-Reply-To: References: <4de54da72d255e0f9ea39101ba9d8852.NginxMailingListRussian@forum.nginx.org> Message-ID: Все спасибо разобрался. У кого такая же проблема пишите сюда или на почту ruslan1861 на rambler.ru Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213134,213178#msg-213178 From nginx-forum на nginx.us Mon Aug 1 13:44:08 2011 From: nginx-forum на nginx.us (portos) Date: Mon, 01 Aug 2011 09:44:08 -0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtC30YDQsNGH0L3QvtC1INC60Y3RiNC40YDQvtCy0LDQvdC40LUg?= =?UTF-8?B?0LIgbmdpbng=?= In-Reply-To: <420f8e810f2b1a926f7ca0060a99f940.NginxMailingListRussian@forum.nginx.org> References: <420f8e810f2b1a926f7ca0060a99f940.NginxMailingListRussian@forum.nginx.org> Message-ID: Доброго всем дня. Спасибо за ответы. Но к сожаление не помогло! Ошибку правда уже не показывает. Сменил имя с "cache" на "nc". Но вот сайт как падал так и падает при минимальном нагрузочном тестировании. На испытуемом сервере твориться вот такое http://imageshack.us/f/35/screenwh.png/ - попытки перезагрузить ngnix и apache2 ни к чему не приводят. Приходится идти в веб панель и перегружать впску от туда. Может сама впска не тянет? Или можно что еще сделать? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213099,213179#msg-213179 From igor на sysoev.ru Mon Aug 1 14:01:19 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Mon, 1 Aug 2011 18:01:19 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtC30YDQsNGH0L3QvtC1INC60Y3RiNC40YDQvtCy0LDQvdC40LUg?= =?UTF-8?B?0LIgbmdpbng=?= In-Reply-To: References: <420f8e810f2b1a926f7ca0060a99f940.NginxMailingListRussian@forum.nginx.org> Message-ID: <20110801140119.GC68887@sysoev.ru> On Mon, Aug 01, 2011 at 09:44:08AM -0400, portos wrote: > Доброго всем дня. Спасибо за ответы. > Но к сожаление не помогло! Ошибку > правда уже не показывает. Сменил имя с > "cache" на "nc". Но вот сайт как падал так и > падает при минимальном нагрузочном > тестировании. На испытуемом сервере > твориться вот такое > http://imageshack.us/f/35/screenwh.png/ - попытки > перезагрузить ngnix и apache2 ни к чему не > приводят. Приходится идти в веб панель > и перегружать впску от туда. > Может сама впска не тянет? Или можно что > еще сделать? Для начала можно попробовать уменьшить число Апачей. -- Игорь Сысоев http://sysoev.ru From nginx-forum на nginx.us Mon Aug 1 14:23:58 2011 From: nginx-forum на nginx.us (portos) Date: Mon, 01 Aug 2011 10:23:58 -0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtC30YDQsNGH0L3QvtC1INC60Y3RiNC40YDQvtCy0LDQvdC40LUg?= =?UTF-8?B?0LIgbmdpbng=?= In-Reply-To: <420f8e810f2b1a926f7ca0060a99f940.NginxMailingListRussian@forum.nginx.org> References: <420f8e810f2b1a926f7ca0060a99f940.NginxMailingListRussian@forum.nginx.org> Message-ID: Уменьшение количества апачей поможет перегрузить сам апач и ngnix - но проблему то в корне не меняет. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213099,213191#msg-213191 From igor на sysoev.ru Mon Aug 1 14:31:32 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Mon, 1 Aug 2011 18:31:32 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtC30YDQsNGH0L3QvtC1INC60Y3RiNC40YDQvtCy0LDQvdC40LUg?= =?UTF-8?B?0LIgbmdpbng=?= In-Reply-To: References: <420f8e810f2b1a926f7ca0060a99f940.NginxMailingListRussian@forum.nginx.org> Message-ID: <20110801143132.GD68887@sysoev.ru> On Mon, Aug 01, 2011 at 10:23:58AM -0400, portos wrote: > Уменьшение количества апачей поможет > перегрузить сам апач и ngnix - но проблему > то в корне не меняет. Что значит "поможет перегрузить сам апач и ngnix" ? Проблема в том, что такое количество апачей + 250М на mysql на 700M уходят в своп, что показывает kswapd0. -- Игорь Сысоев http://sysoev.ru From igor на sysoev.ru Mon Aug 1 15:12:53 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Mon, 1 Aug 2011 19:12:53 +0400 Subject: nginx-1.1.0 Message-ID: <20110801151253.GE68887@sysoev.ru> Изменения в nginx 1.1.0 01.08.2011 *) Добавление: уменьшение времени работы загрузчика кэша. *) Добавление: параметры loader_files, loader_sleep и loader_threshold директив proxy/fastcgi/scgi/uwsgi_cache_path. *) Добавление: уменьшение времени загрузки конфигураций с большим количеством HTTPS серверов. *) Добавление: теперь nginx поддерживает шифры с обменом ECDHE-ключами. Спасибо Adrian Kotelba. *) Добавление: директива lingering_close. Спасибо Максиму Дунину. *) Исправление: закрытия соединения для pipelined-запросов. Спасибо Максиму Дунину. *) Исправление: nginx не запрещал сжатие при получении значения "gzip;q=0" в строке "Accept-Encoding" в заголовке запроса клиента. *) Исправление: таймаута при небуферизированном проксировании. Спасибо Максиму Дунину. *) Исправление: утечки памяти при использовании переменных в директиве proxy_pass при работе с бэкендом по HTTPS. Спасибо Максиму Дунину. *) Исправление: в проверке параметра директивы proxy_pass, заданного переменными. Спасибо Lanshun Zhou. *) Исправление: SSL не работал на QNX. Спасибо Максиму Дунину. *) Исправление: SSL модули не собирались gcc 4.6 без параметра --with-debug. -- Игорь Сысоев http://sysoev.ru From mdounin на mdounin.ru Mon Aug 1 16:07:15 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 1 Aug 2011 20:07:15 +0400 Subject: upstream keepalive - call for testing Message-ID: <20110801160715.GG1137@mdounin.ru> Hello! JFYI: На прошлой неделе в nginx-devel@ я запостил патч, позволяющий (вместе с модулем upstream keepalive) делать нормальный keepalive не только memcached бекендам, но и к fastcgi и http бекендам (в частности, nginx теперь понимает HTTP/1.1 от бекендов, i.e. умеет парсить chunked ответы). Патч подходит для 1.0.5 и 1.1.0. Тестирование приветствуется. Описание и патч тут: http://mailman.nginx.org/pipermail/nginx-devel/2011-July/001057.html Сам патч можно скачать тут: http://nginx.org/patches/patch-nginx-keepalive-full.txt Модуль upstream keepalive можно взять тут: http://mdounin.ru/hg/ngx_http_upstream_keepalive/ http://mdounin.ru/files/ngx_http_upstream_keepalive-0.4.tar.gz Maxim Dounin From postmaster на softsearch.ru Mon Aug 1 16:59:34 2011 From: postmaster на softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Mon, 1 Aug 2011 20:59:34 +0400 Subject: nginx-1.1.0 In-Reply-To: <20110801151253.GE68887@sysoev.ru> References: <20110801151253.GE68887@sysoev.ru> Message-ID: <296376227.20110801205934@softsearch.ru> Здравствуйте, Igor. > *) Добавление: уменьшение времени работы загрузчика кэша. > *) Добавление: параметры loader_files, loader_sleep и loader_threshold > директив proxy/fastcgi/scgi/uwsgi_cache_path. Большое спасибо. А то грузить кэш по 2-ое суток неудобно. За это время он сильно вырастал и было сложно предсказать свободное место, необходимое для этого роста. > *) Добавление: директива lingering_close. > Спасибо Максиму Дунину. Ждём описания этой директивы. -- С уважением, Михаил mailto:postmaster на softsearch.ru From nginx-forum на nginx.us Mon Aug 1 17:14:44 2011 From: nginx-forum на nginx.us (portos) Date: Mon, 01 Aug 2011 13:14:44 -0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtC30YDQsNGH0L3QvtC1INC60Y3RiNC40YDQvtCy0LDQvdC40LUg?= =?UTF-8?B?0LIgbmdpbng=?= In-Reply-To: <420f8e810f2b1a926f7ca0060a99f940.NginxMailingListRussian@forum.nginx.org> References: <420f8e810f2b1a926f7ca0060a99f940.NginxMailingListRussian@forum.nginx.org> Message-ID: Я извиняюсь, опечатка. Хотел сказать, что "не" поможет. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213099,213210#msg-213210 From igor на sysoev.ru Mon Aug 1 17:21:02 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Mon, 1 Aug 2011 21:21:02 +0400 Subject: nginx-1.1.0 In-Reply-To: <296376227.20110801205934@softsearch.ru> References: <20110801151253.GE68887@sysoev.ru> <296376227.20110801205934@softsearch.ru> Message-ID: <20110801172102.GA75895@sysoev.ru> On Mon, Aug 01, 2011 at 08:59:34PM +0400, Михаил Монашёв wrote: > Здравствуйте, Igor. > > > *) Добавление: уменьшение времени работы загрузчика кэша. > > > *) Добавление: параметры loader_files, loader_sleep и loader_threshold > > директив proxy/fastcgi/scgi/uwsgi_cache_path. > > Большое спасибо. А то грузить кэш по 2-ое суток неудобно. За это время > он сильно вырастал и было сложно предсказать свободное место, > необходимое для этого роста. Было бы интересно услышать, насколько помогло. -- Igor Sysoev From gmm на csdoc.com Mon Aug 1 18:24:00 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Mon, 01 Aug 2011 21:24:00 +0300 Subject: worker_processes Message-ID: <4E36EF40.7000301@csdoc.com> Здравствуйте! сейчас директива worker_processes имеет значение-по-умолчанию равное 1. при этом - в nginx существует параметр командной строки -g # -g ? задаёт глобальные директивы конфигурации, например, nginx -g "pid /var/run/nginx.pid; worker_processes `sysctl -n hw.ncpu`;" предлагаю: 1. добавить в nginx r/o переменную $sysctl_cpu_cores_physical в которой будет записано число физических ядер процессора если это не Linux и не FreeBSD и не какая-то другая система, где nginx может определить число ядер процессора в run-time, то как и раньше, эта переменная будет равна fail-safe значению 1 и возможно имеет смысл при старте выводить предупреждение, что используется дефолтовое fail-safe значение 1, потому что в run-time не удалось узнать количество ядер. - кого это достанет - или поставят в конфиге нужное значение вручную, или пришлют патч для своей системы. 2. для директивы worker_processes значением по-умолчанию установить $sysctl_cpu_cores_physical для всех систем, где nginx может определить количество ядер процессора, кроме windows, где worker_processes должно быть равно 1. это позволит получить nginx "из коробки" более готовый к применению и автоматически настроенный на "оптимальную производительность" по количеству worker-процессов. особенно это актуально в случае https протокола, когда пользователи пытаются проводить какие-то тестирования и выкладывать в сеть их результаты сравнивая nginx с другими серверами. http://news.netcraft.com/archives/2011/07/08/july-2011-web-server-survey.html June 2011 Percent July 2011 Percent Change nginx 22,668,760 6.55% 23,357,497 6.54% -0.01 вряд ли все из этих 22-23 миллионов пользователей nginx будут внимательно читать всю документацию, перед тем, как пытаться его использовать в production. а кому из них нужна будет "тонкая настройка" и не устроит дефолтовое значение - всегда смогут в конфиге явно указать необходимое значение. P.S. возможно также имеет в nginx смысл добавить r/o переменную $sysctl_cpu_cores - это будет общее количество ядер процессора, включая и "виртуальные" на системах с процессором intel и т.п. и $sysctl_cpu_cores_virtual - количество только "виртуальных" ядер. - возможно кто-то захочет использовать эти переменные для настройки. -- Best regards, Gena From mdounin на mdounin.ru Mon Aug 1 21:49:25 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 2 Aug 2011 01:49:25 +0400 Subject: nginx-1.1.0 In-Reply-To: <296376227.20110801205934@softsearch.ru> References: <20110801151253.GE68887@sysoev.ru> <296376227.20110801205934@softsearch.ru> Message-ID: <20110801214925.GI1137@mdounin.ru> Hello! On Mon, Aug 01, 2011 at 08:59:34PM +0400, Михаил Монашёв wrote: [...] > > *) Добавление: директива lingering_close. > > Спасибо Максиму Дунину. > > Ждём описания этой директивы. http://mailman.nginx.org/pipermail/nginx-devel/2011-July/001016.html lingering_close on|off|always Normally nginx uses lingering close if it expects more data from client (e.g. if it wasn't able to read full request for some reason). With "lingering_close always;" it's now possible to always use lingering close. This may be beneficial from compatibility point of view though may consume extra resources. В большинстве случаев использовать эту директиву не надо, поведение по умолчанию ("lingering_close on;") достаточно разумно. В этом режиме nginx сам решает, когда нужно использовать lingering close, а когда не обязательно. Для максимальной корректности работы можно использовать "lingering_close always;", в этом случае lingering close будет использоваться всегда, т.е. соединение всегда будет закрываться в два этапа: сначала закрываться на запись, а через некоторое время (если от клиента более не поступает данных) совсем. Использовать "lingering_close off" не нужно, это может приводить к проблемам. Maxim Dounin From sergey.kobzar на itcraft.org Mon Aug 1 22:08:45 2011 From: sergey.kobzar на itcraft.org (Sergey Kobzar) Date: Tue, 02 Aug 2011 01:08:45 +0300 Subject: =?UTF-8?B?0KPRgdGC0LDQvdC+0LLQuNGC0YwgdXBzdHJlYW0g0LIg0LfQsNCy0LjRgdC40Lw=?= =?UTF-8?B?0L7RgdGC0Lgg0L7RgiAkaG9zdA==?= Message-ID: <4E3723ED.1060907@itcraft.org> Есть 2 апстрима. Выбирать апстрим нужно на основе $host. Как правильнее сделать - описать 2 секции server с разным server_name и внутри них использовать нужный апстрим - внутри server использовать конструкцию вида set $upstream_name aaa; if ($host ~ ... ) { set $upstream_name bbb; } location / { proxy_pass http://$upstream_name; ... } ? Спасибо. From mdounin на mdounin.ru Mon Aug 1 22:15:53 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 2 Aug 2011 02:15:53 +0400 Subject: =?UTF-8?B?UmU6INCj0YHRgtCw0L3QvtCy0LjRgtGMIHVwc3RyZWFtINCyINC30LDQstC40YE=?= =?UTF-8?B?0LjQvNC+0YHRgtC4INC+0YIgJGhvc3Q=?= In-Reply-To: <4E3723ED.1060907@itcraft.org> References: <4E3723ED.1060907@itcraft.org> Message-ID: <20110801221553.GJ1137@mdounin.ru> Hello! On Tue, Aug 02, 2011 at 01:08:45AM +0300, Sergey Kobzar wrote: > Есть 2 апстрима. Выбирать апстрим нужно на основе $host. Как > правильнее сделать > > - описать 2 секции server с разным server_name и внутри них > использовать нужный апстрим Да. > - внутри server использовать конструкцию вида > > set $upstream_name aaa; > if ($host ~ ... ) { > set $upstream_name bbb; > } > location / { > proxy_pass http://$upstream_name; > ... > } Не надо так делать. Maxim Dounin From sergey.kobzar на itcraft.org Mon Aug 1 22:26:40 2011 From: sergey.kobzar на itcraft.org (Sergey Kobzar) Date: Tue, 02 Aug 2011 01:26:40 +0300 Subject: =?UTF-8?B?UmU6INCj0YHRgtCw0L3QvtCy0LjRgtGMIHVwc3RyZWFtINCyINC30LDQstC40YE=?= =?UTF-8?B?0LjQvNC+0YHRgtC4INC+0YIgJGhvc3Q=?= In-Reply-To: <20110801221553.GJ1137@mdounin.ru> References: <4E3723ED.1060907@itcraft.org> <20110801221553.GJ1137@mdounin.ru> Message-ID: <4E372820.4080601@itcraft.org> Максим, спасибо. On 08/02/11 01:15, Maxim Dounin wrote: > Hello! > > On Tue, Aug 02, 2011 at 01:08:45AM +0300, Sergey Kobzar wrote: > >> Есть 2 апстрима. Выбирать апстрим нужно на основе $host. Как >> правильнее сделать >> >> - описать 2 секции server с разным server_name и внутри них >> использовать нужный апстрим > > Да. > >> - внутри server использовать конструкцию вида >> >> set $upstream_name aaa; >> if ($host ~ ... ) { >> set $upstream_name bbb; >> } >> location / { >> proxy_pass http://$upstream_name; >> ... >> } > > Не надо так делать. > > Maxim Dounin > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum на nginx.us Tue Aug 2 06:04:07 2011 From: nginx-forum на nginx.us (vagner) Date: Tue, 02 Aug 2011 02:04:07 -0400 Subject: =?UTF-8?B?UmU6IG5neCBodHRwIGxpbWl0IHJlcSBtb2R1bGUg0Lgg0YDQtdCw0LvRjNC90L4=?= =?UTF-8?B?0LUg0L/RgNC40LzQtdC90LXQvdC40LU=?= In-Reply-To: <20110717173959.GK1137@mdounin.ru> References: <20110717173959.GK1137@mdounin.ru> Message-ID: <373d90ea07d9724a84dc363467b6799e.NginxMailingListRussian@forum.nginx.org> Попробовал изменить... С rate в сутки работает нормально - при более большом диапазоне практически сразу вылетает 503 код... Posted at Nginx Forum: http://forum.nginx.org/read.php?21,212493,213231#msg-213231 From a4irkin на gmail.com Tue Aug 2 06:44:57 2011 From: a4irkin на gmail.com (Aleksey Chirkin) Date: Tue, 2 Aug 2011 10:44:57 +0400 Subject: =?UTF-8?B?cHJveHlfcGFzcyDQuCDQtNC+0LrQsNGH0LrQsCDRhNCw0LnQu9C+0LI=?= Message-ID: Добрый день! Я столкнулся с проблемой отсутствия поддержки докачки, при использовании директивы proxy_pass. Загрузчик получает несколько килобайт и затем сообщает об ошибке получения сегмента, прерывая закачку. Моя конфигурация выглядит так: server { listen 127.0.0.1:8888; server_name internal; internal; location / { root /www/public/; } } server {  listen 127.0.0.1:80;  server_name test;  location / {    proxy_pass  http://internal:8888;    limit_rate  500k;  } } Все ли я делаю правильно? From voron на amhost.net Tue Aug 2 08:31:11 2011 From: voron на amhost.net (Alex Vorona) Date: Tue, 02 Aug 2011 11:31:11 +0300 Subject: =?UTF-8?B?UmU6IHByb3h5X3Bhc3Mg0Lgg0LTQvtC60LDRh9C60LAg0YTQsNC50LvQvtCy?= In-Reply-To: References: Message-ID: <4E37B5CF.70500@amhost.net> 02.08.2011 09:44, Aleksey Chirkin wrote: > Добрый день! > > Я столкнулся с проблемой отсутствия поддержки докачки, при использовании > директивы proxy_pass. Странно, я наоборот боролся с докачкой(чтобы не давать многопоточность) при proxy_pass > Загрузчик получает несколько килобайт и затем сообщает об ошибке > получения сегмента, прерывая закачку. С curl проблема воспроизводится? From isk на cupid.com Tue Aug 2 10:00:55 2011 From: isk на cupid.com (Olexander Shtepa) Date: Tue, 2 Aug 2011 13:00:55 +0300 Subject: nginx-1.1.0 In-Reply-To: <20110801214925.GI1137@mdounin.ru> References: <20110801151253.GE68887@sysoev.ru> <296376227.20110801205934@softsearch.ru> <20110801214925.GI1137@mdounin.ru> Message-ID: <201108021300.55334.isk@cupid.com> > В большинстве случаев использовать эту директиву не надо, > поведение по умолчанию ("lingering_close on;") достаточно разумно. > В этом режиме nginx сам решает, когда нужно использовать lingering > close, а когда не обязательно. > > Для максимальной корректности работы можно использовать > "lingering_close always;", в этом случае lingering close будет > использоваться всегда Звучит как "включено" и "внатуре включено". Т.е. не совсем интуитивно понятно. Имхо такой вариант логичнее и понятнее: off - выключено optimized|smart - "разумное поведение" on|always - всегда From nefer05 на gmail.com Tue Aug 2 11:24:58 2011 From: nefer05 на gmail.com (Nefer) Date: Tue, 02 Aug 2011 15:24:58 +0400 Subject: nginx-1.1.0 In-Reply-To: <201108021300.55334.isk@cupid.com> References: <20110801151253.GE68887@sysoev.ru> <296376227.20110801205934@softsearch.ru> <20110801214925.GI1137@mdounin.ru> <201108021300.55334.isk@cupid.com> Message-ID: <4E37DE8A.5060803@gmail.com> > Звучит как "включено" и "внатуре включено". Т.е. не совсем интуитивно понятно. > Имхо такой вариант логичнее и понятнее: > off - выключено > optimized|smart - "разумное поведение" Есть еще хорошее слово auto. IMHO оно тут логичнее. > on|always - всегда > From isk на cupid.com Tue Aug 2 12:11:36 2011 From: isk на cupid.com (Olexander Shtepa) Date: Tue, 2 Aug 2011 15:11:36 +0300 Subject: nginx-1.1.0 In-Reply-To: <4E37DE8A.5060803@gmail.com> References: <20110801151253.GE68887@sysoev.ru> <201108021300.55334.isk@cupid.com> <4E37DE8A.5060803@gmail.com> Message-ID: <201108021511.36422.isk@cupid.com> > > optimized|smart - "разумное поведение" > Есть еще хорошее слово auto. IMHO оно тут логичнее. согласен From a4irkin на gmail.com Tue Aug 2 16:37:22 2011 From: a4irkin на gmail.com (Aleksey Chirkin) Date: Tue, 2 Aug 2011 20:37:22 +0400 Subject: =?UTF-8?B?UmU6IHByb3h5X3Bhc3Mg0Lgg0LTQvtC60LDRh9C60LAg0YTQsNC50LvQvtCy?= In-Reply-To: <4E37B5CF.70500@amhost.net> References: <4E37B5CF.70500@amhost.net> Message-ID: Да, воспроизводится. Я сократил конфиг до минимума: server { listen 127.0.0.1:5500; location / { root /www/public; } } server { listen 127.0.0.1:5555; location / { proxy_pass http://127.0.0.1:5500; } } Загрузка 15-ти мегабайтного файла curl-ом повисает на 4-5%. Выглядит это вот так: curl -# -v -o file.mp3 http://127.0.0.1:5555/file.mp3 * About to connect() to 127.0.0.1 port 5555 (#0) * Trying 127.0.0.1... connected * Connected to 127.0.0.1 (127.0.0.1) port 5555 (#0) > GET /file.mp3 HTTP/1.1 > User-Agent: curl/7.21.6 (x86_64-apple-darwin10.7.0) libcurl/7.21.6 OpenSSL/1.0.0d zlib/1.2.5 libidn/1.22 > Host: 127.0.0.1:5555 > Accept: */* > < HTTP/1.1 200 OK < Server: nginx/1.0.0 < Date: Tue, 02 Aug 2011 16:36:05 GMT < Content-Type: audio/mpeg < Connection: keep-alive < Content-Length: 16427424 < Last-Modified: Tue, 02 Aug 2011 16:23:49 GMT < Accept-Ranges: bytes < { [data not shown] ## 4,2%^C Что это может быть? 2 августа 2011 г. 12:31 пользователь Alex Vorona написал: > 02.08.2011 09:44, Aleksey Chirkin wrote: >> Добрый день! >> >> Я столкнулся с проблемой отсутствия поддержки докачки, при использовании >> директивы proxy_pass. > Странно, я наоборот боролся с докачкой(чтобы не давать многопоточность) при proxy_pass > >> Загрузчик получает несколько килобайт и затем сообщает об ошибке >> получения сегмента, прерывая закачку. > С curl проблема воспроизводится? > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > From chipitsine на gmail.com Tue Aug 2 16:43:23 2011 From: chipitsine на gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Tue, 2 Aug 2011 22:43:23 +0600 Subject: =?UTF-8?B?0L3Rg9C20LXQvSDRgdC+0LLQtdGCINC/0L4gaWYt0LrQvtC90YHRgtGA0YPQutGG?= =?UTF-8?B?0LjRj9C8?= Message-ID: Добрый день! нужен критический взгляд на наш подход к написанию конфигов. задача такая, скажем, nginx балансирует группу сайтов. соотвественно на профилактику можно закрыть, как отдельный сайт, так всю группу. людям, которые выполняют профилактику, нужен backdoor, чтобы смотреть, как всё получилось, до того, как открыть сайты обратно. сайты https, строго по паролю, в поисковых системах мы не присутствуем, поэтому на время профилактики нам неважно, с 503-м кодом мы ее отдаем или с 200-м. сайты все однотипные. логика простая - если профилактика, то показываем статику (через SSI берем время окончания работ из переменной), если надо пройти насквозь, то идем на /goahead, ловим куку и второй раз по куке проходим, если не профилактика, то проксируем на $upstream конфиг написан на if-ах и include-ах, хочется понять, является ли он оптимальным (голова заточена на if-ы, сложно переключаться на location/map подход). есть подозрение, что можно переписать более оптиаально, чем на куче if-ов. нужен мастер-класс общий конфиг (nginx.conf): # site1 # server { listen x.x.x.x:6116; set $upstream site1_upstream; access_log /var/log/nginx/test.access.log; error_log /var/log/nginx/test.error.log; set $single_out_of_order "no"; #set $single_out_of_order "05:00"; include site-include; } <много таких конфигов, в каждом из которых задается переменная $upstream и $single_out_of_order> файл site-include (проверяем переменные $single_out_of_order, $total_out_of_order, если переменные не равны "no", то отображаем SSI статическую заглушку, выставляем "проходную" куку на /goahead): include ssl-include; set $total_out_of_order "no"; #set $total_out_of_order "22:35"; proxy_next_upstream error; add_header X-Nginx-Server $hostname; add_header X-BackEnd-Server $upstream_addr; add_header X-RemoteAddr $remote_addr; error_page 502 503 504 500 /502/index.html; location /502 { alias /var/www/xxx.xxx.xxx/502; } location /go { add_header Set-Cookie "goahead=1;"; rewrite ^ https://$upstream/ permanent; } location / { if ($http_cookie ~* "goahead") { proxy_pass http://$upstream; break; } if ($single_out_of_order !~ "no" ) { set $total_out_of_order $single_out_of_order; break; error_page 404 /index.html; root /var/www/xxx.xxx.xxx; ssi on; } if ($total_out_of_order ~ "no" ) { proxy_pass http://$upstream; } if ($total_out_of_order !~ "no" ) { break; error_page 404 /index.html; root /var/www/xxx.xxx.xxx; ssi on; } proxy_cache off; proxy_connect_timeout 15; proxy_send_timeout 500; proxy_read_timeout 500; } Илья Шипицин From azarov на aha.ru Tue Aug 2 18:07:36 2011 From: azarov на aha.ru (Alexander Azarov) Date: Tue, 2 Aug 2011 22:07:36 +0400 Subject: =?UTF-8?Q?Feature_Request=3A_=22include_path/file*=2Emask=22_=D0=B2_geo/ma?= =?UTF-8?Q?p?= Message-ID: Добрый день, nginx team! Сделайте пожалуйста поддержку файловых масок в include внутри geo/map. Для единообразия с nginx.conf и удобства сборки конфигураций. E.g. use case: geo $do_ban { default ""; include ban.d/*.conf; delete 127.0.0.1; delete 192.168.0.0/16; } С уважением, Александр Азаров From latypoff на yandex.ru Wed Aug 3 04:02:18 2011 From: latypoff на yandex.ru (Denis F. Latypoff) Date: Wed, 03 Aug 2011 11:02:18 +0700 Subject: =?UTF-8?B?UmU6INC90YPQttC10L0g0YHQvtCy0LXRgiDQv9C+IGlmLdC60L7QvdGB0YLRgNGD?= =?UTF-8?B?0LrRhtC40Y/QvA==?= In-Reply-To: References: Message-ID: <117451312344138@web35.yandex.ru> 02.08.2011, 23:43, "Илья Шипицин" : > Добрый день! > > нужен критический взгляд на наш подход к написанию конфигов. > задача такая, скажем, nginx балансирует группу сайтов. > соотвественно на профилактику можно закрыть, как отдельный сайт, так > всю группу. > людям, которые выполняют профилактику, нужен backdoor, чтобы смотреть, > как всё получилось, до того, как открыть сайты обратно. > сайты https, строго по паролю, в поисковых системах мы не > присутствуем, поэтому на время профилактики нам неважно, с 503-м кодом > мы ее отдаем или с 200-м. > сайты все однотипные. > > логика простая - если профилактика, то показываем статику (через SSI > берем время окончания работ из переменной), если надо пройти насквозь, > то идем на /goahead, ловим куку и второй раз по куке проходим, если не > профилактика, то проксируем на $upstream > Так учат в школах и вузах. И в книгах. И на хабре еще. Добавьте еще один вирт хост на каком-нибудь порту и ходите на него во времена смуты. А на 80-ом порту показывайте обещалку. -- br, Denis F. Latypoff. From a4irkin на gmail.com Wed Aug 3 07:13:17 2011 From: a4irkin на gmail.com (Aleksey Chirkin) Date: Wed, 3 Aug 2011 11:13:17 +0400 Subject: =?UTF-8?B?UmU6IHByb3h5X3Bhc3Mg0Lgg0LTQvtC60LDRh9C60LAg0YTQsNC50LvQvtCy?= In-Reply-To: References: <4E37B5CF.70500@amhost.net> Message-ID: Я устанавливал nginx из macports и понадеялся, что он свежей версии. Как оказалось, у меня был установлен nginx 1.0.0. После установки вручную версии 1.0.5 проблема исчезла. Спасибо! 2 августа 2011 г. 20:37 пользователь Aleksey Chirkin написал: > Да, воспроизводится. > > Я сократил конфиг до минимума: > > server { >  listen  127.0.0.1:5500; > >  location / { >   root /www/public; >  } > } > > server { >  listen 127.0.0.1:5555; > >  location / { >   proxy_pass  http://127.0.0.1:5500; >  } > } > > Загрузка 15-ти мегабайтного файла curl-ом повисает на 4-5%. > > Выглядит это вот так: > > curl -# -v -o file.mp3 http://127.0.0.1:5555/file.mp3 > * About to connect() to 127.0.0.1 port 5555 (#0) > *   Trying 127.0.0.1... connected > * Connected to 127.0.0.1 (127.0.0.1) port 5555 (#0) >> GET /file.mp3 HTTP/1.1 >> User-Agent: curl/7.21.6 (x86_64-apple-darwin10.7.0) libcurl/7.21.6 OpenSSL/1.0.0d zlib/1.2.5 libidn/1.22 >> Host: 127.0.0.1:5555 >> Accept: */* >> > < HTTP/1.1 200 OK > < Server: nginx/1.0.0 > < Date: Tue, 02 Aug 2011 16:36:05 GMT > < Content-Type: audio/mpeg > < Connection: keep-alive > < Content-Length: 16427424 > < Last-Modified: Tue, 02 Aug 2011 16:23:49 GMT > < Accept-Ranges: bytes > < > { [data not shown] > ## >    4,2%^C > > Что это может быть? > > 2 августа 2011 г. 12:31 пользователь Alex Vorona написал: >> 02.08.2011 09:44, Aleksey Chirkin wrote: >>> Добрый день! >>> >>> Я столкнулся с проблемой отсутствия поддержки докачки, при использовании >>> директивы proxy_pass. >> Странно, я наоборот боролся с докачкой(чтобы не давать многопоточность) при proxy_pass >> >>> Загрузчик получает несколько килобайт и затем сообщает об ошибке >>> получения сегмента, прерывая закачку. >> С curl проблема воспроизводится? >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > From chipitsine на gmail.com Wed Aug 3 08:32:35 2011 From: chipitsine на gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Wed, 3 Aug 2011 14:32:35 +0600 Subject: =?UTF-8?B?UmU6INC90YPQttC10L0g0YHQvtCy0LXRgiDQv9C+IGlmLdC60L7QvdGB0YLRgNGD?= =?UTF-8?B?0LrRhtC40Y/QvA==?= In-Reply-To: <117451312344138@web35.yandex.ru> References: <117451312344138@web35.yandex.ru> Message-ID: 3 августа 2011 г. 10:02 пользователь Denis F. Latypoff написал: > 02.08.2011, 23:43, "Илья Шипицин" : >> Добрый день! >> >> нужен критический взгляд на наш подход к написанию конфигов. >> задача такая, скажем, nginx балансирует группу сайтов. >> соотвественно на профилактику можно закрыть, как отдельный сайт, так >> всю группу. >> людям, которые выполняют профилактику, нужен backdoor, чтобы смотреть, >> как всё получилось, до того, как открыть сайты обратно. >> сайты https, строго по паролю, в поисковых системах мы не >> присутствуем, поэтому на время профилактики нам неважно, с 503-м кодом >> мы ее отдаем или с 200-м. >> сайты все однотипные. >> >> логика простая - если профилактика, то показываем статику (через SSI >> берем время окончания работ из переменной), если надо пройти насквозь, >> то идем на /goahead, ловим куку и второй раз по куке проходим, если не >> профилактика, то проксируем на $upstream >> > > Так учат в школах и вузах. И в книгах. И на хабре еще. > Добавьте еще один вирт хост на каком-нибудь порту и ходите на него во > времена смуты. А на 80-ом порту показывайте обещалку. > приложение работает по https, оно настроено на стандартном порту. если его опубликовать на нестандартном порту - надо дополнительно перенастраивать (относительные ссылки внутри приложения). смысл именно в том, что все пользователи на стандартном порту видят заглушку, а те, кому надо - видят приложение. уточните мысль насчет школы и вуза ? что вы хотели этим сказать ? From minisotm на gmail.com Wed Aug 3 09:27:45 2011 From: minisotm на gmail.com (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0JzQsNGB0LvQtdC90L3QuNC60L7Qsg==?=) Date: Wed, 3 Aug 2011 13:27:45 +0400 Subject: restart nginx Message-ID: Доброе время суток всем! на системе CentOS release 5.3 (Final) пересобрал nginx : nginx: nginx version: nginx/1.0.5 nginx: TLS SNI support disabled nginx: configure arguments: --user=nginx --group=nginx --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --pid-path=/var/run/nginx.pid --lock-path=/var/lock/subsys/nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_perl_module --with-mail --with-mail_ssl_module --with-http_image_filter_module --with-pcre=/usr/local/src/nginx/pcre-8.12/ Запускается раза с 5-го, restart пишет что все ОК, но не работает . /etc/init.d/nginx cat /etc/init.d/nginx #!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # description: Nginx is an HTTP(S) server, HTTP(S) reverse \ # proxy and IMAP/POP3 proxy server # processname: nginx # config: /etc/nginx/nginx.conf # config: /etc/sysconfig/nginx # pidfile: /var/run/nginx.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 nginx="/usr/sbin/nginx" prog=$(basename $nginx) NGINX_CONF_FILE="/etc/nginx/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx make_dirs() { # make required directories user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -` options=`$nginx -V 2>&1 | grep 'configure arguments:'` for opt in $options; do if [ `echo $opt | grep '.*-temp-path'` ]; then value=`echo $opt | cut -d "=" -f 2` if [ ! -d "$value" ]; then # echo "creating" $value mkdir -p $value && chown -R $user $value fi fi done } start() { [ -x $nginx ] || exit 5 [ -f $NGINX_CONF_FILE ] || exit 6 make_dirs echo -n $"Starting $prog: " daemon $nginx -c $NGINX_CONF_FILE retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { configtest || return $? stop sleep 1 start } reload() { configtest || return $? echo -n $"Reloading $prog: " killproc $nginx -HUP RETVAL=$? echo } force_reload() { restart } configtest() { $nginx -t -c $NGINX_CONF_FILE } rh_status() { status $prog } rh_status_q() { rh_status >/dev/null 2>&1 } case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2 esac Как это отдебажить ? Спасибо. _______________________________ С Уважением, Алексей Масленников Jabber: minisotm на jabber.ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From swood на fotofor.biz Wed Aug 3 09:59:24 2011 From: swood на fotofor.biz (Anton Kiryushkin) Date: Wed, 3 Aug 2011 13:59:24 +0400 Subject: restart nginx In-Reply-To: References: Message-ID: А в лог что-нибудь попадает? 3 августа 2011 г. 13:27 пользователь Алексей Масленников написал: > Доброе время суток всем! > на системе CentOS release 5.3 (Final) > пересобрал nginx : > nginx: nginx version: nginx/1.0.5 > nginx: TLS SNI support disabled > nginx: configure arguments: --user=nginx --group=nginx > --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx > --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log > --http-log-path=/var/log/nginx/access.log > --http-client-body-temp-path=/var/lib/nginx/tmp/client_body > --http-proxy-temp-path=/var/lib/nginx/tmp/proxy > --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi > --pid-path=/var/run/nginx.pid --lock-path=/var/lock/subsys/nginx > --with-http_ssl_module --with-http_realip_module --with-http_addition_module > --with-http_sub_module --with-http_dav_module --with-http_flv_module > --with-http_gzip_static_module --with-http_stub_status_module > --with-http_perl_module --with-mail --with-mail_ssl_module > --with-http_image_filter_module --with-pcre=/usr/local/src/nginx/pcre-8.12/ > Запускается раза с 5-го, restart пишет что все ОК, но не работает . > /etc/init.d/nginx > cat /etc/init.d/nginx > #!/bin/sh > # > # nginx - this script starts and stops the nginx daemon > # > # chkconfig:   - 85 15 > # description:  Nginx is an HTTP(S) server, HTTP(S) reverse \ > #               proxy and IMAP/POP3 proxy server > # processname: nginx > # config:      /etc/nginx/nginx.conf > # config:      /etc/sysconfig/nginx > # pidfile:     /var/run/nginx.pid > > # Source function library. > . /etc/rc.d/init.d/functions > > # Source networking configuration. > . /etc/sysconfig/network > > # Check that networking is up. > [ "$NETWORKING" = "no" ] && exit 0 > > nginx="/usr/sbin/nginx" > prog=$(basename $nginx) > > NGINX_CONF_FILE="/etc/nginx/nginx.conf" > > [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx > > lockfile=/var/lock/subsys/nginx > > make_dirs() { >    # make required directories >    user=`nginx -V 2>&1 | grep "configure arguments:" | sed > 's/[^*]*--user=\([^ ]*\).*/\1/g' -` >    options=`$nginx -V 2>&1 | grep 'configure arguments:'` >    for opt in $options; do >        if [ `echo $opt | grep '.*-temp-path'` ]; then >            value=`echo $opt | cut -d "=" -f 2` >            if [ ! -d "$value" ]; then >                # echo "creating" $value >                mkdir -p $value && chown -R $user $value >            fi >        fi >    done > } > > start() { >     [ -x $nginx ] || exit 5 >     [ -f $NGINX_CONF_FILE ] || exit 6 >     make_dirs >     echo -n $"Starting $prog: " >     daemon $nginx -c $NGINX_CONF_FILE >     retval=$? >     echo >     [ $retval -eq 0 ] && touch $lockfile >     return $retval > } > > stop() { >     echo -n $"Stopping $prog: " >     killproc $prog -QUIT >     retval=$? >     echo >     [ $retval -eq 0 ] && rm -f $lockfile >     return $retval > } > > restart() { >     configtest || return $? >     stop >     sleep 1 >     start > } > > reload() { >     configtest || return $? >     echo -n $"Reloading $prog: " >     killproc $nginx -HUP >     RETVAL=$? >     echo > } > > force_reload() { >     restart > } > > configtest() { >   $nginx -t -c $NGINX_CONF_FILE > } > > rh_status() { >     status $prog > } > > rh_status_q() { >     rh_status >/dev/null 2>&1 > } > > case "$1" in >     start) >         rh_status_q && exit 0 >         $1 >         ;; >     stop) >         rh_status_q || exit 0 >         $1 >         ;; >     restart|configtest) >         $1 >         ;; >     reload) >         rh_status_q || exit 7 >         $1 >         ;; >     force-reload) >         force_reload >         ;; >     status) >         rh_status >         ;; >     condrestart|try-restart) >         rh_status_q || exit 0 >             ;; >     *) >         echo $"Usage: $0 > {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" >         exit 2 > esac > > Как это отдебажить ? Спасибо. > _______________________________ > С Уважением, Алексей Масленников > > Jabber: minisotm на jabber.ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > -- Best regards, Anton Kiryushkin, From gmm на csdoc.com Wed Aug 3 10:07:01 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Wed, 03 Aug 2011 13:07:01 +0300 Subject: restart nginx In-Reply-To: References: Message-ID: <4E391DC5.3030705@csdoc.com> On 03.08.2011 12:27, Алексей Масленников wrote: > на системе CentOS release 5.3 (Final) где Вы взяли такой древний и глючный инит-скрипт? > Запускается раза с 5-го т.е. нормально не работает service nginx start ? > restart пишет что все ОК, но не работает . или проблемы только с service nginx restart ? что при этом пишется на stderr и в error.log ? > make_dirs() { > # make required directories > user=`nginx -V 2>&1 | grep "configure arguments:" | sed > 's/[^*]*--user=\([^ ]*\).*/\1/g' -` > options=`$nginx -V 2>&1 | grep 'configure arguments:'` > for opt in $options; do > if [ `echo $opt | grep '.*-temp-path'` ]; then > value=`echo $opt | cut -d "=" -f 2` > if [ ! -d "$value" ]; then > # echo "creating" $value > mkdir -p $value && chown -R $user $value > fi > fi > done > } возможно имеет смысл эту функциональность перенести внутрь /usr/sbin/nginx, чтобы он сам создавал каталоги. потому что через shell-скрипт получается не очень красиво... > stop() { > echo -n $"Stopping $prog: " > killproc $prog -QUIT > retval=$? > echo > [ $retval -eq 0 ] && rm -f $lockfile > return $retval > } причина глюков с restart - именно в этом, старому экземпляру nginx посылают сигнал -QUIT - это команда на "плавное завершение" и после этого - сразу же запускают новый экземпляр. если убрать -QUIT - то service nginx stop будет завершать его работу гораздо быстрее, сразу обрывая все соединения. > restart() { > configtest || return $? > stop > sleep 1 > start > } sleep 1 - это не очень хороший workaround для вручную созданного глюка, старый экземпляр nginx может и не успеть выйти за 1 секунду. кроме того - нет никакого смысла использовать restart, когда в nginx есть http://sysoev.ru/nginx/docs/control.html#upgrade да и большинство изменений в конфигурации применяются с помощью команды service nginx reload > force_reload() { > restart > } очень старый инит-скрипт, эти ошибки были исправлены в нем еще несколько лет тому назад. по крайней мере, в init-скрипте из EPEL этих ошибок уже давно нет. > Как это отдебажить ? Спасибо. см. в аттаче мой вариант инит-скрипта. после изменения настроек лучше делать service nginx reload а после обновления бинарника или чтобы на 100% быть уверенным, что все изменения применились - service nginx force-reload service nginx restart не имеет смысла вообще использовать. разве что только в том случае когда nginx так зависнет, что никак нельзя будет завершить, а только через kill -9 ( но лучше будет причину этой ошибки найти и устранить ) там я еще сделал некоторую часть работы для того, чтобы можно было запускать одновременно несколько независимых экземпляров nginx на одном сервере, просто копируя инит-скрипт, например, в nginx-frontend, nginx-static, и т.п. меняя переменную pidfile и значение переменной instance - но пока что полностью это сделать не удалось - в nginx жестко вкомпилировано имя error.log файла и поэтому разные экземпляры nginx будут писать ошибки в один и тот же лог-файл, что не очень удобно и трудно потом будет понять, что к чему относится. на FreeBSD насколько я знаю, nginx "из коробки" поддерживает такой режим работы, что можно запускать несколько полностью независимых друг от друга экземпляров, но на Linux - такую функциональность сейчас сделать нельзя, не компилируя его много раз с различными параметрами configure. -- Best regards, Gena -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: nginx.init URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: nginx.logrotate URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: nginx.sysconfig URL: From minisotm на gmail.com Wed Aug 3 10:07:58 2011 From: minisotm на gmail.com (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0JzQsNGB0LvQtdC90L3QuNC60L7Qsg==?=) Date: Wed, 3 Aug 2011 14:07:58 +0400 Subject: restart nginx In-Reply-To: References: Message-ID: в том то и дело, что ничего, error level notice _______________________________ С Уважением, Алексей Масленников Jabber: minisotm на jabber.ru 3 августа 2011 г. 13:59 пользователь Anton Kiryushkin написал: > А в лог что-нибудь попадает? > > 3 августа 2011 г. 13:27 пользователь Алексей Масленников > написал: > > Доброе время суток всем! > > на системе CentOS release 5.3 (Final) > > пересобрал nginx : > > nginx: nginx version: nginx/1.0.5 > > nginx: TLS SNI support disabled > > nginx: configure arguments: --user=nginx --group=nginx > > --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx > > --conf-path=/etc/nginx/nginx.conf > --error-log-path=/var/log/nginx/error.log > > --http-log-path=/var/log/nginx/access.log > > --http-client-body-temp-path=/var/lib/nginx/tmp/client_body > > --http-proxy-temp-path=/var/lib/nginx/tmp/proxy > > --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi > > --pid-path=/var/run/nginx.pid --lock-path=/var/lock/subsys/nginx > > --with-http_ssl_module --with-http_realip_module > --with-http_addition_module > > --with-http_sub_module --with-http_dav_module --with-http_flv_module > > --with-http_gzip_static_module --with-http_stub_status_module > > --with-http_perl_module --with-mail --with-mail_ssl_module > > --with-http_image_filter_module > --with-pcre=/usr/local/src/nginx/pcre-8.12/ > > Запускается раза с 5-го, restart пишет что все ОК, но не работает . > > /etc/init.d/nginx > > cat /etc/init.d/nginx > > #!/bin/sh > > # > > # nginx - this script starts and stops the nginx daemon > > # > > # chkconfig: - 85 15 > > # description: Nginx is an HTTP(S) server, HTTP(S) reverse \ > > # proxy and IMAP/POP3 proxy server > > # processname: nginx > > # config: /etc/nginx/nginx.conf > > # config: /etc/sysconfig/nginx > > # pidfile: /var/run/nginx.pid > > > > # Source function library. > > . /etc/rc.d/init.d/functions > > > > # Source networking configuration. > > . /etc/sysconfig/network > > > > # Check that networking is up. > > [ "$NETWORKING" = "no" ] && exit 0 > > > > nginx="/usr/sbin/nginx" > > prog=$(basename $nginx) > > > > NGINX_CONF_FILE="/etc/nginx/nginx.conf" > > > > [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx > > > > lockfile=/var/lock/subsys/nginx > > > > make_dirs() { > > # make required directories > > user=`nginx -V 2>&1 | grep "configure arguments:" | sed > > 's/[^*]*--user=\([^ ]*\).*/\1/g' -` > > options=`$nginx -V 2>&1 | grep 'configure arguments:'` > > for opt in $options; do > > if [ `echo $opt | grep '.*-temp-path'` ]; then > > value=`echo $opt | cut -d "=" -f 2` > > if [ ! -d "$value" ]; then > > # echo "creating" $value > > mkdir -p $value && chown -R $user $value > > fi > > fi > > done > > } > > > > start() { > > [ -x $nginx ] || exit 5 > > [ -f $NGINX_CONF_FILE ] || exit 6 > > make_dirs > > echo -n $"Starting $prog: " > > daemon $nginx -c $NGINX_CONF_FILE > > retval=$? > > echo > > [ $retval -eq 0 ] && touch $lockfile > > return $retval > > } > > > > stop() { > > echo -n $"Stopping $prog: " > > killproc $prog -QUIT > > retval=$? > > echo > > [ $retval -eq 0 ] && rm -f $lockfile > > return $retval > > } > > > > restart() { > > configtest || return $? > > stop > > sleep 1 > > start > > } > > > > reload() { > > configtest || return $? > > echo -n $"Reloading $prog: " > > killproc $nginx -HUP > > RETVAL=$? > > echo > > } > > > > force_reload() { > > restart > > } > > > > configtest() { > > $nginx -t -c $NGINX_CONF_FILE > > } > > > > rh_status() { > > status $prog > > } > > > > rh_status_q() { > > rh_status >/dev/null 2>&1 > > } > > > > case "$1" in > > start) > > rh_status_q && exit 0 > > $1 > > ;; > > stop) > > rh_status_q || exit 0 > > $1 > > ;; > > restart|configtest) > > $1 > > ;; > > reload) > > rh_status_q || exit 7 > > $1 > > ;; > > force-reload) > > force_reload > > ;; > > status) > > rh_status > > ;; > > condrestart|try-restart) > > rh_status_q || exit 0 > > ;; > > *) > > echo $"Usage: $0 > > > {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" > > exit 2 > > esac > > > > Как это отдебажить ? Спасибо. > > _______________________________ > > С Уважением, Алексей Масленников > > > > Jabber: minisotm на jabber.ru > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru на nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > > > -- > Best regards, > Anton Kiryushkin, > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From kokorin.ivan на itmh.ru Wed Aug 3 10:29:33 2011 From: kokorin.ivan на itmh.ru (=?koi8-r?B?68/Lz9LJziDp18HOIPfMwcTJzcnSz9fJ3g==?=) Date: Wed, 3 Aug 2011 10:29:33 +0000 Subject: =?UTF-8?B?0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40LUg0L/QtdGA0LXQvNC10L3QvdGL0YUg?= =?UTF-8?B?0LIgZmFzdGNnaV9jb25uZWN0X3RpbWVvdXQg?= Message-ID: <9183453B60A9EB498F2EC94E1E721BCF10E9AF42@TARIS.itmh.local> Добрый день. Подскажите, возможно ли использование переменных в директивах fastcgi_connect_timeout и fastcgi_read_timeout? Имеется конфиг geo $fastcgi_timeout { default 2; 172.16.0.0/16 60; } server { # skipped location ~ \.php { include fastcgi_pass; include fastcgi_params; fastcgi_connect_timeout $fastcgi_timeout; fastcgi_read_timeout $fastcgi_timeout; } } При тестировании конфига получаю. [emerg]: "fastcgi_connect_timeout" directive invalid value in :59 configuration file test failed ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From igor на sysoev.ru Wed Aug 3 10:34:10 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 3 Aug 2011 14:34:10 +0400 Subject: =?UTF-8?B?UmU6INC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC1INC/0LXRgNC10LzQtdC90L0=?= =?UTF-8?B?0YvRhSDQsiBmYXN0Y2dpX2Nvbm5lY3RfdGltZW91dA==?= In-Reply-To: <9183453B60A9EB498F2EC94E1E721BCF10E9AF42@TARIS.itmh.local> References: <9183453B60A9EB498F2EC94E1E721BCF10E9AF42@TARIS.itmh.local> Message-ID: <20110803103409.GC27342@sysoev.ru> On Wed, Aug 03, 2011 at 10:29:33AM +0000, Кокорин Иван Владимирович wrote: > Добрый день. Подскажите, возможно ли использование переменных в директивах fastcgi_connect_timeout и fastcgi_read_timeout? Имеется конфиг > > geo $fastcgi_timeout { > default 2; > 172.16.0.0/16 60; > } > > server { > # skipped > location ~ \.php { > include fastcgi_pass; > include fastcgi_params; > fastcgi_connect_timeout $fastcgi_timeout; > fastcgi_read_timeout $fastcgi_timeout; > } > } > > При тестировании конфига получаю. > [emerg]: "fastcgi_connect_timeout" directive invalid value in :59 > configuration file test failed Сейчас - нельзя. -- Игорь Сысоев http://sysoev.ru From mdounin на mdounin.ru Wed Aug 3 10:34:45 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 3 Aug 2011 14:34:45 +0400 Subject: =?UTF-8?B?UmU6INC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC1INC/0LXRgNC10LzQtdC90L0=?= =?UTF-8?B?0YvRhSDQsiBmYXN0Y2dpX2Nvbm5lY3RfdGltZW91dA==?= In-Reply-To: <9183453B60A9EB498F2EC94E1E721BCF10E9AF42@TARIS.itmh.local> References: <9183453B60A9EB498F2EC94E1E721BCF10E9AF42@TARIS.itmh.local> Message-ID: <20110803103444.GW1137@mdounin.ru> Hello! On Wed, Aug 03, 2011 at 10:29:33AM +0000, Кокорин Иван Владимирович wrote: > Добрый день. Подскажите, возможно ли использование переменных в > директивах fastcgi_connect_timeout и fastcgi_read_timeout? Нет. Maxim Dounin From minisotm на gmail.com Wed Aug 3 10:37:45 2011 From: minisotm на gmail.com (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0JzQsNGB0LvQtdC90L3QuNC60L7Qsg==?=) Date: Wed, 3 Aug 2011 14:37:45 +0400 Subject: restart nginx In-Reply-To: <4E391DC5.3030705@csdoc.com> References: <4E391DC5.3030705@csdoc.com> Message-ID: Огромное спасибо. теперь понимание настало! А можно сюда же вопрос не по теме ? Почему не работают эти локейшины: server{ .... location / { try_files $uri $uri/ /index.php; } location /32x45/ { proxy_pass http://proxy/img/; image_filter resize 32 45; } .... location ~ \.php$ { proxy_set_header Host $host; proxy_pass http://127.0.0.1; proxy_set_header X-Forwarded-For $remote_addr; } } _______________________________ С Уважением, Алексей Масленников Jabber: minisotm на jabber.ru 3 августа 2011 г. 14:07 пользователь Gena Makhomed написал: > On 03.08.2011 12:27, Алексей Масленников wrote: > > на системе CentOS release 5.3 (Final) >> > > где Вы взяли такой древний и глючный инит-скрипт? > > > Запускается раза с 5-го >> > > т.е. нормально не работает service nginx start ? > > > > restart пишет что все ОК, но не работает . > > или проблемы только с service nginx restart ? > > что при этом пишется на stderr и в error.log ? > > > make_dirs() { >> # make required directories >> user=`nginx -V 2>&1 | grep "configure arguments:" | sed >> 's/[^*]*--user=\([^ ]*\).*/\1/g' -` >> options=`$nginx -V 2>&1 | grep 'configure arguments:'` >> for opt in $options; do >> if [ `echo $opt | grep '.*-temp-path'` ]; then >> value=`echo $opt | cut -d "=" -f 2` >> if [ ! -d "$value" ]; then >> # echo "creating" $value >> mkdir -p $value && chown -R $user $value >> fi >> fi >> done >> } >> > > возможно имеет смысл эту функциональность перенести > внутрь /usr/sbin/nginx, чтобы он сам создавал каталоги. > потому что через shell-скрипт получается не очень красиво... > > > stop() { >> echo -n $"Stopping $prog: " >> killproc $prog -QUIT >> retval=$? >> echo >> [ $retval -eq 0 ] && rm -f $lockfile >> return $retval >> } >> > > причина глюков с restart - именно в этом, > старому экземпляру nginx посылают сигнал -QUIT > - это команда на "плавное завершение" и после > этого - сразу же запускают новый экземпляр. > > если убрать -QUIT - то service nginx stop будет завершать > его работу гораздо быстрее, сразу обрывая все соединения. > > > restart() { >> configtest || return $? >> stop >> sleep 1 >> start >> } >> > > sleep 1 - это не очень хороший workaround для вручную созданного > глюка, старый экземпляр nginx может и не успеть выйти за 1 секунду. > > кроме того - нет никакого смысла использовать restart, когда > в nginx есть http://sysoev.ru/nginx/docs/**control.html#upgrade > да и большинство изменений в конфигурации применяются > с помощью команды service nginx reload > > force_reload() { >> restart >> } >> > > очень старый инит-скрипт, эти ошибки были исправлены > в нем еще несколько лет тому назад. по крайней мере, > в init-скрипте из EPEL этих ошибок уже давно нет. > > Как это отдебажить ? Спасибо. >> > > см. в аттаче мой вариант инит-скрипта. > > после изменения настроек лучше делать service nginx reload > а после обновления бинарника или чтобы на 100% быть уверенным, > что все изменения применились - service nginx force-reload > > service nginx restart не имеет смысла вообще использовать. > разве что только в том случае когда nginx так зависнет, > что никак нельзя будет завершить, а только через kill -9 > ( но лучше будет причину этой ошибки найти и устранить ) > > там я еще сделал некоторую часть работы для того, чтобы > можно было запускать одновременно несколько независимых > экземпляров nginx на одном сервере, просто копируя > инит-скрипт, например, в nginx-frontend, nginx-static, и т.п. > меняя переменную pidfile и значение переменной instance - > но пока что полностью это сделать не удалось - в nginx > жестко вкомпилировано имя error.log файла и поэтому > разные экземпляры nginx будут писать ошибки в один > и тот же лог-файл, что не очень удобно и трудно > потом будет понять, что к чему относится. > > на FreeBSD насколько я знаю, nginx "из коробки" > поддерживает такой режим работы, что можно запускать > несколько полностью независимых друг от друга экземпляров, > но на Linux - такую функциональность сейчас сделать нельзя, > не компилируя его много раз с различными параметрами configure. > > -- > Best regards, > Gena > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From gmm на csdoc.com Wed Aug 3 10:45:12 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Wed, 03 Aug 2011 13:45:12 +0300 Subject: =?UTF-8?B?UmU6INC90YPQttC10L0g0YHQvtCy0LXRgiDQv9C+IGlmLdC60L7QvdGB0YLRgNGD?= =?UTF-8?B?0LrRhtC40Y/QvA==?= In-Reply-To: References: Message-ID: <4E3926B8.4000107@csdoc.com> On 02.08.2011 19:43, Илья Шипицин wrote: > нужен критический взгляд на наш подход к написанию конфигов. > задача такая, скажем, nginx балансирует группу сайтов. > соотвественно на профилактику можно закрыть, как отдельный сайт, так > всю группу. группу сайтов на сервере можно закрывать скриптом, так что эта задача легко сводится к задаче закрытия отдельного сайта на профилактику. > людям, которые выполняют профилактику, нужен backdoor, чтобы смотреть, > как всё получилось, до того, как открыть сайты обратно. server { server_name example.com; ... } - видимый для клиентов server { server_name example.com; ... } - видимый для персонала второй сервер - запускать на отдельном порту, с запросом клиентского сертификата, чтобы никто кроме персонала не мог зайти на этот сайт. > сайты https, строго по паролю, в поисковых системах мы не > присутствуем, поэтому на время профилактики нам неважно, > с 503-м кодом мы ее отдаем или с 200-м. http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#try_files try_files /system/maintenance.html $uri $uri/ =404; если в location с try_files есть proxy_pass, то для обработки запроса он будет проксироваться на backend, если proxy_pass нет - файл $uri будет отдаваться как статика. если есть /system/maintenance.html то всегда будет показываться содержимое этого файла на любой запрос. в самом этом файле можно сгенерировать html текст сообщения о том, что на сервере проводятся какие-то работы и сколько времени займет восстановление работы. если такого файла нет - тогда будет происходить нормальная обработка, и не будет показываться заглушка. > конфиг написан на if-ах и include-ах, хочется понять, является ли он > оптимальным (голова заточена на if-ы, сложно переключаться на > location/map подход). есть подозрение, что можно переписать более > оптиаально, чем на куче if-ов. можно сделать разные конфиги для одного сайта, для нормальной работы и для режима профилактики, и просто менять конфигурационные файлы, после чего делать service nginx reload - самое надежное и эффективное решение (не будет оверхеда в нормальном режиме работы), если нет "долгоиграющих" сессий с клиентами - отдачи больших файлов и т.п. -- Best regards, Gena From gmm на csdoc.com Wed Aug 3 10:51:47 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Wed, 03 Aug 2011 13:51:47 +0300 Subject: restart nginx In-Reply-To: References: <4E391DC5.3030705@csdoc.com> Message-ID: <4E392843.2080307@csdoc.com> On 03.08.2011 13:37, Алексей Масленников wrote: > А можно сюда же вопрос не по теме ? вообще-то для разных вопросов лучше создавать отдельные треды. > Почему не работают эти локейшины: > > server{ > .... > location / { > try_files $uri $uri/ /index.php; > } > > location /32x45/ { > proxy_pass http://proxy/img/; > image_filter resize 32 45; > } > .... > > location ~ \.php$ { > proxy_set_header Host $host; > proxy_pass http://127.0.0.1; > proxy_set_header X-Forwarded-For $remote_addr; > } > > } что значит "не работают" ? почему поведение nginx отличается от ожидаемого - ответ на этот вопрос можно увидеть в error.log в лучшем случае, или в отладочной версии error.log см. - http://nginx.org/en/docs/debugging_log.html -- Best regards, Gena From minisotm на gmail.com Wed Aug 3 11:02:52 2011 From: minisotm на gmail.com (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0JzQsNGB0LvQtdC90L3QuNC60L7Qsg==?=) Date: Wed, 3 Aug 2011 15:02:52 +0400 Subject: restart nginx In-Reply-To: <4E392843.2080307@csdoc.com> References: <4E391DC5.3030705@csdoc.com> <4E392843.2080307@csdoc.com> Message-ID: На счет новой темы - понял, в следующий раз так и сделаю. Не проксирует на php скрипты, но работает при ~ .*$. и не не срабатывает локешин /32x45/ (вместо того чтобы обратиться к прокси- ищет этот файл) _______________________________ С Уважением, Алексей Масленников Jabber: minisotm на jabber.ru 3 августа 2011 г. 14:51 пользователь Gena Makhomed написал: > On 03.08.2011 13:37, Алексей Масленников wrote: > > А можно сюда же вопрос не по теме ? >> > > вообще-то для разных вопросов > лучше создавать отдельные треды. > > > Почему не работают эти локейшины: >> >> server{ >> .... >> location / { >> try_files $uri $uri/ /index.php; >> } >> >> location /32x45/ { >> proxy_pass http://proxy/img/; >> image_filter resize 32 45; >> } >> .... >> >> location ~ \.php$ { >> proxy_set_header Host $host; >> proxy_pass http://127.0.0.1; >> proxy_set_header X-Forwarded-For $remote_addr; >> } >> >> } >> > > что значит "не работают" ? > > почему поведение nginx отличается от ожидаемого - > ответ на этот вопрос можно увидеть в error.log > в лучшем случае, или в отладочной версии error.log > см. - http://nginx.org/en/docs/**debugging_log.html > > > -- > Best regards, > Gena > > ______________________________**_________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/**mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ne на vbart.ru Wed Aug 3 11:39:26 2011 From: ne на vbart.ru (=?utf-8?b?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 3 Aug 2011 15:39:26 +0400 Subject: restart nginx In-Reply-To: References: <4E392843.2080307@csdoc.com> Message-ID: <201108031539.27211.ne@vbart.ru> On Wednesday 03 August 2011 15:02:52 Алексей Масленников wrote: > На счет новой темы - понял, в следующий раз так и сделаю. > Не проксирует на php скрипты, но работает при ~ .*$. и не не срабатывает > локешин /32x45/ (вместо того чтобы обратиться к прокси- ищет этот файл) Того куска конфига, что вы привели, недостаточно для диагностики вашей проблемы. Вероятно, запросы попадают в какой-то другой локейшн, который вы нам не показали. -- Валентин Бартенев http://vbart.ru/ From minisotm на gmail.com Wed Aug 3 11:53:37 2011 From: minisotm на gmail.com (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0JzQsNGB0LvQtdC90L3QuNC60L7Qsg==?=) Date: Wed, 3 Aug 2011 15:53:37 +0400 Subject: restart nginx In-Reply-To: <201108031539.27211.ne@vbart.ru> References: <4E392843.2080307@csdoc.com> <201108031539.27211.ne@vbart.ru> Message-ID: Вот все полностью server { listen 192.168.0.1 server_name test.local; access_log /var/log/nginx/test.local.log; proxy_read_timeout 300; client_max_body_size 200m; image_filter_buffer 5M; location / { try_files $uri $uri/ /index.php; } location /32x45/ { proxy_pass http://test.local/img/; image_filter resize 32 45; } location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ { root /var/www/tests.local; access_log off; expires 10d; break; } location ~ \.php$ { proxy_set_header Host $host; proxy_pass http://127.0.0.1; proxy_set_header X-Forwarded-For $remote_addr; } } 2011/8/3 Валентин Бартенев > On Wednesday 03 August 2011 15:02:52 Алексей Масленников wrote: > > На счет новой темы - понял, в следующий раз так и сделаю. > > Не проксирует на php скрипты, но работает при ~ .*$. и не не срабатывает > > локешин /32x45/ (вместо того чтобы обратиться к прокси- ищет этот файл) > > Того куска конфига, что вы привели, недостаточно для диагностики вашей > проблемы. Вероятно, запросы попадают в какой-то другой локейшн, который вы > нам > не показали. > > -- > Валентин Бартенев > http://vbart.ru/ > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From minisotm на gmail.com Wed Aug 3 12:00:31 2011 From: minisotm на gmail.com (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0JzQsNGB0LvQtdC90L3QuNC60L7Qsg==?=) Date: Wed, 3 Aug 2011 16:00:31 +0400 Subject: restart nginx In-Reply-To: References: <4E392843.2080307@csdoc.com> <201108031539.27211.ne@vbart.ru> Message-ID: на другом сервере данный локейшин вполне себе работает. 3 августа 2011 г. 15:53 пользователь Алексей Масленников написал: > Вот все полностью > server { > listen 192.168.0.1 > > server_name test.local; > > access_log /var/log/nginx/test.local.log; > > proxy_read_timeout 300; > client_max_body_size 200m; > image_filter_buffer 5M; > > location / { > try_files $uri $uri/ /index.php; > } > > location /32x45/ { > proxy_pass http://test.local/img/; > image_filter resize 32 45; > } > > location ~* > ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ > { > root /var/www/tests.local; > access_log off; > expires 10d; > break; > } > > location ~ \.php$ { > proxy_set_header Host $host; > proxy_pass http://127.0.0.1; > proxy_set_header X-Forwarded-For $remote_addr; > } > } > > > > 2011/8/3 Валентин Бартенев > >> On Wednesday 03 August 2011 15:02:52 Алексей Масленников wrote: >> > На счет новой темы - понял, в следующий раз так и сделаю. >> > Не проксирует на php скрипты, но работает при ~ .*$. и не не срабатывает >> > локешин /32x45/ (вместо того чтобы обратиться к прокси- ищет этот файл) >> >> Того куска конфига, что вы привели, недостаточно для диагностики вашей >> проблемы. Вероятно, запросы попадают в какой-то другой локейшн, который вы >> нам >> не показали. >> >> -- >> Валентин Бартенев >> http://vbart.ru/ >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ne на vbart.ru Wed Aug 3 12:20:31 2011 From: ne на vbart.ru (=?utf-8?b?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 3 Aug 2011 16:20:31 +0400 Subject: restart nginx In-Reply-To: References: <201108031539.27211.ne@vbart.ru> Message-ID: <201108031620.31836.ne@vbart.ru> On Wednesday 03 August 2011 15:53:37 Алексей Масленников wrote: > location /32x45/ { > proxy_pass http://test.local/img/; > image_filter resize 32 45; > } А какой запрос вы посылаете? Вероятно, он попадает у вас сюда: > location ~* > ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|t > ar|mid|midi|wav|bmp|rtf|js)$ { > root /var/www/tests.local; > access_log off; > expires 10d; > break; > } -- Валентин Бартенев http://vbart.ru/ From minisotm на gmail.com Wed Aug 3 12:27:50 2011 From: minisotm на gmail.com (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0JzQsNGB0LvQtdC90L3QuNC60L7Qsg==?=) Date: Wed, 3 Aug 2011 16:27:50 +0400 Subject: restart nginx In-Reply-To: <201108031620.31836.ne@vbart.ru> References: <201108031539.27211.ne@vbart.ru> <201108031620.31836.ne@vbart.ru> Message-ID: да, запрашивает файл /32x45/*.jpg, а как сделать чтобы попадало в /32x45/ location ? 2011/8/3 Валентин Бартенев > On Wednesday 03 August 2011 15:53:37 Алексей Масленников wrote: > > > location /32x45/ { > > proxy_pass http://test.local/img/; > > image_filter resize 32 45; > > } > > А какой запрос вы посылаете? Вероятно, он попадает у вас сюда: > > > location ~* > > > ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|t > > ar|mid|midi|wav|bmp|rtf|js)$ { > > root /var/www/tests.local; > > access_log off; > > expires 10d; > > break; > > } > > -- > Валентин Бартенев > http://vbart.ru/ > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From sergey.kobzar на itcraft.org Wed Aug 3 12:44:09 2011 From: sergey.kobzar на itcraft.org (Sergey Kobzar) Date: Wed, 03 Aug 2011 15:44:09 +0300 Subject: Nginx upstream - server down Message-ID: <4E394299.6050705@itcraft.org> Имеется фронтэнд с группой бэкендов: upstream backend { ip_hash; server a.b.c.d; server e.f.g.h; } server { listen 80 default; location / { proxy_pass http://backend; proxy_next_upstream error timeout http_502 http_504; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } Если на одном из бэкендов потушить Nginx - все ОК, запросы переходя на доступный бэкенд. Если же выключить полностью сервер, frontend по таймауту в 30-60 сек. выдает 502 ошибку. Видимо в первом случае frontend получает ICMP сообщение, что порт недоступен, а во втором случае соотв. ничего не получает. Какое есть решение? Спасибо. From ne на vbart.ru Wed Aug 3 12:55:01 2011 From: ne на vbart.ru (=?utf-8?b?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 3 Aug 2011 16:55:01 +0400 Subject: restart nginx In-Reply-To: References: <201108031620.31836.ne@vbart.ru> Message-ID: <201108031655.01460.ne@vbart.ru> On Wednesday 03 August 2011 16:27:50 Алексей Масленников wrote: > да, запрашивает файл /32x45/*.jpg, а как сделать чтобы попадало в /32x45/ > location ? 1) (best way) Поместить локейшн с регулярками внутрь обычного, например, так: location / { try_files $uri $uri/ /index.php; location ~* \.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ { root /var/www/tests.local; access_log off; expires 10d; break; } } 2) Запретить проверку регулярных выражений после совпадения: location ^~ /32x45/ { proxy_pass http://test.local/img/; image_filter resize 32 45; } -- Валентин Бартенев http://vbart.ru/ From ne на vbart.ru Wed Aug 3 13:00:45 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Wed, 3 Aug 2011 17:00:45 +0400 Subject: restart nginx In-Reply-To: <201108031655.01460.ne@vbart.ru> References: <201108031655.01460.ne@vbart.ru> Message-ID: <201108031700.45885.ne@vbart.ru> On Wednesday 03 August 2011 16:55:01 Валентин Бартенев wrote: > 1) (best way) Поместить локейшн с регулярками внутрь обычного, например, > так: > > location / { > try_files $uri $uri/ /index.php; > > location ~* > \.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar > |mid|midi|wav|bmp|rtf|js)$ { > root /var/www/tests.local; > access_log off; > expires 10d; > break; > } > } > > 2) Запретить проверку регулярных выражений после совпадения: > location ^~ /32x45/ { > proxy_pass http://test.local/img/; > image_filter resize 32 45; > } > p.s. Это два разных способа решения одной задачи, т.е. достаточно сделать одно из двух. -- Валентин Бартенев http://vbart.ru/ From minisotm на gmail.com Wed Aug 3 13:13:22 2011 From: minisotm на gmail.com (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0JzQsNGB0LvQtdC90L3QuNC60L7Qsg==?=) Date: Wed, 3 Aug 2011 17:13:22 +0400 Subject: restart nginx In-Reply-To: <201108031700.45885.ne@vbart.ru> References: <201108031655.01460.ne@vbart.ru> <201108031700.45885.ne@vbart.ru> Message-ID: Блин, надо в маны почаще смотреть. Спасибо большое. 2011/8/3 Валентин Бартенев > On Wednesday 03 August 2011 16:55:01 Валентин Бартенев wrote: > > > 1) (best way) Поместить локейшн с регулярками внутрь обычного, например, > > так: > > > > location / { > > try_files $uri $uri/ /index.php; > > > > location ~* > > > \.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar > > |mid|midi|wav|bmp|rtf|js)$ { > > root /var/www/tests.local; > > access_log off; > > expires 10d; > > break; > > } > > } > > > > 2) Запретить проверку регулярных выражений после совпадения: > > location ^~ /32x45/ { > > proxy_pass http://test.local/img/; > > image_filter resize 32 45; > > } > > > > p.s. Это два разных способа решения одной задачи, т.е. достаточно сделать > одно > из двух. > > -- > Валентин Бартенев > http://vbart.ru/ > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From igor на sysoev.ru Wed Aug 3 13:46:59 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 3 Aug 2011 17:46:59 +0400 Subject: trac.nginx.org Message-ID: <20110803134659.GB30243@sysoev.ru> Мы рады объявить об открытии http://trac.nginx.org - инновационного интерфейса отправки сообщенияй об ошибках и патчей. Короткая инструкция: http://trac.nginx.org/nginx/wiki Спасибо! -- Игорь Сысоев http://sysoev.ru From denis.kot на gmail.com Wed Aug 3 14:04:29 2011 From: denis.kot на gmail.com (Denis Kot) Date: Wed, 3 Aug 2011 17:04:29 +0300 Subject: trac.nginx.org In-Reply-To: <20110803134659.GB30243@sysoev.ru> References: <20110803134659.GB30243@sysoev.ru> Message-ID: 403 Forbidden Unknown error occurred during authentication Denis Kot 3 августа 2011 г. 16:46 пользователь Igor Sysoev написал: > Мы рады объявить об открытии http://trac.nginx.org - инновационного > интерфейса отправки сообщенияй об ошибках и патчей. Короткая инструкция: > http://trac.nginx.org/nginx/wiki > > Спасибо! > > > -- > Игорь Сысоев > http://sysoev.ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > From denis.kot на gmail.com Wed Aug 3 14:06:13 2011 From: denis.kot на gmail.com (Denis Kot) Date: Wed, 3 Aug 2011 17:06:13 +0300 Subject: trac.nginx.org In-Reply-To: References: <20110803134659.GB30243@sysoev.ru> Message-ID: Это при попытке авторизации через OpenID гугла. Denis Kot 3 августа 2011 г. 17:04 пользователь Denis Kot написал: > 403 Forbidden > Unknown error occurred during authentication > > Denis Kot > > > 3 августа 2011 г. 16:46 пользователь Igor Sysoev написал: >> Мы рады объявить об открытии http://trac.nginx.org - инновационного >> интерфейса отправки сообщенияй об ошибках и патчей. Короткая инструкция: >> http://trac.nginx.org/nginx/wiki >> >> Спасибо! >> >> >> -- >> Игорь Сысоев >> http://sysoev.ru >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > From sb на waeme.net Wed Aug 3 14:42:22 2011 From: sb на waeme.net (Sergey Budnevitch) Date: Wed, 3 Aug 2011 18:42:22 +0400 Subject: trac.nginx.org In-Reply-To: References: <20110803134659.GB30243@sysoev.ru> Message-ID: <586213F7-A7CA-463E-A8A0-A517DC384804@waeme.net> У гугла openid работает, но написан он роботами и для роботов, и в чистом виде именно как openid его использовать сложно. Если все-таки хочется, и нет других вариантов, то в качестве openid надо указать https://www.google.com/accounts/o8/id Плюс необходимо, чтобы google profiles был включен в гугловых настройках. On 03.08.2011, at 18:06, Denis Kot wrote: > Это при попытке авторизации через OpenID гугла. > > Denis Kot > > > > 3 августа 2011 г. 17:04 пользователь Denis Kot написал: >> 403 Forbidden >> Unknown error occurred during authentication >> >> Denis Kot From postmaster на softsearch.ru Wed Aug 3 14:49:48 2011 From: postmaster на softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Wed, 3 Aug 2011 18:49:48 +0400 Subject: trac.nginx.org In-Reply-To: References: <20110803134659.GB30243@sysoev.ru> Message-ID: <1507813713.20110803184948@softsearch.ru> Здравствуйте, Denis. > Это при попытке авторизации через OpenID гугла. Если этот Трах сильно лечить, то при обновлении его опять придётся подлечивать. А он бывает дырявым и лечить может понадобиться срочно. Как развлечение это прикольно. Но по мне так лучше б nginx развивался, чем трак обрастал фичами на его сайте. -- С уважением, Михаил mailto:postmaster на softsearch.ru From denis.kot на gmail.com Wed Aug 3 14:51:33 2011 From: denis.kot на gmail.com (Denis Kot) Date: Wed, 3 Aug 2011 17:51:33 +0300 Subject: trac.nginx.org In-Reply-To: <586213F7-A7CA-463E-A8A0-A517DC384804@waeme.net> References: <20110803134659.GB30243@sysoev.ru> <586213F7-A7CA-463E-A8A0-A517DC384804@waeme.net> Message-ID: Спасибо, помогло. Еще может вот это поправить/увеличить? http://trac.nginx.org/nginx/browser/nginx/tags/release-1.1.0/docs/xml/nginx/changes.xml Ревизия 3988, 394.9 KB зафиксирована пользователем is, 2 дня назад (diff) nginx-1.1.0-RELEASE HTML просмотр недоступен, потому что размер файла превышает 262144 байт. Попробуйте вместо этого скачать файл. вроде 260кб не так много :) Denis Kot 3 августа 2011 г. 17:42 пользователь Sergey Budnevitch написал: > https://www.google.com/accounts/o8/id From igor на sysoev.ru Wed Aug 3 15:51:47 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 3 Aug 2011 19:51:47 +0400 Subject: restart nginx In-Reply-To: References: <4E392843.2080307@csdoc.com> <201108031539.27211.ne@vbart.ru> Message-ID: <20110803155147.GB33878@sysoev.ru> On Wed, Aug 03, 2011 at 03:53:37PM +0400, Алексей Масленников wrote: > location ~* > ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ > { > root /var/www/tests.local; > access_log off; > expires 10d; > break; > } break здесь - это пустая трата времени процессора. -- Игорь Сысоев http://sysoev.ru From nginx-forum на nginx.us Wed Aug 3 16:08:46 2011 From: nginx-forum на nginx.us (a.a.vasiljev) Date: Wed, 03 Aug 2011 12:08:46 -0400 Subject: =?UTF-8?B?bmdpbngg0LjRgdC60LDQttCw0LXRgiDQv9GA0L7QutGB0LjRgNC+0LLQsNC90L0=?= =?UTF-8?B?0YvQuSDQutC+0L3RgtC10L3Rgg==?= Message-ID: Здравствуйте. Кто-нибудь сталкивался с ситуацией, когда nginx искажает проксированный контент: дописывает число в начале и конце файла? $ diff -u /tmp/why_direct /tmp/why_nginx --- /tmp/why_direct 2011-08-03 22:59:18.869231854 +0700 +++ /tmp/why_nginx 2011-08-03 22:58:18.782830815 +0700 @@ -1,3 +1,4 @@ +4db6 @@ -272,4 +273,6 @@ - \ В конце файла нет новой строки + +0 + файл летит с виртуального апача в utf-8. Если в windows-1251, то число меняется, но остаётся на том же месте. ОС Федора, nginx-0.8.54-2.fc14.i686 реальное безобразие можно видеть на http://osutivremeni.ru/why/ ниже конфиг nginx'а как есть, в файлах /etc/nginx/conf.d/*.conf всё содержимое закомментировано. Могу показать заголовки, если надо. ####################################################################### # # This is the main Nginx configuration file. # # More information about the configuration options is available on # * the English wiki - http://wiki.nginx.org/Main # * the Russian documentation - http://sysoev.ru/nginx/ # ####################################################################### #---------------------------------------------------------------------- # Main Module - directives that cover basic functionality # # http://wiki.nginx.org/NginxHttpMainModule # #---------------------------------------------------------------------- user nginx; worker_processes 1; #error_log /var/log/nginx/error.log; error_log /var/log/nginx/error.log notice; #error_log /var/log/nginx/error.log info; pid /var/run/nginx.pid; #---------------------------------------------------------------------- # Events Module # # http://wiki.nginx.org/NginxHttpEventsModule # #---------------------------------------------------------------------- events { worker_connections 1024; } #---------------------------------------------------------------------- # HTTP Core Module # # http://wiki.nginx.org/NginxHttpCoreModule # #---------------------------------------------------------------------- http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; # Load config files from the /etc/nginx/conf.d directory include /etc/nginx/conf.d/*.conf; server { listen 80; server_name aikido.nsk.su; set $host_without_www $1; rewrite ^(.*)$ http://www.aikido.nsk.su$1 permanent; } server { listen 80; server_name .osutivremeni.ru; location / { proxy_pass http://127.0.0.1:5578; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } server { listen 88; server_name local; location /phpmyadmin { allow 127.0.0.1; deny all; proxy_pass http://127.0.0.1:86; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213319,213319#msg-213319 From igor на sysoev.ru Wed Aug 3 16:12:10 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 3 Aug 2011 20:12:10 +0400 Subject: =?UTF-8?B?UmU6IG5naW54INC40YHQutCw0LbQsNC10YIg0L/RgNC+0LrRgdC40YDQvtCy0LA=?= =?UTF-8?B?0L3QvdGL0Lkg0LrQvtC90YLQtdC90YI=?= In-Reply-To: References: Message-ID: <20110803161209.GD33878@sysoev.ru> On Wed, Aug 03, 2011 at 12:08:46PM -0400, a.a.vasiljev wrote: > Здравствуйте. > > Кто-нибудь сталкивался с ситуацией, > когда nginx искажает проксированный > контент: дописывает число в начале и > конце файла? > > $ diff -u /tmp/why_direct /tmp/why_nginx > --- /tmp/why_direct 2011-08-03 22:59:18.869231854 +0700 > +++ /tmp/why_nginx 2011-08-03 22:58:18.782830815 +0700 > @@ -1,3 +1,4 @@ > +4db6 > > > > @@ -272,4 +273,6 @@ > > > > - > \ В конце файла нет новой строки > + > +0 > + > > файл летит с виртуального апача в utf-8. > Если в windows-1251, то число меняется, но > остаётся на том же месте. > ОС Федора, nginx-0.8.54-2.fc14.i686 > > реальное безобразие можно видеть на > http://osutivremeni.ru/why/ Числа и безобразия дописывает бэкенд, находящийся на proxy_pass http://127.0.0.1:5578; Он почему-то считает, что на запрос HTTP/1.0 можно отвечать чанками. А на самом-то деле - нельзя! -- Игорь Сысоев http://sysoev.ru From latypoff на yandex.ru Wed Aug 3 16:23:02 2011 From: latypoff на yandex.ru (Denis F. Latypoff) Date: Wed, 03 Aug 2011 23:23:02 +0700 Subject: =?UTF-8?B?UmU6INC90YPQttC10L0g0YHQvtCy0LXRgiDQv9C+IGlmLdC60L7QvdGB0YLRgNGD?= =?UTF-8?B?0LrRhtC40Y/QvA==?= In-Reply-To: References: <117451312344138@web35.yandex.ru> Message-ID: <16771312388582@web31.yandex.ru> 03.08.2011, 15:32, "Илья Шипицин" : > 3 августа 2011 г. 10:02 пользователь Denis F. Latypoff > написал: > >>  02.08.2011, 23:43, "Илья Шипицин" : >>>  Добрый день! >>> >>>  нужен критический взгляд на наш подход к написанию конфигов. >>>  задача такая, скажем, nginx балансирует группу сайтов. >>>  соотвественно на профилактику можно закрыть, как отдельный сайт, так >>>  всю группу. >>>  людям, которые выполняют профилактику, нужен backdoor, чтобы смотреть, >>>  как всё получилось, до того, как открыть сайты обратно. >>>  сайты https, строго по паролю, в поисковых системах мы не >>>  присутствуем, поэтому на время профилактики нам неважно, с 503-м кодом >>>  мы ее отдаем или с 200-м. >>>  сайты все однотипные. >>> >>>  логика простая - если профилактика, то показываем статику (через SSI >>>  берем время окончания работ из переменной), если надо пройти насквозь, >>>  то идем на /goahead, ловим куку и второй раз по куке проходим, если не >>>  профилактика, то проксируем на $upstream >>  Так учат в школах и вузах. И в книгах. И на хабре еще. >>  Добавьте еще один вирт хост на каком-нибудь порту и ходите на него во >>  времена смуты. А на 80-ом порту показывайте обещалку. > > приложение работает по https, оно настроено на стандартном порту. если > его опубликовать на нестандартном порту - надо дополнительно > перенастраивать (относительные ссылки внутри приложения). > > смысл именно в том, что все пользователи на стандартном порту видят > заглушку, а те, кому надо - видят приложение. Заглушку реализовать не проблема. server { deny all; allow IP1; allow IP2; error_page 403 =200 /maintenance.html; } > > уточните мысль насчет школы и вуза ? что вы хотели этим сказать ? Что алгоритмам уже не учат, только синтаксису. -- br, Denis F. Latypoff. From nginx-forum на nginx.us Wed Aug 3 16:48:22 2011 From: nginx-forum на nginx.us (Logioniz) Date: Wed, 03 Aug 2011 12:48:22 -0400 Subject: Reverse Proxy + header Message-ID: <03400de7567eb29fe146b59339d0d21a.NginxMailingListRussian@forum.nginx.org> Можно ли в поле proxy_pass подставить значение, которое нужно взять из заголовка в http пакете, пример: http packet: get ... host: ... Accept: ... ... MyHeader: qwe.ru Можно ли взять значение поля MyHeader (это qwe.ru) и подставить его в proxy_pass ? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213323,213323#msg-213323 From igor на sysoev.ru Wed Aug 3 16:50:07 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 3 Aug 2011 20:50:07 +0400 Subject: =?UTF-8?B?0J/RgNC+0LzQtdC20YPRgtC+0YfQvdGL0LUg0LrQsNGC0LDQu9C+0LPQuA==?= Message-ID: <20110803165007.GF33878@sysoev.ru> На данный момент nginx НЕ создаёт промежуточные каталоги в пути к каталогу для временных файлов и кэша, то есть, если нужен каталог /var/nginx/proxy_temp, а каталога /var/nginx нет, то nginx его не создаст. nginx может создать только proxy_temp в уже созданном /var/nginx. Тем не менее, периодически возникают пожелания создавать все промежуточные каталоги. Вопрос - какие могут возникнуть проблемы, если nginx будет создавать все необходимые промежуточные каталоги и с какими, кстати, правами ? -- Игорь Сысоев http://sysoev.ru From igor на sysoev.ru Wed Aug 3 16:51:55 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 3 Aug 2011 20:51:55 +0400 Subject: Reverse Proxy + header In-Reply-To: <03400de7567eb29fe146b59339d0d21a.NginxMailingListRussian@forum.nginx.org> References: <03400de7567eb29fe146b59339d0d21a.NginxMailingListRussian@forum.nginx.org> Message-ID: <20110803165155.GG33878@sysoev.ru> On Wed, Aug 03, 2011 at 12:48:22PM -0400, Logioniz wrote: > Можно ли в поле proxy_pass подставить > значение, которое нужно взять из > заголовка в http пакете, пример: > > http packet: > get ... > host: ... > Accept: ... > ... > MyHeader: qwe.ru > > > > Можно ли взять значение поля MyHeader (это > qwe.ru) и подставить его в proxy_pass ? Можно, только так можно сделать анонимную прокси. http { resolver 127.0.0.1; server { location / { proxy_pass $http_myheader; } -- Игорь Сысоев http://sysoev.ru From nginx-forum на nginx.us Wed Aug 3 16:59:00 2011 From: nginx-forum на nginx.us (Logioniz) Date: Wed, 03 Aug 2011 12:59:00 -0400 Subject: Reverse Proxy + header In-Reply-To: <20110803165155.GG33878@sysoev.ru> References: <20110803165155.GG33878@sysoev.ru> Message-ID: <1ef5d8710e6fc22a835c7dd614b9ed06.NginxMailingListRussian@forum.nginx.org> Можно внести ясность. Как присвоить значение переменной $http_myheader? И что значит анонимная? кто-то с какой-то стороны не будет знать о другой стороне? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213323,213326#msg-213326 From latypoff на yandex.ru Wed Aug 3 17:09:10 2011 From: latypoff на yandex.ru (Denis F. Latypoff) Date: Thu, 04 Aug 2011 00:09:10 +0700 Subject: =?UTF-8?B?UmU6INCf0YDQvtC80LXQttGD0YLQvtGH0L3Ri9C1INC60LDRgtCw0LvQvtCz0Lg=?= In-Reply-To: <20110803165007.GF33878@sysoev.ru> References: <20110803165007.GF33878@sysoev.ru> Message-ID: <29861312391350@web8.yandex.ru> 03.08.2011, 23:50, "Igor Sysoev" : > На данный момент nginx НЕ создаёт промежуточные каталоги в пути > к каталогу для временных файлов и кэша, то есть, если нужен каталог > /var/nginx/proxy_temp, а каталога /var/nginx нет, то nginx > его не создаст. nginx может создать только proxy_temp в уже созданном > /var/nginx. > > Тем не менее, периодически возникают пожелания создавать все > промежуточные каталоги. > > Вопрос - какие могут возникнуть проблемы, если nginx будет создавать > все необходимые промежуточные каталоги и с какими, кстати, правами ? Так-то создают промежуточные каталоги много софтин, и вроде как насчет проблем не парятся. IMHO, создавать однозначно с правами воркера, а при создании промежуточного каталога писать в логи, ибо админ, все-таки, должен быть в курсе происходящего. Например, как это делает InnoDB при первом запуске, хотя промежуточных каталогов оно не создает. > > -- > Игорь Сысоев > http://sysoev.ru > -- br, Denis F. Latypoff. From igor на sysoev.ru Wed Aug 3 17:24:10 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 3 Aug 2011 21:24:10 +0400 Subject: Reverse Proxy + header In-Reply-To: <1ef5d8710e6fc22a835c7dd614b9ed06.NginxMailingListRussian@forum.nginx.org> References: <20110803165155.GG33878@sysoev.ru> <1ef5d8710e6fc22a835c7dd614b9ed06.NginxMailingListRussian@forum.nginx.org> Message-ID: <20110803172410.GA36935@sysoev.ru> On Wed, Aug 03, 2011 at 12:59:00PM -0400, Logioniz wrote: > Можно внести ясность. Как присвоить > значение переменной $http_myheader? Значение переменной $http_myheader автоматически появляется из заголовка запроса "myheader". > И что значит анонимная? кто-то с какой-то > стороны не будет знать о другой > стороне? Правильнее сказать не анонимная, а открытая прокси. То есть, любой, кто знает, имя специального заголовка можте воспользоваться этим прокси-сервером. -- Игорь Сысоев http://sysoev.ru From gmm на csdoc.com Wed Aug 3 17:38:42 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Wed, 03 Aug 2011 20:38:42 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtC80LXQttGD0YLQvtGH0L3Ri9C1INC60LDRgtCw0LvQvtCz0Lg=?= In-Reply-To: <20110803165007.GF33878@sysoev.ru> References: <20110803165007.GF33878@sysoev.ru> Message-ID: <4E3987A2.6060008@csdoc.com> On 03.08.2011 19:50, Igor Sysoev wrote: > На данный момент nginx НЕ создаёт промежуточные каталоги в пути > к каталогу для временных файлов и кэша, то есть, если нужен каталог > /var/nginx/proxy_temp, а каталога /var/nginx нет, то nginx > его не создаст. nginx может создать только proxy_temp в уже созданном > /var/nginx > Тем не менее, периодически возникают пожелания создавать все > промежуточные каталоги. чаще всего такие проблемы у тех, кто собирает nginx из исходников. и на системе Windows тоже встречаются такие проблемы, скорее всего. если nginx устанавливается через rpm-пакет - все необходимые каталоги уже будут созданы еще в момент установки пакета, до запуска nginx. > Вопрос - какие могут возникнуть проблемы, если nginx будет создавать > все необходимые промежуточные каталоги и с какими, кстати, правами ? права root:root 755, если промежуточный каталог не называется nginx и nginx:nginx 700 если имя промежуточного каталога равно nginx проблемы быть могут - если раздел с кэшем/файлами не примонтирован, nginx молча создает необходимые ему каталоги в точке монтирования, что отличается от существующего сейчас поведения nginx (fail-safe) еще одна проблема - если кто-то допустил ошибку в конфиге, например, вместо /var/lib/nginx/proxy_temp написал /vae/lib/... то в этом случае nginx также молча пропустит эту опечатку и создаст на сервере проблемы, которые можно будет увидеть только тогда, когда на корневом разделе сервера закончится свободное место. наверное имеет смысл существующее поведение оставить по умолчанию, и принудительно создавать промежуточные каталоги только в том случае, если nginx запускают с параметром командной строки -f (т.е. --force) кому такое поведение nginx с принудительным созданием промежуточных каталогов необходимо - просто будут запускать nginx с параметром -f а у всех остальных пользователей nginx при этом ничего не сломается и гарантированно nginx не сможет создать никому никаких проблем. потом, кроме создания необходимых для работы каталогов к опции -f может быть добавлена еще какая-то дополнительная функциональность. ( это будет означать: запускаться принудительно не смотря на ... ) при этом - выводить информацию / предупреждение о том, что nginx создает такие каталоги (из-за ключа -f) и в лог и в поток stderr. если ключ -f не задан - может быть выводить сообщение на экран и в лог, что такой-то каталог не существует и надо чтобы администратор проверил конфиг, и создал необходимые каталоги для работы nginx вручную или просто запустил nginx с параметром командной строки -f, в этом случае nginx их сам создаст и выставит владельца/права доступа. пока что наблюдается два крупных подмножества среди пользователей nginx: 1. большинство - те кто устанавливает nginx через rpm-пакеты, и кому не нужно чтобы nginx сам создавал эти каталоги и будет даже вредно, поскольку такое поведение может создать проблемы. т.е. это те, кто используют nginx for production use, и кому нежелательны какие-либо проблемы из-за nginx. 2. меньшинство пользователей, которые не пользуются rpm-пакетами и другими средствами операционной системы для установки nginx, и устанавливают nginx компилируя с исходников, и копируя конфиги с другой машины, или пользуются windows-версией и тоже копируют чужие конфиги из интернета или с другой машины - им это будет полезно и удобно. особенно, если это комплект nginx + fastcgi-php для программистов и разработчиков, для использования в основном в development и test environment на своей домашней или рабочей windows машине, т.е. not for production use. поэтому - предлагаю по дефолту в nginx ничего не менять и не создавать (так как сейчас), но для облегчения жизни второй группы пользователей, добавить в nginx параметр командной строки -f который будет это делать. -- Best regards, Gena From nginx-forum на nginx.us Wed Aug 3 17:56:32 2011 From: nginx-forum на nginx.us (Logioniz) Date: Wed, 03 Aug 2011 13:56:32 -0400 Subject: Reverse Proxy + header In-Reply-To: <03400de7567eb29fe146b59339d0d21a.NginxMailingListRussian@forum.nginx.org> References: <03400de7567eb29fe146b59339d0d21a.NginxMailingListRussian@forum.nginx.org> Message-ID: <8b9372644ee322bea2a7a2006f59c4e0.NginxMailingListRussian@forum.nginx.org> Спасибо, очень помогли. А можно узнать, где есть подробная информация о конфигурировании nginx? на вашем сайт вроде не все возможности и методы есть или я может плохо искал? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213323,213330#msg-213330 From zzz на zzz.org.ua Wed Aug 3 17:58:35 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Wed, 3 Aug 2011 20:58:35 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtC80LXQttGD0YLQvtGH0L3Ri9C1INC60LDRgtCw0LvQvtCz0Lg=?= In-Reply-To: <4E3987A2.6060008@csdoc.com> References: <20110803165007.GF33878@sysoev.ru> <4E3987A2.6060008@csdoc.com> Message-ID: On 8/3/11, Gena Makhomed wrote: > еще одна проблема - если кто-то допустил ошибку в конфиге, > например, вместо /var/lib/nginx/proxy_temp написал /vae/lib/... > то в этом случае nginx также молча пропустит эту опечатку и создаст > на сервере проблемы, которые можно будет увидеть только тогда, > когда на корневом разделе сервера закончится свободное место. Да, ошибиться станет легче. Еще не ясно что будет, если вдруг случайно запустить nginx не из под рута. Это надо тоже учесть. From wangsamp на gmail.com Wed Aug 3 18:04:23 2011 From: wangsamp на gmail.com (Oleksandr V. Typlyns'kyi) Date: Wed, 3 Aug 2011 21:04:23 +0300 (EEST) Subject: =?UTF-8?B?UmU6INCf0YDQvtC80LXQttGD0YLQvtGH0L3Ri9C1INC60LDRgtCw0LvQvtCz0Lg=?= In-Reply-To: <4E3987A2.6060008@csdoc.com> References: <20110803165007.GF33878@sysoev.ru> <4E3987A2.6060008@csdoc.com> Message-ID: Today Aug 3, 2011 at 20:38 Gena Makhomed wrote: > On 03.08.2011 19:50, Igor Sysoev wrote: > > Тем не менее, периодически возникают пожелания создавать все > > промежуточные каталоги. > > Вопрос - какие могут возникнуть проблемы, если nginx будет создавать > > все необходимые промежуточные каталоги и с какими, кстати, правами ? > > права root:root 755, если промежуточный каталог не называется nginx > и nginx:nginx 700 если имя промежуточного каталога равно nginx А кто сказал что в системе будет пользователь nginx и группа nginx? В auto/unix по умолчанию задан nobody. "rpm-пакет" создаёт их исключительно по своей инициативе и согласных с ним других систем будет меньшинство. > проблемы быть могут - если раздел с кэшем/файлами не примонтирован, > nginx молча создает необходимые ему каталоги в точке монтирования, > что отличается от существующего сейчас поведения nginx (fail-safe) > > еще одна проблема - если кто-то допустил ошибку в конфиге, > например, вместо /var/lib/nginx/proxy_temp написал /vae/lib/... > то в этом случае nginx также молча пропустит эту опечатку и создаст > на сервере проблемы, которые можно будет увидеть только тогда, > когда на корневом разделе сервера закончится свободное место. Если каталоги создавать после сбрасывания привилегий, то вероятность писать не туда становится крайне низкой. -- WNGS-RIPE From gmm на csdoc.com Wed Aug 3 18:04:31 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Wed, 03 Aug 2011 21:04:31 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtC80LXQttGD0YLQvtGH0L3Ri9C1INC60LDRgtCw0LvQvtCz0Lg=?= In-Reply-To: <4E3987A2.6060008@csdoc.com> References: <20110803165007.GF33878@sysoev.ru> <4E3987A2.6060008@csdoc.com> Message-ID: <4E398DAF.1000904@csdoc.com> On 03.08.2011 20:38, Gena Makhomed wrote: >> Вопрос - какие могут возникнуть проблемы, если nginx будет создавать >> все необходимые промежуточные каталоги и с какими, кстати, правами ? еще одна возможная проблема - если на сервере включен SELinux и для nginx будет написан отдельный контекст, и он не будет запускаться в конексте unconfined_t ( а это рано или поздно произойдет ), - то в этом случае - даже nginx запущенный с root`овыми правами не сможет создать каталогов верхнего уровня, или же - если он вдруг сможет их создать, то он их создаст со своим контекстом, и тем самым - вполне может создать проблемы доступа к этим каталогам другим программам и сервисам, которые будут работать на этом сервере. а SELinux есть уже много где, даже в Debian думают его добавить, и думаю, что рано или поздно nginx добавят и в состав RHEL 7 или 8. так что там он уже точно будет работать с ограничениями из SELinux. поэтому дефолтовое поведение nginx наверное лучше оставить так как сейчас, без изменений, и только сделать ключ -f для тех, кому надо/желательно чтобы nginx сам создавал каталоги верхнего уровня - это будет удобно в основном для отладки/тестирования и в других экзотических случаях. -- Best regards, Gena From server_inc на list.ru Wed Aug 3 18:15:46 2011 From: server_inc на list.ru (=?KOI8-R?Q?=F3=D4=C1=CE=C9=D3=CC=C1=D7?=) Date: Wed, 03 Aug 2011 21:15:46 +0300 Subject: trac.nginx.org In-Reply-To: <20110803134659.GB30243@sysoev.ru> References: <20110803134659.GB30243@sysoev.ru> Message-ID: <4E399052.50006@list.ru> 03.08.2011 16:46, Igor Sysoev пишет: > Мы рады объявить об открытии http://trac.nginx.org - инновационного > интерфейса отправки сообщенияй об ошибках и патчей. Короткая инструкция: > http://trac.nginx.org/nginx/wiki > > Спасибо! > > Отличная новость. Дайте возможность анонимам постить тикеты. From gmm на csdoc.com Wed Aug 3 18:25:40 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Wed, 03 Aug 2011 21:25:40 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtC80LXQttGD0YLQvtGH0L3Ri9C1INC60LDRgtCw0LvQvtCz0Lg=?= In-Reply-To: References: <20110803165007.GF33878@sysoev.ru> <4E3987A2.6060008@csdoc.com> Message-ID: <4E3992A4.7080701@csdoc.com> On 03.08.2011 21:04, Oleksandr V. Typlyns'kyi wrote: >>> Тем не менее, периодически возникают пожелания создавать все >>> промежуточные каталоги. >>> Вопрос - какие могут возникнуть проблемы, если nginx будет создавать >>> все необходимые промежуточные каталоги и с какими, кстати, правами ? >> права root:root 755, если промежуточный каталог не называется nginx >> и nginx:nginx 700 если имя промежуточного каталога равно nginx > А кто сказал что в системе будет пользователь nginx и группа nginx? пользователь сказал в конфиге nginx, как будет называться пользователь, под которым должны работать воркер-процессы. http://sysoev.ru/nginx/docs/ngx_core_module.html#user если в конфиге nginx ничего на эту тему не сказано - то надо будет использовать то, что было сказано во время сборки бинарника nginx. ./configure --help | less --user=USER set non-privilege user for the worker processes --group=GROUP set non-privilege group for the worker processes > В auto/unix по умолчанию задан nobody. да. > "rpm-пакет" создаёт их исключительно по своей инициативе > и согласных с ним других систем будет меньшинство. в nginx.conf директива user - глобальная, а каталоги с путями задаются в контексте http, server, location т.е. в тот момент когда будут известны имена каталогов для кэша и временных файлов - nginx уже точно будет знать имя пользователя с полномочиями которого он должен будет запустить worker-процессы. > Если каталоги создавать после сбрасывания привилегий, > то вероятность писать не туда становится крайне низкой. сброс привилегий происходит в ngx_worker_process_init( ... ) т.е. если на сервере запущено например, 64 воркера, то они будут потом все одновременно пытаться создавать эти каталоги. это не очень хорошо. -- Best regards, Gena From roman.vasilyev на yousendit.com Wed Aug 3 18:36:52 2011 From: roman.vasilyev на yousendit.com (Roman Vasilyev) Date: Wed, 3 Aug 2011 11:36:52 -0700 Subject: Nginx upload module, state folder patch Message-ID: <4E399544.5000204@yousendit.com> Обкатываю этот модуль, наткнулся на небольшую проблему, обсуждение которой есть по ссылке ниже. https://github.com/vkholodkov/nginx-upload-module/issues/11 сделал небольшой патч, которым хотел бы поделиться и услышать критику поэтому поводу. ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: state.patch Type: text/x-diff Size: 1726 bytes Desc: отсутствует URL: From igor на sysoev.ru Wed Aug 3 19:03:08 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 3 Aug 2011 23:03:08 +0400 Subject: Reverse Proxy + header In-Reply-To: <8b9372644ee322bea2a7a2006f59c4e0.NginxMailingListRussian@forum.nginx.org> References: <03400de7567eb29fe146b59339d0d21a.NginxMailingListRussian@forum.nginx.org> <8b9372644ee322bea2a7a2006f59c4e0.NginxMailingListRussian@forum.nginx.org> Message-ID: <20110803190308.GA38912@sysoev.ru> On Wed, Aug 03, 2011 at 01:56:32PM -0400, Logioniz wrote: > Спасибо, очень помогли. > А можно узнать, где есть подробная > информация о конфигурировании nginx? на > вашем сайт вроде не все возможности и > методы есть или я может плохо искал? Сейчас не все. Скоро будет. -- Игорь Сысоев http://sysoev.ru From igor на sysoev.ru Wed Aug 3 19:10:29 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 3 Aug 2011 23:10:29 +0400 Subject: =?UTF-8?B?UmU6IHByb3h5X3Bhc3Mg0Lgg0LTQvtC60LDRh9C60LAg0YTQsNC50LvQvtCy?= In-Reply-To: References: <4E37B5CF.70500@amhost.net> Message-ID: <20110803191029.GD38912@sysoev.ru> On Wed, Aug 03, 2011 at 11:13:17AM +0400, Aleksey Chirkin wrote: > Я устанавливал nginx из macports и понадеялся, что он свежей версии. > Как оказалось, у меня был установлен nginx 1.0.0. > После установки вручную версии 1.0.5 проблема исчезла. Между 1.0.0 и 1.0.5 никаких исправлений или изменений не было. Скорее всего, что поменялось независимо от nginx'а. > Спасибо! > > 2 августа 2011 г. 20:37 пользователь Aleksey Chirkin > написал: > > Да, воспроизводится. > > > > Я сократил конфиг до минимума: > > > > server { > >  listen  127.0.0.1:5500; > > > >  location / { > >   root /www/public; > >  } > > } > > > > server { > >  listen 127.0.0.1:5555; > > > >  location / { > >   proxy_pass  http://127.0.0.1:5500; > >  } > > } > > > > Загрузка 15-ти мегабайтного файла curl-ом повисает на 4-5%. > > > > Выглядит это вот так: > > > > curl -# -v -o file.mp3 http://127.0.0.1:5555/file.mp3 > > * About to connect() to 127.0.0.1 port 5555 (#0) > > *   Trying 127.0.0.1... connected > > * Connected to 127.0.0.1 (127.0.0.1) port 5555 (#0) > >> GET /file.mp3 HTTP/1.1 > >> User-Agent: curl/7.21.6 (x86_64-apple-darwin10.7.0) libcurl/7.21.6 OpenSSL/1.0.0d zlib/1.2.5 libidn/1.22 > >> Host: 127.0.0.1:5555 > >> Accept: */* > >> > > < HTTP/1.1 200 OK > > < Server: nginx/1.0.0 > > < Date: Tue, 02 Aug 2011 16:36:05 GMT > > < Content-Type: audio/mpeg > > < Connection: keep-alive > > < Content-Length: 16427424 > > < Last-Modified: Tue, 02 Aug 2011 16:23:49 GMT > > < Accept-Ranges: bytes > > < > > { [data not shown] > > ## > >    4,2%^C > > > > Что это может быть? > > > > 2 августа 2011 г. 12:31 пользователь Alex Vorona написал: > >> 02.08.2011 09:44, Aleksey Chirkin wrote: > >>> Добрый день! > >>> > >>> Я столкнулся с проблемой отсутствия поддержки докачки, при использовании > >>> директивы proxy_pass. > >> Странно, я наоборот боролся с докачкой(чтобы не давать многопоточность) при proxy_pass > >> > >>> Загрузчик получает несколько килобайт и затем сообщает об ошибке > >>> получения сегмента, прерывая закачку. > >> С curl проблема воспроизводится? > >> > >> _______________________________________________ > >> 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 -- Игорь Сысоев http://sysoev.ru From sergey.kobzar на itcraft.org Wed Aug 3 19:11:35 2011 From: sergey.kobzar на itcraft.org (Sergey Kobzar) Date: Wed, 03 Aug 2011 22:11:35 +0300 Subject: Nginx upstream - server down In-Reply-To: <4E394299.6050705@itcraft.org> References: <4E394299.6050705@itcraft.org> Message-ID: <4E399D67.7010104@itcraft.org> Сегодня отвалился один из серверов. Фронтенд не исключил его из пула. Что не так? nginx/1.0.4 On 08/03/11 15:44, Sergey Kobzar wrote: > Имеется фронтэнд с группой бэкендов: > > upstream backend { > ip_hash; > server a.b.c.d; > server e.f.g.h; > } > > server { > listen 80 default; > > location / { > proxy_pass http://backend; > proxy_next_upstream error timeout http_502 http_504; > > proxy_set_header Host $host; > proxy_set_header X-Real-IP $remote_addr; > proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; > } > } > > Если на одном из бэкендов потушить Nginx - все ОК, запросы переходя на > доступный бэкенд. Если же выключить полностью сервер, frontend по > таймауту в 30-60 сек. выдает 502 ошибку. > > Видимо в первом случае frontend получает ICMP сообщение, что порт > недоступен, а во втором случае соотв. ничего не получает. > > Какое есть решение? > > Спасибо. > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From postmaster на softsearch.ru Wed Aug 3 19:28:24 2011 From: postmaster на softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Wed, 3 Aug 2011 23:28:24 +0400 Subject: trac.nginx.org In-Reply-To: <4E399052.50006@list.ru> References: <20110803134659.GB30243@sysoev.ru> <4E399052.50006@list.ru> Message-ID: <162741081.20110803232824@softsearch.ru> Здравствуйте, Станислав. >> Мы рады объявить об открытии http://trac.nginx.org - инновационного >> интерфейса отправки сообщенияй об ошибках и патчей. Короткая инструкция: >> http://trac.nginx.org/nginx/wiki >> >> Спасибо! >> >> > Отличная новость. > Дайте возможность анонимам постить тикеты. Не надо. Есть спам-бот, который это очень активно делает. -- С уважением, Михаил mailto:postmaster на softsearch.ru From sergey.kobzar на itcraft.org Wed Aug 3 19:36:01 2011 From: sergey.kobzar на itcraft.org (Sergey Kobzar) Date: Wed, 03 Aug 2011 22:36:01 +0300 Subject: Nginx upstream - server down In-Reply-To: <4E399D67.7010104@itcraft.org> References: <4E394299.6050705@itcraft.org> <4E399D67.7010104@itcraft.org> Message-ID: <4E39A321.2070106@itcraft.org> Промахнулся с ошибкой. Если один из бэкендов (Nginx) в дауне, то фронтенд (Nginx) возвращает 504 ошибку: 504 Gateway Time-out nginx/1.0.4 Очень хотелось бы пофиксить это дело и выкидывать недоступный сервер из пула автоматичекски. On 08/03/11 22:11, Sergey Kobzar wrote: > Сегодня отвалился один из серверов. Фронтенд не исключил его из пула. > > Что не так? > > nginx/1.0.4 > > > On 08/03/11 15:44, Sergey Kobzar wrote: >> Имеется фронтэнд с группой бэкендов: >> >> upstream backend { >> ip_hash; >> server a.b.c.d; >> server e.f.g.h; >> } >> >> server { >> listen 80 default; >> >> location / { >> proxy_pass http://backend; >> proxy_next_upstream error timeout http_502 http_504; >> >> proxy_set_header Host $host; >> proxy_set_header X-Real-IP $remote_addr; >> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; >> } >> } >> >> Если на одном из бэкендов потушить Nginx - все ОК, запросы переходя на >> доступный бэкенд. Если же выключить полностью сервер, frontend по >> таймауту в 30-60 сек. выдает 502 ошибку. >> >> Видимо в первом случае frontend получает ICMP сообщение, что порт >> недоступен, а во втором случае соотв. ничего не получает. >> >> Какое есть решение? >> >> Спасибо. >> >> _______________________________________________ >> 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 From tvword на gmail.com Wed Aug 3 19:49:43 2011 From: tvword на gmail.com (Vladislav Vladimirovich) Date: Wed, 3 Aug 2011 22:49:43 +0300 Subject: =?UTF-8?B?0JrQsNC6INC30LDQv9GD0YHRgtC40YLRjCBwZXJsLdC/0YDQvtCz0YDQsNC80Lw=?= =?UTF-8?B?0YMg0LIgbmdpbng=?= Message-ID: Собрал nginx c поддержкой perl. Стартует нормально. Есть простая программа на perl - perl_prog_04.pl. В консоли запускатся нормально, но когда пробую запустить через браузер, то файл просто скачивается. В документации есть пример создания модуля perl/lib/hello.pm Подскажите, нужно все программы оформлять в виде модуля или можно напрямую как-то запустить в браузере скрипт перл? -------------- next part -------------- An HTML attachment was scrubbed... URL: From greyhard на gmail.com Wed Aug 3 20:14:20 2011 From: greyhard на gmail.com (=?KOI8-R?B?5MXOydMg6czYyc7ZyA==?=) Date: Thu, 4 Aug 2011 00:14:20 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQt9Cw0L/Rg9GB0YLQuNGC0YwgcGVybC3Qv9GA0L7Qs9GA0LA=?= =?UTF-8?B?0LzQvNGDINCyIG5naW54?= In-Reply-To: References: Message-ID: Нужно создавать именно как модуль *.pm и подключать его в Конфиге Nginx. еще есть вариант через FastCGI и просто как CGI в Апаче 3 августа 2011 г. 23:49 пользователь Vladislav Vladimirovich < tvword на gmail.com> написал: > Собрал nginx c поддержкой perl. Стартует нормально. > Есть простая программа на perl - perl_prog_04.pl. > В консоли запускатся нормально, но когда пробую запустить через браузер, то > файл просто скачивается. > > В документации есть пример создания модуля perl/lib/hello.pm > Подскажите, нужно все программы оформлять в виде модуля или можно напрямую > как-то запустить в браузере скрипт перл? > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From gmm на csdoc.com Wed Aug 3 20:28:55 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Wed, 03 Aug 2011 23:28:55 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQt9Cw0L/Rg9GB0YLQuNGC0YwgcGVybC3Qv9GA0L7Qs9GA0LA=?= =?UTF-8?B?0LzQvNGDINCyIG5naW54?= In-Reply-To: References: Message-ID: <4E39AF87.3080907@csdoc.com> On 03.08.2011 22:49, Vladislav Vladimirovich wrote: > Собрал nginx c поддержкой perl. Стартует нормально. "Модуль экспериментальный, поэтому возможно всё." > Есть простая программа на perl - perl_prog_04.pl > В консоли запускатся нормально, но когда пробую запустить через браузер, > то файл просто скачивается. скорее всего эта простая программа расчитана на работу через CGI интерфейс. nginx этот интерфейс (пока что???) не поддерживает, поэтому для запуска скриптов через CGI необходимо использовать какой-то другой веб-сервер, например, http://httpd.apache.org/ или http://www.acme.com/software/mini_httpd/ и т.п. > В документации есть пример создания модуля perl/lib/hello.pm > Подскажите, нужно все программы оформлять в виде модуля "писать программы" под mod_perl в nginx http://sysoev.ru/nginx/docs/http/ngx_http_perl_module.html намного сложнее, чем под mod_perl в apache http://perl.apache.org/ http://apache.perl.org/ - там будет очень много нетривиальных нюансов. > или можно напрямую как-то запустить в браузере скрипт перл? запустить скрипт перл напрямую в браузере можно только через http://docs.activestate.com/activeperl/5.8/Components/Windows/PerlScript.html -- Best regards, Gena From mdounin на mdounin.ru Wed Aug 3 20:54:41 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 4 Aug 2011 00:54:41 +0400 Subject: Nginx upstream - server down In-Reply-To: <4E39A321.2070106@itcraft.org> References: <4E394299.6050705@itcraft.org> <4E399D67.7010104@itcraft.org> <4E39A321.2070106@itcraft.org> Message-ID: <20110803205441.GZ1137@mdounin.ru> Hello! On Wed, Aug 03, 2011 at 10:36:01PM +0300, Sergey Kobzar wrote: > Промахнулся с ошибкой. Если один из бэкендов (Nginx) в дауне, то > фронтенд (Nginx) возвращает 504 ошибку: > > 504 Gateway Time-out > nginx/1.0.4 > > Очень хотелось бы пофиксить это дело и выкидывать недоступный сервер > из пула автоматичекски. Нужен debug log, http://nginx.org/en/docs/debugging_log.html Maxim Dounin > > > On 08/03/11 22:11, Sergey Kobzar wrote: > >Сегодня отвалился один из серверов. Фронтенд не исключил его из пула. > > > >Что не так? > > > >nginx/1.0.4 > > > > > >On 08/03/11 15:44, Sergey Kobzar wrote: > >>Имеется фронтэнд с группой бэкендов: > >> > >>upstream backend { > >>ip_hash; > >>server a.b.c.d; > >>server e.f.g.h; > >>} > >> > >>server { > >>listen 80 default; > >> > >>location / { > >>proxy_pass http://backend; > >>proxy_next_upstream error timeout http_502 http_504; > >> > >>proxy_set_header Host $host; > >>proxy_set_header X-Real-IP $remote_addr; > >>proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; > >>} > >>} > >> > >>Если на одном из бэкендов потушить Nginx - все ОК, запросы переходя на > >>доступный бэкенд. Если же выключить полностью сервер, frontend по > >>таймауту в 30-60 сек. выдает 502 ошибку. > >> > >>Видимо в первом случае frontend получает ICMP сообщение, что порт > >>недоступен, а во втором случае соотв. ничего не получает. > >> > >>Какое есть решение? > >> > >>Спасибо. > >> > >>_______________________________________________ > >>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 From sergey.kobzar на itcraft.org Wed Aug 3 21:22:36 2011 From: sergey.kobzar на itcraft.org (Sergey Kobzar) Date: Thu, 04 Aug 2011 00:22:36 +0300 Subject: Nginx upstream - server down In-Reply-To: <20110803205441.GZ1137@mdounin.ru> References: <4E394299.6050705@itcraft.org> <4E399D67.7010104@itcraft.org> <4E39A321.2070106@itcraft.org> <20110803205441.GZ1137@mdounin.ru> Message-ID: <4E39BC1C.6030808@itcraft.org> ОК - сделаю завтра. On 08/03/11 23:54, Maxim Dounin wrote: > Hello! > > On Wed, Aug 03, 2011 at 10:36:01PM +0300, Sergey Kobzar wrote: > >> Промахнулся с ошибкой. Если один из бэкендов (Nginx) в дауне, то >> фронтенд (Nginx) возвращает 504 ошибку: >> >> 504 Gateway Time-out >> nginx/1.0.4 >> >> Очень хотелось бы пофиксить это дело и выкидывать недоступный сервер >> из пула автоматичекски. > > Нужен debug log, > http://nginx.org/en/docs/debugging_log.html > > Maxim Dounin > >> >> >> On 08/03/11 22:11, Sergey Kobzar wrote: >>> Сегодня отвалился один из серверов. Фронтенд не исключил его из пула. >>> >>> Что не так? >>> >>> nginx/1.0.4 >>> >>> >>> On 08/03/11 15:44, Sergey Kobzar wrote: >>>> Имеется фронтэнд с группой бэкендов: >>>> >>>> upstream backend { >>>> ip_hash; >>>> server a.b.c.d; >>>> server e.f.g.h; >>>> } >>>> >>>> server { >>>> listen 80 default; >>>> >>>> location / { >>>> proxy_pass http://backend; >>>> proxy_next_upstream error timeout http_502 http_504; >>>> >>>> proxy_set_header Host $host; >>>> proxy_set_header X-Real-IP $remote_addr; >>>> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; >>>> } >>>> } >>>> >>>> Если на одном из бэкендов потушить Nginx - все ОК, запросы переходя на >>>> доступный бэкенд. Если же выключить полностью сервер, frontend по >>>> таймауту в 30-60 сек. выдает 502 ошибку. >>>> >>>> Видимо в первом случае frontend получает ICMP сообщение, что порт >>>> недоступен, а во втором случае соотв. ничего не получает. >>>> >>>> Какое есть решение? >>>> >>>> Спасибо. >>>> >>>> _______________________________________________ >>>> nginx-ru mailing list >>>> nginx-ru на nginx.org >>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru на nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum на nginx.us Thu Aug 4 05:58:33 2011 From: nginx-forum на nginx.us (a.a.vasiljev) Date: Thu, 04 Aug 2011 01:58:33 -0400 Subject: =?UTF-8?B?UmU6IG5naW54INC40YHQutCw0LbQsNC10YIg0L/RgNC+0LrRgdC40YDQvtCy0LA=?= =?UTF-8?B?0L3QvdGL0Lkg0LrQvtC90YLQtdC90YI=?= In-Reply-To: <20110803161209.GD33878@sysoev.ru> References: <20110803161209.GD33878@sysoev.ru> Message-ID: <52484932284d18532524e1abcbad1a38.NginxMailingListRussian@forum.nginx.org> Спасибо Игорь. SetEnv force-no-vary SetEnv downgrade-1.0 прописанные внутри VirtualHost апача решили проблему. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213319,213362#msg-213362 From igor на sysoev.ru Thu Aug 4 06:37:17 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Thu, 4 Aug 2011 10:37:17 +0400 Subject: =?UTF-8?B?UmU6IG5naW54INC40YHQutCw0LbQsNC10YIg0L/RgNC+0LrRgdC40YDQvtCy0LA=?= =?UTF-8?B?0L3QvdGL0Lkg0LrQvtC90YLQtdC90YI=?= In-Reply-To: <52484932284d18532524e1abcbad1a38.NginxMailingListRussian@forum.nginx.org> References: <20110803161209.GD33878@sysoev.ru> <52484932284d18532524e1abcbad1a38.NginxMailingListRussian@forum.nginx.org> Message-ID: <20110804063717.GB50568@sysoev.ru> On Thu, Aug 04, 2011 at 01:58:33AM -0400, a.a.vasiljev wrote: > Спасибо Игорь. > > SetEnv force-no-vary > SetEnv downgrade-1.0 > > прописанные внутри VirtualHost апача решили > проблему. force-no-vary, насколько я понимаю не нужен. Достаточно только downgrade-1.0 -- Игорь Сысоев http://sysoev.ru From igor на sysoev.ru Thu Aug 4 06:47:44 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Thu, 4 Aug 2011 10:47:44 +0400 Subject: =?UTF-8?B?UmU6IG5naW54INC40YHQutCw0LbQsNC10YIg0L/RgNC+0LrRgdC40YDQvtCy0LA=?= =?UTF-8?B?0L3QvdGL0Lkg0LrQvtC90YLQtdC90YI=?= In-Reply-To: <20110804063717.GB50568@sysoev.ru> References: <20110803161209.GD33878@sysoev.ru> <52484932284d18532524e1abcbad1a38.NginxMailingListRussian@forum.nginx.org> <20110804063717.GB50568@sysoev.ru> Message-ID: <20110804064744.GC50568@sysoev.ru> On Thu, Aug 04, 2011 at 10:37:17AM +0400, Igor Sysoev wrote: > On Thu, Aug 04, 2011 at 01:58:33AM -0400, a.a.vasiljev wrote: > > Спасибо Игорь. > > > > SetEnv force-no-vary > > SetEnv downgrade-1.0 > > > > прописанные внутри VirtualHost апача решили > > проблему. > > force-no-vary, насколько я понимаю не нужен. > Достаточно только downgrade-1.0 Судя по http://httpd.apache.org/docs/2.2/env.html#special только downgrade-1.0 не поможет, поскольку запрос и так 1.0, но скрипт на бэкенде об этом не беспокоится. Поможет только SetEnv force-response-1.0 который игнорирует PHP-шное header("HTTP/1.1 200 OK"); -- Игорь Сысоев http://sysoev.ru From nginx-forum на nginx.us Thu Aug 4 06:47:54 2011 From: nginx-forum на nginx.us (a.a.vasiljev) Date: Thu, 04 Aug 2011 02:47:54 -0400 Subject: =?UTF-8?B?UmU6IG5naW54INC40YHQutCw0LbQsNC10YIg0L/RgNC+0LrRgdC40YDQvtCy0LA=?= =?UTF-8?B?0L3QvdGL0Lkg0LrQvtC90YLQtdC90YI=?= In-Reply-To: <52484932284d18532524e1abcbad1a38.NginxMailingListRussian@forum.nginx.org> References: <20110803161209.GD33878@sysoev.ru> <52484932284d18532524e1abcbad1a38.NginxMailingListRussian@forum.nginx.org> Message-ID: <1df8e27816c3c90469d0740c5a42023f.NginxMailingListRussian@forum.nginx.org> Если начать копаться, то и force-no-vary, и downgrade-1.0 по отдельности "чинят". А force-response-1.0, которая, судя по описанию, должна отдавать 1.0 на запрос 1.0, ничего не меняет. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213319,213365#msg-213365 From nginx-forum на nginx.us Thu Aug 4 06:51:05 2011 From: nginx-forum на nginx.us (a.a.vasiljev) Date: Thu, 04 Aug 2011 02:51:05 -0400 Subject: =?UTF-8?B?UmU6IG5naW54INC40YHQutCw0LbQsNC10YIg0L/RgNC+0LrRgdC40YDQvtCy0LA=?= =?UTF-8?B?0L3QvdGL0Lkg0LrQvtC90YLQtdC90YI=?= In-Reply-To: <1df8e27816c3c90469d0740c5a42023f.NginxMailingListRussian@forum.nginx.org> References: <20110803161209.GD33878@sysoev.ru> <52484932284d18532524e1abcbad1a38.NginxMailingListRussian@forum.nginx.org> <1df8e27816c3c90469d0740c5a42023f.NginxMailingListRussian@forum.nginx.org> Message-ID: Одна только downgrade-1.0 тоже работает, проверил. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213319,213368#msg-213368 From igor на sysoev.ru Thu Aug 4 07:27:00 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Thu, 4 Aug 2011 11:27:00 +0400 Subject: =?UTF-8?B?UmU6IG5naW54INC40YHQutCw0LbQsNC10YIg0L/RgNC+0LrRgdC40YDQvtCy0LA=?= =?UTF-8?B?0L3QvdGL0Lkg0LrQvtC90YLQtdC90YI=?= In-Reply-To: References: <20110803161209.GD33878@sysoev.ru> <52484932284d18532524e1abcbad1a38.NginxMailingListRussian@forum.nginx.org> <1df8e27816c3c90469d0740c5a42023f.NginxMailingListRussian@forum.nginx.org> Message-ID: <20110804072700.GD50568@sysoev.ru> On Thu, Aug 04, 2011 at 02:51:05AM -0400, a.a.vasiljev wrote: > Одна только downgrade-1.0 тоже работает, > проверил. Судя по исходникам, не должно. downgrade-1.0 только делает входящий запрос 1.0: /* Note that we must downgrade before checking for force responses. */ if (r->proto_num > HTTP_VERSION(1,0) && apr_table_get(r->subprocess_env, "downgrade-1.0")) { r->proto_num = HTTP_VERSION(1,0); } А он у нас и так 1.0. force-no-vary 1)_ убирает Vary (не критично в данном случае), 2) делает входящий запрос 1.0 и 3) включает force-response-1.0: if (apr_table_get(r->subprocess_env, "force-no-vary") != NULL) { apr_table_unset(r->headers_out, "Vary"); r->proto_num = HTTP_VERSION(1,0); apr_table_set(r->subprocess_env, "force-response-1.0", "1"); } force-response-1.0: 1) выставляет 1.0 в ответе и 2) запрещает keepalive: if (r->proto_num == HTTP_VERSION(1,0) && apr_table_get(r->subprocess_env, "force-response-1.0")) { *protocol = "HTTP/1.0"; r->connection->keepalive = AP_CONN_CLOSE; } В сумме это должно привести к выключению chunked ответов. Исходя из вышеописанного, необходимым и достаточным условием в данном случае является только force-response-1.0. -- Игорь Сысоев http://sysoev.ru From nginx-forum на nginx.us Thu Aug 4 07:51:54 2011 From: nginx-forum на nginx.us (a.a.vasiljev) Date: Thu, 04 Aug 2011 03:51:54 -0400 Subject: =?UTF-8?B?UmU6IG5naW54INC40YHQutCw0LbQsNC10YIg0L/RgNC+0LrRgdC40YDQvtCy0LA=?= =?UTF-8?B?0L3QvdGL0Lkg0LrQvtC90YLQtdC90YI=?= In-Reply-To: References: <20110803161209.GD33878@sysoev.ru> <52484932284d18532524e1abcbad1a38.NginxMailingListRussian@forum.nginx.org> <1df8e27816c3c90469d0740c5a42023f.NginxMailingListRussian@forum.nginx.org> Message-ID: <8a45325b44526a4e712fd8c38b0f9091.NginxMailingListRussian@forum.nginx.org> Я код апача не отлаживал. Использую из коробки httpd-2.2.17-10.fc15.1.i686 Проверяю следующим образом. Вот конфиг виртуального хоста апача: Listen 5578 ServerName osutivremeni.ru DocumentRoot /home/git/osutivremeni.git #SetEnv force-no-vary #SetEnv downgrade-1.0 SetEnv force-response-1.0 AllowOverride All Order Deny,Allow Allow from All По очереди убираю комменты и смотрю на результат. force-no-vary - чинит ответ downgrade-1.0 - чинит ответ force-response-1.0 - не чинит ответ Если использовать curl как пробник: $ curl -0 -vvv localhost:5578/why/ > /dev/null шлём запрос 1.0 > GET /why/ HTTP/1.0 то в случае force-no-vary: < HTTP/1.0 200 OK в случае downgrade-1.0: < HTTP/1.1 200 OK в случае force-response-1.0 < HTTP/1.1 200 OK < Transfer-Encoding: chunked такие пироги. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213319,213372#msg-213372 From tvword на gmail.com Thu Aug 4 08:44:36 2011 From: tvword на gmail.com (Vladislav Vladimirovich) Date: Thu, 4 Aug 2011 11:44:36 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQt9Cw0L/Rg9GB0YLQuNGC0YwgcGVybC3Qv9GA0L7Qs9GA0LA=?= =?UTF-8?B?0LzQvNGDINCyIG5naW54?= In-Reply-To: References: Message-ID: 3 августа 2011 г. 23:14 пользователь Денис Ильиных написал: > Нужно создавать именно как модуль *.pm и подключать его в Конфиге Nginx. > еще есть вариант через FastCGI и просто как CGI в Апаче > Сделал, как модуль - заработало! Но есть непонятки. perl/lib/hello.pm разместил в папке /usr/local/lib/perl/5.10.1 , потому что именно там оказался файл nginx.pm после устновки nginx. Модуль нормально сработал и вывел в браузере hello! Но, когда я добавил еще одну строчку hello, то она почему-то не появилась $r->print("hello!\n
"); $r->print("hello2!\n
"); , то она почему-то не появилась в браузере, после того, как активировал ссылку повторно. server { ... location /cgi-bin { perl hello::handler; } ... } Запускаю так: 127.0.0.1/cgi-bin И даже после того, как я удалил hello.pm из /usr/local/lib/perl/5.10.1, то все равно ссылка выдает hello! *Я так понимаю, где-то nginx закэшировал модуль. Как его раскэшировать?* -------------- next part -------------- An HTML attachment was scrubbed... URL: From kaa на zvuki.ru Thu Aug 4 08:58:48 2011 From: kaa на zvuki.ru (Andrey Kopeyko) Date: Thu, 04 Aug 2011 12:58:48 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQt9Cw0L/Rg9GB0YLQuNGC0YwgcGVybC3Qv9GA0L7Qs9GA0LA=?= =?UTF-8?B?0LzQvNGDINCyIG5naW54?= In-Reply-To: References: Message-ID: <4E3A5F48.2080105@zvuki.ru> 04.08.2011 12:44, Vladislav Vladimirovich пишет: > > Но, когда я добавил еще одну строчку hello, то она почему-то не появилась > > $r->print("hello!\n
"); > $r->print("hello2!\n
"); > > , то она почему-то не появилась в браузере, после того, как активировал ссылку повторно. Перловые модули перекомпилируются во время переконфигурации nginx. > И даже после того, как я удалил hello.pm > из /usr/local/lib/perl/5.10.1, то все равно ссылка выдает hello! > > *Я так понимаю, где-то nginx закэшировал модуль. Как его раскэшировать?* kill -HUP -- Best regards, Andrey Kopeyko From greyhard на gmail.com Thu Aug 4 09:01:11 2011 From: greyhard на gmail.com (=?KOI8-R?B?5MXOydMg6czYyc7ZyA==?=) Date: Thu, 4 Aug 2011 13:01:11 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQt9Cw0L/Rg9GB0YLQuNGC0YwgcGVybC3Qv9GA0L7Qs9GA0LA=?= =?UTF-8?B?0LzQvNGDINCyIG5naW54?= In-Reply-To: <4E3A5F48.2080105@zvuki.ru> References: <4E3A5F48.2080105@zvuki.ru> Message-ID: killall nginx && nginx или nginx restart Каждое изменение Перл модуля требует перезапуска NGinx 4 августа 2011 г. 12:58 пользователь Andrey Kopeyko написал: > 04.08.2011 12:44, Vladislav Vladimirovich пишет: > > >> Но, когда я добавил еще одну строчку hello, то она почему-то не появилась >> >> $r->print("hello!\n
"); >> $r->print("hello2!\n
"); >> >> , то она почему-то не появилась в браузере, после того, как активировал >> ссылку повторно. >> > > Перловые модули перекомпилируются во время переконфигурации nginx. > > > И даже после того, как я удалил hello.pm >> >> из /usr/local/lib/perl/5.10.1, то все равно ссылка выдает hello! >> >> *Я так понимаю, где-то nginx закэшировал модуль. Как его раскэшировать?* >> > > kill -HUP > > -- > Best regards, > Andrey Kopeyko > > > ______________________________**_________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/**mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From tvword на gmail.com Thu Aug 4 09:17:58 2011 From: tvword на gmail.com (Vladislav Vladimirovich) Date: Thu, 4 Aug 2011 12:17:58 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQt9Cw0L/Rg9GB0YLQuNGC0YwgcGVybC3Qv9GA0L7Qs9GA0LA=?= =?UTF-8?B?0LzQvNGDINCyIG5naW54?= In-Reply-To: References: <4E3A5F48.2080105@zvuki.ru> Message-ID: 4 августа 2011 г. 12:01 пользователь Денис Ильиных написал: > killall nginx && nginx > или nginx restart > > Каждое изменение Перл модуля требует перезапуска NGinx > Перезагружал nginx и даже перезагружал компьютер - не помогает. Модуль всё равно активируется, даже когда его нет в папке. Где-то закэшировался. -------------- next part -------------- An HTML attachment was scrubbed... URL: From tvword на gmail.com Thu Aug 4 09:21:51 2011 From: tvword на gmail.com (Vladislav Vladimirovich) Date: Thu, 4 Aug 2011 12:21:51 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQt9Cw0L/Rg9GB0YLQuNGC0YwgcGVybC3Qv9GA0L7Qs9GA0LA=?= =?UTF-8?B?0LzQvNGDINCyIG5naW54?= In-Reply-To: References: <4E3A5F48.2080105@zvuki.ru> Message-ID: 4 августа 2011 г. 12:17 пользователь Vladislav Vladimirovich < tvword на gmail.com> написал: > > > 4 августа 2011 г. 12:01 пользователь Денис Ильиных написал: > > killall nginx && nginx >> или nginx restart >> >> Каждое изменение Перл модуля требует перезапуска NGinx >> > Перезагружал nginx и даже перезагружал компьютер - не помогает. > Модуль всё равно активируется, даже когда его нет в папке. > Где-то закэшировался. > Сори, нашел ошибку. Модуль был сразу в двух папках - /usr/local/lib/perl/5.10.1/ /usr/lib/perl/5.10.1/ Последняя папка - активная, первая - там где я менял скрипт. Вопрос снят! Всем спасибо. -------------- next part -------------- An HTML attachment was scrubbed... URL: From greyhard на gmail.com Thu Aug 4 10:12:52 2011 From: greyhard на gmail.com (=?KOI8-R?B?5MXOydMg6czYyc7ZyA==?=) Date: Thu, 4 Aug 2011 14:12:52 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQt9Cw0L/Rg9GB0YLQuNGC0YwgcGVybC3Qv9GA0L7Qs9GA0LA=?= =?UTF-8?B?0LzQvNGDINCyIG5naW54?= In-Reply-To: References: <4E3A5F48.2080105@zvuki.ru> Message-ID: на будущее ) можно не складывать модули в папку с перлом , а складывать куда хотите perl_modules /usr/home/www1/www/lib; perl_modules /usr/home/www2/www/lib; perl_modules /usr/home/www3/www/lib; perl_require Admin/Sat/NParam.pm; perl_require Admin/Linkex/NMark.pm; 4 августа 2011 г. 13:21 пользователь Vladislav Vladimirovich < tvword на gmail.com> написал: > > > 4 августа 2011 г. 12:17 пользователь Vladislav Vladimirovich < > tvword на gmail.com> написал: > > >> >> 4 августа 2011 г. 12:01 пользователь Денис Ильиных написал: >> >> killall nginx && nginx >>> или nginx restart >>> >>> Каждое изменение Перл модуля требует перезапуска NGinx >>> >> Перезагружал nginx и даже перезагружал компьютер - не помогает. >> Модуль всё равно активируется, даже когда его нет в папке. >> Где-то закэшировался. >> > Сори, нашел ошибку. Модуль был сразу в двух папках - > /usr/local/lib/perl/5.10.1/ > /usr/lib/perl/5.10.1/ > > Последняя папка - активная, первая - там где я менял скрипт. Вопрос снят! > Всем спасибо. > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From igor на sysoev.ru Thu Aug 4 10:15:27 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Thu, 4 Aug 2011 14:15:27 +0400 Subject: =?UTF-8?B?UmU6IG5naW54INC40YHQutCw0LbQsNC10YIg0L/RgNC+0LrRgdC40YDQvtCy0LA=?= =?UTF-8?B?0L3QvdGL0Lkg0LrQvtC90YLQtdC90YI=?= In-Reply-To: <8a45325b44526a4e712fd8c38b0f9091.NginxMailingListRussian@forum.nginx.org> References: <20110803161209.GD33878@sysoev.ru> <52484932284d18532524e1abcbad1a38.NginxMailingListRussian@forum.nginx.org> <1df8e27816c3c90469d0740c5a42023f.NginxMailingListRussian@forum.nginx.org> <8a45325b44526a4e712fd8c38b0f9091.NginxMailingListRussian@forum.nginx.org> Message-ID: <20110804101527.GA56097@sysoev.ru> On Thu, Aug 04, 2011 at 03:51:54AM -0400, a.a.vasiljev wrote: > Я код апача не отлаживал. Использую из > коробки httpd-2.2.17-10.fc15.1.i686 > Проверяю следующим образом. Вот конфиг > виртуального хоста апача: > > Listen 5578 > > > ServerName osutivremeni.ru > > DocumentRoot /home/git/osutivremeni.git > > #SetEnv force-no-vary > #SetEnv downgrade-1.0 > SetEnv force-response-1.0 > AllowOverride All > Order Deny,Allow > Allow from All > > > > По очереди убираю комменты и смотрю на > результат. > force-no-vary - чинит ответ > downgrade-1.0 - чинит ответ > force-response-1.0 - не чинит ответ > > Если использовать curl как пробник: > $ curl -0 -vvv localhost:5578/why/ > /dev/null > шлём запрос 1.0 > > GET /why/ HTTP/1.0 > > то в случае force-no-vary: > < HTTP/1.0 200 OK > > в случае downgrade-1.0: > < HTTP/1.1 200 OK > > в случае force-response-1.0 > < HTTP/1.1 200 OK > < Transfer-Encoding: chunked > > такие пироги. Тогда я не понимаю, как это работает. -- Игорь Сысоев http://sysoev.ru From tvword на gmail.com Thu Aug 4 10:33:16 2011 From: tvword на gmail.com (Vladislav Vladimirovich) Date: Thu, 4 Aug 2011 13:33:16 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQt9Cw0L/Rg9GB0YLQuNGC0YwgcGVybC3Qv9GA0L7Qs9GA0LA=?= =?UTF-8?B?0LzQvNGDINCyIG5naW54?= In-Reply-To: References: <4E3A5F48.2080105@zvuki.ru> Message-ID: 4 августа 2011 г. 13:12 пользователь Денис Ильиных написал: > на будущее ) > можно не складывать модули в папку с перлом , а складывать куда хотите > > perl_modules /usr/home/www1/www/lib; > perl_modules /usr/home/www2/www/lib; > perl_modules /usr/home/www3/www/lib; > perl_require Admin/Sat/NParam.pm; > perl_require Admin/Linkex/NMark.pm; > ОК, Я понял! Спасибо. -------------- next part -------------- An HTML attachment was scrubbed... URL: From s на bykov.odessa.ua Thu Aug 4 11:12:19 2011 From: s на bykov.odessa.ua (Bykov Subscribe) Date: Thu, 4 Aug 2011 14:12:19 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQt9Cw0L/Rg9GB0YLQuNGC0YwgcGVybC3Qv9GA0L7Qs9GA0LA=?= =?UTF-8?B?0LzQvNGDINCyIG5naW54?= In-Reply-To: References: <4E3A5F48.2080105@zvuki.ru> Message-ID: <7210270224.20110804141219@bykov.odessa.ua> An HTML attachment was scrubbed... URL: From greyhard на gmail.com Thu Aug 4 11:36:03 2011 From: greyhard на gmail.com (=?KOI8-R?B?5MXOydMg6czYyc7ZyA==?=) Date: Thu, 4 Aug 2011 15:36:03 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQt9Cw0L/Rg9GB0YLQuNGC0YwgcGVybC3Qv9GA0L7Qs9GA0LA=?= =?UTF-8?B?0LzQvNGDINCyIG5naW54?= In-Reply-To: <7210270224.20110804141219@bykov.odessa.ua> References: <4E3A5F48.2080105@zvuki.ru> <7210270224.20110804141219@bykov.odessa.ua> Message-ID: Не очень много всего так как по слухам встроенный перл блокирует выполнение остальных запросов. лучше писать на FCGI. На встроенном перле написан фильтр товаров http://tut.ru/Binoculars, http://tut.ru/PNV 4 августа 2011 г. 15:12 пользователь Bykov Subscribe написал: > Раз уж зашло дело - а для каких реально полезных целей можно использовать > встроенный Perl? > А то всегда было интересно попробовать в действии, и даже все работало, но > фантазии на что применить в реальной жизни не хватило > > > > > > > 4 августа 2011 г. 13:12 пользователь Денис Ильиных > написал: > на будущее ) > можно не складывать модули в папку с перлом , а складывать куда хотите > > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From aleksey.potaneyko на gmail.com Thu Aug 4 16:21:37 2011 From: aleksey.potaneyko на gmail.com (Aleksey Potaneyko) Date: Thu, 4 Aug 2011 12:21:37 -0400 Subject: =?UTF-8?B?0JLQvtC30LzQvtC20LXQvSDQu9C4IGluY2x1ZGUg0LLQvdGD0YLRgNC4INCx0Ls=?= =?UTF-8?B?0L7QutCw?= Message-ID: Есть конфиг, с большим кол-вом блоков location, внутри есть список allow IPs, при правке/добавлении IP нужно редактировать в каждлм таком блоке, что не есть гуд и можно где-то допустить ошибку. Если ли вариант заиклудить список IP внутри блока, инклуд в конфиг фаил работает, а внутри блока уже нет. Пример: location ~* "^/www/123/" { root /usr/home/sites/site1/; client_body_temp_path /usr/home/sites/site1/www/123/tmp; dav_methods PUT MOVE DELETE; create_full_put_path on; dav_access group:rw all:r; limit_except GET { # EU data center allow a.b.c.d/28; allow a.b.c.d/24; # local traffic allow 127.0.0.1; # Block unknown IPs deny all; } } Пробовал иклуд в блок - не работает, location ~* "^/www/123/" { root /usr/home/sites/site1/; client_body_temp_path /usr/home/sites/site1/www/123/tmp; dav_methods PUT MOVE DELETE; create_full_put_path on; dav_access group:rw all:r; limit_except GET { include filename.conf } } Есть какой-то вариант, заставить это работать или надо генеерить конфиг сторонним скриптом? Спасибо! From igor на sysoev.ru Thu Aug 4 17:53:05 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Thu, 4 Aug 2011 21:53:05 +0400 Subject: =?UTF-8?B?UmU6INCS0L7Qt9C80L7QttC10L0g0LvQuCBpbmNsdWRlINCy0L3Rg9GC0YDQuCA=?= =?UTF-8?B?0LHQu9C+0LrQsA==?= In-Reply-To: References: Message-ID: <20110804175305.GC68168@sysoev.ru> On Thu, Aug 04, 2011 at 12:21:37PM -0400, Aleksey Potaneyko wrote: > Есть конфиг, с большим кол-вом блоков location, внутри есть список > allow IPs, при правке/добавлении IP нужно редактировать в каждлм таком > блоке, что не есть гуд и можно где-то допустить ошибку. > Если ли вариант заиклудить список IP внутри блока, инклуд в конфиг > фаил работает, а внутри блока уже нет. > > Пример: > > > location ~* "^/www/123/" { > root /usr/home/sites/site1/; > client_body_temp_path /usr/home/sites/site1/www/123/tmp; > dav_methods PUT MOVE DELETE; > create_full_put_path on; > dav_access group:rw all:r; > limit_except GET { > # EU data center > allow a.b.c.d/28; > allow a.b.c.d/24; > > # local traffic > allow 127.0.0.1; > > # Block unknown IPs > deny all; > } > } > > > > Пробовал иклуд в блок - не работает, > > > location ~* "^/www/123/" { > root /usr/home/sites/site1/; > client_body_temp_path /usr/home/sites/site1/www/123/tmp; > dav_methods PUT MOVE DELETE; > create_full_put_path on; > dav_access group:rw all:r; > limit_except GET { > include filename.conf > } > } > > > Есть какой-то вариант, заставить это работать или надо генеерить > конфиг сторонним скриптом? Нет, include внутри limit_except не поддерживается. -- Igor Sysoev From tvword на gmail.com Thu Aug 4 19:00:18 2011 From: tvword на gmail.com (Vladislav Vladimirovich) Date: Thu, 4 Aug 2011 22:00:18 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQt9Cw0L/Rg9GB0YLQuNGC0YwgcGVybC3Qv9GA0L7Qs9GA0LA=?= =?UTF-8?B?0LzQvNGDINCyIG5naW54?= In-Reply-To: References: <4E3A5F48.2080105@zvuki.ru> <7210270224.20110804141219@bykov.odessa.ua> Message-ID: Нужен совет. Подскажите, как лучше сделать. Я получил вывод в веб-браузер через модуль perl, например, hello.pm. Теперь нужно получить ссылку, чтобы открывалось новое окно и выводился в него какой-то определенный результат. Как это можно сделать? Я так понимаю, нужно создать новый модуль, прописать его в конфиге nginx и в параметрах ссылки на новое окно указать его. Если так, то как можно передать этому новому модулю параметры из первого. Т.е. как из одного модуля, вызвать другой, передав ему параметры? Просто указать через пробел? Или как-то по-другому? -------------- next part -------------- An HTML attachment was scrubbed... URL: From greyhard на gmail.com Thu Aug 4 20:12:21 2011 From: greyhard на gmail.com (=?KOI8-R?B?5MXOydMg6czYyc7ZyA==?=) Date: Fri, 5 Aug 2011 00:12:21 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQt9Cw0L/Rg9GB0YLQuNGC0YwgcGVybC3Qv9GA0L7Qs9GA0LA=?= =?UTF-8?B?0LzQvNGDINCyIG5naW54?= In-Reply-To: References: <4E3A5F48.2080105@zvuki.ru> <7210270224.20110804141219@bykov.odessa.ua> Message-ID: попробуйте такой пример. Работает только с GETом ) use YAML; sub handler { my $r = shift; my %qparam; my @arr = split('&',uri_unescape($r->args)); for(@arr){ my @var = split('=',$_); $qparam{$var[0]}=$var[1]; } $r->header_out("Content-Type","text/html; charset=utf-8"); $r->send_http_header(); $r->print(Dump(%qparam)); $r->print($r->uri); return OK; } localhost:80/nginx/test/test/?a=1&b=2 From rush.zlo на gmail.com Thu Aug 4 21:02:52 2011 From: rush.zlo на gmail.com (=?UTF-8?B?0JXQstCz0LXQvdC40LkgJ1J1c2gnINCd0LXQv9C+0LzQvdGP0YnQuNC5?=) Date: Fri, 5 Aug 2011 01:02:52 +0400 Subject: trac.nginx.org In-Reply-To: <1507813713.20110803184948@softsearch.ru> References: <20110803134659.GB30243@sysoev.ru> <1507813713.20110803184948@softsearch.ru> Message-ID: *Шёпотом* - Я очень люблю питон, очень. Но может пока не поздно redmine? а? Ну пожааалуйста... Пока не поздно... 3 августа 2011 г. 18:49 пользователь Михаил Монашёв написал: > Здравствуйте, Denis. > >> Это при попытке авторизации через OpenID гугла. > > Если  этот  Трах  сильно  лечить, то при обновлении его опять придётся > подлечивать.  А  он бывает дырявым и лечить может понадобиться срочно. > Как развлечение это прикольно. Но по мне так лучше б nginx развивался, > чем трак обрастал фичами на его сайте. > > -- > С уважением, >  Михаил                          mailto:postmaster на softsearch.ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Cogito ergo sum From wangsamp на gmail.com Thu Aug 4 21:12:27 2011 From: wangsamp на gmail.com (Oleksandr V. Typlyns'kyi) Date: Fri, 5 Aug 2011 00:12:27 +0300 (EEST) Subject: =?UTF-8?B?UmU6INCS0L7Qt9C80L7QttC10L0g0LvQuCBpbmNsdWRlINCy0L3Rg9GC0YDQuCA=?= =?UTF-8?B?0LHQu9C+0LrQsA==?= In-Reply-To: References: Message-ID: Today Aug 4, 2011 at 12:21 Aleksey Potaneyko wrote: > Если ли вариант заиклудить список IP внутри блока, инклуд в конфиг > фаил работает, а внутри блока уже нет. > Пробовал иклуд в блок - не работает, > location ~* "^/www/123/" { > root /usr/home/sites/site1/; > client_body_temp_path /usr/home/sites/site1/www/123/tmp; > dav_methods PUT MOVE DELETE; > create_full_put_path on; > dav_access group:rw all:r; > limit_except GET { > include filename.conf > } > } Просто вынести в include целиком весь блок limit_except? Так даже понятнее конфиг будет. -- WNGS-RIPE From boris на dolgov.name Thu Aug 4 22:18:25 2011 From: boris на dolgov.name (Boris Dolgov) Date: Fri, 5 Aug 2011 02:18:25 +0400 Subject: trac.nginx.org In-Reply-To: <20110803134659.GB30243@sysoev.ru> References: <20110803134659.GB30243@sysoev.ru> Message-ID: 2011/8/3 Igor Sysoev : > Мы рады объявить об открытии http://trac.nginx.org - инновационного > интерфейса отправки сообщенияй об ошибках и патчей. Короткая инструкция: > http://trac.nginx.org/nginx/wiki Поздравляю! Будет ли wiki.nginx.org плавно переноситься в trac? -- Boris Dolgov. From askjuise на gmail.com Fri Aug 5 01:48:01 2011 From: askjuise на gmail.com (Alexander Petrovsky) Date: Fri, 5 Aug 2011 10:48:01 +0900 Subject: trac.nginx.org In-Reply-To: References: <20110803134659.GB30243@sysoev.ru> Message-ID: 5 августа 2011 г. 7:18 пользователь Boris Dolgov написал: > 2011/8/3 Igor Sysoev : >> Мы рады объявить об открытии http://trac.nginx.org - инновационного >> интерфейса отправки сообщенияй об ошибках и патчей. Короткая инструкция: >> http://trac.nginx.org/nginx/wiki > Поздравляю! > > Будет ли wiki.nginx.org плавно переноситься в trac? А зачем? Wiki и Trac разные продукты для разных целей, имхо не стоит. Думаю Wiki в Trac нужна для разработчиков. -- Петровский Александр / Alexander Petrovsky, Jabber: juise на jabber.ru Phone: +7 914 8 820 815 From igor на sysoev.ru Fri Aug 5 04:59:52 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Fri, 5 Aug 2011 08:59:52 +0400 Subject: trac.nginx.org In-Reply-To: References: <20110803134659.GB30243@sysoev.ru> Message-ID: Нет. -- Igor Sysoev 05.08.2011, в 2:18, Boris Dolgov написал(а): > 2011/8/3 Igor Sysoev : >> Мы рады объявить об открытии http://trac.nginx.org - инновационного >> интерфейса отправки сообщенияй об ошибках и патчей. Короткая инструкция: >> http://trac.nginx.org/nginx/wiki > Поздравляю! > > Будет ли wiki.nginx.org плавно переноситься в trac? > > -- > Boris Dolgov. > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From tvword на gmail.com Fri Aug 5 05:33:24 2011 From: tvword на gmail.com (Vladislav Vladimirovich) Date: Fri, 5 Aug 2011 08:33:24 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQt9Cw0L/Rg9GB0YLQuNGC0YwgcGVybC3Qv9GA0L7Qs9GA0LA=?= =?UTF-8?B?0LzQvNGDINCyIG5naW54?= In-Reply-To: References: <4E3A5F48.2080105@zvuki.ru> <7210270224.20110804141219@bykov.odessa.ua> Message-ID: 4 августа 2011 г. 23:12 пользователь Денис Ильиных написал: > попробуйте такой пример. Работает только с GETом ) > use YAML; > > sub handler { > my $r = shift; > > my %qparam; > my @arr = split('&',uri_unescape($r->args)); > for(@arr){ > my @var = split('=',$_); > $qparam{$var[0]}=$var[1]; > } > > $r->header_out("Content-Type","text/html; charset=utf-8"); > $r->send_http_header(); > > $r->print(Dump(%qparam)); > $r->print($r->uri); > > return OK; > > } > > > localhost:80/nginx/test/test/?a=1&b=2 > Благодарю! Получилось. Правда есть нюансы. Окончательный вариант такой: package perl_module_nginx_my; use nginx; sub handler { my $r = shift; $r->header_out("Content-Type","text/html; charset=utf-8"); $r->send_http_header(); return OK if $r->header_only; my %qparam; my @arr = split('&',$r->args); for(@arr){ my @var = split('=',$_); $qparam{$var[0]}=$var[1]; } $r->print("hello!\n
"); $r->print(join(":",%qparam)) ; $r->print($r->uri); return OK; } 1; __END__ ________________________________________________________ Теперь нюансы: 1. use YAML подключить не получилось. Его почему-то у меня нет. Может отдельно надо ставить, но и без него в принципе можно обойтись. 2. uri_unescape не работает, возможно потому что не подключен модуль YAML. Но это не критично. Для передачи простых параметров и так пойдёт... 3. Dump почему-то тоже не работает. Не знаю зачем он там нужен, но я сделал разбивку массива хэшей через join. 4. Не совсем понятно, зачем в примере модуля hello вот эта строка - return OK if $r->header_only; На всякий случай оставил ее у себя. ________________________________________________________ Спасибо за помощь! -------------- next part -------------- An HTML attachment was scrubbed... URL: From greyhard на gmail.com Fri Aug 5 06:19:34 2011 From: greyhard на gmail.com (=?KOI8-R?B?5MXOydMg6czYyc7ZyA==?=) Date: Fri, 5 Aug 2011 10:19:34 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQt9Cw0L/Rg9GB0YLQuNGC0YwgcGVybC3Qv9GA0L7Qs9GA0LA=?= =?UTF-8?B?0LzQvNGDINCyIG5naW54?= In-Reply-To: References: <4E3A5F48.2080105@zvuki.ru> <7210270224.20110804141219@bykov.odessa.ua> Message-ID: ну да ) первые 3 вопроса из за не подключенных модулей ) в принципе можно и без них. Dump из за YAML http://search.cpan.org/~ingy/YAML-0.73/lib/YAML.pm uri_unescape из за URI::Escape http://search.cpan.org/~gaas/URI-1.58/URI/Escape.pm 4 описано в документации $r->header_only -- метод определяет, нужно ли передавать клиенту только заголовок ответа или весь ответ. 5 августа 2011 г. 9:33 пользователь Vladislav Vladimirovich написал: > > > 4 августа 2011 г. 23:12 пользователь Денис Ильиных > написал: >> >> попробуйте такой пример. Работает только с GETом ) >> use YAML; >> >> sub handler { >> my $r = shift; >> >> my %qparam; >> my @arr = split('&',uri_unescape($r->args)); >> for(@arr){ >> my @var = split('=',$_); >> $qparam{$var[0]}=$var[1]; >> } >> >> $r->header_out("Content-Type","text/html; charset=utf-8"); >> $r->send_http_header(); >> >> $r->print(Dump(%qparam)); >> $r->print($r->uri); >> >> return OK; >> >> } >> >> >> localhost:80/nginx/test/test/?a=1&b=2 > > Благодарю! Получилось. Правда есть нюансы. Окончательный вариант такой: > package perl_module_nginx_my; > use nginx; > sub handler { > my $r = shift; > $r->header_out("Content-Type","text/html; charset=utf-8"); > $r->send_http_header(); > return OK if $r->header_only; > my %qparam; > my @arr = split('&',$r->args); > for(@arr){ > my @var = split('=',$_); > $qparam{$var[0]}=$var[1]; > } > $r->print("hello!\n
"); > $r->print(join(":",%qparam)) ; > $r->print($r->uri); > return OK; > } > 1; > __END__ > ________________________________________________________ > Теперь нюансы: > 1. use YAML подключить не получилось. Его почему-то у меня нет. Может > отдельно надо ставить, но и без него в принципе можно обойтись. > 2. uri_unescape не работает, возможно потому что не подключен модуль YAML. > Но это не критично. Для передачи простых параметров и так пойдёт... > 3. Dump почему-то тоже не работает. Не знаю зачем он там нужен, но я сделал > разбивку массива хэшей через join. > 4. Не совсем понятно, зачем в примере модуля hello вот эта строка - return > OK if $r->header_only; На всякий случай оставил ее у себя. > ________________________________________________________ > Спасибо за помощь! > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > From mdounin на mdounin.ru Fri Aug 5 10:36:06 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 5 Aug 2011 14:36:06 +0400 Subject: Nginx upstream - server down In-Reply-To: <4E3BB633.9020704@itcraft.org> References: <20110804092147.GD1137@mdounin.ru> <4E3A66B2.6030905@itcraft.org> <20110804113156.GF1137@mdounin.ru> <4E3A857D.706@itcraft.org> <20110804133018.GG1137@mdounin.ru> <4E3AA32F.7020105@itcraft.org> <20110804135719.GH1137@mdounin.ru> <4E3AA5CC.7040500@itcraft.org> <20110804142043.GI1137@mdounin.ru> <4E3BB633.9020704@itcraft.org> Message-ID: <20110805103606.GL1137@mdounin.ru> Hello! On Fri, Aug 05, 2011 at 12:21:55PM +0300, Sergey Kobzar wrote: > С утра остановил один из бэкэндов, но 504 отловить не получилось - > ошибка и до этого появлялась не перманентно. Выяснилось, что при Ok. Как я уже говорил, 504 может возникать если второй бекенд по каким-то причинам тоже на запрос не ответил. > остановленном бэкенде некоторые статические файлы загружаются с > задержкой ровно в минуту (или 1 мин, 1 сек). Подобное поведение - в рамках используемого алгоритма. Если лежащий бекенд признан в настоящий момент негодным - все запросу идут на другой бекенд. Если нет - запрос попытаются сначала отправить на основной бекенд для данного ip-адреса, и только если он не ответит (в вашем случае - случится proxy_connect_timeout) - перебросят на второй. Алгоритм не оптимальный, в частности в типичной ситуации "один из бекендов глухо лежит и ни на какие пакеты не отвечает" балансировка будет выглядеть так: 0s: Где-то тут backend1 умер, остался только backend2. 0s .. 60s: Запросы отправляется на оба бекенда. Отрабатывают те, которые попадают на backend2, те что на backend1 - ждут таймаута. 60s: Случился первый таймаут для backend1 (proxy_connection_timeout 60s, по умолчанию). Бекенд признан негодным на ближайшие 60s (server ... fail_timeout=60s, по умолчанию). 60s .. 120s: Все запросы идут на backend2 и обрабатываются. Продолжают timeout'иться ранее отправленные запросы на backend1 (и обновляют его статус недоступности). Потаймаутившиеся запросы по proxy_next_upstream отправляются на backend2. 120s .. 180s: Все запросы идут на backend2 и обрабатываются. Запросов на backend1 больше не осталось, начал тикать fail_timeout. 180s: Истёк fail_timeout, backend1 снова признан годным. Запросы снова пойдут на оба бекенда и всё повторится с момента 0s. Т.е. фактически при настройках по умолчанию 30 процентов времени запросы пытаются идти на умерший бекенд. При двух бекендах - ждут таймаута ~15 процентов запросов. Очевидно что алгоритм не очень эффективен (и его надо менять), но в настоящий момент он такой. Для улучшения ситуации - тюнить таймауты (в частности - уменьшать proxy_connect_timeout, 3 секунд должно хватить для локальной сети), а равно условия признания бекенда негодным (server ... max_fails/fail_timeout, увеличивать fail_timeout). E.g. при proxy_connect_timeout 3s; server ... fail_timeout=300s; ждать таймаута будет ~ 0.5% запросов, да и сам таймаут будет практически незаметен для клиентов. Документация где-то тут: http://sysoev.ru/nginx/docs/http/ngx_http_proxy_module.html#proxy_connect_timeout http://sysoev.ru/nginx/docs/http/ngx_http_upstream.html#server Maxim Dounin p.s. Cc'd в list для истории, ибо набирать столь подробное объяснение мне обычно лень. From mdounin на mdounin.ru Fri Aug 5 11:41:59 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 5 Aug 2011 15:41:59 +0400 Subject: Nginx upstream - server down In-Reply-To: <20110805103606.GL1137@mdounin.ru> References: <4E3A66B2.6030905@itcraft.org> <20110804113156.GF1137@mdounin.ru> <4E3A857D.706@itcraft.org> <20110804133018.GG1137@mdounin.ru> <4E3AA32F.7020105@itcraft.org> <20110804135719.GH1137@mdounin.ru> <4E3AA5CC.7040500@itcraft.org> <20110804142043.GI1137@mdounin.ru> <4E3BB633.9020704@itcraft.org> <20110805103606.GL1137@mdounin.ru> Message-ID: <20110805114159.GN1137@mdounin.ru> Hello! On Fri, Aug 05, 2011 at 02:36:06PM +0400, Maxim Dounin wrote: > Hello! > > On Fri, Aug 05, 2011 at 12:21:55PM +0300, Sergey Kobzar wrote: > > > С утра остановил один из бэкэндов, но 504 отловить не получилось - > > ошибка и до этого появлялась не перманентно. Выяснилось, что при > > Ok. Как я уже говорил, 504 может возникать если второй бекенд > по каким-то причинам тоже на запрос не ответил. > > > остановленном бэкенде некоторые статические файлы загружаются с > > задержкой ровно в минуту (или 1 мин, 1 сек). > > Подобное поведение - в рамках используемого алгоритма. > > Если лежащий бекенд признан в настоящий момент негодным - все > запросу идут на другой бекенд. Если нет - запрос попытаются > сначала отправить на основной бекенд для данного ip-адреса, и > только если он не ответит (в вашем случае - случится > proxy_connect_timeout) - перебросят на второй. > > Алгоритм не оптимальный, в частности в типичной ситуации > "один из бекендов глухо лежит и ни на какие пакеты не отвечает" > балансировка будет выглядеть так: > > 0s: > > Где-то тут backend1 умер, остался только backend2. > > 0s .. 60s: > > Запросы отправляется на оба бекенда. Отрабатывают те, которые > попадают на backend2, те что на backend1 - ждут таймаута. > > 60s: > > Случился первый таймаут для backend1 (proxy_connection_timeout > 60s, по умолчанию). Бекенд признан негодным на ближайшие 60s > (server ... fail_timeout=60s, по умолчанию). Как меня совершенно справедливо поправил Oleksandr V. Typlyns'kyi, fail_timeout по умолчанию 10s. > 60s .. 120s: > > Все запросы идут на backend2 и обрабатываются. Продолжают > timeout'иться ранее отправленные запросы на backend1 (и обновляют > его статус недоступности). Потаймаутившиеся запросы по > proxy_next_upstream отправляются на backend2. > > 120s .. 180s: > > Все запросы идут на backend2 и обрабатываются. Запросов на > backend1 больше не осталось, начал тикать fail_timeout. > > 180s: Соответственно тут вместо 180s следует читать 130s. > Истёк fail_timeout, backend1 снова признан годным. Запросы снова > пойдут на оба бекенда и всё повторится с момента 0s. > > Т.е. фактически при настройках по умолчанию 30 процентов времени > запросы пытаются идти на умерший бекенд. При двух бекендах - ждут > таймаута ~15 процентов запросов. Ну и соответственно 23% запросов будут ждать таймаута по умолчанию. > Очевидно что алгоритм не очень эффективен (и его надо менять), > но в настоящий момент он такой. > > Для улучшения ситуации - тюнить таймауты (в частности - уменьшать > proxy_connect_timeout, 3 секунд должно хватить для локальной > сети), а равно условия признания бекенда негодным (server ... > max_fails/fail_timeout, увеличивать fail_timeout). > > E.g. при > > proxy_connect_timeout 3s; > server ... fail_timeout=300s; > > ждать таймаута будет ~ 0.5% запросов, да и сам таймаут будет > практически незаметен для клиентов. > > Документация где-то тут: > > http://sysoev.ru/nginx/docs/http/ngx_http_proxy_module.html#proxy_connect_timeout > http://sysoev.ru/nginx/docs/http/ngx_http_upstream.html#server > > Maxim Dounin > > p.s. Cc'd в list для истории, ибо набирать столь подробное > объяснение мне обычно лень. Maxim Dounin From roman.vasilyev на yousendit.com Fri Aug 5 23:01:14 2011 From: roman.vasilyev на yousendit.com (Roman Vasilyev) Date: Fri, 5 Aug 2011 16:01:14 -0700 Subject: =?UTF-8?B?0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40LUg0L/QtdGA0LXQvNC10L3QvdGL0YUg?= =?UTF-8?B?0LIg0L/Rg9GC0Y/RhQ==?= Message-ID: <4E3C763A.2030405@yousendit.com> Мне нужно не меняя конфигурационного файла подставлять на разных хостах разные пути на едином шареном хранилище. Есть ли возможность использовать переменные в путях? например: client_body_temp_path /path/to/shared/mount/point/$hostname если нет то не могли бы посоветовать как такую задачу лучше выполнить? From nginx-forum на nginx.us Sat Aug 6 02:18:01 2011 From: nginx-forum на nginx.us (amigo) Date: Fri, 05 Aug 2011 22:18:01 -0400 Subject: =?UTF-8?B?UmU6INCd0LDRgdGC0YDQvtC50LrQsCBuZ2lueCwg0LTQu9GPINC+0YLQtNCw0Yc=?= =?UTF-8?B?0Lgg0L3QtdC60L7RgtC+0YDRi9GFINC60LDRgNGC0LjQvdC+0Log0YfQtdGA?= =?UTF-8?B?0LXQtyDQsNC/0LDRhw==?= In-Reply-To: <2cf476741192d28224813052c7ce2286.NginxMailingListRussian@forum.nginx.org> References: <2cf476741192d28224813052c7ce2286.NginxMailingListRussian@forum.nginx.org> Message-ID: <0adbd9f5758b4bfd59aa4e2a79367fa5.NginxMailingListRussian@forum.nginx.org> И всё-таки, как сделать исключения, чтобы картинки из определенных каталогов отдавались апачем ? ps. Я доки читал и не раз, перепробовал все варианты, не получается ничего. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,169702,213441#msg-213441 From temotor на gmail.com Sat Aug 6 02:37:09 2011 From: temotor на gmail.com (Sergey Shepelev) Date: Sat, 6 Aug 2011 06:37:09 +0400 Subject: =?UTF-8?B?UmU6INCd0LDRgdGC0YDQvtC50LrQsCBuZ2lueCwg0LTQu9GPINC+0YLQtNCw0Yc=?= =?UTF-8?B?0Lgg0L3QtdC60L7RgtC+0YDRi9GFINC60LDRgNGC0LjQvdC+0Log0YfQtdGA?= =?UTF-8?B?0LXQtyDQsNC/0LDRhw==?= In-Reply-To: <0adbd9f5758b4bfd59aa4e2a79367fa5.NginxMailingListRussian@forum.nginx.org> References: <2cf476741192d28224813052c7ce2286.NginxMailingListRussian@forum.nginx.org> <0adbd9f5758b4bfd59aa4e2a79367fa5.NginxMailingListRussian@forum.nginx.org> Message-ID: 2011/8/6 amigo : > И всё-таки, как сделать исключения, > чтобы картинки из определенных > каталогов отдавались апачем ? location /static { root /path/to/images; location /static/some { proxy_pass http://backend; } } > ps. Я доки читал и не раз, перепробовал > все варианты, не получается ничего. > Кажется, положение безвыходное. From peter на vereshagin.org Sat Aug 6 07:33:28 2011 From: peter на vereshagin.org (Peter Vereshagin) Date: Sat, 6 Aug 2011 11:33:28 +0400 Subject: =?UTF-8?B?0JrQsNC6INC30LDQv9GD0YHRgtC40YLRjCBwZXJsLdC/0YDQvtCz0YDQsNC80Lw=?= =?UTF-8?B?0YMg0LIgbmdpbng=?= In-Reply-To: Message-ID: <20110806073327.GB8066@external.screwed.box> God love is hard to find. You got lucky nginx-ru! 2011/08/03 20:28:58 +0000 nginx-ru-request на nginx.org => To nginx-ru на nginx.org : > скорее всего эта простая программа расчитана на работу через CGI http://fcgi-spawn.sf.net снапшоты http://gitweb.vereshagin.org/FCGI-Spawn/shortlog/refs/heads/devel ? 73! Peter pgp: A0E26627 (4A42 6841 2871 5EA7 52AB 12F8 0CE1 4AAC A0E2 6627) -- http://vereshagin.org From nginx-forum на nginx.us Sat Aug 6 13:25:30 2011 From: nginx-forum на nginx.us (amigo) Date: Sat, 06 Aug 2011 09:25:30 -0400 Subject: =?UTF-8?B?UmU6INCd0LDRgdGC0YDQvtC50LrQsCBuZ2lueCwg0LTQu9GPINC+0YLQtNCw0Yc=?= =?UTF-8?B?0Lgg0L3QtdC60L7RgtC+0YDRi9GFINC60LDRgNGC0LjQvdC+0Log0YfQtdGA?= =?UTF-8?B?0LXQtyDQsNC/0LDRhw==?= In-Reply-To: <2cf476741192d28224813052c7ce2286.NginxMailingListRussian@forum.nginx.org> References: <2cf476741192d28224813052c7ce2286.NginxMailingListRussian@forum.nginx.org> Message-ID: <34ecaf8839761c500650ef0f6a8c67d8.NginxMailingListRussian@forum.nginx.org> получилось по примеру из доки: location ~ ^/users/(.+\.(?:gif|jpe?g|png))$ {...} Posted at Nginx Forum: http://forum.nginx.org/read.php?21,169702,213448#msg-213448 From anton на isaykin.ru Sat Aug 6 15:44:54 2011 From: anton на isaykin.ru (=?UTF-8?B?0JDQvdGC0L7QvSDQmNGB0LDQudC60LjQvQ==?=) Date: Sat, 6 Aug 2011 19:44:54 +0400 Subject: =?UTF-8?B?UHJveHlfcGFzcyDRh9C10YDQtdC3INC00YDRg9Cz0L7QuSDQuNC90YLQtdGA0YQ=?= =?UTF-8?B?0LXQudGB?= Message-ID: Добрый день. Подскажите пожалуйста, можно ли заставить nginx проксировать запрос через другой интерфейс? Я имею ввиду аналог опции --interface у cURL. Т.е. например, на сервер забиндили 2 IP адреса: 1.1.1.1 и 2.2.2.2. Первый из них дефолтный и если в директиву proxy_pass указать какой-либо внешний URL, то запрос отправится по интерфейсу 1.1.1.1. Есть ли возможность отправить отправить запрос через второй интерфейс? Можно ли менять интерфейс динамически? Спасибо. -- Anton Isaykin From anton на isaykin.ru Sat Aug 6 15:48:58 2011 From: anton на isaykin.ru (=?UTF-8?B?0JDQvdGC0L7QvSDQmNGB0LDQudC60LjQvQ==?=) Date: Sat, 6 Aug 2011 19:48:58 +0400 Subject: =?UTF-8?B?UmU6IFByb3h5X3Bhc3Mg0YfQtdGA0LXQtyDQtNGA0YPQs9C+0Lkg0LjQvdGC0LU=?= =?UTF-8?B?0YDRhNC10LnRgQ==?= In-Reply-To: References: Message-ID: Вопрос вдогонку. Если задача не решается при помощи nginx, то подскажите, пожалуйста простой прокси-сервер который бы справился с задачей динамического изменения интерфейсов в зависимости от параметров приходящего запроса. 6 августа 2011 г. 19:44 пользователь Антон Исайкин написал: > Добрый день. > > Подскажите пожалуйста, можно ли заставить nginx проксировать запрос > через другой интерфейс? Я имею ввиду аналог опции --interface у cURL. > > Т.е. например, на сервер забиндили 2 IP адреса: 1.1.1.1 и 2.2.2.2. > Первый из них дефолтный и если в директиву proxy_pass указать > какой-либо внешний URL, то запрос отправится по интерфейсу 1.1.1.1. > Есть ли возможность отправить отправить запрос через второй интерфейс? > Можно ли менять интерфейс динамически? > > Спасибо. > > -- > Anton Isaykin > -- Anton Isaykin From mdounin на mdounin.ru Sat Aug 6 15:57:13 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Sat, 6 Aug 2011 19:57:13 +0400 Subject: =?UTF-8?B?UmU6IFByb3h5X3Bhc3Mg0YfQtdGA0LXQtyDQtNGA0YPQs9C+0Lkg0LjQvdGC0LU=?= =?UTF-8?B?0YDRhNC10LnRgQ==?= In-Reply-To: References: Message-ID: <20110806155713.GR1137@mdounin.ru> Hello! On Sat, Aug 06, 2011 at 07:44:54PM +0400, Антон Исайкин wrote: > Добрый день. > > Подскажите пожалуйста, можно ли заставить nginx проксировать запрос > через другой интерфейс? Я имею ввиду аналог опции --interface у cURL. > > Т.е. например, на сервер забиндили 2 IP адреса: 1.1.1.1 и 2.2.2.2. > Первый из них дефолтный и если в директиву proxy_pass указать > какой-либо внешний URL, то запрос отправится по интерфейсу 1.1.1.1. > Есть ли возможность отправить отправить запрос через второй интерфейс? > Можно ли менять интерфейс динамически? http://wiki.nginx.org/HttpProxyModule#proxy_bind Maxim Dounin From anton на isaykin.ru Sat Aug 6 16:00:53 2011 From: anton на isaykin.ru (=?UTF-8?B?0JDQvdGC0L7QvSDQmNGB0LDQudC60LjQvQ==?=) Date: Sat, 6 Aug 2011 20:00:53 +0400 Subject: =?UTF-8?B?UmU6IFByb3h5X3Bhc3Mg0YfQtdGA0LXQtyDQtNGA0YPQs9C+0Lkg0LjQvdGC0LU=?= =?UTF-8?B?0YDRhNC10LnRgQ==?= In-Reply-To: <20110806155713.GR1137@mdounin.ru> References: <20110806155713.GR1137@mdounin.ru> Message-ID: Благодарю! Искал по слову interface :-) 6 августа 2011 г. 19:57 пользователь Maxim Dounin написал: > Hello! > > On Sat, Aug 06, 2011 at 07:44:54PM +0400, Антон Исайкин wrote: > >> Добрый день. >> >> Подскажите пожалуйста, можно ли заставить nginx проксировать запрос >> через другой интерфейс? Я имею ввиду аналог опции --interface у cURL. >> >> Т.е. например, на сервер забиндили 2 IP адреса: 1.1.1.1 и 2.2.2.2. >> Первый из них дефолтный и если в директиву proxy_pass указать >> какой-либо внешний URL, то запрос отправится по интерфейсу 1.1.1.1. >> Есть ли возможность отправить отправить запрос через второй интерфейс? >> Можно ли менять интерфейс динамически? > > http://wiki.nginx.org/HttpProxyModule#proxy_bind > > Maxim Dounin > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Anton Isaykin From mdounin на mdounin.ru Sat Aug 6 16:10:24 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Sat, 6 Aug 2011 20:10:24 +0400 Subject: =?UTF-8?B?UmU6IFByb3h5X3Bhc3Mg0YfQtdGA0LXQtyDQtNGA0YPQs9C+0Lkg0LjQvdGC0LU=?= =?UTF-8?B?0YDRhNC10LnRgQ==?= In-Reply-To: <20110806155713.GR1137@mdounin.ru> References: <20110806155713.GR1137@mdounin.ru> Message-ID: <20110806161024.GS1137@mdounin.ru> Hello! On Sat, Aug 06, 2011 at 07:57:13PM +0400, Maxim Dounin wrote: > Hello! > > On Sat, Aug 06, 2011 at 07:44:54PM +0400, Антон Исайкин wrote: > > > Добрый день. > > > > Подскажите пожалуйста, можно ли заставить nginx проксировать запрос > > через другой интерфейс? Я имею ввиду аналог опции --interface у cURL. > > > > Т.е. например, на сервер забиндили 2 IP адреса: 1.1.1.1 и 2.2.2.2. > > Первый из них дефолтный и если в директиву proxy_pass указать > > какой-либо внешний URL, то запрос отправится по интерфейсу 1.1.1.1. > > Есть ли возможность отправить отправить запрос через второй интерфейс? > > Можно ли менять интерфейс динамически? > > http://wiki.nginx.org/HttpProxyModule#proxy_bind И в догонку: Если говорить об ip-адресах, то это полный аналог curl --interface. Но надо понимать, что пакеты при этом пойдут не через конкретный интерфейс (интерфейс != ip-адрес), а как решит система. Если говорить именно об интерфейсах, то при использовании "curl --interface eth1" (т.е. именно имени интерфейса, а не ip-адреса) на linux'е curl делает setsockopt(SO_BINDTODEVICE), что обеспечивает отправку пакетов через конкретный интерфейс, даже если у системы другие представления по этому вопросу. Такого nginx не делает. Maxim Dounin From anton на isaykin.ru Sat Aug 6 17:40:06 2011 From: anton на isaykin.ru (=?UTF-8?B?0JDQvdGC0L7QvSDQmNGB0LDQudC60LjQvQ==?=) Date: Sat, 6 Aug 2011 21:40:06 +0400 Subject: =?UTF-8?B?UHJveHlfcGFzcyDQvdCwINGB0LvRg9GH0LDQudC90YvQuSBob3N0?= Message-ID: Подскажите, как можно настроить проксирование на адрес, полностью переданный через get параметры? Самым простым вариантом кажется такой: location /proxy/ { proxy_pass $arg_url; } Но в нем есть две проблемы: 1. Если в url, переданном гетом uri == /, то в запрос подставляется uri == /proxy/ (как path у location). 2. Если в url, переданном гетом в качестве хоста стоит домен, а не ip, то запрос не отрабатывает и в логах получаем сообщение: [error] 3151#0: *20 no resolver defined to resolve example.com, client: 127.0.0.1, server: , request: "GET /proxy/?url=http://example.com/123 HTTP/1.1", host: "127.0.0.1" Обе проблемы решил таким образом: location /proxy/ { rewrite .* $arg_uri break; proxy_pass http://$arg_ip$uri; proxy_set_header Host $arg_host; } Т.е. приходятся отдельно передавать hostname, uri и ip хоста. Все работает, но уж слишком велосипедно получилось. Что я делаю не так? -- Anton Isaykin From temotor на gmail.com Sat Aug 6 17:45:14 2011 From: temotor на gmail.com (Sergey Shepelev) Date: Sat, 6 Aug 2011 21:45:14 +0400 Subject: =?UTF-8?B?UmU6IFByb3h5X3Bhc3Mg0L3QsCDRgdC70YPRh9Cw0LnQvdGL0LkgaG9zdA==?= In-Reply-To: References: Message-ID: 2011/8/6 Антон Исайкин : > Подскажите, как можно настроить проксирование на адрес, полностью > переданный через get параметры? Самым простым вариантом кажется такой: > > location /proxy/ { >        proxy_pass $arg_url; > } > > Но в нем есть две проблемы: > 1. Если в url, переданном гетом uri == /, то в запрос подставляется > uri == /proxy/ (как path у location). > 2. Если в url, переданном гетом в качестве хоста стоит домен, а не ip, > то запрос не отрабатывает и в логах получаем сообщение: > > [error] 3151#0: *20 no resolver defined to resolve example.com, > client: 127.0.0.1, server: , request: "GET > /proxy/?url=http://example.com/123 HTTP/1.1", host: "127.0.0.1" > > Обе проблемы решил таким образом: > > location /proxy/ { >        rewrite .* $arg_uri break; >        proxy_pass http://$arg_ip$uri; >        proxy_set_header Host $arg_host; > } > > Т.е. приходятся отдельно передавать hostname, uri и ip хоста. Все > работает, но уж слишком велосипедно получилось. Что я делаю не так? > Написано же: no resolver defined. http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#resolver From anton на isaykin.ru Sat Aug 6 18:03:35 2011 From: anton на isaykin.ru (=?UTF-8?B?0JDQvdGC0L7QvSDQmNGB0LDQudC60LjQvQ==?=) Date: Sat, 6 Aug 2011 22:03:35 +0400 Subject: =?UTF-8?B?UmU6IFByb3h5X3Bhc3Mg0YfQtdGA0LXQtyDQtNGA0YPQs9C+0Lkg0LjQvdGC0LU=?= =?UTF-8?B?0YDRhNC10LnRgQ==?= In-Reply-To: <20110806161024.GS1137@mdounin.ru> References: <20110806155713.GR1137@mdounin.ru> <20110806161024.GS1137@mdounin.ru> Message-ID: Можно ли proxy_bind менять в зависимости от запроса? Переменные на вход он не приемлет, выходом вижу только использование отдельного location под каждый ip-адрес с которого я хочу отправить запрос. 6 августа 2011 г. 20:10 пользователь Maxim Dounin написал: > Hello! > > On Sat, Aug 06, 2011 at 07:57:13PM +0400, Maxim Dounin wrote: > >> Hello! >> >> On Sat, Aug 06, 2011 at 07:44:54PM +0400, Антон Исайкин wrote: >> >> > Добрый день. >> > >> > Подскажите пожалуйста, можно ли заставить nginx проксировать запрос >> > через другой интерфейс? Я имею ввиду аналог опции --interface у cURL. >> > >> > Т.е. например, на сервер забиндили 2 IP адреса: 1.1.1.1 и 2.2.2.2. >> > Первый из них дефолтный и если в директиву proxy_pass указать >> > какой-либо внешний URL, то запрос отправится по интерфейсу 1.1.1.1. >> > Есть ли возможность отправить отправить запрос через второй интерфейс? >> > Можно ли менять интерфейс динамически? >> >> http://wiki.nginx.org/HttpProxyModule#proxy_bind > > И в догонку: > > Если говорить об ip-адресах, то это полный аналог curl > --interface.  Но надо понимать, что пакеты при этом пойдут не > через конкретный интерфейс (интерфейс != ip-адрес), а как решит > система. > > Если говорить именно об интерфейсах, то при использовании "curl > --interface eth1" (т.е. именно имени интерфейса, а не ip-адреса) > на linux'е curl делает setsockopt(SO_BINDTODEVICE), что > обеспечивает отправку пакетов через конкретный интерфейс, даже > если у системы другие представления по этому вопросу.  Такого > nginx не делает. > > Maxim Dounin > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Anton Isaykin From postmaster на softsearch.ru Sat Aug 6 21:27:22 2011 From: postmaster на softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Sun, 7 Aug 2011 01:27:22 +0400 Subject: nginx-1.1.0 In-Reply-To: <20110801172102.GA75895@sysoev.ru> References: <20110801151253.GE68887@sysoev.ru> <296376227.20110801205934@softsearch.ru> <20110801172102.GA75895@sysoev.ru> Message-ID: <1798171909.20110807012722@softsearch.ru> Здравствуйте, Igor. >> > *) Добавление: уменьшение времени работы загрузчика кэша. >> >> > *) Добавление: параметры loader_files, loader_sleep и loader_threshold >> > директив proxy/fastcgi/scgi/uwsgi_cache_path. >> >> Большое спасибо. А то грузить кэш по 2-ое суток неудобно. За это время >> он сильно вырастал и было сложно предсказать свободное место, >> необходимое для этого роста. > Было бы интересно услышать, насколько помогло. Теперь процесс, загружающий кэш, перестал грузить диск. Ранее он конкурировал за диск с обычными процессами. Странно, что сейчас уже более часа грузится кэш. Хотя у меня 3 кэша структуры 1:2 по ~500 файлов в каждой директории. Т.е. надо прочесть всего 3х16х256=12288 директорий по ~30кб каждая. Нагрузка на диски сейчас судя по gstat ~30%. Если сейчас читаются только директории, то ИМХО, уже должно было всё считаться. Но процесс, читающий кэш, постоянно в состоянии nanslp находится. loader_files, loader_sleep и loader_threshold дефолтные. Диски SAS Hitachi 140 Gb. P.S. loader_files, loader_sleep и loader_threshold хорошо бы в доках отразить. -- С уважением, Михаил mailto:postmaster на softsearch.ru From mdounin на mdounin.ru Sun Aug 7 00:41:31 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Sun, 7 Aug 2011 04:41:31 +0400 Subject: nginx-1.1.0 In-Reply-To: <1798171909.20110807012722@softsearch.ru> References: <20110801151253.GE68887@sysoev.ru> <296376227.20110801205934@softsearch.ru> <20110801172102.GA75895@sysoev.ru> <1798171909.20110807012722@softsearch.ru> Message-ID: <20110807004131.GU1137@mdounin.ru> Hello! On Sun, Aug 07, 2011 at 01:27:22AM +0400, Михаил Монашёв wrote: > Здравствуйте, Igor. > > >> > *) Добавление: уменьшение времени работы загрузчика кэша. > >> > >> > *) Добавление: параметры loader_files, loader_sleep и loader_threshold > >> > директив proxy/fastcgi/scgi/uwsgi_cache_path. > >> > >> Большое спасибо. А то грузить кэш по 2-ое суток неудобно. За это время > >> он сильно вырастал и было сложно предсказать свободное место, > >> необходимое для этого роста. > > > Было бы интересно услышать, насколько помогло. > > Теперь процесс, загружающий кэш, перестал грузить диск. Ранее он > конкурировал за диск с обычными процессами. Это хорошо. > Странно, что сейчас уже более часа грузится кэш. Хотя у меня 3 кэша > структуры 1:2 по ~500 файлов в каждой директории. Т.е. надо прочесть > всего 3х16х256=12288 директорий по ~30кб каждая. Нагрузка на диски > сейчас судя по gstat ~30%. Если сейчас читаются только директории, то > ИМХО, уже должно было всё считаться. Но процесс, читающий кэш, > постоянно в состоянии nanslp находится. loader_files, loader_sleep и > loader_threshold дефолтные. Диски SAS Hitachi 140 Gb. Это пока в рамках настроек. При настройках по умолчанию, если не упирается в диск (и threshold не срабатывает), должно занимать минимум (12288 * 500 / 100) * 50ms = 3072s Реально - больше, т.к. кроме сна там всё-таки есть и какая-то дисковая активность. (При этом если на threshold таки наступили хоть раз - минимальное время сразу можно умножать на два.) Расскажи, как загрузится. Для сравнения ещё интересно было бы знать, сколько этот же самый кеш грузился раньше. > P.S. > loader_files, loader_sleep и loader_threshold хорошо бы в доках > отразить. Just in case: http://mailman.nginx.org/pipermail/nginx/2011-August/028323.html These paramters are used to control cache loader IO (notably keep it low enough to allow other work to be done). loader_files= specifies number of files scanned by cache loader per iteration loader_sleep=