From nginx-forum на nginx.us Sun Aug 2 18:08:32 2015 From: nginx-forum на nginx.us (Giokoed) Date: Sun, 02 Aug 2015 14:08:32 -0400 Subject: =?UTF-8?B?0JrQsNC6INGB0LTQtdC70LDRgtGMINC/0YDQsNCy0LjQu9GM0L3Ri9C5IHJld3Jp?= =?UTF-8?B?dGU=?= Message-ID: <6a3c207d54de58bafcf643a3b0ed85ad.NginxMailingListRussian@forum.nginx.org> Все привет! Подскажите как правильно сделать rewrite. Есть url domain.ru/sub/ нужно сделать так чтобы при переходе на domain.ru/sub/sub1 открывался domain.ru/sub Сделал так но ни чего не получается location ^/sub/* { rewrite ^/sub/(.*)$ /sub/ break; } Подскажите пожалуйста как грамотно сделать location и rewrite Posted at Nginx Forum: http://forum.nginx.org/read.php?21,260706,260706#msg-260706 From vovansystems на gmail.com Sun Aug 2 18:27:44 2015 From: vovansystems на gmail.com (VovansystemS) Date: Sun, 2 Aug 2015 21:27:44 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRgdC00LXQu9Cw0YLRjCDQv9GA0LDQstC40LvRjNC90YvQuSBy?= =?UTF-8?B?ZXdyaXRl?= In-Reply-To: <6a3c207d54de58bafcf643a3b0ed85ad.NginxMailingListRussian@forum.nginx.org> References: <6a3c207d54de58bafcf643a3b0ed85ad.NginxMailingListRussian@forum.nginx.org> Message-ID: > Есть url domain.ru/sub/ нужно сделать так чтобы при переходе на > domain.ru/sub/sub1 открывался domain.ru/sub > Сделал так но ни чего не получается > location ^/sub/* { rewrite ^/sub/(.*)$ /sub/ break; } > > Подскажите пожалуйста как грамотно сделать location и rewrite location ~* ^/sub/(.*)$ { rewrite ^ /sub; } From nginx-forum на nginx.us Mon Aug 3 00:55:55 2015 From: nginx-forum на nginx.us (S.A.N) Date: Sun, 02 Aug 2015 20:55:55 -0400 Subject: WebSocket - todo Message-ID: <75aed6f8e04deefa26ba03985db84296.NginxMailingListRussian@forum.nginx.org> После очередной настройки проксирования websocket сервера, меня все больше удивляет, почему в Nginx нет модуля websocket, c директивами websocket_*? Модуль нужен не только для красоты конфига, он может хранить под капотом оптимальные дефолт настройки и кучу проверок на отсеивания заведомо инвалидных запросов с точки зрения протокола websocket, и развиваться модуль мог бы так же активно как и сам протокол. Сейчас мой упрощенный конфиг для проксирования websocket сервера, выглядит так: location / { if ($http_upgrade !~* ^websocket$) { add_header Upgrade websocket always; return 426; } proxy_pass http://ws_upstream; proxy_http_version 1.1; proxy_read_timeout 300s; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } Но по сути он должен выглядеть как-то так: location / { websocket_pass http://upstream; } Или так: location / { proxy_pass ws://upstream; } Что скажете? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,260715,260715#msg-260715 From kpoxa на kpoxa.net Mon Aug 3 11:07:51 2015 From: kpoxa на kpoxa.net (kpoxa) Date: Mon, 3 Aug 2015 14:07:51 +0300 Subject: =?UTF-8?B?UmU6INC60LDQuiDRg9C80LXQvdGM0YjQuNGC0Ywg0YDQsNC30LzQtdGAINC60LU=?= =?UTF-8?B?0YjQsCBuZ2lueD8=?= In-Reply-To: References: Message-ID: Добрый день. Размер кеша задается в настройках nginx и если в кеш будет добавлено что-то и кеш станет больше, то в течении нескольких секунд nginx удалит из кеша наиболее довно не использовавшиеся элементы, сомневаюсь, что у вас постоянно запрашиваются все 1млн страниц, возможно 10% наиболее популярных в кеше размеров 6гб достаточно, чтобы сохранить наиболее важные страницы. Возможно стоит пременит min_use чтобы страницы, рапрошенные однократно, в кеш не попадали и не вымывали из кеша что-то, более важное. 31 июля 2015 г., 15:22 пользователь VovansystemS написал: > Добрый день, > > есть старый, но довольно большой https legacy-сайт на php и у > владельцев нет ресурсов его переделывать. сайт состоит из нескольких > миллионов страниц в районе 60 кб каждая (14 кб после gzip на nginx). > > основной трафик на сайт - поисковый по низкочастотным запросам и если > распарсить логи, получается что за сутки загружается порядка сотен > тысяч уникальных страниц (как поисковыми роботами и пауками, так и > клиентами) и редко какая страница загружается больше чем 2 раза за > сутки. > > для обеспечения хотя бы минимальной отказоустойчивости, есть идея > кешировать ответы backend'а, чтобы в случае его падения (задумчивости) > была возможность отдать хоть что-то через fastcgi_cache_use_stale. но > размер кеша всех целевых страниц сайта превысит все разумные пределы > (60кб х 1 000 000 страниц ≈ 58 гб) > > каким образом можно "сжимать" кеш nginx, кроме доработки приложения, > так, чтобы оно сразу отдавало сжатый ответ? > > ( здесь я читал: > http://forum.nginx.org/read.php?21,256725,256739#msg-256739 ) > > как один из вариантов вижу использование какой-нибудь файловой > системы, которая умеет сжимать файлы на лету, но тут много вопросов к > скорости работы fuse (по крайней мере раньше она работала медленно, > изменилась ли ситуация?) > > в принципе, cloudflare мог бы решить задачу, если купить бизнес план и > закачать туда свои сертификаты, но интересно рассмотреть вариант с > nginx, потому как у cloudflare есть ещё косяки с доступностью для > некоторых клиентов и роботов. > > может быть у кого-либо есть похожий опыт? > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Kpoxa -------------- next part -------------- An HTML attachment was scrubbed... URL: From denis на webmaster.spb.ru Tue Aug 4 17:19:29 2015 From: denis на webmaster.spb.ru (denis) Date: Tue, 04 Aug 2015 20:19:29 +0300 Subject: =?UTF-8?B?0L7RiNC40LHQutCwINGBIGN1cmwoMTgp?= Message-ID: <55C0F421.50606@webmaster.spb.ru> Добрый день. Пытаюсь понять: есть некий скрипт на flask (python), через собственный отладчик запрос работает нормально, он же черех nginx не хочет. ошибка curl: (18) transfer closed with 233 bytes remaining to read Общий конфиг user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600; uwsgi_read_timeout 1800; uwsgi_send_timeout 300; 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 65; #gzip on; include /etc/nginx/conf.d/*.conf; } cat /etc/nginx/conf.d/default.conf |egrep -v "^$|#" server { listen 80; server_name localhost; location / { root /var/www/html; index index.html index.htm; } location /fsconfsrv { access_log /var/log/nginx/fsconfsrv-access.log; error_log /var/log/nginx/fsconfsrv-error.log; root /opt/API/fsconfsrv; uwsgi_pass unix:/tmp/uwsgi-fsconfsrv.sock; include uwsgi_params; } } в логе uwsgi [pid: 27160|app: 0|req: 6/14] 192.168.10.202 () {36 vars in 616 bytes} [Tue Aug 4 19:52:03 2015] POST /fsconfsrv/dialplan.xml => generated 233 bytes in 0 msecs (HTTP/1.0 404) 2 headers in 72 bytes (1 switches on core 0) [pid: 27159|app: 0|req: 8/15] 192.168.10.202 () {36 vars in 619 bytes} [Tue Aug 4 19:53:19 2015] POST /fsconfsrv/dialplan.xml => generated 233 bytes in 0 msecs (HTTP/1.1 404) 2 headers in 72 bytes (2 switches on core 0) [pid: 27160|app: 0|req: 7/16] 192.168.10.202 () {36 vars in 619 bytes} [Tue Aug 4 19:54:49 2015] POST /fsconfsrv/dialplan.xml => generated 233 bytes in 0 msecs (HTTP/1.1 404) 2 headers in 72 bytes (1 switches on core 0) [pid: 27160|app: 0|req: 8/17] 192.168.10.202 () {34 vars in 592 bytes} [Tue Aug 4 19:55:27 2015] POST /fsconfsrv/dialplan.xml => generated 233 bytes in 0 msecs (HTTP/1.0 404) 2 headers in 72 bytes (1 switches on core 0) [pid: 27160|app: 0|req: 9/18] 192.168.10.202 () {34 vars in 592 bytes} [Tue Aug 4 19:58:25 2015] POST /fsconfsrv/dialplan.xml => generated 233 bytes in 0 msecs (HTTP/1.0 404) 2 headers in 72 bytes (1 switches on core 0) [pid: 27160|app: 0|req: 10/19] 192.168.10.202 () {32 vars in 561 bytes} [Tue Aug 4 19:59:55 2015] POST /fsconfsrv/dialplan.xml => generated 233 bytes in 0 msecs (HTTP/1.0 404) 2 headers in 72 bytes (1 switches on core 0) видно, что размер каждый раз разный, хотя по факту он один. пробовал курл с опциями -H "Content-Length:" --ignore-content-length -0 -kv - не помогло. Сам запрос curl -X POST "http://192.168.10.250/fsconfsrv/dialplan.xml" -d "hostname=fs02.test.ru§ion=dialplan&tag_name=&key_name=&key_value=&Event-Name=REQUEST_PARAMS&Core-UUID=5eb1d5da-3a05-11e5-8df2-97880de72862&FreeSWITCH-Hostname=fs02.test.ru&FreeSWITCH-Switchname=fs02.test.ru&FreeSWITCH-IPv4=222.333.444.152&FreeSWITCH-IPv6=%3A%3A1&Event-Date-Local=2015-08-04%2019%3A48%3A56&Event-Date-GMT=Tue,%2004%20Aug%202015%2016%3A48%3A56%20GMT&Event-Date-Timestamp=1438706936115775&Event-Calling-File=mod_dialplan_xml.c&Event-Calling-Function=dialplan_xml_locate&Event-Calling-Line-Number=606&Event-Sequence=11348&Channel-State=CS_ROUTING&Channel-Call-State=RINGING&Channel-State-Number=2&Channel-Name=sofia/internal/000*102%40siptest.test.ru%3A5060&Unique-ID=b20979a4-3ac8-11e5-9fde-97880de72862&Call-Direction=inbound&Presence-Call-Direction=inbound&Channel-HIT-Dialplan=true&Channel-Presence-ID=000*102%40siptest.test.ru&Channel-Call-UUID=b20979a4-3ac8-11e5-9fde-97880de72862&Answer-State=ringing&Caller-Direction=inbound&Caller-Logical-Direction=inbound&Caller-Username=000*102&Caller-Dialplan=XML&Caller-Caller-ID-Name=000*102&Caller-Caller-ID-Number=000*102&Caller-Orig-Caller-ID-Name=000*102&Caller-Orig-Caller-ID-Number=000*102&Caller-Network-Addr=222.333.444.150&Caller-ANI=000*102&Caller-Destination-Number=000*103&Caller-Unique-ID=b20979a4-3ac8-11e5-9fde-97880de72862&Caller-Source=mod_sofia&Caller-Context=public&Caller-Channel-Name=sofia/internal/000*102%40siptest.test.ru%3A5060&Caller-Profile-Index=1&Caller-Profile-Created-Time=1438706935935776&Caller-Channel-Created-Time=1438706935935776&Caller-Channel-Answered-Time=0&Caller-Channel-Progress-Time=0&Caller-Channel-Progress-Media-Time=0&Caller-Channel-Hangup-Time=0&Caller-Channel-Transfer-Time=0&Caller-Channel-Resurrect-Time=0&Caller-Channel-Bridged-Time=0&Caller-Channel-Last-Hold=0&Caller-Channel-Hold-Accum=0&Caller-Screen-Bit=true&Caller-Privacy-Hide-Name=false&Caller-Privacy-Hide-Number=false&variable_direction=inbound&variable_uuid=b20979a4-3ac8-11e5-9fde-97880de72862&variable_session_id=21&variable_sip_from_user=000*102&variable_sip_from_port=5060&variable_sip_from_uri=000*102%40siptest.test.ru%3A5060&variable_sip_from_host=siptest.test.ru&variable_channel_name=sofia/internal/000*102%40siptest.test.ru%3A5060&variable_sip_call_id=189733119113856-142091489831125%40192.168.10.125&variable_ep_codec_string=PCMA%408000h%4020i%4064000b,PCMU%408000h%4020i%4064000b&variable_sip_local_network_addr=222.333.444.152&variable_sip_network_ip=222.333.444.150&variable_sip_network_port=5060&variable_sip_received_ip=222.333.444.150&variable_sip_received_port=5060&variable_sip_via_protocol=udp&variable_sip_from_user_stripped=000*102&variable_sip_from_tag=1686613849&variable_sofia_profile_name=internal&variable_recovery_profile_name=internal&variable_sip_invite_record_route=%3Csip%3A**090802103%40222.333.444.150%3Blr%3Don%3Bftag%3D1686613849%3Bdid%3D0e91.03f1%3Bnat%3Dyes%3E&variable_sip_full_via=SIP/2.0/UDP%20222.333.444.150%3Bbranch%3Dz9hG4bK41a1.ad5187bf16a99226dc04230dcbcd09d1.0,SIP/2.0/UDP%20192.168.10.125%3A11360%3Brport%3D11360%3Breceived%3D222.333.555%3Bbranch%3Dz9hG4bK2230496193027817324&variable_sip_from_display=000*102&variable_sip_full_from=000*102%20%3Csip%3A000*102%40siptest.test.ru%3A5060%3E%3Btag%3D1686613849&variable_sip_to_display=**090802103&variable_sip_full_to=%22**090802103%22%20%3Csip%3A**090802103%40siptest.test.ru%3E&variable_sip_req_user=000*103&variable_sip_req_uri=000*103%40siptest.test.ru&variable_sip_req_host=siptest.test.ru&variable_sip_to_user=**090802103&variable_sip_to_uri=**090802103%40siptest.test.ru&variable_sip_to_host=siptest.test.ru&variable_sip_contact_params=alias%3D222.333.555~11360~1&variable_sip_contact_user=000*102&variable_sip_contact_port=11360&variable_sip_contact_uri=000*102%40192.168.10.125%3A11360&variable_sip_contact_host=192.168.10.125&variable_rtp_use_codec_string=OPUS,G722,PCMU,PCMA,GSM&variable_sip_user_agent=Fanvil%20C58/C58P%202.3.769.392&variable_sip_via_host=222.333.444.150&variable_max_forwards=69&variable_presence_id=000*102%40siptest.test.ru&variable_sip_h_X-Inring=pId%3D5%3BsrcId%3D5%3BsrcDid%3D1%3BsrcCid%3D12%3BsrcExt%3D000*102%40siptest.test.ru%3BsrcType%3Dphone%3BdestId%3D6%3BdestDid%3D1%3BdestCid%3D12%3BdestExt%3D000*103%40siptest.test.ru%3BdestType%3Dphone&variable_sip_h_P-Early-Media=supported&variable_switch_r_sdp=v%3D0%0D%0Ao%3D000*102%201896211919%201699612375%20IN%20IP4%20192.168.10.125%0D%0As%3DA%20conversation%0D%0Ac%3DIN%20IP4%20192.168.10.125%0D%0At%3D0%200%0D%0Am%3Daudio%2010054%20RTP/AVP%208%200%2018%20101%0D%0Aa%3Drtpmap%3A8%20PCMA/8000%0D%0Aa%3Drtpmap%3A0%20PCMU/8000%0D%0Aa%3Drtpmap%3A18%20G729/8000%0D%0Aa%3Dfmtp%3A18%20annexb%3Dno%0D%0Aa%3Drtpmap%3A101%20telephone-event/8000%0D%0Aa%3Dfmtp%3A101%200-15%0D%0A&variable_endpoint_disposition=DELAYED%20NEGOTIATION&variable_call_uuid=b20979a4-3ac8-11e5-9fde-97880de72862&Hunt-Direction=inbound&Hunt-Logical-Direction=inbound&Hunt-Username=000*102&Hunt-Dialplan=XML&Hunt-Caller-ID-Name=000*102&Hunt-Caller-ID-Number=000*102&Hunt-Orig-Caller-ID-Name=000*102&Hunt-Orig-Caller-ID-Number=000*102&Hunt-Network-Addr=222.333.444.150&Hunt-ANI=000*102&Hunt-Destination-Number=000*103&Hunt-Unique-ID=b20979a4-3ac8-11e5-9fde-97880de72862&Hunt-Source=mod_sofia&Hunt-Context=public&Hunt-Channel-Name=sofia/internal/000*102%40siptest.test.ru%3A5060&Hunt-Profile-Index=1&Hunt-Profile-Created-Time=1438706935935776&Hunt-Channel-Created-Time=1438706935935776&Hunt-Channel-Answered-Time=0&Hunt-Channel-Progress-Time=0&Hunt-Channel-Progress-Media-Time=0&Hunt-Channel-Hangup-Time=0&Hunt-Channel-Transfer-Time=0&Hunt-Channel-Resurrect-Time=0&Hunt-Channel-Bridged-Time=0&Hunt-Channel-Last-Hold=0&Hunt-Channel-Hold-Accum=0&Hunt-Screen-Bit=true&Hunt-Privacy-Hide-Name=false&Hunt-Privacy-Hide-Number=false" From vbart на nginx.com Tue Aug 4 23:28:48 2015 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 05 Aug 2015 02:28:48 +0300 Subject: =?UTF-8?B?UmU6INC+0YjQuNCx0LrQsCDRgSBjdXJsKDE4KQ==?= In-Reply-To: <55C0F421.50606@webmaster.spb.ru> References: <55C0F421.50606@webmaster.spb.ru> Message-ID: <1768227.urLvtLHfpX@vbart-laptop> On Tuesday 04 August 2015 20:19:29 denis wrote: > Добрый день. > > Пытаюсь понять: есть некий скрипт на flask (python), через собственный > отладчик запрос работает нормально, он же черех nginx не хочет. ошибка > curl: (18) transfer closed with 233 bytes remaining to read [..] А в лог nginx смотрели? -- Валентин Бартенев From myc на cname.me Wed Aug 5 08:03:50 2015 From: myc на cname.me (Eugene Mychlo) Date: Wed, 5 Aug 2015 11:03:50 +0300 Subject: =?UTF-8?B?UmU6INC+0YjQuNCx0LrQsCDRgSBjdXJsKDE4KQ==?= In-Reply-To: <55C0F421.50606@webmaster.spb.ru> References: <55C0F421.50606@webmaster.spb.ru> Message-ID: <64BC1456-F63A-4E8A-A38F-7C3F60355711@cname.me> > 4 авг. 2015 г., в 20:19, denis написал(а): > > Добрый день. > > Пытаюсь понять: есть некий скрипт на flask (python), через собственный отладчик запрос работает нормально, он же черех nginx не хочет. ошибка > curl: (18) transfer closed with 233 bytes remaining to read Посмотрите права на uwsgi_temp_path. Скорее всего в error_log-е будет ругань на это. -- Regards, Eugene Mychlo MYC-RIPE EAMYC-RIPN From denis на webmaster.spb.ru Wed Aug 5 08:51:11 2015 From: denis на webmaster.spb.ru (denis) Date: Wed, 05 Aug 2015 11:51:11 +0300 Subject: =?UTF-8?B?UmU6INC+0YjQuNCx0LrQsCDRgSBjdXJsKDE4KQ==?= In-Reply-To: <1768227.urLvtLHfpX@vbart-laptop> References: <55C0F421.50606@webmaster.spb.ru> <1768227.urLvtLHfpX@vbart-laptop> Message-ID: <55C1CE7F.7030500@webmaster.spb.ru> 05.08.2015 2:28, Валентин Бартенев пишет: > On Tuesday 04 August 2015 20:19:29 denis wrote: >> Добрый день. >> >> Пытаюсь понять: есть некий скрипт на flask (python), через собственный >> отладчик запрос работает нормально, он же черех nginx не хочет. ошибка >> curl: (18) transfer closed with 233 bytes remaining to read > [..] > > А в лог nginx смотрели? > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru 2015/08/05 11:47:51 [error] 31107#0: *13387 readv() failed (104: Connection reset by peer) while reading upstream, client: 192.168.10.202, server: localhost, request: "POST /fsconfsrv/dialplan.xml HTTP/1.0", upstream: "uwsgi://unix:/tmp/uwsgi-fsconfsrv.sock:", host: "192.168.10.250" From denis на webmaster.spb.ru Wed Aug 5 08:52:02 2015 From: denis на webmaster.spb.ru (denis) Date: Wed, 05 Aug 2015 11:52:02 +0300 Subject: =?UTF-8?B?0L7QsdGA0LDQsdC+0YLQutCwIFBPU1Qg0LfQsNC/0YDQvtGB0L7Qsg==?= Message-ID: <55C1CEB2.6040709@webmaster.spb.ru> Нужно обрабатывать имя файла, которое передается в POST и никак иначе. Пока вижу только 2 варианта (кроме проксирования на внешний скрипт): луа, который почему-то не собирается штатно в оф. репе, и перл, который уныл более чем полностью и с уродливой докой. Есть в инете примеры, но там скриптов на 3 экрана против 5 строк на луа. Собственно, какие есть еще методы и почему штатно луа не компилируется? Его даже tengine уже давно штатно включает, а нагрузка там больше того же рамблера может даже на порядки. From alex.hha на gmail.com Wed Aug 5 09:39:34 2015 From: alex.hha на gmail.com (Alex Domoradov) Date: Wed, 5 Aug 2015 12:39:34 +0300 Subject: =?UTF-8?B?UmU6INC+0YjQuNCx0LrQsCDRgSBjdXJsKDE4KQ==?= In-Reply-To: <55C1CE7F.7030500@webmaster.spb.ru> References: <55C0F421.50606@webmaster.spb.ru> <1768227.urLvtLHfpX@vbart-laptop> <55C1CE7F.7030500@webmaster.spb.ru> Message-ID: А если с дебагом? 2015-08-05 11:51 GMT+03:00 denis : > 05.08.2015 2:28, Валентин Бартенев пишет: > > On Tuesday 04 August 2015 20:19:29 denis wrote: >> >>> Добрый день. >>> >>> Пытаюсь понять: есть некий скрипт на flask (python), через собственный >>> отладчик запрос работает нормально, он же черех nginx не хочет. ошибка >>> curl: (18) transfer closed with 233 bytes remaining to read >>> >> [..] >> >> А в лог nginx смотрели? >> >> -- >> Валентин Бартенев >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > 2015/08/05 11:47:51 [error] 31107#0: *13387 readv() failed (104: > Connection reset by peer) while reading upstream, client: 192.168.10.202, > server: localhost, request: "POST /fsconfsrv/dialplan.xml HTTP/1.0", > upstream: "uwsgi://unix:/tmp/uwsgi-fsconfsrv.sock:", host: "192.168.10.250" > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From denis на webmaster.spb.ru Wed Aug 5 10:44:48 2015 From: denis на webmaster.spb.ru (denis) Date: Wed, 05 Aug 2015 13:44:48 +0300 Subject: =?UTF-8?B?UmU6INCU0L7QsdCw0LLQu9C10L3QuNC1INC30LDQs9C+0LvQvtCy0LrQsCDQv9C+?= =?UTF-8?B?0YHQu9C1IHVwc3RyZWFt?= In-Reply-To: References: <20150729072527.GB18079@Ekaterinas-MacBook-Pro.local> <26b2f166bd08af5e2206fc48e1a944ef.NginxMailingListRussian@forum.nginx.org> Message-ID: <55C1E920.7010906@webmaster.spb.ru> 29.07.2015 16:39, Andrey Oktyabrskiy пишет: > On 2015-07-29 12:56, Budulianin wrote: >> Может знаете какие-то книги/форумы/статьи на тему маршрутизации и >> правильных >> подходов/принципов? >> Интересно почитать. > Правильно так: > http://nginx.org/ru/docs/http/ngx_http_upstream_module.html#sticky > > Но если купить коммерческую подписку по тем или иным причинам > невозможно, придётся внешним монтажом: или посмотреть на tengine, он умеет больше балансировок, может подойдет чего. Тот же nginx, но улученный taobao под свои нужды. From mva на mva.name Wed Aug 5 12:59:10 2015 From: mva на mva.name (Vadim A. Misbakh-Soloviov) Date: Wed, 05 Aug 2015 18:59:10 +0600 Subject: =?UTF-8?B?UmU6INCU0L7QsdCw0LLQu9C10L3QuNC1INC30LDQs9C+0LvQvtCy0LrQsCDQv9C+?= =?UTF-8?B?0YHQu9C1IHVwc3RyZWFt?= In-Reply-To: <55C1E920.7010906@webmaster.spb.ru> References: <20150729072527.GB18079@Ekaterinas-MacBook-Pro.local> <55C1E920.7010906@webmaster.spb.ru> Message-ID: <25243701.iVPuehh1FW@note> > Тот же nginx, но улученный taobao под свои нужды. По поводу "улучшен" - тут есть несколько мнений. Например, у них добавлено очень много блокирующих операций ради плюшек. Так теряется вся суть NginX и с таким же успехом можно было бы использовать Apache. Так-то CloudFlare (куда как раз из TaoBao ушёл Yuchin Zhang) пошли по более правильному пути: они не форкали, они сделали свой бандл, OpenResty, где как раз и LuaJIT, и ngx_lua и куча вкусных модулей :) И *стандартный* NginX ;) -- Best regards, mva ----------- следущая часть ----------- Вложение не в текстовом формате было извлечено… Имя: signature.asc Тип: application/pgp-signature Размер: 819 байтов Описание: This is a digitally signed message part. URL: From annulen на yandex.ru Wed Aug 5 13:12:30 2015 From: annulen на yandex.ru (Konstantin Tokarev) Date: Wed, 05 Aug 2015 16:12:30 +0300 Subject: =?UTF-8?B?UmU6INCU0L7QsdCw0LLQu9C10L3QuNC1INC30LDQs9C+0LvQvtCy0LrQsCDQv9C+?= =?UTF-8?B?0YHQu9C1IHVwc3RyZWFt?= In-Reply-To: <25243701.iVPuehh1FW@note> References: <20150729072527.GB18079@Ekaterinas-MacBook-Pro.local> <55C1E920.7010906@webmaster.spb.ru> <25243701.iVPuehh1FW@note> Message-ID: <526161438780350@web20j.yandex.ru> 05.08.2015, 15:59, "Vadim A. Misbakh-Soloviov" : >>  Тот же nginx, но улученный taobao под свои нужды. > > По поводу "улучшен" - тут есть несколько мнений. Например, у них добавлено > очень много блокирующих операций ради плюшек. Так теряется вся суть NginX и с > таким же успехом можно было бы использовать Apache. Apache даже лучше приспособлен для блокирующих операций. Кстати, в нем есть mod_lua http://httpd.apache.org/docs/trunk/mod/mod_lua.html > Так-то CloudFlare (куда > как раз из TaoBao ушёл Yuchin Zhang) пошли по более правильному пути: они не > форкали, они сделали свой бандл, OpenResty, где как раз и LuaJIT, и ngx_lua и > куча вкусных модулей :) И *стандартный* NginX ;) > > -- > Best regards, > mva > , > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Regards, Konstantin From vbart на nginx.com Wed Aug 5 13:41:56 2015 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 05 Aug 2015 16:41:56 +0300 Subject: =?UTF-8?B?UmU6INC+0YjQuNCx0LrQsCDRgSBjdXJsKDE4KQ==?= In-Reply-To: <55C1CE7F.7030500@webmaster.spb.ru> References: <55C0F421.50606@webmaster.spb.ru> <1768227.urLvtLHfpX@vbart-laptop> <55C1CE7F.7030500@webmaster.spb.ru> Message-ID: <5033549.X1n6et6y1Y@vbart-workstation> On Wednesday 05 August 2015 11:51:11 denis wrote: > 05.08.2015 2:28, Валентин Бартенев пишет: > > On Tuesday 04 August 2015 20:19:29 denis wrote: > >> Добрый день. > >> > >> Пытаюсь понять: есть некий скрипт на flask (python), через собственный > >> отладчик запрос работает нормально, он же черех nginx не хочет. ошибка > >> curl: (18) transfer closed with 233 bytes remaining to read > > [..] > > > > А в лог nginx смотрели? > > > 2015/08/05 11:47:51 [error] 31107#0: *13387 readv() failed (104: > Connection reset by peer) while reading upstream, client: > 192.168.10.202, server: localhost, request: "POST > /fsconfsrv/dialplan.xml HTTP/1.0", upstream: > "uwsgi://unix:/tmp/uwsgi-fsconfsrv.sock:", host: "192.168.10.250" > uWSGI закрыл соединение видимо не прислав тело ответа, разбираетесь с ним почему он так делает. Можно посмотреть подробнее включив debug: http://nginx.org/ru/docs/debugging_log.html -- Валентин Бартенев From denis на webmaster.spb.ru Wed Aug 5 14:00:21 2015 From: denis на webmaster.spb.ru (denis) Date: Wed, 05 Aug 2015 17:00:21 +0300 Subject: =?UTF-8?B?UmU6INCU0L7QsdCw0LLQu9C10L3QuNC1INC30LDQs9C+0LvQvtCy0LrQsCDQv9C+?= =?UTF-8?B?0YHQu9C1IHVwc3RyZWFt?= In-Reply-To: <25243701.iVPuehh1FW@note> References: <20150729072527.GB18079@Ekaterinas-MacBook-Pro.local> <55C1E920.7010906@webmaster.spb.ru> <25243701.iVPuehh1FW@note> Message-ID: <55C216F5.3080800@webmaster.spb.ru> 05.08.2015 15:59, Vadim A. Misbakh-Soloviov пишет: >> Тот же nginx, но улученный taobao под свои нужды. > По поводу "улучшен" - тут есть несколько мнений. Например, у них добавлено > очень много блокирующих операций ради плюшек. Так теряется вся суть NginX и с > таким же успехом можно было бы использовать Apache. Так-то CloudFlare (куда > как раз из TaoBao ушёл Yuchin Zhang) пошли по более правильному пути: они не > форкали, они сделали свой бандл, OpenResty, где как раз и LuaJIT, и ngx_lua и > куча вкусных модулей :) И *стандартный* NginX ;) Да, пока гуглил парсилку пост, посмотрел уже на рести и его возможности, статью на хабре... Интересная штука. Увы, штатно луа нет вообще. Разработчикам большая просьба все-таки включить его в оф репу, а рести уже сверху накатить можно будет. Очень не хочется переходить с оф версии на CloudFlare сборку. From sytar.alex на gmail.com Wed Aug 5 14:07:14 2015 From: sytar.alex на gmail.com (Aleksandr Sytar) Date: Wed, 5 Aug 2015 17:07:14 +0300 Subject: =?UTF-8?B?UmU6INCU0L7QsdCw0LLQu9C10L3QuNC1INC30LDQs9C+0LvQvtCy0LrQsCDQv9C+?= =?UTF-8?B?0YHQu9C1IHVwc3RyZWFt?= In-Reply-To: <55C216F5.3080800@webmaster.spb.ru> References: <20150729072527.GB18079@Ekaterinas-MacBook-Pro.local> <55C1E920.7010906@webmaster.spb.ru> <25243701.iVPuehh1FW@note> <55C216F5.3080800@webmaster.spb.ru> Message-ID: 5 августа 2015 г., 17:00 пользователь denis написал: > 05.08.2015 15:59, Vadim A. Misbakh-Soloviov пишет: > >> Тот же nginx, но улученный taobao под свои нужды. >>> >> По поводу "улучшен" - тут есть несколько мнений. Например, у них добавлено >> очень много блокирующих операций ради плюшек. Так теряется вся суть NginX >> и с >> таким же успехом можно было бы использовать Apache. Так-то CloudFlare >> (куда >> как раз из TaoBao ушёл Yuchin Zhang) пошли по более правильному пути: они >> не >> форкали, они сделали свой бандл, OpenResty, где как раз и LuaJIT, и >> ngx_lua и >> куча вкусных модулей :) И *стандартный* NginX ;) >> > Да, пока гуглил парсилку пост, посмотрел уже на рести и его возможности, > статью на хабре... Интересная штука. > Увы, штатно луа нет вообще. Разработчикам большая просьба все-таки > включить его в оф репу, а рести уже сверху накатить можно будет. Очень не > хочется переходить с оф версии на CloudFlare сборку. А в чем проблема самому пересобрать - инструкций полно, в том числе есть и в рассылке ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From denis на webmaster.spb.ru Wed Aug 5 14:11:25 2015 From: denis на webmaster.spb.ru (denis) Date: Wed, 05 Aug 2015 17:11:25 +0300 Subject: =?UTF-8?B?UmU6INCU0L7QsdCw0LLQu9C10L3QuNC1INC30LDQs9C+0LvQvtCy0LrQsCDQv9C+?= =?UTF-8?B?0YHQu9C1IHVwc3RyZWFt?= In-Reply-To: References: <20150729072527.GB18079@Ekaterinas-MacBook-Pro.local> <55C1E920.7010906@webmaster.spb.ru> <25243701.iVPuehh1FW@note> <55C216F5.3080800@webmaster.spb.ru> Message-ID: <55C2198D.9070102@webmaster.spb.ru> 05.08.2015 17:07, Aleksandr Sytar пишет: > > > 5 августа 2015 г., 17:00 пользователь denis > написал: > > 05.08.2015 15:59, Vadim A. Misbakh-Soloviov пишет: > > Тот же nginx, но улученный taobao под свои нужды. > > По поводу "улучшен" - тут есть несколько мнений. Например, у > них добавлено > очень много блокирующих операций ради плюшек. Так теряется вся > суть NginX и с > таким же успехом можно было бы использовать Apache. Так-то > CloudFlare (куда > как раз из TaoBao ушёл Yuchin Zhang) пошли по более > правильному пути: они не > форкали, они сделали свой бандл, OpenResty, где как раз и > LuaJIT, и ngx_lua и > куча вкусных модулей :) И *стандартный* NginX ;) > > Да, пока гуглил парсилку пост, посмотрел уже на рести и его > возможности, статью на хабре... Интересная штука. > Увы, штатно луа нет вообще. Разработчикам большая просьба все-таки > включить его в оф репу, а рести уже сверху накатить можно будет. > Очень не хочется переходить с оф версии на CloudFlare сборку. > > > А в чем проблема самому пересобрать - инструкций полно, в том числе > есть и в рассылке Инструкции вида make install идут вЖ, надо пакеты собирать. Взять спек, поправить, собрать. При любых проблемах будет "поставьте нашу чистую сборку", постоянно это мелькает. Плюс надо будет постоянно отслеживать тогда новые версии, получать новые спеки, править, собирать, деплоить.. И так уже много софта надо отслеживать, очень хотелось бы этого избежать. Тогда проще подключить стороннюю репу, где уже собрана те же рести, и проблем не знать. Увы, модульности нгинха мы никогда не увидим, потому что это "платная" фича :( ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From maxim на nginx.com Wed Aug 5 14:13:13 2015 From: maxim на nginx.com (Maxim Konovalov) Date: Wed, 05 Aug 2015 17:13:13 +0300 Subject: =?UTF-8?B?UmU6INCU0L7QsdCw0LLQu9C10L3QuNC1INC30LDQs9C+0LvQvtCy0LrQsCDQv9C+?= =?UTF-8?B?0YHQu9C1IHVwc3RyZWFt?= In-Reply-To: <55C2198D.9070102@webmaster.spb.ru> References: <20150729072527.GB18079@Ekaterinas-MacBook-Pro.local> <55C1E920.7010906@webmaster.spb.ru> <25243701.iVPuehh1FW@note> <55C216F5.3080800@webmaster.spb.ru> <55C2198D.9070102@webmaster.spb.ru> Message-ID: <55C219F9.4020705@nginx.com> On 8/5/15 5:11 PM, denis wrote: > Увы, модульности нгинха мы никогда не увидим, потому что это > "платная" фича :( Это вы откуда такое взяли? -- Maxim Konovalov Discover best practices for building & delivering apps at scale. nginx.conf 2015: Sept. 22-24, San Francisco. http://nginx.com/nginxconf From denis на webmaster.spb.ru Wed Aug 5 14:21:51 2015 From: denis на webmaster.spb.ru (denis) Date: Wed, 05 Aug 2015 17:21:51 +0300 Subject: =?UTF-8?B?UmU6INCU0L7QsdCw0LLQu9C10L3QuNC1INC30LDQs9C+0LvQvtCy0LrQsCDQv9C+?= =?UTF-8?B?0YHQu9C1IHVwc3RyZWFt?= In-Reply-To: <55C219F9.4020705@nginx.com> References: <20150729072527.GB18079@Ekaterinas-MacBook-Pro.local> <55C1E920.7010906@webmaster.spb.ru> <25243701.iVPuehh1FW@note> <55C216F5.3080800@webmaster.spb.ru> <55C2198D.9070102@webmaster.spb.ru> <55C219F9.4020705@nginx.com> Message-ID: <55C21BFF.60309@webmaster.spb.ru> 05.08.2015 17:13, Maxim Konovalov пишет: > On 8/5/15 5:11 PM, denis wrote: >> Увы, модульности нгинха мы никогда не увидим, потому что это >> "платная" фича :( > Это вы откуда такое взяли? О модульности говорили года с 2010, если не раньше. у taobao есть механизм DSO, значит технически это реализуемо, и более того - можно было бы оттуда и взять за основу механизм. И я не вижу технических проблем запустить новых воркеров с новыми модулями, но в коде я не копался. Плюс, кто-то говорил, что есть некий подобный механизм в плюс версии, но без пруфов. Может и соврали. Но не сделать за 5+ лет с их квалификацией? Значит, это им просто не нужно. Ну и закономерный вывод - потому что уже есть в платной версии. From maxim на nginx.com Wed Aug 5 15:23:52 2015 From: maxim на nginx.com (Maxim Konovalov) Date: Wed, 05 Aug 2015 18:23:52 +0300 Subject: =?UTF-8?B?UmU6INCU0L7QsdCw0LLQu9C10L3QuNC1INC30LDQs9C+0LvQvtCy0LrQsCDQv9C+?= =?UTF-8?B?0YHQu9C1IHVwc3RyZWFt?= In-Reply-To: <55C21BFF.60309@webmaster.spb.ru> References: <20150729072527.GB18079@Ekaterinas-MacBook-Pro.local> <55C1E920.7010906@webmaster.spb.ru> <25243701.iVPuehh1FW@note> <55C216F5.3080800@webmaster.spb.ru> <55C2198D.9070102@webmaster.spb.ru> <55C219F9.4020705@nginx.com> <55C21BFF.60309@webmaster.spb.ru> Message-ID: <55C22A88.6040107@nginx.com> On 8/5/15 5:21 PM, denis wrote: > 05.08.2015 17:13, Maxim Konovalov пишет: >> On 8/5/15 5:11 PM, denis wrote: >>> Увы, модульности нгинха мы никогда не увидим, потому что это >>> "платная" фича :( >> Это вы откуда такое взяли? > О модульности говорили года с 2010, если не раньше. у taobao есть > механизм DSO, значит технически это реализуемо, и более того - можно > было бы оттуда и взять за основу механизм. И я не вижу технических > проблем запустить новых воркеров с новыми модулями, но в коде я не > копался. > Плюс, кто-то говорил, что есть некий подобный механизм в плюс > версии, но без пруфов. Может и соврали. Но не сделать за 5+ лет с их > квалификацией? Значит, это им просто не нужно. Ну и закономерный > вывод - потому что уже есть в платной версии. > Вы заблуждаетесь. Этого нет в платной версии. Документация от нее, кстати, доступна на nginx.org и nginx.com. Более того, динамические модули в плане разработки ветки 1.9: http://trac.nginx.org/nginx/roadmap -- Maxim Konovalov Discover best practices for building & delivering apps at scale. nginx.conf 2015: Sept. 22-24, San Francisco. http://nginx.com/nginxconf From nginx-forum на nginx.us Wed Aug 5 15:31:34 2015 From: nginx-forum на nginx.us (gurgen) Date: Wed, 05 Aug 2015 11:31:34 -0400 Subject: worker process exited on signal 11 Message-ID: <261ce412383db2d1200bf36b10b770c2.NginxMailingListRussian@forum.nginx.org> Коллеги, поставил новый сертификат SSL на nginx от WoSIGN (бесплатный). Предыдущий стоял StartSSL. процессы nginx worker стали падать в Seg fault (11) на некоторых запросах, которых не поймать. После падения процесса в статистике stub_status висят соединения от этих клиентов, последующие соединения при настроенном "limit_conn addr 10" получают 503, то есть nginx думает что есть установленные соединения. По netstat таких соединений нет вовсе (штук 20 висят живых). В логах веселее: 2015/08/05 16:38:18 [alert] 17131#17131: worker process 18807 exited on signal 11 (core dumped) 2015/08/05 16:41:16 [alert] 17131#17131: worker process 19852 exited on signal 11 (core dumped) 2015/08/05 16:44:12 [alert] 17131#17131: worker process 20566 exited on signal 11 (core dumped) 2015/08/05 16:47:12 [alert] 17131#17131: worker process 20812 exited on signal 11 (core dumped) 2015/08/05 16:50:15 [alert] 17131#17131: worker process 19592 exited on signal 11 (core dumped) 2015/08/05 16:53:15 [alert] 17131#17131: worker process 22300 exited on signal 11 (core dumped) 2015/08/05 17:53:16 [alert] 17131#17131: worker process 680 exited on signal 11 (core dumped) 2015/08/05 17:56:16 [alert] 17131#17131: worker process 32332 exited on signal 11 (core dumped) 2015/08/05 17:59:13 [alert] 17131#17131: worker process 870 exited on signal 11 (core dumped) 2015/08/05 18:02:13 [alert] 17131#17131: worker process 1658 exited on signal 11 (core dumped) 2015/08/05 18:05:13 [alert] 17131#17131: worker process 1865 exited on signal 11 (core dumped) 2015/08/05 18:08:14 [alert] 17131#17131: worker process 2641 exited on signal 11 (core dumped) 2015/08/05 18:20:13 [alert] 17131#17131: worker process 4580 exited on signal 11 (core dumped) Есть два сервера для опытов. Первый: nginx version: nginx/1.6.2 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) TLS SNI support enabled Второй: nginx version: nginx/1.9.3 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) built with OpenSSL 1.0.1e-fips 11 Feb 2013 TLS SNI support enabled У сервера нагрузка до 200 запросов в минуту. Вот два графика: 1. Обычная нагрузка на старом сертификате: https://yadi.sk/i/hL74eSUwiHf2b 2. После смены сертификата: https://yadi.sk/i/BURXJSwqiHf6P Грешил на стабильную ветку, перевел посетителей на второй сервер с mainline-версией. Ситуация аналогичная. Вот график: https://yadi.sk/i/a4VrM7sKiHfNs Падения на графиках - рестрат nginx руками. На первом worker_connections 1024, на втором уже 5096 поставил. Проблема не решается. Проверить опять на старом сертификате не получится - он истёк. Вот текущий stub_status: Active connections: 2436 server accepts handled requests 9513 9513 19672 Reading: 0 Writing: 674 Waiting: 1719 Статистика в Apache совсем детская: Total accesses: 20550 - Total Traffic: 31.6 MB CPU Usage: u283.26 s32.49 cu.88 cs0 - 1.23% CPU load .801 requests/sec - 1292 B/second - 1613 B/request 1 requests currently being processed, 9 idle workers Нагрузка на сервере LA 0.10. Есть push-соединения на обычном http, они не проблемные, их 20-30, проксируются на dklab_realplexor. Если их отключить, ситуация не исправлялась вовсе. Для временного решения проблемы пришлось всех клиентов принудительно перенаправлять на с https на http, но соединения всё-равно висят и копятся. Подобные сертификаты стоят и на других серверах (получены месяц назад), таких проблем нет. Свежий, видимо, выносит мозг. Есть возможность поковырять первый сервер. Подскажите, каким образом можно локализовать проблему? spdy не влияет, включили уже с этой проблемой. Конфиг простой: server { listen 443 spdy; limit_conn addr 20; server_name site.ru www.site.ru; ssl on; ssl_certificate /etc/nginx/ssl_2015/ssl2.crt; ssl_certificate_key /etc/nginx/ssl_2015/ssl2.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'HIGH:!aNULL:!MD5:!kEDH'; ssl_session_timeout 28h; ssl_prefer_server_ciphers on; ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate "/etc/nginx/ssl_2015/ssl2.crt"; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 5s; error_page 500 502 503 504 /503.html; location = /503.html { root /home/site/public_html; } if ( $ipban ) { return 403; } location ~* /static { root /home/site/public_html; expires 30d; access_log off; limit_req zone=one burst=50 nodelay; limit_conn addr 30; } location / { limit_req zone=one burst=20 nodelay; proxy_pass http://127.0.0.1:8080; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-SSL "yes"; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Range ""; proxy_set_header Request-Range ""; client_max_body_size 24m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,260795,260795#msg-260795 From denis на webmaster.spb.ru Wed Aug 5 15:39:02 2015 From: denis на webmaster.spb.ru (denis) Date: Wed, 05 Aug 2015 18:39:02 +0300 Subject: =?UTF-8?B?UmU6INCU0L7QsdCw0LLQu9C10L3QuNC1INC30LDQs9C+0LvQvtCy0LrQsCDQv9C+?= =?UTF-8?B?0YHQu9C1IHVwc3RyZWFt?= In-Reply-To: <55C22A88.6040107@nginx.com> References: <20150729072527.GB18079@Ekaterinas-MacBook-Pro.local> <55C1E920.7010906@webmaster.spb.ru> <25243701.iVPuehh1FW@note> <55C216F5.3080800@webmaster.spb.ru> <55C2198D.9070102@webmaster.spb.ru> <55C219F9.4020705@nginx.com> <55C21BFF.60309@webmaster.spb.ru> <55C22A88.6040107@nginx.com> Message-ID: <55C22E16.2070502@webmaster.spb.ru> 05.08.2015 18:23, Maxim Konovalov пишет: > Вы заблуждаетесь. Этого нет в платной версии. Документация от нее, > кстати, доступна на nginx.org и nginx.com. Это хорошо. > Более того, динамические модули в плане разработки ветки 1.9: > > http://trac.nginx.org/nginx/roadmap Не прошло и 10 лет :) Или прошло? From vbart на nginx.com Wed Aug 5 15:40:26 2015 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 05 Aug 2015 18:40:26 +0300 Subject: worker process exited on signal 11 In-Reply-To: <261ce412383db2d1200bf36b10b770c2.NginxMailingListRussian@forum.nginx.org> References: <261ce412383db2d1200bf36b10b770c2.NginxMailingListRussian@forum.nginx.org> Message-ID: <4930203.BoekCICu93@vbart-workstation> On Wednesday 05 August 2015 11:31:34 gurgen wrote: > Коллеги, > > поставил новый сертификат SSL на nginx от WoSIGN (бесплатный). Предыдущий > стоял StartSSL. > процессы nginx worker стали падать в Seg fault (11) на некоторых запросах, > которых не поймать. > [..] Возможно ваша проблема: http://trac.nginx.org/nginx/ticket/235 -- Валентин Бартенев From nginx-forum на nginx.us Wed Aug 5 15:48:31 2015 From: nginx-forum на nginx.us (gurgen) Date: Wed, 05 Aug 2015 11:48:31 -0400 Subject: worker process exited on signal 11 In-Reply-To: <4930203.BoekCICu93@vbart-workstation> References: <4930203.BoekCICu93@vbart-workstation> Message-ID: OMG! Правильно ли я понял, что вынести ssl_session_cache в http? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,260795,260798#msg-260798 From maxim на nginx.com Wed Aug 5 15:53:56 2015 From: maxim на nginx.com (Maxim Konovalov) Date: Wed, 05 Aug 2015 18:53:56 +0300 Subject: =?UTF-8?B?UmU6INCU0L7QsdCw0LLQu9C10L3QuNC1INC30LDQs9C+0LvQvtCy0LrQsCDQv9C+?= =?UTF-8?B?0YHQu9C1IHVwc3RyZWFt?= In-Reply-To: <55C22E16.2070502@webmaster.spb.ru> References: <20150729072527.GB18079@Ekaterinas-MacBook-Pro.local> <55C1E920.7010906@webmaster.spb.ru> <25243701.iVPuehh1FW@note> <55C216F5.3080800@webmaster.spb.ru> <55C2198D.9070102@webmaster.spb.ru> <55C219F9.4020705@nginx.com> <55C21BFF.60309@webmaster.spb.ru> <55C22A88.6040107@nginx.com> <55C22E16.2070502@webmaster.spb.ru> Message-ID: <55C23194.4090705@nginx.com> On 8/5/15 6:39 PM, denis wrote: > 05.08.2015 18:23, Maxim Konovalov пишет: >> Вы заблуждаетесь. Этого нет в платной версии. Документация от нее, >> кстати, доступна на nginx.org и nginx.com. > Это хорошо. > >> Более того, динамические модули в плане разработки ветки 1.9: >> >> http://trac.nginx.org/nginx/roadmap > Не прошло и 10 лет :) > Или прошло? > Это риторические вопросы, я правильно понял? -- Maxim Konovalov Discover best practices for building & delivering apps at scale. nginx.conf 2015: Sept. 22-24, San Francisco. http://nginx.com/nginxconf From vbart на nginx.com Wed Aug 5 16:10:17 2015 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 05 Aug 2015 19:10:17 +0300 Subject: worker process exited on signal 11 In-Reply-To: References: <4930203.BoekCICu93@vbart-workstation> Message-ID: <1531845.K4OsLut4BJ@vbart-workstation> On Wednesday 05 August 2015 11:48:31 gurgen wrote: > OMG! Правильно ли я понял, что вынести ssl_session_cache в http? > Правильно. И убедиться, что в виртуальных серверах не указано других директив ssl_session_cache с другими настройками. -- Валентин Бартенев From denis на webmaster.spb.ru Wed Aug 5 16:41:26 2015 From: denis на webmaster.spb.ru (denis) Date: Wed, 05 Aug 2015 19:41:26 +0300 Subject: =?UTF-8?B?UmU6INC+0LHRgNCw0LHQvtGC0LrQsCBQT1NUINC30LDQv9GA0L7RgdC+0LI=?= In-Reply-To: <55C1CEB2.6040709@webmaster.spb.ru> References: <55C1CEB2.6040709@webmaster.spb.ru> Message-ID: <55C23CB6.3060307@webmaster.spb.ru> 05.08.2015 11:52, denis пишет: > Нужно обрабатывать имя файла, которое передается в POST и никак иначе. > Пока вижу только 2 варианта (кроме проксирования на внешний скрипт): > луа, который почему-то не собирается штатно в оф. репе, и перл, > который уныл более чем полностью и с уродливой докой. Есть в инете > примеры, но там скриптов на 3 экрана против 5 строк на луа. > Собственно, какие есть еще методы и почему штатно луа не > компилируется? Его даже tengine уже давно штатно включает, а нагрузка > там больше того же рамблера может даже на порядки. По это теме хотелось бы получить комментарии. From vbart на nginx.com Wed Aug 5 19:06:30 2015 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 05 Aug 2015 22:06:30 +0300 Subject: =?UTF-8?B?0J/QvtC00LTQtdGA0LbQutCwINC/0YDQvtGC0L7QutC+0LvQsCBIVFRQLzIg0LIg?= =?UTF-8?B?TkdJTlg=?= Message-ID: <1955083.SLTKLEBQrg@vbart-workstation> Рад сообщить о том, что сегодня мы выложили первую публичную альфа-версию модуля HTTP/2 для NGINX. Сам патч и инструкции для сборки можно взять здесь: - http://nginx.org/patches/http2/ Также в нашем блоге опубликована статья на тему: - https://www.nginx.com/blog/early-alpha-patch-http2/ Модуль в настоящее время активно разрабатывается и предоставлен исключительно в ознакомительных целях. -- Валентин Бартенев From annulen на yandex.ru Wed Aug 5 19:27:40 2015 From: annulen на yandex.ru (Konstantin Tokarev) Date: Wed, 05 Aug 2015 22:27:40 +0300 Subject: =?UTF-8?B?UmU6INCf0L7QtNC00LXRgNC20LrQsCDQv9GA0L7RgtC+0LrQvtC70LAgSFRUUC8y?= =?UTF-8?B?INCyIE5HSU5Y?= In-Reply-To: <1955083.SLTKLEBQrg@vbart-workstation> References: <1955083.SLTKLEBQrg@vbart-workstation> Message-ID: <1724431438802860@web2m.yandex.ru> 05.08.2015, 22:06, "Валентин Бартенев" : > Рад сообщить о том, что сегодня мы выложили первую > публичную альфа-версию модуля HTTP/2 для NGINX. > > Сам патч и инструкции для сборки можно взять здесь: > >  - http://nginx.org/patches/http2/ > > Также в нашем блоге опубликована статья на тему: > >  - https://www.nginx.com/blog/early-alpha-patch-http2/ > > Модуль в настоящее время активно разрабатывается и > предоставлен исключительно в ознакомительных целях. Планируется ли поддержка прямого подключения к HTTP/2 без SSL? -- Regards, Konstantin From vbart на nginx.com Wed Aug 5 19:43:18 2015 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 05 Aug 2015 22:43:18 +0300 Subject: =?UTF-8?B?UmU6INCf0L7QtNC00LXRgNC20LrQsCDQv9GA0L7RgtC+0LrQvtC70LAgSFRUUC8y?= =?UTF-8?B?INCyIE5HSU5Y?= In-Reply-To: <1724431438802860@web2m.yandex.ru> References: <1955083.SLTKLEBQrg@vbart-workstation> <1724431438802860@web2m.yandex.ru> Message-ID: <65403015.5hAmqOnrNh@vbart-workstation> On Wednesday 05 August 2015 22:27:40 Konstantin Tokarev wrote: > > 05.08.2015, 22:06, "Валентин Бартенев" : > > Рад сообщить о том, что сегодня мы выложили первую > > публичную альфа-версию модуля HTTP/2 для NGINX. > > > > Сам патч и инструкции для сборки можно взять здесь: > > > > - http://nginx.org/patches/http2/ > > > > Также в нашем блоге опубликована статья на тему: > > > > - https://www.nginx.com/blog/early-alpha-patch-http2/ > > > > Модуль в настоящее время активно разрабатывается и > > предоставлен исключительно в ознакомительных целях. > > Планируется ли поддержка прямого подключения к HTTP/2 без SSL? > Она есть, мы её для собственных функциональных тестов используем. В браузерах поддержки нет и, насколько мне известно, пока не планируется. Тому есть как минимум две причины: 1. Может не работать если пользователь за прокси; 2. Смысла немного, HTTP/2 - это экономия на хэндшейках, которые для TCP не такие дорогие, как для TCP+TLS. -- Валентин Бартенев From nginx-forum на nginx.us Wed Aug 5 20:00:58 2015 From: nginx-forum на nginx.us (gurgen) Date: Wed, 05 Aug 2015 16:00:58 -0400 Subject: worker process exited on signal 11 In-Reply-To: <1531845.K4OsLut4BJ@vbart-workstation> References: <1531845.K4OsLut4BJ@vbart-workstation> Message-ID: <3c97ef5c4ae10ebfb7c998be397b7236.NginxMailingListRussian@forum.nginx.org> Действительно помогло! За 4 часа полет нормальный. Реквестирую добавление этой фичи в документацию. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,260795,260809#msg-260809 From chipitsine на gmail.com Thu Aug 6 07:32:36 2015 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Thu, 6 Aug 2015 12:32:36 +0500 Subject: =?UTF-8?B?0LrQvtC90LLQtdGA0YLQtdGAINC40LcgaXBnZW9iYXNlIC0tPiBuZ2lueCBnZW8g?= =?UTF-8?B?bWFw?= Message-ID: Добрый день! мопед не мой, просто размещаю объявление. коллега написал конвертер, https://github.com/m-messiah/ipgeobase_importer если есть мысли по развитию - готовы выслушать. мысли интересны в двух разрезах 1) где брать актуальные источники данных (говорят, в ipgeobase всех уволили), хотя базы в каком-то режиме обновляются 2) если сделать аналог ipgeobase с открытыми данными и возможностью править информацию - поедет ли такой проект, если будет уверенность, мы бы такое запилили Илья Шипицин ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на nginx.us Fri Aug 7 00:11:05 2015 From: nginx-forum на nginx.us (S.A.N) Date: Thu, 06 Aug 2015 20:11:05 -0400 Subject: =?UTF-8?B?UmU6INCf0L7QtNC00LXRgNC20LrQsCDQv9GA0L7RgtC+0LrQvtC70LAgSFRUUC8y?= =?UTF-8?B?INCyIE5HSU5Y?= In-Reply-To: <1955083.SLTKLEBQrg@vbart-workstation> References: <1955083.SLTKLEBQrg@vbart-workstation> Message-ID: <895e9130c7e47d352d6efd121f49156a.NginxMailingListRussian@forum.nginx.org> Если бекенд, выдаст заголовок: Link: ; rel=preload; as=script Nginx, отдаст браузеру содержимое файла my.js или только заголовок от бекенда? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,260805,260836#msg-260836 From vbart на nginx.com Fri Aug 7 13:28:45 2015 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Fri, 07 Aug 2015 16:28:45 +0300 Subject: =?UTF-8?B?UmU6INCf0L7QtNC00LXRgNC20LrQsCDQv9GA0L7RgtC+0LrQvtC70LAgSFRUUC8y?= =?UTF-8?B?INCyIE5HSU5Y?= In-Reply-To: <895e9130c7e47d352d6efd121f49156a.NginxMailingListRussian@forum.nginx.org> References: <1955083.SLTKLEBQrg@vbart-workstation> <895e9130c7e47d352d6efd121f49156a.NginxMailingListRussian@forum.nginx.org> Message-ID: <1779527.QsVluFaRN2@vbart-workstation> On Thursday 06 August 2015 20:11:05 S.A.N wrote: > Если бекенд, выдаст заголовок: > Link: ; rel=preload; as=script > > Nginx, отдаст браузеру содержимое файла my.js или только заголовок от > бекенда? > Только заголовок. -- Валентин Бартенев From simplebox66 на gmail.com Fri Aug 7 13:43:30 2015 From: simplebox66 на gmail.com (=?UTF-8?B?0JjQstCw0L0g0JzQuNGI0LjQvQ==?=) Date: Fri, 7 Aug 2015 16:43:30 +0300 Subject: =?UTF-8?B?UmU6INC60LDQuiDRg9C80LXQvdGM0YjQuNGC0Ywg0YDQsNC30LzQtdGAINC60LU=?= =?UTF-8?B?0YjQsCBuZ2lueD8=?= In-Reply-To: References: Message-ID: Выдержка из документации *proxy_cache_min_uses* *число*; "Задаёт *число* запросов, после которого ответ будет закэширован." А как определяется это число? за какой-то промежуток времени или как? Очень краткое описание в доках, кто-то может объяснить подробнее про эту директиву? 3 августа 2015 г., 14:07 пользователь kpoxa написал: > Добрый день. > > Размер кеша задается в настройках nginx и если в кеш будет добавлено > что-то и кеш станет больше, то в течении нескольких секунд nginx удалит из > кеша наиболее довно не использовавшиеся элементы, сомневаюсь, что у вас > постоянно запрашиваются все 1млн страниц, возможно 10% наиболее популярных > в кеше размеров 6гб достаточно, чтобы сохранить наиболее важные страницы. > Возможно стоит пременит min_use чтобы страницы, рапрошенные однократно, в > кеш не попадали и не вымывали из кеша что-то, более важное. > > 31 июля 2015 г., 15:22 пользователь VovansystemS > написал: > > Добрый день, >> >> есть старый, но довольно большой https legacy-сайт на php и у >> владельцев нет ресурсов его переделывать. сайт состоит из нескольких >> миллионов страниц в районе 60 кб каждая (14 кб после gzip на nginx). >> >> основной трафик на сайт - поисковый по низкочастотным запросам и если >> распарсить логи, получается что за сутки загружается порядка сотен >> тысяч уникальных страниц (как поисковыми роботами и пауками, так и >> клиентами) и редко какая страница загружается больше чем 2 раза за >> сутки. >> >> для обеспечения хотя бы минимальной отказоустойчивости, есть идея >> кешировать ответы backend'а, чтобы в случае его падения (задумчивости) >> была возможность отдать хоть что-то через fastcgi_cache_use_stale. но >> размер кеша всех целевых страниц сайта превысит все разумные пределы >> (60кб х 1 000 000 страниц ≈ 58 гб) >> >> каким образом можно "сжимать" кеш nginx, кроме доработки приложения, >> так, чтобы оно сразу отдавало сжатый ответ? >> >> ( здесь я читал: >> http://forum.nginx.org/read.php?21,256725,256739#msg-256739 ) >> >> как один из вариантов вижу использование какой-нибудь файловой >> системы, которая умеет сжимать файлы на лету, но тут много вопросов к >> скорости работы fuse (по крайней мере раньше она работала медленно, >> изменилась ли ситуация?) >> >> в принципе, cloudflare мог бы решить задачу, если купить бизнес план и >> закачать туда свои сертификаты, но интересно рассмотреть вариант с >> nginx, потому как у cloudflare есть ещё косяки с доступностью для >> некоторых клиентов и роботов. >> >> может быть у кого-либо есть похожий опыт? >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > -- > Kpoxa > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Fri Aug 7 17:57:53 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 7 Aug 2015 20:57:53 +0300 Subject: =?UTF-8?B?UmU6INC60LDQuiDRg9C80LXQvdGM0YjQuNGC0Ywg0YDQsNC30LzQtdGAINC60LU=?= =?UTF-8?B?0YjQsCBuZ2lueD8=?= In-Reply-To: References: Message-ID: <20150807175753.GB67578@mdounin.ru> Hello! On Fri, Aug 07, 2015 at 04:43:30PM +0300, Иван Мишин wrote: > Выдержка из документации *proxy_cache_min_uses* *число*; "Задаёт > *число* запросов, > после которого ответ будет закэширован." > А как определяется это число? за какой-то промежуток времени или как? Очень > краткое описание в доках, кто-то может объяснить подробнее про эту > директиву? Число хранится точно так же, как элементы кеша - т.е. удаляется, если к нему не обращались в течение времени inactive, см. документацию про inactive тут: http://nginx.org/r/proxy_cache_path/ru Соответственно, если к ресурсу делается proxy_cache_min_uses запросов, и промежутки между запросами менее inactive, то ресурс будет закеширован. В противном случае - не будет. -- Maxim Dounin http://nginx.org/ From nginx-forum на nginx.us Sat Aug 8 07:54:30 2015 From: nginx-forum на nginx.us (agz) Date: Sat, 08 Aug 2015 03:54:30 -0400 Subject: default server Message-ID: <67e195deb23da38bdd5d2f96243afab3.NginxMailingListRussian@forum.nginx.org> nginx 1.8.0, CentOS 5.x. server { listen 80; server_name ""; access_log logs/access_default.log combined; return 444; } А в лог пишутся ошибки с кодом 400. Почему? На все запросы должен быть один ответ - 444. Ну вот например: GET /scrape.php?info_hash=%D4%5E%A5%C2%EC%03%D0%EE%E1%A3%86%D8%C9%27%E6%2B-%94%989&info_hash=%D3t%8F%07%DA%29%91%BF9%DCh%88%DCBV%B8B%0E%BB%3E HTTP/1.1" 400 166 "-" "-" Posted at Nginx Forum: http://forum.nginx.org/read.php?21,260879,260879#msg-260879 From mdounin на mdounin.ru Sun Aug 9 10:14:02 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Sun, 9 Aug 2015 13:14:02 +0300 Subject: default server In-Reply-To: <67e195deb23da38bdd5d2f96243afab3.NginxMailingListRussian@forum.nginx.org> References: <67e195deb23da38bdd5d2f96243afab3.NginxMailingListRussian@forum.nginx.org> Message-ID: <20150809101402.GI67578@mdounin.ru> Hello! On Sat, Aug 08, 2015 at 03:54:30AM -0400, agz wrote: > nginx 1.8.0, CentOS 5.x. > > server { > listen 80; > server_name ""; > access_log logs/access_default.log combined; > return 444; > } > > А в лог пишутся ошибки с кодом 400. Почему? На все запросы должен быть один > ответ - 444. > Ну вот например: GET > /scrape.php?info_hash=%D4%5E%A5%C2%EC%03%D0%EE%E1%A3%86%D8%C9%27%E6%2B-%94%989&info_hash=%D3t%8F%07%DA%29%91%BF9%DCh%88%DCBV%B8B%0E%BB%3E > HTTP/1.1" 400 166 "-" "-" При получении некорректных запросов nginx возвращает 400 ещё до того, как начнётся какая-либо обработка запроса. Соответственно до "return 444" дело просто не доходит. -- Maxim Dounin http://nginx.org/ From nginx-forum на nginx.us Sun Aug 9 10:20:17 2015 From: nginx-forum на nginx.us (agz) Date: Sun, 09 Aug 2015 06:20:17 -0400 Subject: default server In-Reply-To: <20150809101402.GI67578@mdounin.ru> References: <20150809101402.GI67578@mdounin.ru> Message-ID: <05a4fb57cbef0e61397fbb9d80bbc808.NginxMailingListRussian@forum.nginx.org> Так и думал. Спасибо за ответ! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,260879,260889#msg-260889 From nginx-forum на nginx.us Sun Aug 9 14:14:25 2015 From: nginx-forum на nginx.us (ccrssaa) Date: Sun, 09 Aug 2015 10:14:25 -0400 Subject: =?UTF-8?B?0JrQsNC6INC/0LXRgNC10LTQsNGC0Ywg0LTQsNC90L3Ri9C1INC40Lcg0L7QsdGA?= =?UTF-8?B?0LDRidC10L3QuNGPINC6IHVwc3RyZWFtINCyINC+0YHQvdC+0LLQvdC+0Lkg?= =?UTF-8?B?0LfQsNC/0YDQvtGBPw==?= Message-ID: <1399ae5a6f889463d3adba879c93ce24.NginxMailingListRussian@forum.nginx.org> Здравствуйте В самодельном модуле нужно передать данные из обработчика заголовка ответа от upstream (ngx_http_модуль_process_header) в обработчик обращения к переменной основного запроса (ngx_http_модуль_get_переменная) Пробовал ngx_http_set_ctx(r->main, ctx, ngx_http_модуль_module) в upstream - в основном запросе ngx_http_get_module_ctx(r, ngx_http_модуль_module) все равно оказывается NULL Как правильно сделать общий ctx для запроса и всех подзапросов ? Пока все передается через static переменную Posted at Nginx Forum: http://forum.nginx.org/read.php?21,260890,260890#msg-260890 From nginx-forum на nginx.us Mon Aug 10 07:55:49 2015 From: nginx-forum на nginx.us (termit-200) Date: Mon, 10 Aug 2015 03:55:49 -0400 Subject: =?UTF-8?B?0J3QtSDQt9Cw0L/Rg9GB0LrQsNC10YLRgdGPIFBocE15QWRtaW4=?= Message-ID: <7cc6a57f9d5918313b5bae2779af1ee8.NginxMailingListRussian@forum.nginx.org> Здравствуйте ! Пытаюсь поднять веб сервер Nginx на Freebsd 9.3 Последовательно установлены Mysql5.5, Nginx, PHP 5.4, PhpMyAdmin По факту при запуске в браузере корректно отображается только файл с версией PHP ( ) При попытке открыть страничку с PhpMyAdmin отображается белое окно браузера. В логах следующие ошибки: upstream prematurely closed connection while reading response header from upstream, client: 192.168.14.207, server: pma.site1.ru, request: "GET /phpmyadmin.css.php?nocache=4316762147ltr HTTP/1.1", $ 2015/08/10 09:07:07 [error] 614#0: *60 upstream prematurely closed connection while reading response header from upstream, client: 192.168.14.207, server: pma.site1.ru, request: "GET /js/whitelist.php?lang=ru&db=&token=4436134334e3a35aa$ 2015/08/10 09:07:07 [error] 614#0: *64 upstream prematurely closed connection while reading response header from upstream, client: 192.168.14.207, server: pma.site1.ru, request: "GET /js/get_scripts.js.php?scripts%5B%5D=jquery/jquery-1.$ 2015/08/10 09:07:07 [error] 614#0: *74 upstream prematurely closed connection while reading response header from upstream, client: 192.168.14.207, server: pma.site1.ru, request: "GET /js/messages.php?lang=ru&db=&token=4436134334e3a35aa4$ Конфиг Nginx: user www; worker_processes 1; pid /var/run/nginx.pid; error_log /var/log/nginx-error.log warn; events { worker_connections 1024; use kqueue; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] ' '"$request" $status $bytes_sent ' '"$http_referer" "$http_user_agent" ' '"$gzip_ratio"'; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; server_tokens off; fastcgi_intercept_errors on; client_max_body_size 50m; server { listen 80; server_name www.site1.ru; rewrite ^ http://site1.ru$request_uri? permanent; } # wordpress server { listen 80; server_name site1.ru; root /web/sites/site1.ru/www/; index index.php index.html index.htm; access_log /web/sites/site1.ru/log/access.log main; error_log /web/sites/site1.ru/log/error.log; location / { #try_files $uri $uri/ /index.php?q=$uri&$args; try_files $uri $uri/ /index.php =404; } location ~* ^.+.(js|css|png|jpg|jpeg|gif|ico)$ { access_log off; expires max; } location ~ \.php$ { fastcgi_pass unix:/tmp/php-fpm.sock; fastcgi_index index.php; fastcgi_param DOCUMENT_ROOT /web/sites/site1.ru/www/; fastcgi_param SCRIPT_FILENAME /web/sites/site1.ru/www$fastcgi_script_name; fastcgi_param PATH_TRANSLATED /web/sites/site1.ru/www$fastcgi_script_name; include fastcgi_params; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_intercept_errors on; fastcgi_ignore_client_abort off; fastcgi_connect_timeout 60; fastcgi_send_timeout 180; fastcgi_read_timeout 180; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; } } } Конфиг php-fpm: [global] pid = run/php-fpm.pid [www] user = www group = www listen = /tmp/php-fpm.sock listen.owner = www listen.group = www listen.mode = 0660 pm = dynamic pm.max_children = 10 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 Файл fastcgi_params fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param REQUEST_SCHEME $scheme; fastcgi_param HTTPS $https if_not_empty; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; # PHP only, required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200; Настраивал по этой статье: http://zeroxzed.ru/freebsd-nastroyka-php-fpm-i-nginx/ Сломал уже всю голову - не могу найти проблему. Прошу помощи от гуру. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,260893,260893#msg-260893 From stalker на altlinux.ru Mon Aug 10 08:28:48 2015 From: stalker на altlinux.ru (Anton Gorlov) Date: Mon, 10 Aug 2015 11:28:48 +0300 Subject: =?UTF-8?B?UmU6INCd0LUg0LfQsNC/0YPRgdC60LDQtdGC0YHRjyBQaHBNeUFkbWlu?= In-Reply-To: <7cc6a57f9d5918313b5bae2779af1ee8.NginxMailingListRussian@forum.nginx.org> References: <7cc6a57f9d5918313b5bae2779af1ee8.NginxMailingListRussian@forum.nginx.org> Message-ID: <55C860C0.2040200@altlinux.ru> Смотрите логи php-fpm там будет информация на тему, что ему не нравится From nginx-forum на nginx.us Mon Aug 10 08:50:25 2015 From: nginx-forum на nginx.us (termit-200) Date: Mon, 10 Aug 2015 04:50:25 -0400 Subject: =?UTF-8?B?UmU6INCd0LUg0LfQsNC/0YPRgdC60LDQtdGC0YHRjyBQaHBNeUFkbWlu?= In-Reply-To: <55C860C0.2040200@altlinux.ru> References: <55C860C0.2040200@altlinux.ru> Message-ID: <8c94089023f054dd024de89c9b648d05.NginxMailingListRussian@forum.nginx.org> В логе php-fpm сообщения вот такого вида: [10-Aug-2015 11:42:05] WARNING: [pool www] child 1627 exited on signal 11 (SIGSEGV) after 0.944585 seconds from start [10-Aug-2015 11:42:05] NOTICE: [pool www] child 1629 started [10-Aug-2015 11:42:05] WARNING: [pool www] child 1628 exited on signal 11 (SIGSEGV) after 1.275092 seconds from start [10-Aug-2015 11:42:05] NOTICE: [pool www] child 1631 started [10-Aug-2015 11:42:05] WARNING: [pool www] child 1629 exited on signal 11 (SIGSEGV) after 0.484413 seconds from start [10-Aug-2015 11:42:05] NOTICE: [pool www] child 1632 started Posted at Nginx Forum: http://forum.nginx.org/read.php?21,260893,260896#msg-260896 From denis на webmaster.spb.ru Mon Aug 10 09:52:58 2015 From: denis на webmaster.spb.ru (denis) Date: Mon, 10 Aug 2015 12:52:58 +0300 Subject: =?UTF-8?B?0L3QtdGB0LrQvtC70YzQutC+INGD0YDQvtCy0L3QtdC5IHVwc3RyZWFt?= Message-ID: <55C8747A.7090501@webmaster.spb.ru> Добрый день как сделать такое: первый запрос - всегда на основной апстрим, при таймауте на него же через другой порт, и там неудача - на резерв. Последнее через backup, а как первые два сделать? Второму серверу weight=0? From denis на webmaster.spb.ru Mon Aug 10 10:01:06 2015 From: denis на webmaster.spb.ru (denis) Date: Mon, 10 Aug 2015 13:01:06 +0300 Subject: =?UTF-8?B?UmU6INCa0LDRgdGC0L7QvNC90LDRjyDRgdCx0L7RgNC60LAgTkdJTlgg0L/QvtC0?= =?UTF-8?B?IERlYmlhbiA3?= In-Reply-To: References: Message-ID: <55C87662.3040908@webmaster.spb.ru> 15.07.2015 8:21, Aleksandr Sytar пишет: > > Забыл самое главное - в папке debian в файл changelogs добавить запись > о новой версии > > А почему самое главное? Если собираем чужой пакет, не всё-ли равно? From stalker на altlinux.ru Mon Aug 10 10:03:13 2015 From: stalker на altlinux.ru (Anton Gorlov) Date: Mon, 10 Aug 2015 13:03:13 +0300 Subject: =?UTF-8?B?UmU6INCd0LUg0LfQsNC/0YPRgdC60LDQtdGC0YHRjyBQaHBNeUFkbWlu?= In-Reply-To: <8c94089023f054dd024de89c9b648d05.NginxMailingListRussian@forum.nginx.org> References: <55C860C0.2040200@altlinux.ru> <8c94089023f054dd024de89c9b648d05.NginxMailingListRussian@forum.nginx.org> Message-ID: <55C876E1.2070005@altlinux.ru> У Вас php-fpm падает с ошибкой сегментации Вариантов тут не так много - или криво собран php или в системе dll hell или проблемы с железом. 10.08.2015 11:50, termit-200 пишет: > В логе php-fpm сообщения вот такого вида: > > [10-Aug-2015 11:42:05] WARNING: [pool www] child 1627 exited on signal 11 > (SIGSEGV) after 0.944585 seconds from start From sytar.alex на gmail.com Mon Aug 10 10:07:32 2015 From: sytar.alex на gmail.com (Aleksandr Sytar) Date: Mon, 10 Aug 2015 13:07:32 +0300 Subject: =?UTF-8?B?UmU6INCa0LDRgdGC0L7QvNC90LDRjyDRgdCx0L7RgNC60LAgTkdJTlgg0L/QvtC0?= =?UTF-8?B?IERlYmlhbiA3?= In-Reply-To: <55C87662.3040908@webmaster.spb.ru> References: <55C87662.3040908@webmaster.spb.ru> Message-ID: 10 августа 2015 г., 13:01 пользователь denis написал: > 15.07.2015 8:21, Aleksandr Sytar пишет: > >> >> Забыл самое главное - в папке debian в файл changelogs добавить запись о >> новой версии >> >> >> А почему самое главное? Если собираем чужой пакет, не всё-ли равно? нет, версия будет такая же как в репе и если не поставить пакет на холд apt-get обновит ее > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From denis на webmaster.spb.ru Mon Aug 10 10:12:16 2015 From: denis на webmaster.spb.ru (denis) Date: Mon, 10 Aug 2015 13:12:16 +0300 Subject: =?UTF-8?B?UmU6INCa0LDRgdGC0L7QvNC90LDRjyDRgdCx0L7RgNC60LAgTkdJTlgg0L/QvtC0?= =?UTF-8?B?IERlYmlhbiA3?= In-Reply-To: References: <55C87662.3040908@webmaster.spb.ru> Message-ID: <55C87900.9050704@webmaster.spb.ru> 10.08.2015 13:07, Aleksandr Sytar пишет: > > > 10 августа 2015 г., 13:01 пользователь denis > написал: > > 15.07.2015 8:21, Aleksandr Sytar пишет: > > > Забыл самое главное - в папке debian в файл changelogs > добавить запись о новой версии > > > А почему самое главное? Если собираем чужой пакет, не всё-ли равно? > > > нет, версия будет такая же как в репе и если не поставить пакет на > холд apt-get обновит ее > Так а при чем тут changelog? Может стоит тогда прописать другую версию? Извините если вопросы глупые, я больше по centos... ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From kulmaks на gmail.com Mon Aug 10 13:48:14 2015 From: kulmaks на gmail.com (Maksim Kulik) Date: Mon, 10 Aug 2015 16:48:14 +0300 Subject: =?UTF-8?B?UmU6INCd0LUg0LfQsNC/0YPRgdC60LDQtdGC0YHRjyBQaHBNeUFkbWlu?= In-Reply-To: <8c94089023f054dd024de89c9b648d05.NginxMailingListRussian@forum.nginx.org> References: <55C860C0.2040200@altlinux.ru> <8c94089023f054dd024de89c9b648d05.NginxMailingListRussian@forum.nginx.org> Message-ID: Весьма вероятна проблема с порядком загрузки расширений php (файл extensions.ini). Некоторым расширениям очень важно загружаться пораньше, т.к. следующие используют их функционал. Попробуйте запустить php в консоли - он в таком случае выдаст как минимум несколько варнингов, по которым можно будет предположить что ему не нравится. 2015-08-10 11:50 GMT+03:00 termit-200 : > В логе php-fpm сообщения вот такого вида: > > [10-Aug-2015 11:42:05] WARNING: [pool www] child 1627 exited on signal 11 > (SIGSEGV) after 0.944585 seconds from start > [10-Aug-2015 11:42:05] NOTICE: [pool www] child 1629 started > [10-Aug-2015 11:42:05] WARNING: [pool www] child 1628 exited on signal 11 > (SIGSEGV) after 1.275092 seconds from start > [10-Aug-2015 11:42:05] NOTICE: [pool www] child 1631 started > [10-Aug-2015 11:42:05] WARNING: [pool www] child 1629 exited on signal 11 > (SIGSEGV) after 0.484413 seconds from start > [10-Aug-2015 11:42:05] NOTICE: [pool www] child 1632 started > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,260893,260896#msg-260896 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From scukonick на gmail.com Mon Aug 10 14:41:24 2015 From: scukonick на gmail.com (Alexey Malov) Date: Mon, 10 Aug 2015 09:41:24 -0500 Subject: =?UTF-8?B?UmU6INCd0LUg0LfQsNC/0YPRgdC60LDQtdGC0YHRjyBQaHBNeUFkbWlu?= In-Reply-To: References: <55C860C0.2040200@altlinux.ru> <8c94089023f054dd024de89c9b648d05.NginxMailingListRussian@forum.nginx.org> Message-ID: Попробуйте проанализировать core-dump'ы php-fpm. Как анализировать написано тут по русски, но про апач: http://habrahabr.ru/company/bitrix/blog/153001/ А тут - по-английски, но про php-fpm: https://rtcamp.com/tutorials/php/core-dump-php5-fpm/ 10 августа 2015 г., 8:48 пользователь Maksim Kulik написал: > Весьма вероятна проблема с порядком загрузки расширений php (файл > extensions.ini). Некоторым расширениям очень важно загружаться пораньше, > т.к. следующие используют их функционал. Попробуйте запустить php в консоли > - он в таком случае выдаст как минимум несколько варнингов, по которым > можно будет предположить что ему не нравится. > > 2015-08-10 11:50 GMT+03:00 termit-200 : > >> В логе php-fpm сообщения вот такого вида: >> >> [10-Aug-2015 11:42:05] WARNING: [pool www] child 1627 exited on signal 11 >> (SIGSEGV) after 0.944585 seconds from start >> [10-Aug-2015 11:42:05] NOTICE: [pool www] child 1629 started >> [10-Aug-2015 11:42:05] WARNING: [pool www] child 1628 exited on signal 11 >> (SIGSEGV) after 1.275092 seconds from start >> [10-Aug-2015 11:42:05] NOTICE: [pool www] child 1631 started >> [10-Aug-2015 11:42:05] WARNING: [pool www] child 1629 exited on signal 11 >> (SIGSEGV) after 0.484413 seconds from start >> [10-Aug-2015 11:42:05] NOTICE: [pool www] child 1632 started >> >> Posted at Nginx Forum: >> http://forum.nginx.org/read.php?21,260893,260896#msg-260896 >> >> _______________________________________________ >> 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 > -- Alexey Malov ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From a.vasilishin на kpi.ua Mon Aug 10 19:02:10 2015 From: a.vasilishin на kpi.ua (=?UTF-8?B?0JDQvdC00YDQtdC5INCS0LDRgdC40LvQuNGI0LjQvQ==?=) Date: Mon, 10 Aug 2015 22:02:10 +0300 Subject: segfault at 0 ip 000000000042d9ae sp 00007ffdc4fe6e70 error 4 in nginx[400000+d4000] Message-ID: <55C8F532.10203@kpi.ua> Есть такая проблема, в логах смотрю каждый день по 2 -3 сабжевых ошибки, как следствие график по stub_status постоянно растет вверх и не отображает реальность. Кто виноват и что делать? https://i.gyazo.com/26e93ebd8d7ca1d6b031eae815e5a1be.png root на CSRH005:~# nginx -V nginx version: nginx/1.9.2 built by gcc 4.7.2 (Debian 4.7.2-5) built with OpenSSL 1.0.1e 11 Feb 2013 TLS SNI support enabled configure arguments: --prefix=/etc/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 --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-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_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-threads --with-stream --with-stream_ssl_module --with-file-aio --with-http_spdy_module --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security' --with-ld-opt=-Wl,-z,relro --with-ipv6 --with-debug root на CSRH005:~# grep nginx /var/log/messages Aug 9 15:40:10 CSRH005 kernel: [1099310.166060] nginx[1374]: segfault at 0 ip 000000000042d9ae sp 00007ffdc4fe6e70 error 4 in nginx[400000+d4000] root на CSRH005:~# grep nginx /var/log/messages.1 Aug 3 13:51:46 CSRH005 kernel: [575072.311848] nginx[10451]: segfault at 47a ip 000000000044c10d sp 00007ffdc4fe76e8 error 6 in nginx[400000+d4000] Aug 3 18:44:26 CSRH005 kernel: [592610.630426] nginx[21780]: segfault at 20 ip 000000000042d9fd sp 00007ffdc4fe6ee0 error 6 in nginx[400000+d4000] Aug 3 21:04:20 CSRH005 kernel: [600993.792108] nginx[10442]: segfault at 0 ip (null) sp 00007ffdc4fe76e8 error 14 in nginx[400000+d4000] Aug 4 09:14:29 CSRH005 kernel: [644747.348142] nginx[10449]: segfault at 276c777f ip 00000000276c777f sp 00007ffdc4fe76e8 error 15 Aug 4 09:40:56 CSRH005 kernel: [646332.519798] nginx[10448]: segfault at 0 ip (null) sp 00007ffdc4fe76e8 error 14 in nginx[400000+d4000] Aug 4 11:55:44 CSRH005 kernel: [654409.605814] nginx[10441]: segfault at 561 ip 000000000044c10d sp 00007ffdc4fe76e8 error 6 in nginx[400000+d4000] Aug 4 13:03:06 CSRH005 kernel: [658446.334335] nginx D ffff88207fc327c0 0 10450 10439 0x00000000 Aug 4 16:03:49 CSRH005 kernel: [669275.821734] nginx[26979]: segfault at 47a ip 000000000044c10d sp 00007ffdc4fe7738 error 6 in nginx[400000+d4000] Aug 4 17:32:18 CSRH005 kernel: [674578.263779] nginx[11532] general protection ip:40a01c sp:7ffdc4fe6530 error:0 in nginx[400000+d4000] Aug 4 19:04:00 CSRH005 kernel: [680072.935615] nginx[10450]: segfault at 7f6965636e79 ip 000000000044c11f sp 00007ffdc4fe76e8 error 4 in nginx[400000+d4000] Aug 4 20:47:45 CSRH005 kernel: [686289.909866] nginx[3889]: segfault at 0 ip 000000000042471f sp 00007ffdc4fe7740 error 4 in nginx[400000+d4000] Aug 4 21:22:40 CSRH005 kernel: [688382.137698] nginx[17639]: segfault at 0 ip (null) sp 00007ffdc4fe7738 error 14 in nginx[400000+d4000] Aug 5 00:17:49 CSRH005 kernel: [698878.002868] nginx[9397]: segfault at 0 ip (null) sp 00007ffdc4fe7738 error 14 in nginx[400000+d4000] Aug 5 00:17:49 CSRH005 kernel: [698878.118312] nginx[17658]: segfault at 20 ip 000000000042d9fd sp 00007ffdc4fe6e70 error 6 in nginx[400000+d4000] Aug 5 11:45:16 CSRH005 kernel: [740072.739510] nginx[10444]: segfault at 10001 ip 0000000000424722 sp 00007ffdc4fe76f0 error 6 in nginx[400000+d4000] Aug 6 21:19:16 CSRH005 kernel: [860759.349310] nginx[14272]: segfault at 0 ip (null) sp 00007ffdc4fe7738 error 14 in nginx[400000+d4000] Aug 6 23:33:06 CSRH005 kernel: [868779.230139] nginx[26239]: segfault at 2710324c ip 000000002710324c sp 00007ffdc4fe7738 error 15 Aug 7 00:01:56 CSRH005 kernel: [870506.767838] nginx[25126]: segfault at 19ba30d0 ip 0000000019ba30d0 sp 00007ffdc4fe7738 error 15 Aug 8 00:09:43 CSRH005 kernel: [957263.551059] nginx[8316]: segfault at 47a ip 000000000044c10d sp 00007ffdc4fe7738 error 6 in nginx[400000+d4000] Aug 8 18:03:02 CSRH005 kernel: [1021581.176323] nginx[10446]: segfault at 0 ip (null) sp 00007ffdc4fe76e8 error 14 in nginx[400000+d4000] Aug 9 04:46:44 CSRH005 kernel: [1060153.935352] nginx[10440]: segfault at 479 ip 000000000044c10d sp 00007ffdc4fe76e8 error 6 in nginx[400000+d4000] Aug 9 04:46:48 CSRH005 kernel: [1060157.803550] nginx[21563]: segfault at 0 ip (null) sp 00007ffdc4fe7738 error 14 in nginx[400000+d4000] From denis на webmaster.spb.ru Tue Aug 11 08:38:07 2015 From: denis на webmaster.spb.ru (denis) Date: Tue, 11 Aug 2015 11:38:07 +0300 Subject: =?UTF-8?B?UmU6INC90LXRgdC60L7Qu9GM0LrQviDRg9GA0L7QstC90LXQuSB1cHN0cmVhbQ==?= In-Reply-To: <55C8747A.7090501@webmaster.spb.ru> References: <55C8747A.7090501@webmaster.spb.ru> Message-ID: <55C9B46F.7010700@webmaster.spb.ru> 10.08.2015 12:52, denis пишет: > Добрый день > > как сделать такое: > первый запрос - всегда на основной апстрим, при таймауте на него же > через другой порт, и там неудача - на резерв. Последнее через backup, > а как первые два сделать? Второму серверу weight=0? можно ли сделать try_files @first @second @third =404? From nginx-forum на nginx.us Tue Aug 11 10:41:26 2015 From: nginx-forum на nginx.us (termit-200) Date: Tue, 11 Aug 2015 06:41:26 -0400 Subject: =?UTF-8?B?UmU6INCd0LUg0LfQsNC/0YPRgdC60LDQtdGC0YHRjyBQaHBNeUFkbWlu?= In-Reply-To: <7cc6a57f9d5918313b5bae2779af1ee8.NginxMailingListRussian@forum.nginx.org> References: <7cc6a57f9d5918313b5bae2779af1ee8.NginxMailingListRussian@forum.nginx.org> Message-ID: Разобрался. Дело было в модуле eaccelerator. Если его не подключать все работает. Теперь законный вопрос, что же не так я делаю с ним: zend_extension="/usr/local/lib/php/20100525/eaccelerator.so" ; Размер кеша, в МБ eaccelerator.shm_size="128" ; Путь до каталога файлов кеша eaccelerator.cache_dir="/tmp/eaccelerator" ; Переключатель модуля (1 - вкл и 0 - выкл) eaccelerator.enable="1" ; Переключатель оптимизатора (1 - вкл и 0 - выкл) eaccelerator.optimizer="1" ; Добавляет отладочную информацию в лог (1 - вкл и 0 - выкл) eaccelerator.debug="0" ; Добавляет отладочную информацию в лог (1 - вкл и 0 - выкл) eaccelerator.debug="0" ; Путь до файла лога eaccelerator.log_file = "/var/log/eaccelerator_log" ; Проверять время модификации файлов кеша для перекомпиляции оных (1 - вкл и 0 - выкл) eaccelerator.check_mtime="1" ; Фильтр расширений файлов которых надо кешировать. Например, "*.php *.phtml". eaccelerator.filter="" ; Размер выделяемой памяти, в байтах. Допустимо вводить в формате 10240, 10K, 1M и т.д. При 0 - безлимит eaccelerator.shm_max="0" ; Время жизни кеша, сек eaccelerator.shm_ttl="120" ; Период удаления старых данных из памяти, сек (при 0 не удаляет) eaccelerator.shm_prune_period="0" ; Использовать для кеша только память. При 0 используется диск и память eaccelerator.shm_only="0" ; Переключатель компресии (1 - вкл и 0 - выкл) eaccelerator.compress="1" ; Степень сжатия В логе /var/log/eaccelerator_log пусто Posted at Nginx Forum: http://forum.nginx.org/read.php?21,260893,260922#msg-260922 From nginx-forum на nginx.us Tue Aug 11 11:32:32 2015 From: nginx-forum на nginx.us (termit-200) Date: Tue, 11 Aug 2015 07:32:32 -0400 Subject: =?UTF-8?B?UmU6INCd0LUg0LfQsNC/0YPRgdC60LDQtdGC0YHRjyBQaHBNeUFkbWlu?= In-Reply-To: <7cc6a57f9d5918313b5bae2779af1ee8.NginxMailingListRussian@forum.nginx.org> References: <7cc6a57f9d5918313b5bae2779af1ee8.NginxMailingListRussian@forum.nginx.org> Message-ID: <58005af4c5f6f1eb203fbe3d96063c86.NginxMailingListRussian@forum.nginx.org> Проблему решил, оказалась достаточно популярной: http://forum.nginx.org/read.php?21,217691,217719#msg-217719 Posted at Nginx Forum: http://forum.nginx.org/read.php?21,260893,260923#msg-260923 From mdounin на mdounin.ru Tue Aug 11 12:50:38 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 11 Aug 2015 15:50:38 +0300 Subject: =?UTF-8?B?UmU6INC90LXRgdC60L7Qu9GM0LrQviDRg9GA0L7QstC90LXQuSB1cHN0cmVhbQ==?= In-Reply-To: <55C9B46F.7010700@webmaster.spb.ru> References: <55C8747A.7090501@webmaster.spb.ru> <55C9B46F.7010700@webmaster.spb.ru> Message-ID: <20150811125038.GN67578@mdounin.ru> Hello! On Tue, Aug 11, 2015 at 11:38:07AM +0300, denis wrote: > 10.08.2015 12:52, denis пишет: > >Добрый день > > > >как сделать такое: > >первый запрос - всегда на основной апстрим, при таймауте на него же через > >другой порт, и там неудача - на резерв. Последнее через backup, а как > >первые два сделать? Второму серверу weight=0? > можно ли сделать try_files @first @second @third =404? Можно, но оно будет делать не то, о чём вы подумали. Все аргументы try_files, кроме последнего - это файлы, существование которых будет проверяться на диске. Если нужно, чтобы в случае ошибок от бекенда обработка уходила в другой location, то следует пользоваться директивой error_page, см. http://nginx.org/r/error_page/ru. Там, в частности, есть пример такого вида: location / { error_page 404 = @fallback; } location @fallback { proxy_pass http://backend; } Таким образом можно обеспечить произвольную многоуровневую обработку запроса. Чуть более сложный пример есть в описании модуля memcached, http://nginx.org/ru/docs/http/ngx_http_memcached_module.html: location / { set $memcached_key "$uri?$args"; memcached_pass host:11211; error_page 404 502 504 = @fallback; } location @fallback { proxy_pass http://backend; } В случае, если требуется более одного перенаправления, необходимо также разрешить множественные перенаправления с помощью директивы recursive_error_pages, см. http://nginx.org/r/recursive_error_pages/ru. Ну и не надо забывать, что явно описанная группа серверов сама по себе обеспечивает опрос нужного количества серверов в случае ошибок, см. http://nginx.org/r/proxy_next_upstream/ru. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Aug 11 13:01:51 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 11 Aug 2015 16:01:51 +0300 Subject: segfault at 0 ip 000000000042d9ae sp 00007ffdc4fe6e70 error 4 in nginx[400000+d4000] In-Reply-To: <55C8F532.10203@kpi.ua> References: <55C8F532.10203@kpi.ua> Message-ID: <20150811130151.GO67578@mdounin.ru> Hello! On Mon, Aug 10, 2015 at 10:02:10PM +0300, Андрей Василишин wrote: > Есть такая проблема, в логах смотрю каждый день по 2 -3 сабжевых ошибки, как > следствие график по stub_status постоянно растет вверх и не отображает > реальность. Кто виноват и что делать? Для начала - получить core dump и посмотреть на backtrace, подробнее тут: http://wiki.nginx.org/Debugging#Core_dump -- Maxim Dounin http://nginx.org/ From nginx-forum на nginx.us Tue Aug 11 14:13:11 2015 From: nginx-forum на nginx.us (S.A.N) Date: Tue, 11 Aug 2015 10:13:11 -0400 Subject: =?UTF-8?B?UmU6INCd0LUg0LfQsNC/0YPRgdC60LDQtdGC0YHRjyBQaHBNeUFkbWlu?= In-Reply-To: References: <7cc6a57f9d5918313b5bae2779af1ee8.NginxMailingListRussian@forum.nginx.org> Message-ID: <6ceafefa64c4f6ac79f94feb05b35317.NginxMailingListRussian@forum.nginx.org> > Теперь законный вопрос, что же не так я делаю с ним: > zend_extension="/usr/local/lib/php/20100525/eaccelerator.so" Если есть возможность, обновите версию РНР до 5.6, там из коробки отличный OPCache, eAccelerator ненужен. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,260893,260933#msg-260933 From denis на webmaster.spb.ru Tue Aug 11 15:34:11 2015 From: denis на webmaster.spb.ru (denis) Date: Tue, 11 Aug 2015 18:34:11 +0300 Subject: =?UTF-8?B?UmU6INC90LXRgdC60L7Qu9GM0LrQviDRg9GA0L7QstC90LXQuSB1cHN0cmVhbQ==?= In-Reply-To: <20150811125038.GN67578@mdounin.ru> References: <55C8747A.7090501@webmaster.spb.ru> <55C9B46F.7010700@webmaster.spb.ru> <20150811125038.GN67578@mdounin.ru> Message-ID: <55CA15F3.6030307@webmaster.spb.ru> 11.08.2015 15:50, Maxim Dounin пишет: > Ну и не надо забывать, что явно описанная группа серверов сама по > себе обеспечивает опрос нужного количества серверов в случае > ошибок, см. http://nginx.org/r/proxy_next_upstream/ru. > Увы, оно не обеспечивает 3 уровней проверки. Кстати, upstream тут уже стал под вопросом, поскольку основной метод опроса это uwsgi, второй и запасной - proxy_pass. Так что вероятно надо городить несколько location в любом случае. From postmaster на softsearch.ru Wed Aug 12 06:28:05 2015 From: postmaster на softsearch.ru (=?Windows-1251?B?zOj14OjrIMzu7eD4uOI=?=) Date: Wed, 12 Aug 2015 09:28:05 +0300 Subject: =?UTF-8?B?UmVbMl06INC90LXRgdC60L7Qu9GM0LrQviDRg9GA0L7QstC90LXQuSB1cHN0cmVh?= =?UTF-8?B?bQ==?= In-Reply-To: <20150811125038.GN67578@mdounin.ru> References: <55C8747A.7090501@webmaster.spb.ru> <55C9B46F.7010700@webmaster.spb.ru> <20150811125038.GN67578@mdounin.ru> Message-ID: <26347190.20150812092805@softsearch.ru> Здравствуйте, Maxim. >> >как сделать такое: >> >первый запрос - всегда на основной апстрим, при таймауте на него же через >> >другой порт, и там неудача - на резерв. Последнее через backup, а как >> >первые два сделать? Второму серверу weight=0? >> можно ли сделать try_files @first @second @third =404? > Можно, но оно будет делать не то, о чём вы подумали. Все > аргументы try_files, кроме последнего - это файлы, существование > которых будет проверяться на диске. > Если нужно, чтобы в случае ошибок от бекенда обработка уходила в > другой location, то следует пользоваться директивой error_page, > см. http://nginx.org/r/error_page/ru. Там, в частности, есть > пример такого вида: > location / { > error_page 404 = @fallback; > } > location @fallback { > proxy_pass http://backend; > } > Таким образом можно обеспечить произвольную многоуровневую > обработку запроса. Чуть более сложный пример есть в описании > модуля memcached, > http://nginx.org/ru/docs/http/ngx_http_memcached_module.html: > location / { > set $memcached_key "$uri?$args"; > memcached_pass host:11211; > error_page 404 502 504 = @fallback; > } > location @fallback { > proxy_pass http://backend; > } > В случае, если требуется более одного перенаправления, необходимо > также разрешить множественные перенаправления с помощью директивы > recursive_error_pages, см. > http://nginx.org/r/recursive_error_pages/ru. > Ну и не надо забывать, что явно описанная группа серверов сама по > себе обеспечивает опрос нужного количества серверов в случае > ошибок, см. http://nginx.org/r/proxy_next_upstream/ru. В данном случае было бы логично ввести некий новый уровень абстракции, который описывал бы поведение в случае ошибок. Сейчас с одной стороны в упрощённой форме оно есть в апстриме, с другой стороны оно делается через именованные локейшны (которые размывают исходную идею с обычным локейшнами), увеличивают размер конфига и/или ухудшают его наглядность. Не знаю, как часто это нужно юзерам nginx-а, если часто, то можно было бы подумать про группы апстримов, состоящие из апстримов и описаний поведения переключения с одного апстрима на другой. -- С уважением, Михаил mailto:postmaster на softsearch.ru From nginx-forum на nginx.us Wed Aug 12 07:52:00 2015 From: nginx-forum на nginx.us (cilrill) Date: Wed, 12 Aug 2015 03:52:00 -0400 Subject: =?UTF-8?B?bG9jYXRpb24g0LTQu9GPINGD0L3QuNC60LDQu9GM0L3QvtCz0L4gdXJp?= Message-ID: Добрый день. есть nginx/1.4.4 из дебианского репозитория. отдается статика location ~* \.(css|zip|tgz|gz|rar|bz2|xls|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|docx|xlsx|js)$ { root /home/site/; } возникла нужда отдавать один из js файлов отдавать через прокси uri для файла /js/data/city_base.js все остальные js из /js/data/ нужно продолжить отдавать с файловой системы. написал нехитрый локейшен location /js/data/city_base.js { include /etc/nginx/am_proxy.conf; } location ~* \.(css|zip|tgz|gz|rar|bz2|xls|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|docx|xlsx|js)$ { root /home/site; } и /js/data/city_base.js продложает отдавать с файловой системы, а не как я надеялся ) почему абсолютный путь не имеет приоритета ... или я чего то недопонимаю и надо делать по другому как то? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,260948,260948#msg-260948 From vovansystems на gmail.com Wed Aug 12 07:59:01 2015 From: vovansystems на gmail.com (VovansystemS) Date: Wed, 12 Aug 2015 10:59:01 +0300 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINC00LvRjyDRg9C90LjQutCw0LvRjNC90L7Qs9C+IHVyaQ==?= In-Reply-To: References: Message-ID: Добрый день, попробуйте так: location = /js/data/city_base.js { include /etc/nginx/am_proxy.conf; } подробнее: http://nginx.org/ru/docs/http/request_processing.html From mva на mva.name Wed Aug 12 08:19:10 2015 From: mva на mva.name (Vadim A. Misbakh-Soloviov) Date: Wed, 12 Aug 2015 14:19:10 +0600 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINC00LvRjyDRg9C90LjQutCw0LvRjNC90L7Qs9C+IHVyaQ==?= In-Reply-To: References: Message-ID: <13205644.XjLYVB7o2B@note> > почему абсолютный путь не имеет приоритета Потому что приоритет имеет не "путь", а "качество" локейшна. Если я правильно помню, то: "Начинается с" ( location /path {} ) < регексп ( location ~* (.*) {} ) < полное совпадение ( location = /path {} ). > надо делать по другому как то? Да, чуть выше уже объяснили :) -- Best regards, mva ----------- следущая часть ----------- Вложение не в текстовом формате было извлечено… Имя: signature.asc Тип: application/pgp-signature Размер: 819 байтов Описание: This is a digitally signed message part. URL: From nginx-forum на nginx.us Wed Aug 12 08:47:15 2015 From: nginx-forum на nginx.us (cilrill) Date: Wed, 12 Aug 2015 04:47:15 -0400 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINC00LvRjyDRg9C90LjQutCw0LvRjNC90L7Qs9C+IHVyaQ==?= In-Reply-To: References: Message-ID: спасибо, работает. правильно ли я понял что `=` обуславливает явное попадание под регулярку? "Затем nginx проверяет location’ы, заданные регулярными выражениями, в порядке их следования в конфигурационном файле. При первом же совпадении поиск прекращается и nginx использует совпавший location." Posted at Nginx Forum: http://forum.nginx.org/read.php?21,260948,260952#msg-260952 From nginx-forum на nginx.us Wed Aug 12 08:48:15 2015 From: nginx-forum на nginx.us (cilrill) Date: Wed, 12 Aug 2015 04:48:15 -0400 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINC00LvRjyDRg9C90LjQutCw0LvRjNC90L7Qs9C+IHVyaQ==?= In-Reply-To: <13205644.XjLYVB7o2B@note> References: <13205644.XjLYVB7o2B@note> Message-ID: <054f5440cefcf1dc8cbf7edeb354bb7b.NginxMailingListRussian@forum.nginx.org> спасибо за подробности! очень помогло в понимании ) Posted at Nginx Forum: http://forum.nginx.org/read.php?21,260948,260953#msg-260953 From a.vasilishin на kpi.ua Wed Aug 12 10:34:38 2015 From: a.vasilishin на kpi.ua (=?UTF-8?B?0JDQvdC00YDQtdC5INCS0LDRgdC40LvQuNGI0LjQvQ==?=) Date: Wed, 12 Aug 2015 13:34:38 +0300 Subject: segfault at 0 ip 000000000042d9ae sp 00007ffdc4fe6e70 error 4 in nginx[400000+d4000] In-Reply-To: <20150811130151.GO67578@mdounin.ru> References: <55C8F532.10203@kpi.ua> <20150811130151.GO67578@mdounin.ru> Message-ID: <55CB213E.2060804@kpi.ua> 11.08.2015 16:01, Maxim Dounin пишет: > Hello! > > On Mon, Aug 10, 2015 at 10:02:10PM +0300, Андрей Василишин wrote: > >> Есть такая проблема, в логах смотрю каждый день по 2 -3 сабжевых ошибки, как >> следствие график по stub_status постоянно растет вверх и не отображает >> реальность. Кто виноват и что делать? > > Для начала - получить core dump и посмотреть на backtrace, > подробнее тут: > > http://wiki.nginx.org/Debugging#Core_dump > root на CSRH005:~# gdb /usr/sbin/nginx /var/www/s13.igru-film.net/core GNU gdb (GDB) 7.4.1-debian Copyright (C) 2012 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 "x86_64-linux-gnu". For bug reporting instructions, please see: ... Reading symbols from /usr/sbin/nginx...Reading symbols from /usr/lib/debug/usr/sbin/nginx...done. done. [New LWP 32226] warning: Can't read pathname for load map: Ошибка ввода/вывода. [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `nginx: worker process '. Program terminated with signal 11, Segmentation fault. #0 0x000000000044c11f in ngx_http_copy_aio_event_handler (ev=0x3e68bb8) at src/http/ngx_http_copy_filter_module.c:198 198 src/http/ngx_http_copy_filter_module.c: Нет такого файла или каталога. (gdb) backtrace full #0 0x000000000044c11f in ngx_http_copy_aio_event_handler (ev=0x3e68bb8) at src/http/ngx_http_copy_filter_module.c:198 aio = 0x3e68b50 r = 0x3052910 #1 0x0000000000424743 in ngx_event_process_posted (cycle=cycle на entry=0x14c9c40, posted=0x6ec170) at src/event/ngx_event_posted.c:33 q = 0x3e68c08 ev = 0x3e68bb8 #2 0x00000000004241e1 in ngx_process_events_and_timers (cycle=cycle на entry=0x14c9c40) at src/event/ngx_event.c:259 flags = timer = delta = #3 0x000000000042b29f in ngx_worker_process_cycle (cycle=cycle на entry=0x14c9c40, data=data на entry=0x9) at src/os/unix/ngx_process_cycle.c:769 worker = 9 i = c = #4 0x0000000000429cc7 in ngx_spawn_process (cycle=cycle на entry=0x14c9c40, proc=proc на entry=0x42b1e0 , data=data на entry=0x9, name=name на entry=0x4ae4f1 "worker process", respawn=respawn на entry=-4) at src/os/unix/ngx_process.c:198 on = 1 pid = 0 s = #5 0x000000000042b554 in ngx_start_worker_processes (cycle=cycle на entry=0x14c9c40, n=12, type=type на entry=-4) at src/os/unix/ngx_process_cycle.c:358 i = ch = {command = 1, pid = 32225, slot = 20, fd = 54} #6 0x000000000042c45c in ngx_master_process_cycle (cycle=0x14c9c40, cycle на entry=0x13ee570) at src/os/unix/ngx_process_cycle.c:243 title = p = size = i = n = sigio = 0 set = {__val = {0 }} itv = {it_interval = {tv_sec = 0, tv_usec = 0}, it_value = {tv_sec = 0, tv_usec = 0}} live = delay = 0 ls = ccf = 0x14ca3c0 #7 0x0000000000408801 in main (argc=, argv=) at src/core/nginx.c:415 b = log = 0x6e8ea0 i = cycle = 0x13ee570 init_cycle = {conf_ctx = 0x0, pool = 0x13ede70, log = 0x6e8ea0, new_log = {log_level = 0, file = 0x0, connection = 0, disk_full_time = 0, handler = 0, data = 0x0, writer = 0, wdata = 0x0, action = 0x0, next = 0x0}, log_use_stderr = 0, files = 0x0, free_connections = 0x0, free_connection_n = 0, reusable_connections_queue = {prev = 0x0, next = 0x0}, listening = { elts = 0x0, nelts = 0, size = 0, nalloc = 0, pool = 0x0}, paths = {elts = 0x0, nelts = 0, size = 0, nalloc = 0, pool = 0x0}, config_dump = {elts = 0x0, nelts = 0, size = 0, nalloc = 0, pool = 0x0}, open_files = {last = 0x0, part = {elts = 0x0, nelts = 0, next = 0x0}, size = 0, nalloc = 0, pool = 0x0}, shared_memory = {last = 0x0, part = {elts = 0x0, nelts = 0, next = 0x0}, size = 0, nalloc = 0, pool = 0x0}, connection_n = 0, files_n = 0, connections = 0x0, read_events = 0x0, write_events = 0x0, old_cycle = 0x0, conf_file = { len = 21, data = 0x7ffdc4fe9dcb "ss"}, conf_param = {len = 0, data = 0x0}, conf_prefix = {len = 11, data = 0x7ffdc4fe9dcb "ss"}, prefix = {len = 11, data = 0x4aa3e2 "/etc/nginx/"}, lock_file = {len = 0, data = 0x0}, hostname = {len = 0, data = 0x0}} cd = ccf = (gdb) quit From mdounin на mdounin.ru Wed Aug 12 12:32:15 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 12 Aug 2015 15:32:15 +0300 Subject: segfault at 0 ip 000000000042d9ae sp 00007ffdc4fe6e70 error 4 in nginx[400000+d4000] In-Reply-To: <55CB213E.2060804@kpi.ua> References: <55C8F532.10203@kpi.ua> <20150811130151.GO67578@mdounin.ru> <55CB213E.2060804@kpi.ua> Message-ID: <20150812123215.GX67578@mdounin.ru> Hello! On Wed, Aug 12, 2015 at 01:34:38PM +0300, Андрей Василишин wrote: > 11.08.2015 16:01, Maxim Dounin пишет: > >Hello! > > > >On Mon, Aug 10, 2015 at 10:02:10PM +0300, Андрей Василишин wrote: > > > >>Есть такая проблема, в логах смотрю каждый день по 2 -3 сабжевых ошибки, как > >>следствие график по stub_status постоянно растет вверх и не отображает > >>реальность. Кто виноват и что делать? > > > >Для начала - получить core dump и посмотреть на backtrace, > >подробнее тут: > > > >http://wiki.nginx.org/Debugging#Core_dump > > > > > > root на CSRH005:~# gdb /usr/sbin/nginx /var/www/s13.igru-film.net/core > GNU gdb (GDB) 7.4.1-debian > Copyright (C) 2012 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 "x86_64-linux-gnu". > For bug reporting instructions, please see: > ... > Reading symbols from /usr/sbin/nginx...Reading symbols from > /usr/lib/debug/usr/sbin/nginx...done. > done. > [New LWP 32226] > > warning: Can't read pathname for load map: Ошибка ввода/вывода. > [Thread debugging using libthread_db enabled] > Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". > Core was generated by `nginx: worker process '. > Program terminated with signal 11, Segmentation fault. > #0 0x000000000044c11f in ngx_http_copy_aio_event_handler (ev=0x3e68bb8) at > src/http/ngx_http_copy_filter_module.c:198 > 198 src/http/ngx_http_copy_filter_module.c: Нет такого файла или > каталога. > (gdb) backtrace full > #0 0x000000000044c11f in ngx_http_copy_aio_event_handler (ev=0x3e68bb8) at > src/http/ngx_http_copy_filter_module.c:198 > aio = 0x3e68b50 > r = 0x3052910 Ок, т.е. где-то в обработке aio. Из gdb также интересно было бы получить результат следующих команд: p *aio p *r p *r->connection p *r->connection->write Кроме того, было бы полезно увидеть конфиг, и, видимо, также будет нужен debug log. -- Maxim Dounin http://nginx.org/ From swood на fotofor.biz Wed Aug 12 18:45:10 2015 From: swood на fotofor.biz (Anton Kiryushkin) Date: Wed, 12 Aug 2015 21:45:10 +0300 Subject: =?UTF-8?B?bmdpbngg0Lgg0L/QvtGC0YDQtdCx0LvQtdC90LjQtSDQv9Cw0LzRj9GC0Lg=?= Message-ID: Здравствуйте. Недавно заметили, что nginx в режиме проксирования (то есть у него на сервере нет файлов, которые он бы мог отдать сам с диска, например) постоянно потребляет память Можете рассказать, на что именно он в этом случае может ее потреблять? По оценкам, примерно, это гигабайт 50 в час. Сам nginx собран с дополнительными модулями. Но выключить их даже на какое-то время не представляется возможным. На сервере же переодически происходит OOM-killer и таким образом память высвобождается до следующего заполнения. На сам сервер сейчас идет совсем не большая нагрузка, порядка 2Гбит. -- Best regards, Anton Kiryushkin -------------- next part -------------- An HTML attachment was scrubbed... URL: From mdounin на mdounin.ru Wed Aug 12 19:39:52 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 12 Aug 2015 22:39:52 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC4INC/0L7RgtGA0LXQsdC70LXQvdC40LUg0L/QsNC80Y/RgtC4?= In-Reply-To: References: Message-ID: <20150812193952.GD37350@mdounin.ru> Hello! On Wed, Aug 12, 2015 at 09:45:10PM +0300, Anton Kiryushkin wrote: > Здравствуйте. > > Недавно заметили, что nginx в режиме проксирования (то есть у него на > сервере нет файлов, которые он бы мог отдать сам с диска, например) > постоянно потребляет память Можете рассказать, на что именно он в этом > случае может ее потреблять? > > По оценкам, примерно, это гигабайт 50 в час. > > Сам nginx собран с дополнительными модулями. Но выключить их даже на > какое-то время не представляется возможным. За последние несколько месяцев я видел 2 жалобы про потребление памяти, в обоих случаях nginx оказывался собран с ModSecurity. Если это аналогичный случай, то тут можно только процитировать старый анекдот: "Не делайте так". -- Maxim Dounin http://nginx.org/ From swood на fotofor.biz Wed Aug 12 22:48:02 2015 From: swood на fotofor.biz (Anton Kiryushkin) Date: Thu, 13 Aug 2015 01:48:02 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC4INC/0L7RgtGA0LXQsdC70LXQvdC40LUg0L/QsNC80Y/RgtC4?= In-Reply-To: <20150812193952.GD37350@mdounin.ru> References: <20150812193952.GD37350@mdounin.ru> Message-ID: Да, не совсем мой случай. Я начал смотреть, чем же "молодой" процесс отличается от того, который "съел" 10Гб оперативки. Например, вот старый: /proc/21263/fd# ls -al | wc -l 78305 А вот молодой, который на момент подсчета съел около 3Гб: /proc/12578/fd# ls -al | wc -l 16902 А сам процесс сообщает о себе следующее: VmPeak: 11057228 kB VmSize: 11057228 kB VmLck: 0 kB VmPin: 0 kB VmHWM: 10856376 kB VmRSS: 10856376 kB VmData: 9972480 kB VmStk: 1408 kB VmExe: 4008 kB VmLib: 1864 kB VmPTE: 21520 kB VmSwap: 0 kB Threads: 1 Не очень понятно, куда тут можно копать. 12 августа 2015 г., 22:39 пользователь Maxim Dounin написал: > Hello! > > On Wed, Aug 12, 2015 at 09:45:10PM +0300, Anton Kiryushkin wrote: > > > Здравствуйте. > > > > Недавно заметили, что nginx в режиме проксирования (то есть у него на > > сервере нет файлов, которые он бы мог отдать сам с диска, например) > > постоянно потребляет память Можете рассказать, на что именно он в этом > > случае может ее потреблять? > > > > По оценкам, примерно, это гигабайт 50 в час. > > > > Сам nginx собран с дополнительными модулями. Но выключить их даже на > > какое-то время не представляется возможным. > > За последние несколько месяцев я видел 2 жалобы про потребление > памяти, в обоих случаях nginx оказывался собран с ModSecurity. > Если это аналогичный случай, то тут можно только процитировать > старый анекдот: "Не делайте так". > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin -------------- next part -------------- An HTML attachment was scrubbed... URL: From mdounin на mdounin.ru Thu Aug 13 11:30:31 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 13 Aug 2015 14:30:31 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC4INC/0L7RgtGA0LXQsdC70LXQvdC40LUg0L/QsNC80Y/RgtC4?= In-Reply-To: References: <20150812193952.GD37350@mdounin.ru> Message-ID: <20150813113031.GE37350@mdounin.ru> Hello! On Thu, Aug 13, 2015 at 01:48:02AM +0300, Anton Kiryushkin wrote: > Да, не совсем мой случай. > > Я начал смотреть, чем же "молодой" процесс отличается от того, который > "съел" 10Гб оперативки. Например, вот старый: > > /proc/21263/fd# ls -al | wc -l > 78305 > > А вот молодой, который на момент подсчета съел около 3Гб: > /proc/12578/fd# ls -al | wc -l > 16902 [...] > Не очень понятно, куда тут можно копать. Для начала - копать в "nginx -V" и внимательное изучение всех сторонних модулей. Впрочем, если количество открытых файловых дескрипторов соответствует реальному количеству соединений, то проблема может быть банально в слишком больших буферах в конфиге. -- Maxim Dounin http://nginx.org/ From kpoxa на kpoxa.net Thu Aug 13 15:41:44 2015 From: kpoxa на kpoxa.net (kpoxa) Date: Thu, 13 Aug 2015 18:41:44 +0300 Subject: =?UTF-8?B?0JjQvdC+0LPQtNCwINC60LXRiCDRgNCw0YHRgtC10YIg0YHQstC10YDRhSDQu9C4?= =?UTF-8?B?0LzQuNGC0LA=?= Message-ID: Добрый день. Есть сервер с 2 SSD под кеш Filesystem Size Used Avail Use% Mounted on /dev/sdb1 210G 167G 44G 80% /ssd2 /dev/sda3 200G 157G 44G 79% /ssd и следующий конфиг: proxy_cache_path /ssd levels=1:2 keys_zone=ssd1:2000m max_size=160000m inactive=7d loader_files=1000 use_temp_path=off; proxy_cache_path /ssd2 levels=1:2 keys_zone=ssd2:2000m max_size=170000m inactive=7d loader_files=1000 use_temp_path=off; split_clients $uri$is_args$args $disk { 56.3% 2; * 1; } server { ... location / { proxy_cache ssd$disk; } } Периодически кеш разрастается выше лимита, пока не занимает весь диск. При рестарте nginx место очищается до максимально разрешенного nginx -V nginx version: nginx/1.9.3 built by gcc 4.9.2 (Debian 4.9.2-10) built with OpenSSL 1.0.2d 9 Jul 2015 TLS SNI support enabled configure arguments: --prefix=/etc/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 --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-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_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-threads --with-stream --with-stream_ssl_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_spdy_module --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security' --with-ld-opt=-Wl,-z,relro --with-ipv6 --with-http_image_filter_module --with-openssl=/usr/src/openssl-1.0.2d -- Рустам -------------- next part -------------- An HTML attachment was scrubbed... URL: From swood на fotofor.biz Thu Aug 13 17:12:27 2015 From: swood на fotofor.biz (Anton Kiryushkin) Date: Thu, 13 Aug 2015 20:12:27 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC4INC/0L7RgtGA0LXQsdC70LXQvdC40LUg0L/QsNC80Y/RgtC4?= In-Reply-To: <20150813113031.GE37350@mdounin.ru> References: <20150812193952.GD37350@mdounin.ru> <20150813113031.GE37350@mdounin.ru> Message-ID: Верно ли я понимаю, что память воркерами все равно постепенно должна потребляться. И в моих силах только не дать этой памяти расти чрезмерно быстро? Или же я чего-то не понимаю? 13 августа 2015 г., 14:30 пользователь Maxim Dounin написал: > Hello! > > On Thu, Aug 13, 2015 at 01:48:02AM +0300, Anton Kiryushkin wrote: > > > Да, не совсем мой случай. > > > > Я начал смотреть, чем же "молодой" процесс отличается от того, который > > "съел" 10Гб оперативки. Например, вот старый: > > > > /proc/21263/fd# ls -al | wc -l > > 78305 > > > > А вот молодой, который на момент подсчета съел около 3Гб: > > /proc/12578/fd# ls -al | wc -l > > 16902 > > [...] > > > Не очень понятно, куда тут можно копать. > > Для начала - копать в "nginx -V" и внимательное изучение всех > сторонних модулей. > > Впрочем, если количество открытых файловых дескрипторов > соответствует реальному количеству соединений, то проблема может > быть банально в слишком больших буферах в конфиге. > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Best regards, Anton Kiryushkin -------------- next part -------------- An HTML attachment was scrubbed... URL: From mdounin на mdounin.ru Thu Aug 13 18:19:20 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 13 Aug 2015 21:19:20 +0300 Subject: =?UTF-8?B?UmU6INCY0L3QvtCz0LTQsCDQutC10Ygg0YDQsNGB0YLQtdGCINGB0LLQtdGA0YUg?= =?UTF-8?B?0LvQuNC80LjRgtCw?= In-Reply-To: References: Message-ID: <20150813181920.GN37350@mdounin.ru> Hello! On Thu, Aug 13, 2015 at 06:41:44PM +0300, kpoxa wrote: > Добрый день. > > Есть сервер с 2 SSD под кеш > > Filesystem Size Used Avail Use% Mounted on > /dev/sdb1 210G 167G 44G 80% /ssd2 > /dev/sda3 200G 157G 44G 79% /ssd > > и следующий конфиг: > > proxy_cache_path /ssd levels=1:2 keys_zone=ssd1:2000m > max_size=160000m inactive=7d loader_files=1000 use_temp_path=off; > proxy_cache_path /ssd2 levels=1:2 keys_zone=ssd2:2000m > max_size=170000m inactive=7d loader_files=1000 use_temp_path=off; > split_clients $uri$is_args$args $disk { > 56.3% 2; > * 1; > } > > server { > ... > location / { > proxy_cache ssd$disk; > > } > } > > Периодически кеш разрастается выше лимита, пока не занимает весь диск. > При рестарте nginx место очищается до максимально разрешенного Что при этом в логах? Падения рабочих процессов, администраторы с шаловливыми руками и правом отсылки сигналов nginx'у? Проще всего на такое наступить, если рабочий процесс упал и/или был принудительно завершён, и не смог разблокировать элементы кеша. Ну и я просто оставлю эти ссылки тут, на всякий случай: http://mailman.nginx.org/pipermail/nginx-ru/2015-May/055936.html http://mailman.nginx.org/pipermail/nginx-ru/2015-May/055937.html -- Maxim Dounin http://nginx.org/ From nginx-forum на nginx.us Fri Aug 14 02:50:10 2015 From: nginx-forum на nginx.us (Golodnyi) Date: Thu, 13 Aug 2015 22:50:10 -0400 Subject: =?UTF-8?B?0JLRgdC10LPQtNCwIDIwMC3Ri9C5INC60L7QtA==?= Message-ID: <8745551be6de8265bb9fd19cc6be7777.NginxMailingListRussian@forum.nginx.org> Добрый день, хочу защитить сайты от упавшего API, суть защиты такова, если apache возвращает код, отличный от 200 или 302, тогда надо чтоб nginx ответил 200-ым кодом и пустой страницей, подскажите как это реализовать в конфиге хоста? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,260994,260994#msg-260994 From sytar.alex на gmail.com Fri Aug 14 04:59:58 2015 From: sytar.alex на gmail.com (Aleksandr Sytar) Date: Fri, 14 Aug 2015 07:59:58 +0300 Subject: =?UTF-8?B?UmU6INCS0YHQtdCz0LTQsCAyMDAt0YvQuSDQutC+0LQ=?= In-Reply-To: <8745551be6de8265bb9fd19cc6be7777.NginxMailingListRussian@forum.nginx.org> References: <8745551be6de8265bb9fd19cc6be7777.NginxMailingListRussian@forum.nginx.org> Message-ID: 14 августа 2015 г., 5:50 пользователь Golodnyi написал: > Добрый день, хочу защитить сайты от упавшего API, суть защиты такова, если > apache возвращает код, отличный от 200 или 302, тогда надо чтоб nginx > ответил 200-ым кодом и пустой страницей, подскажите как это реализовать в > конфиге хоста? > > Если оставить в стороне этическую сторону вопроса, то как-то так: error_page 500 501 502 503 504 = @foo location @foo { return "" } http://nginx.org/ru/docs/http/ngx_http_core_module.html#error_page ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From sytar.alex на gmail.com Fri Aug 14 05:01:12 2015 From: sytar.alex на gmail.com (Aleksandr Sytar) Date: Fri, 14 Aug 2015 08:01:12 +0300 Subject: =?UTF-8?B?UmU6INCS0YHQtdCz0LTQsCAyMDAt0YvQuSDQutC+0LQ=?= In-Reply-To: References: <8745551be6de8265bb9fd19cc6be7777.NginxMailingListRussian@forum.nginx.org> Message-ID: 14 августа 2015 г., 7:59 пользователь Aleksandr Sytar написал: > > > 14 августа 2015 г., 5:50 пользователь Golodnyi > написал: > >> Добрый день, хочу защитить сайты от упавшего API, суть защиты такова, если >> apache возвращает код, отличный от 200 или 302, тогда надо чтоб nginx >> ответил 200-ым кодом и пустой страницей, подскажите как это реализовать в >> конфиге хоста? >> >> > Если оставить в стороне этическую сторону вопроса, то как-то так: > > error_page 500 501 502 503 504 = @foo > > location @foo { > return 200 "" > } > > http://nginx.org/ru/docs/http/ngx_http_core_module.html#error_page > error_page 500 501 502 503 504 = @foo location @foo { return 200 "" } http://nginx.org/ru/docs/http/ngx_http_rewrite_module.html#return ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From kpoxa на kpoxa.net Fri Aug 14 11:28:45 2015 From: kpoxa на kpoxa.net (kpoxa) Date: Fri, 14 Aug 2015 14:28:45 +0300 Subject: =?UTF-8?B?UmU6INCY0L3QvtCz0LTQsCDQutC10Ygg0YDQsNGB0YLQtdGCINGB0LLQtdGA0YUg?= =?UTF-8?B?0LvQuNC80LjRgtCw?= In-Reply-To: <20150813181920.GN37350@mdounin.ru> References: <20150813181920.GN37350@mdounin.ru> Message-ID: Добрый день. Просто так никто никаких сигналов не отправлял. Судя по логам процессы не умирали. На сервере debian, обновление конфига делается через -HUP мастер процессу (это в инит скрипте reload делает). И раз в сутки ротация логов с kill -USR1 `cat /var/run/nginx.pid` Что можно для диагностики сделать в случае если замечу, что кеш переполняется? 13 августа 2015 г., 21:19 пользователь Maxim Dounin написал: > Hello! > > On Thu, Aug 13, 2015 at 06:41:44PM +0300, kpoxa wrote: > > > Добрый день. > > > > Есть сервер с 2 SSD под кеш > > > > Filesystem Size Used Avail Use% Mounted on > > /dev/sdb1 210G 167G 44G 80% /ssd2 > > /dev/sda3 200G 157G 44G 79% /ssd > > > > и следующий конфиг: > > > > proxy_cache_path /ssd levels=1:2 keys_zone=ssd1:2000m > > max_size=160000m inactive=7d loader_files=1000 use_temp_path=off; > > proxy_cache_path /ssd2 levels=1:2 keys_zone=ssd2:2000m > > max_size=170000m inactive=7d loader_files=1000 use_temp_path=off; > > split_clients $uri$is_args$args $disk { > > 56.3% 2; > > * 1; > > } > > > > server { > > ... > > location / { > > proxy_cache ssd$disk; > > > > } > > } > > > > Периодически кеш разрастается выше лимита, пока не занимает весь диск. > > При рестарте nginx место очищается до максимально разрешенного > > Что при этом в логах? Падения рабочих процессов, администраторы с > шаловливыми руками и правом отсылки сигналов nginx'у? Проще всего > на такое наступить, если рабочий процесс упал и/или был > принудительно завершён, и не смог разблокировать элементы кеша. > > Ну и я просто оставлю эти ссылки тут, на всякий случай: > > http://mailman.nginx.org/pipermail/nginx-ru/2015-May/055936.html > http://mailman.nginx.org/pipermail/nginx-ru/2015-May/055937.html > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Kpoxa -------------- next part -------------- An HTML attachment was scrubbed... URL: From kpoxa на kpoxa.net Fri Aug 14 16:14:45 2015 From: kpoxa на kpoxa.net (kpoxa) Date: Fri, 14 Aug 2015 19:14:45 +0300 Subject: =?UTF-8?B?UmU6INCY0L3QvtCz0LTQsCDQutC10Ygg0YDQsNGB0YLQtdGCINGB0LLQtdGA0YUg?= =?UTF-8?B?0LvQuNC80LjRgtCw?= In-Reply-To: References: <20150813181920.GN37350@mdounin.ru> Message-ID: Добрый день. Вот сейчас воспроизвелась проблема, если сделать strace на cache manager, то видно, что есть удаления файлов с одного из двух кешей, со второго нет, иногда бывают futex(0x7fec52473070, FUTEX_WAIT, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) ... futex(0x7fec52473070, FUTEX_WAKE, 1) = 0 ... futex(0x7fec52473070, FUTEX_WAKE, 1) = 1 -HUP не помогает, несмотря на смену всех процессов, кроме рутового. 14 августа 2015 г., 14:28 пользователь kpoxa написал: > Добрый день. > > Просто так никто никаких сигналов не отправлял. Судя по логам процессы не > умирали. > На сервере debian, обновление конфига делается через -HUP мастер процессу > (это в инит скрипте reload делает). > И раз в сутки ротация логов с kill -USR1 `cat /var/run/nginx.pid` > Что можно для диагностики сделать в случае если замечу, что кеш > переполняется? > > 13 августа 2015 г., 21:19 пользователь Maxim Dounin > написал: > >> Hello! >> >> On Thu, Aug 13, 2015 at 06:41:44PM +0300, kpoxa wrote: >> >> > Добрый день. >> > >> > Есть сервер с 2 SSD под кеш >> > >> > Filesystem Size Used Avail Use% Mounted on >> > /dev/sdb1 210G 167G 44G 80% /ssd2 >> > /dev/sda3 200G 157G 44G 79% /ssd >> > >> > и следующий конфиг: >> > >> > proxy_cache_path /ssd levels=1:2 keys_zone=ssd1:2000m >> > max_size=160000m inactive=7d loader_files=1000 use_temp_path=off; >> > proxy_cache_path /ssd2 levels=1:2 keys_zone=ssd2:2000m >> > max_size=170000m inactive=7d loader_files=1000 use_temp_path=off; >> > split_clients $uri$is_args$args $disk { >> > 56.3% 2; >> > * 1; >> > } >> > >> > server { >> > ... >> > location / { >> > proxy_cache ssd$disk; >> > >> > } >> > } >> > >> > Периодически кеш разрастается выше лимита, пока не занимает весь диск. >> > При рестарте nginx место очищается до максимально разрешенного >> >> Что при этом в логах? Падения рабочих процессов, администраторы с >> шаловливыми руками и правом отсылки сигналов nginx'у? Проще всего >> на такое наступить, если рабочий процесс упал и/или был >> принудительно завершён, и не смог разблокировать элементы кеша. >> >> Ну и я просто оставлю эти ссылки тут, на всякий случай: >> >> http://mailman.nginx.org/pipermail/nginx-ru/2015-May/055936.html >> http://mailman.nginx.org/pipermail/nginx-ru/2015-May/055937.html >> >> -- >> Maxim Dounin >> http://nginx.org/ >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > -- > Kpoxa > -- Kpoxa -------------- next part -------------- An HTML attachment was scrubbed... URL: From a.vasilishin на kpi.ua Sat Aug 15 08:24:38 2015 From: a.vasilishin на kpi.ua (=?UTF-8?B?0JDQvdC00YDQtdC5INCS0LDRgdC40LvQuNGI0LjQvQ==?=) Date: Sat, 15 Aug 2015 11:24:38 +0300 Subject: =?UTF-8?Q?X-Accel-Limit-Rate_=D0=B8_limit=5Frate=5Fafter?= Message-ID: <55CEF746.8010802@kpi.ua> Есть задача в определенное время ограничивать поток, этим может заниматься бэкенд добавляя заголовок X-Accel-Limit-Rate, тогда можно будет убрать из конфига директиву limit_rate. Как быть с директивой limit_rate_after, можно ли ее использовать совместно с X-Accel-Limit-Rate? From mdounin на mdounin.ru Mon Aug 17 11:57:31 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 17 Aug 2015 14:57:31 +0300 Subject: =?UTF-8?B?UmU6INCY0L3QvtCz0LTQsCDQutC10Ygg0YDQsNGB0YLQtdGCINGB0LLQtdGA0YUg?= =?UTF-8?B?0LvQuNC80LjRgtCw?= In-Reply-To: References: <20150813181920.GN37350@mdounin.ru> Message-ID: <20150817115731.GY37350@mdounin.ru> Hello! On Fri, Aug 14, 2015 at 02:28:45PM +0300, kpoxa wrote: > Добрый день. > > Просто так никто никаких сигналов не отправлял. Судя по логам процессы не > умирали. > На сервере debian, обновление конфига делается через -HUP мастер процессу > (это в инит скрипте reload делает). > И раз в сутки ротация логов с kill -USR1 `cat /var/run/nginx.pid` Наиболее неприятный из известных мне нюансов состоит в том, что неразблокированные элементы кеша остаются, если какому-либо из рабочих процессов сказать TERM. Например, такое иногда практикуют для принудительного завершения старых рабочих процессов, плавное завершение которых занимает слишком много времени. > Что можно для диагностики сделать в случае если замечу, что кеш > переполняется? По первой из ранее приведённых ссылок есть рекомендации по диагностике - пересобрать nginx с патчем, и прислать полный лог от старта, если/когда будет ругань. http://mailman.nginx.org/pipermail/nginx-ru/2015-May/055936.html http://mailman.nginx.org/pipermail/nginx-ru/2015-May/055937.html -- Maxim Dounin http://nginx.org/ From eugene.toropov на gmail.com Mon Aug 17 17:11:11 2015 From: eugene.toropov на gmail.com (Eugene Toropov) Date: Mon, 17 Aug 2015 20:11:11 +0300 Subject: proxy_cache & gzip Message-ID: Добрый вечер, У меня странная (на мой взгляд) ситуация - есть proxy_cache_path, через который ходят POST запросы с заголовком “Accept-Encoding: gzip”. В коде клиента в ответе от nginx-а я вижу gzip-нутый body и “Content-Encoding: gzip”, но tcpflow показывает, что между nginx-ом и апстримом никакого gzip-а нет. Более того, я нашел закэшированный в папке proxy_cache_path-а файл и убедился, что контент там не gzip-нутый (хотя ключ кэша - "$host$request_uri $http_accept_encoding” - и в моем примере я точно вижу “gzip” на месте $http_accept_encoding). Подскажите, пожалуйста, как заставить nginx работать с апстримом по gzip-у? Евгений ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Mon Aug 17 17:29:29 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 17 Aug 2015 20:29:29 +0300 Subject: proxy_cache & gzip In-Reply-To: References: Message-ID: <20150817172929.GD37350@mdounin.ru> Hello! On Mon, Aug 17, 2015 at 08:11:11PM +0300, Eugene Toropov wrote: > Добрый вечер, > > У меня странная (на мой взгляд) ситуация - есть proxy_cache_path, через > который ходят POST запросы с заголовком “Accept-Encoding: gzip”. В коде > клиента в ответе от nginx-а я вижу gzip-нутый body и “Content-Encoding: > gzip”, но tcpflow показывает, что между nginx-ом и апстримом никакого > gzip-а нет. Более того, я нашел закэшированный в папке proxy_cache_path-а > файл и убедился, что контент там не gzip-нутый (хотя ключ кэша - > "$host$request_uri $http_accept_encoding” - и в моем примере я точно вижу > “gzip” на месте $http_accept_encoding). Подскажите, пожалуйста, как > заставить nginx работать с апстримом по gzip-у? Вопрос "отдавать gzip или нет" решает тот, кто отдаёт. Соответственно вам надо смотреть настройки бекенда, а не nginx'а. В частности, если в роли бекенда опять же nginx - то он по умолчанию не жмёт ответы по HTTP/1.0, см. тут: http://nginx.org/r/gzip_http_version/ru Отдельно отмечу, что $http_accept_encoding в ключе - чревато большим количеством дублей одних и тех же ответов. Если хочется хранить в кеше сжатое, то эффективнее будет сделать proxy_set_header Accept-Encoding gzip; и включить gunzip, см. http://nginx.org/r/gunzip/ru. -- Maxim Dounin http://nginx.org/ From vbart на nginx.com Mon Aug 17 17:33:11 2015 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Mon, 17 Aug 2015 20:33:11 +0300 Subject: proxy_cache & gzip In-Reply-To: References: Message-ID: <2669408.pKxgKiFteS@vbart-workstation> On Monday 17 August 2015 20:11:11 Eugene Toropov wrote: > Добрый вечер, > > У меня странная (на мой взгляд) ситуация - есть proxy_cache_path, через > который ходят POST запросы с заголовком “Accept-Encoding: gzip”. В коде > клиента в ответе от nginx-а я вижу gzip-нутый body и “Content-Encoding: > gzip”, но tcpflow показывает, что между nginx-ом и апстримом никакого > gzip-а нет. Более того, я нашел закэшированный в папке proxy_cache_path-а > файл и убедился, что контент там не gzip-нутый (хотя ключ кэша - > "$host$request_uri $http_accept_encoding” - и в моем примере я точно вижу > “gzip” на месте $http_accept_encoding). Подскажите, пожалуйста, как > заставить nginx работать с апстримом по gzip-у? > Смотрите на апстрим, почему он у вас не отдает сжатый ответ. Вообще использовать $http_accept_encoding в ключе кэша - идея плохая. -- Валентин Бартенев From eugene.toropov на gmail.com Mon Aug 17 17:34:25 2015 From: eugene.toropov на gmail.com (Eugene Toropov) Date: Mon, 17 Aug 2015 20:34:25 +0300 Subject: proxy_cache & gzip In-Reply-To: <20150817172929.GD37350@mdounin.ru> References: <20150817172929.GD37350@mdounin.ru> Message-ID: Понятно, спасибо. Хотел убедиться, что ничего нельзя сделать на своей стороне, ибо настройки бэкенда не доступны, но теперь будем спрашивать с апстрима. Евгений ​ ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From gmm на csdoc.com Mon Aug 17 18:35:25 2015 From: gmm на csdoc.com (Gena Makhomed) Date: Mon, 17 Aug 2015 21:35:25 +0300 Subject: =?UTF-8?B?UmU6INCY0L3QvtCz0LTQsCDQutC10Ygg0YDQsNGB0YLQtdGCINGB0LLQtdGA0YUg?= =?UTF-8?B?0LvQuNC80LjRgtCw?= In-Reply-To: <20150817115731.GY37350@mdounin.ru> References: <20150813181920.GN37350@mdounin.ru> <20150817115731.GY37350@mdounin.ru> Message-ID: <55D2296D.1030101@csdoc.com> On 17.08.2015 14:57, Maxim Dounin wrote: > Наиболее неприятный из известных мне нюансов состоит в том, что > неразблокированные элементы кеша остаются, если какому-либо из > рабочих процессов сказать TERM. Например, такое иногда практикуют > для принудительного завершения старых рабочих процессов, плавное > завершение которых занимает слишком много времени. Эту проблему можно решить, если элементы кеша блокировать не навсегда, а на какое-то определенное количество времени, и по прошествии этого времени - считать существующую блокировку элемента недействительной. -- Best regards, Gena From mdounin на mdounin.ru Mon Aug 17 20:10:20 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 17 Aug 2015 23:10:20 +0300 Subject: =?UTF-8?B?UmU6INCY0L3QvtCz0LTQsCDQutC10Ygg0YDQsNGB0YLQtdGCINGB0LLQtdGA0YUg?= =?UTF-8?B?0LvQuNC80LjRgtCw?= In-Reply-To: <55D2296D.1030101@csdoc.com> References: <20150813181920.GN37350@mdounin.ru> <20150817115731.GY37350@mdounin.ru> <55D2296D.1030101@csdoc.com> Message-ID: <20150817201020.GE37350@mdounin.ru> Hello! On Mon, Aug 17, 2015 at 09:35:25PM +0300, Gena Makhomed wrote: > On 17.08.2015 14:57, Maxim Dounin wrote: > > >Наиболее неприятный из известных мне нюансов состоит в том, что > >неразблокированные элементы кеша остаются, если какому-либо из > >рабочих процессов сказать TERM. Например, такое иногда практикуют > >для принудительного завершения старых рабочих процессов, плавное > >завершение которых занимает слишком много времени. > > Эту проблему можно решить, если элементы кеша блокировать не навсегда, > а на какое-то определенное количество времени, и по прошествии этого > времени - считать существующую блокировку элемента недействительной. Чтобы блокировать "не навсегда", умеющий это обрабатывать код должен быть в том числе со стороны запроса, которому данная блокировка нужна. Чтобы периодически блокировку обновлял, и был готов к тому, что её уберут, и всё это - со всеми прилагающимися дополнительными затратами ресурсов. В противном случае - будут segfault'ы, если таки выкинут нужную блокировку. На практике вполне неплохо работает вывод сообщений в логи и перемещение заблокированных элементов в начало очереди, реализованное для обработки удаления старых элементов по inactive. Проблемы, судя по рассылке, наблюдаются у тех, кто очистку по inactive фактически выключил - и, видимо, в сочетании с какой-то ещё проблемой, какой - пока непонятно. -- Maxim Dounin http://nginx.org/ From gmm на csdoc.com Tue Aug 18 06:40:15 2015 From: gmm на csdoc.com (Gena Makhomed) Date: Tue, 18 Aug 2015 09:40:15 +0300 Subject: =?UTF-8?B?UmU6INCY0L3QvtCz0LTQsCDQutC10Ygg0YDQsNGB0YLQtdGCINGB0LLQtdGA0YUg?= =?UTF-8?B?0LvQuNC80LjRgtCw?= In-Reply-To: <20150817201020.GE37350@mdounin.ru> References: <20150813181920.GN37350@mdounin.ru> <20150817115731.GY37350@mdounin.ru> <55D2296D.1030101@csdoc.com> <20150817201020.GE37350@mdounin.ru> Message-ID: <55D2D34F.4070605@csdoc.com> On 17.08.2015 23:10, Maxim Dounin wrote: >>> Наиболее неприятный из известных мне нюансов состоит в том, что >>> неразблокированные элементы кеша остаются, если какому-либо из >>> рабочих процессов сказать TERM. Например, такое иногда практикуют >>> для принудительного завершения старых рабочих процессов, плавное >>> завершение которых занимает слишком много времени. >> >> Эту проблему можно решить, если элементы кеша блокировать не навсегда, >> а на какое-то определенное количество времени, и по прошествии этого >> времени - считать существующую блокировку элемента недействительной. > > Чтобы блокировать "не навсегда", умеющий это обрабатывать код > должен быть в том числе со стороны запроса, которому данная > блокировка нужна. Чтобы периодически блокировку обновлял, и был > готов к тому, что её уберут, и всё это - со всеми прилагающимися > дополнительными затратами ресурсов. В противном случае - будут > segfault'ы, если таки выкинут нужную блокировку. Хорошо, тогда другое предложение: В функции ngx_shmtx_lock блокировка делается через ngx_atomic_cmp_set, при этом, вместо 0 записывается ngx_pid, следовательно, если блокировка стоит - всегда можно узнать, какой именно процесс эту блокировку поставил. И, вместе с тем, когда дочерний процесс завершается, - мастер-процесс nginx получает сигнал SIGCHLD, и может узнать ngx_pid завершившегося дочернего процесса. В результате: мастер-процесс может самостоятельно снять все "зависшие" блокировки на shared memory. Дополнительные затраты ресурсов сервера при этом практически равны 0. > На практике вполне неплохо работает вывод сообщений в логи и > перемещение заблокированных элементов в начало очереди, > реализованное для обработки удаления старых элементов по inactive. > Проблемы, судя по рассылке, наблюдаются у тех, кто очистку по > inactive фактически выключил - и, видимо, в сочетании с какой-то > ещё проблемой, какой - пока непонятно. Если удалять заблокированные элементы - разве не будут segfault'ы? -- Best regards, Gena From mdounin на mdounin.ru Tue Aug 18 11:38:49 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 18 Aug 2015 14:38:49 +0300 Subject: =?UTF-8?B?UmU6INCY0L3QvtCz0LTQsCDQutC10Ygg0YDQsNGB0YLQtdGCINGB0LLQtdGA0YUg?= =?UTF-8?B?0LvQuNC80LjRgtCw?= In-Reply-To: <55D2D34F.4070605@csdoc.com> References: <20150813181920.GN37350@mdounin.ru> <20150817115731.GY37350@mdounin.ru> <55D2296D.1030101@csdoc.com> <20150817201020.GE37350@mdounin.ru> <55D2D34F.4070605@csdoc.com> Message-ID: <20150818113849.GG37350@mdounin.ru> Hello! On Tue, Aug 18, 2015 at 09:40:15AM +0300, Gena Makhomed wrote: > On 17.08.2015 23:10, Maxim Dounin wrote: > > >>>Наиболее неприятный из известных мне нюансов состоит в том, что > >>>неразблокированные элементы кеша остаются, если какому-либо из > >>>рабочих процессов сказать TERM. Например, такое иногда практикуют > >>>для принудительного завершения старых рабочих процессов, плавное > >>>завершение которых занимает слишком много времени. > >> > >>Эту проблему можно решить, если элементы кеша блокировать не навсегда, > >>а на какое-то определенное количество времени, и по прошествии этого > >>времени - считать существующую блокировку элемента недействительной. > > > >Чтобы блокировать "не навсегда", умеющий это обрабатывать код > >должен быть в том числе со стороны запроса, которому данная > >блокировка нужна. Чтобы периодически блокировку обновлял, и был > >готов к тому, что её уберут, и всё это - со всеми прилагающимися > >дополнительными затратами ресурсов. В противном случае - будут > >segfault'ы, если таки выкинут нужную блокировку. > > Хорошо, тогда другое предложение: > > В функции ngx_shmtx_lock блокировка делается через > ngx_atomic_cmp_set, при этом, вместо 0 записывается > ngx_pid, следовательно, если блокировка стоит - > всегда можно узнать, какой именно процесс > эту блокировку поставил. Речь про блокировки отдельных элементов кеша, а не всей зоны разделяемой памяти. С зоны разделяемой памяти блокировку после падения процессов мы снимать умеем, см. ngx_shmtx_force_unlock(). [...] > >На практике вполне неплохо работает вывод сообщений в логи и > >перемещение заблокированных элементов в начало очереди, > >реализованное для обработки удаления старых элементов по inactive. > >Проблемы, судя по рассылке, наблюдаются у тех, кто очистку по > >inactive фактически выключил - и, видимо, в сочетании с какой-то > >ещё проблемой, какой - пока непонятно. > > Если удалять заблокированные элементы - разве не будут segfault'ы? Их никто не удаляет, их перемещают и ругаются в лог. См. ngx_http_file_cache_expire(). -- Maxim Dounin http://nginx.org/ From paranoidchaos на gmail.com Tue Aug 18 13:22:01 2015 From: paranoidchaos на gmail.com (Amanda Sproule) Date: Tue, 18 Aug 2015 18:22:01 +0500 Subject: =?UTF-8?B?UmU6IFJlOiBuZ2lueCDQuCDQv9C+0YLRgNC10LHQu9C10L3QuNC1INC/0LDQvNGP?= =?UTF-8?B?0YLQuA==?= Message-ID: >>в обоих случаях nginx оказывался собран с ModSecurity. так и есть началь замечать отжирания >1GB в режиме досек-прокси. >>то тут можно только процитировать старый анекдот: "Не делайте так". удалите его из порта во freebsd тогда, пока модсековцы не решат проблемы. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From me на kemko.ru Tue Aug 18 13:25:08 2015 From: me на kemko.ru (=?UTF-8?B?0JTQvNC40YLRgNC40Lkg0JDQvdC00YDQtdC10LI=?=) Date: Tue, 18 Aug 2015 16:25:08 +0300 Subject: =?UTF-8?B?UmU6IFJlOiBuZ2lueCDQuCDQv9C+0YLRgNC10LHQu9C10L3QuNC1INC/0LDQvNGP?= =?UTF-8?B?0YLQuA==?= In-Reply-To: References: Message-ID: 18 августа 2015 г., 16:22 пользователь Amanda Sproule < paranoidchaos на gmail.com> написал: > удалите его из порта во freebsd тогда, пока модсековцы не решат проблемы. > > Так и обратитесь с этой идеей к тому, кто может это сделать ;) nginx-1.8.0_3,2Robust and small WWW server Long description : Changes Maintained by: osa на FreeBSD.org ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Tue Aug 18 14:18:07 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 18 Aug 2015 17:18:07 +0300 Subject: =?UTF-8?B?UmU6IFJlOiBuZ2lueCDQuCDQv9C+0YLRgNC10LHQu9C10L3QuNC1INC/0LDQvNGP?= =?UTF-8?B?0YLQuA==?= In-Reply-To: References: Message-ID: <20150818141806.GI37350@mdounin.ru> Hello! On Tue, Aug 18, 2015 at 06:22:01PM +0500, Amanda Sproule wrote: > >>в обоих случаях nginx оказывался собран с ModSecurity. > > так и есть началь замечать отжирания >1GB в режиме досек-прокси. > > >>то тут можно только процитировать старый анекдот: "Не делайте так". > > удалите его из порта во freebsd тогда, пока модсековцы не решат проблемы. Пересоберите порт без соответствующей опции - и будет вам счастье. Там этих опций - чуть больше, чем дофига, и часть из них - сильно экспериментальная (да и в целом качество 3rd party модулей обычно оставляет желать, use with care). Просто не стоит бездумно отмечать всё "чтобы было". Ну и да, порт мейнтейнит Сергей Осокин, ему и следует писать, если вы считаете, что в порте что-то не так. Но в данном случае я не вижу повода, чтобы беспокоить уважаемого человека. -- Maxim Dounin http://nginx.org/ From a.vasilishin на kpi.ua Tue Aug 18 14:50:24 2015 From: a.vasilishin на kpi.ua (=?UTF-8?B?0JDQvdC00YDQtdC5INCS0LDRgdC40LvQuNGI0LjQvQ==?=) Date: Tue, 18 Aug 2015 17:50:24 +0300 Subject: =?UTF-8?Q?Re=3A_X-Accel-Limit-Rate_=D0=B8_limit=5Frate=5Fafter?= In-Reply-To: <55CEF746.8010802@kpi.ua> References: <55CEF746.8010802@kpi.ua> Message-ID: <55D34630.2050401@kpi.ua> Поставлю вопрос по-другому, что будет, если в конфиге прописан limit_rate и придет ответ с бэкенда с заголовком X-Accel-Limit-Rate? Что сработает? From vbart на nginx.com Tue Aug 18 15:31:42 2015 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Tue, 18 Aug 2015 18:31:42 +0300 Subject: =?UTF-8?Q?Re=3A_X-Accel-Limit-Rate_=D0=B8_limit=5Frate=5Fafter?= In-Reply-To: <55D34630.2050401@kpi.ua> References: <55CEF746.8010802@kpi.ua> <55D34630.2050401@kpi.ua> Message-ID: <2756042.RnGPdxiKMr@vbart-workstation> On Tuesday 18 August 2015 17:50:24 Андрей Василишин wrote: > > Поставлю вопрос по-другому, что будет, если в конфиге прописан > limit_rate и придет ответ с бэкенда с заголовком X-Accel-Limit-Rate? Что > сработает? > Сработает значение из заголовка. -- Валентин Бартенев From mdounin на mdounin.ru Tue Aug 18 15:40:53 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 18 Aug 2015 18:40:53 +0300 Subject: nginx-1.9.4 Message-ID: <20150818154053.GN37350@mdounin.ru> Изменения в nginx 1.9.4 18.08.2015 *) Изменение: директивы proxy_downstream_buffer и proxy_upstream_buffer в модуле stream заменены директивой proxy_buffer_size. *) Добавление: директива tcp_nodelay в модуле stream. *) Добавление: теперь можно указать несколько директив sub_filter одновременно. *) Добавление: директива sub_filter поддерживает переменные в строке поиска. *) Изменение: тестирование конфигурации могло не работать под Linux OpenVZ. Спасибо Геннадию Махомеду. *) Исправление: после переконфигурации старые рабочие процессы могли сильно нагружать процессор при больших значениях worker_connections. *) Исправление: при совместном использовании директив try_files и alias внутри location'а, заданного регулярным выражением, в рабочем процессе мог произойти segmentation fault; ошибка появилась в 1.7.1. *) Исправление: директива try_files внутри вложенного location'а, заданного регулярным выражением, работала неправильно, если во внешнем location'е использовалась директива alias. *) Исправление: в обработке ошибок при построении хэш-таблиц. *) Исправление: nginx не собирался с Visual Studio 2015. -- Maxim Dounin http://nginx.org/ From swood на fotofor.biz Tue Aug 18 19:20:33 2015 From: swood на fotofor.biz (Anton Kiryushkin) Date: Tue, 18 Aug 2015 22:20:33 +0300 Subject: =?UTF-8?B?UmU6IFJlOiBuZ2lueCDQuCDQv9C+0YLRgNC10LHQu9C10L3QuNC1INC/0LDQvNGP?= =?UTF-8?B?0YLQuA==?= In-Reply-To: <20150818141806.GI37350@mdounin.ru> References: <20150818141806.GI37350@mdounin.ru> Message-ID: Максим, позвольте к вам еще раз обратиться. Есть ли какая-то формула для подсчета буферов, исходя из примерного размера backend-upstream и числа запросов к серверу/величины трафика. К сожалению, пока так и не удалось найти баланс. И да, я имею ввиду proxy_byffers и proxy_buffer_size. 18 августа 2015 г., 17:18 пользователь Maxim Dounin написал: > Hello! > > On Tue, Aug 18, 2015 at 06:22:01PM +0500, Amanda Sproule wrote: > > > >>в обоих случаях nginx оказывался собран с ModSecurity. > > > > так и есть началь замечать отжирания >1GB в режиме досек-прокси. > > > > >>то тут можно только процитировать старый анекдот: "Не делайте так". > > > > удалите его из порта во freebsd тогда, пока модсековцы не решат проблемы. > > Пересоберите порт без соответствующей опции - и будет вам счастье. > > Там этих опций - чуть больше, чем дофига, и часть из них - сильно > экспериментальная (да и в целом качество 3rd party модулей обычно > оставляет желать, use with care). Просто не стоит бездумно > отмечать всё "чтобы было". > > Ну и да, порт мейнтейнит Сергей Осокин, ему и следует писать, если > вы считаете, что в порте что-то не так. Но в данном случае я не > вижу повода, чтобы беспокоить уважаемого человека. > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Best regards, Anton Kiryushkin -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum на nginx.us Wed Aug 19 09:52:57 2015 From: nginx-forum на nginx.us (tall32) Date: Wed, 19 Aug 2015 05:52:57 -0400 Subject: =?UTF-8?B?bmdpbngg0LgganMg0YTQsNC50LvRiyDQv9GA0L7QsSDQu9C10LzQvNCwINGBINC6?= =?UTF-8?B?0L7QtNC40YDQvtCy0LrQvtC5?= Message-ID: Доброго времени суток. Проблема такая: Страница загружается нормально, со скриптами все отрабатывается. НО! если я начинаю править js скрипт, даже просто поставлю пробел в js,json файле, то в браузере в скрипте я вижу непонятные символы, будто сбилась кодировка. Вот так вот выглядит: http://storage1.static.itmages.ru/i/15/0819/h_1439977355_7935326_e9f82566ee.png Самое интересное, что если я: 1. Удалю файл 2. Обновлю страничку в браузере 3. Заново сохраню файл 4. Обновлю страничку Страница загрузится с измененным и рабочим файлом. Проблема появятся не зависимо от браузера. Если я правлю html,php файлы то никаких проблем нет. Дистрибутив: Ubuntu 14.04 nginx: 1.4.6 Содержание файла /etc/nginx/sites-available/default server { charset utf8; listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /var/www/html; index index.php index.html index.htm; server_name 192.168.74.54; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. expires -1; add_header Pragma "no-cache"; try_files $uri $uri/ =404; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } Содержание файла /etc/nginx/nginx.conf user www-data; worker_processes 4; pid /run/nginx.pid; events { worker_connections 768; # multi_accept on; } http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; gzip on; gzip_disable "msie6"; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } В заранее спасибо. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261118,261118#msg-261118 From nginx-forum на nginx.us Wed Aug 19 12:00:10 2015 From: nginx-forum на nginx.us (S.A.N) Date: Wed, 19 Aug 2015 08:00:10 -0400 Subject: =?UTF-8?B?UmU6IG5naW54INC4IGpzINGE0LDQudC70Ysg0L/RgNC+0LEg0LvQtdC80LzQsCA=?= =?UTF-8?B?0YEg0LrQvtC00LjRgNC+0LLQutC+0Lk=?= In-Reply-To: References: Message-ID: <17e8a9af56669da74ec6a93bfc320816.NginxMailingListRussian@forum.nginx.org> Да, такая проблема была, помогло выключения sendfile: sendfile off; Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261118,261120#msg-261120 From mdounin на mdounin.ru Wed Aug 19 12:51:36 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 19 Aug 2015 15:51:36 +0300 Subject: =?UTF-8?B?UmU6IFJlOiBuZ2lueCDQuCDQv9C+0YLRgNC10LHQu9C10L3QuNC1INC/0LDQvNGP?= =?UTF-8?B?0YLQuA==?= In-Reply-To: References: <20150818141806.GI37350@mdounin.ru> Message-ID: <20150819125135.GT37350@mdounin.ru> Hello! On Tue, Aug 18, 2015 at 10:20:33PM +0300, Anton Kiryushkin wrote: > Есть ли какая-то формула для подсчета буферов, исходя из примерного размера > backend-upstream и числа запросов к серверу/величины трафика. К сожалению, > пока так и не удалось найти баланс. И да, я имею ввиду proxy_byffers и > proxy_buffer_size. По очевидным причинам не имеет смысла делать суммарный размер буферов больше, чем максимальный размер ответа бекенда. Ну и сильно меньше, чем тратится памяти на обработку запроса, тоже нет смысла ставить (e.g., при больших ответах и включённом gzip'е можно быть уверенным, что zlib съест килобайт 300 на сжатие, и соответственно буфера можно смело поднимать до сравнимых размеров). В остальном - каких-либо внятных формул мне не известно. Я обычно поступаю импирически: смотрю в error log, и постепенно поднимаю буфера так, чтобы сообщения о буферизации на диск более или менее пропали (== буферизация на диск затрагивала бы не более процента всех запросов), и при этом рабочие процессы nginx'а потребляли не более половины памяти сервера (если не будет запаса свободной памяти - будут проблемы с обновлением конфигурации nginx'а, не говоря уже о проблемах с кешированием файловых операций). -- Maxim Dounin http://nginx.org/ From gmm на csdoc.com Wed Aug 19 13:53:56 2015 From: gmm на csdoc.com (Gena Makhomed) Date: Wed, 19 Aug 2015 16:53:56 +0300 Subject: =?UTF-8?B?UmU6INCY0L3QvtCz0LTQsCDQutC10Ygg0YDQsNGB0YLQtdGCINGB0LLQtdGA0YUg?= =?UTF-8?B?0LvQuNC80LjRgtCw?= In-Reply-To: <20150818113849.GG37350@mdounin.ru> References: <20150813181920.GN37350@mdounin.ru> <20150817115731.GY37350@mdounin.ru> <55D2296D.1030101@csdoc.com> <20150817201020.GE37350@mdounin.ru> <55D2D34F.4070605@csdoc.com> <20150818113849.GG37350@mdounin.ru> Message-ID: <55D48A74.6010406@csdoc.com> On 18.08.2015 14:38, Maxim Dounin wrote: >>>>> Наиболее неприятный из известных мне нюансов состоит в том, что >>>>> неразблокированные элементы кеша остаются, если какому-либо из >>>>> рабочих процессов сказать TERM. Например, такое иногда практикуют >>>>> для принудительного завершения старых рабочих процессов, плавное >>>>> завершение которых занимает слишком много времени. ..... >> В функции ngx_shmtx_lock блокировка делается через >> ngx_atomic_cmp_set, при этом, вместо 0 записывается >> ngx_pid, следовательно, если блокировка стоит - >> всегда можно узнать, какой именно процесс >> эту блокировку поставил. > > Речь про блокировки отдельных элементов кеша, а не всей зоны > разделяемой памяти. С зоны разделяемой памяти блокировку после > падения процессов мы снимать умеем, см. ngx_shmtx_force_unlock(). "блокировка отдельных элементов кеша" - это когда в структуре ngx_http_cache_s установлен бит lock ? Если вместо unsigned lock:1; сделать ngx_tid_t lock; - тогда можно будет снимать блокировки элементов кеша после завершения рабочих процессов любым способом, даже по SIGKILL - мастер скажет процессу cache manager о том, какой pid завершил работу и cache manager тогда сможет разблокировать все заблокированные этим процессом элементы кеша, после чего мастер перезапустит упавший worker. Или - мастер сам разблокирует все элементы кеша и перезапускает воркер. И тогда завершение worker-процессов по сигналу TERM будет "чистым", без оставления каких-либо блокировок. >>> На практике вполне неплохо работает вывод сообщений в логи и >>> перемещение заблокированных элементов в начало очереди, >>> реализованное для обработки удаления старых элементов по inactive. >>> Проблемы, судя по рассылке, наблюдаются у тех, кто очистку по >>> inactive фактически выключил - и, видимо, в сочетании с какой-то >>> ещё проблемой, какой - пока непонятно. >> >> Если удалять заблокированные элементы - разве не будут segfault'ы? > > Их никто не удаляет, их перемещают и ругаются в лог. > См. ngx_http_file_cache_expire(). Сначала перемещают, но потом всеравно удаляют: "для обработки удаления старых элементов по inactive". Тут не будет разве race condition, если живой worker очень долго обновляет элемент кеша с бекенда, и в этот момент происходит удаление элемента по inactive? Например, если inactive стоит 10 секунд, а proxy_cache_lock_age 20 секунд. P.S. Кстати, документация по директиве proxy_cache_lock_age в файле CHANGES более понятная, чем на http://nginx.org/en/docs/ -- Best regards, Gena From kpoxa на kpoxa.net Wed Aug 19 14:06:53 2015 From: kpoxa на kpoxa.net (kpoxa) Date: Wed, 19 Aug 2015 17:06:53 +0300 Subject: =?UTF-8?B?UmU6INCY0L3QvtCz0LTQsCDQutC10Ygg0YDQsNGB0YLQtdGCINGB0LLQtdGA0YUg?= =?UTF-8?B?0LvQuNC80LjRgtCw?= In-Reply-To: <20150817115731.GY37350@mdounin.ru> References: <20150813181920.GN37350@mdounin.ru> <20150817115731.GY37350@mdounin.ru> Message-ID: Добрый день. Патченный nginx установлен на 10 сервреов, ждем результатов. Максим, давно уже с вами обсуждали, что было бы хорошо применять политики для cache loader к cache manager, чтобы последний не вешал систему удалением очень большого числа файлов из кеша, сейчас это меня бы спасло, может быть запланируете? Есть и другие кейсы, когда это полезно, например при уменьшении размера кеша или уменьшении inactive в конфиге. 17 августа 2015 г., 14:57 пользователь Maxim Dounin написал: > Hello! > > On Fri, Aug 14, 2015 at 02:28:45PM +0300, kpoxa wrote: > > > Добрый день. > > > > Просто так никто никаких сигналов не отправлял. Судя по логам процессы не > > умирали. > > На сервере debian, обновление конфига делается через -HUP мастер процессу > > (это в инит скрипте reload делает). > > И раз в сутки ротация логов с kill -USR1 `cat /var/run/nginx.pid` > > Наиболее неприятный из известных мне нюансов состоит в том, что > неразблокированные элементы кеша остаются, если какому-либо из > рабочих процессов сказать TERM. Например, такое иногда практикуют > для принудительного завершения старых рабочих процессов, плавное > завершение которых занимает слишком много времени. > > > Что можно для диагностики сделать в случае если замечу, что кеш > > переполняется? > > По первой из ранее приведённых ссылок есть рекомендации по > диагностике - пересобрать nginx с патчем, и прислать полный лог от > старта, если/когда будет ругань. > > http://mailman.nginx.org/pipermail/nginx-ru/2015-May/055936.html > http://mailman.nginx.org/pipermail/nginx-ru/2015-May/055937.html > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Kpoxa -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum на nginx.us Thu Aug 20 05:10:43 2015 From: nginx-forum на nginx.us (tall32) Date: Thu, 20 Aug 2015 01:10:43 -0400 Subject: =?UTF-8?B?UmU6IG5naW54INC4IGpzINGE0LDQudC70Ysg0L/RgNC+0LEg0LvQtdC80LzQsCA=?= =?UTF-8?B?0YEg0LrQvtC00LjRgNC+0LLQutC+0Lk=?= In-Reply-To: <17e8a9af56669da74ec6a93bfc320816.NginxMailingListRussian@forum.nginx.org> References: <17e8a9af56669da74ec6a93bfc320816.NginxMailingListRussian@forum.nginx.org> Message-ID: <5ed7023c2e5ba961a1648368c459c172.NginxMailingListRussian@forum.nginx.org> Спасибо! Помогло. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261118,261139#msg-261139 From paranoidchaos на gmail.com Thu Aug 20 10:28:04 2015 From: paranoidchaos на gmail.com (Amanda Sproule) Date: Thu, 20 Aug 2015 15:28:04 +0500 Subject: =?UTF-8?B?UmU6IFJlOiBSZTogbmdpbngg0Lgg0L/QvtGC0YDQtdCx0LvQtdC90LjQtSDQv9Cw?= =?UTF-8?B?0LzRj9GC0Lg=?= Message-ID: >>Но в данном случае я не вижу повода, чтобы беспокоить уважаемого человека. Ну не видна логика, как можно не протестированный модуль пихать в продакшен порт? Второе, если на то пошло, то помечать как анстейбл или экспериментал, что в первую очередь отпугнёт заядлых стейбл продакшенистов. В-третьих, раз уж речь зашла о 3rd party модулях, то почему там нет всяких китайских поделок ? Всё на усмотрение много уважаемого Сергея Осокина? ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From kulmaks на gmail.com Thu Aug 20 11:26:58 2015 From: kulmaks на gmail.com (Maksim Kulik) Date: Thu, 20 Aug 2015 14:26:58 +0300 Subject: =?UTF-8?B?UmU6IFJlOiBSZTogbmdpbngg0Lgg0L/QvtGC0YDQtdCx0LvQtdC90LjQtSDQv9Cw?= =?UTF-8?B?0LzRj9GC0Lg=?= In-Reply-To: References: Message-ID: Гениальные претензии. Не нравится? Становитесь мэйнтейнером порта - все будут рады. Или делайте еще один порт рядом со всеми необходимыми и протестированными под всеми версиями (и архитектурами) FreeBSD модулями. 20 августа 2015 г., 13:28 пользователь Amanda Sproule < paranoidchaos на gmail.com> написал: > >>Но в данном случае я не вижу повода, чтобы беспокоить уважаемого человека. > > Ну не видна логика, как можно не протестированный модуль пихать в продакшен порт? Второе, если на то пошло, то помечать как анстейбл или экспериментал, что в первую очередь отпугнёт заядлых стейбл продакшенистов. В-третьих, раз уж речь зашла о 3rd party модулях, то почему там нет всяких китайских поделок ? Всё на усмотрение много уважаемого Сергея Осокина? > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nordicdyno на yandex.ru Thu Aug 20 13:40:11 2015 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Thu, 20 Aug 2015 16:40:11 +0300 Subject: =?UTF-8?B?0KTQvtGA0LzQsNGCINC60LXRiC3RhNCw0LnQu9C+0LI=?= Message-ID: <1153161440078011@web28g.yandex.ru> An HTML attachment was scrubbed... URL: From vbart на nginx.com Thu Aug 20 14:00:51 2015 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Thu, 20 Aug 2015 17:00:51 +0300 Subject: =?UTF-8?B?UmU6INCk0L7RgNC80LDRgiDQutC10Ygt0YTQsNC50LvQvtCy?= In-Reply-To: <1153161440078011@web28g.yandex.ru> References: <1153161440078011@web28g.yandex.ru> Message-ID: <2391049.R245cPT79Y@vbart-workstation> On Thursday 20 August 2015 16:40:11 Orlovsky Alexander wrote: > Всем привет! > > Стало интересно сделать утилиту по просмотру nginx кеша на диске, в основном для: > 1. поиска по ключу (префиксу) / контенту > 2. просмотра TTL-ей и контента > 3. удаления по условию > > 1 и 3-е реализовать кажется очень просто – во всех файлах есть строчка KEY: blah-blah и после нее идет контент > поэтому я стал разбираться с п.2, нашел такой проект: https://github.com/perusio/nginx-cache-inspector > Сделал парсинг TTL, как там это реализовано в get_cache_item_ttl, т.е. первые 16 байт сохраняю в два int32-поля t1 (timestamp) и t2 (? там всегда -1). Я правда не понял логику автора, почему второе значение вычитается из первого и на основании этого делается вывод про 404, может у меня такие настройки, но таких данных в не самом маленьком кеше, взятого с продакшена я не нашел. > Еще не все файлы из кеша, на котором я тестирую свой код, начинаются одинаково (строками одной длины), формат похоже очень разный. Интересно, почему так? > > Основной вопрос такой – есть ли где либо описание формата этих кеш файлов (точнее бинарного заголовка с которого они начинаются)? Я могу заглянуть в исходники, но надо знать где искать и подсказки бы не помешали. > Может кто-нибудь помочь? > http://hg.nginx.org/nginx/file/79a50ebb3b89/src/http/ngx_http_cache.h#l117 http://hg.nginx.org/nginx/file/79a50ebb3b89/src/http/ngx_http_file_cache.c#l1212 -- Валентин Бартенев From nginx-forum на nginx.us Fri Aug 21 13:15:33 2015 From: nginx-forum на nginx.us (alexandre_frolov) Date: Fri, 21 Aug 2015 09:15:33 -0400 Subject: =?UTF-8?B?0J3QtSDQv9C+0LvRg9GH0LDQtdGC0YHRjyDQvtGC0LrQu9GO0YfQuNGC0YwgSFRU?= =?UTF-8?B?UC3QstC10YDRgdC40Y4gSFRUUFMt0YHQsNC50YLQsA==?= Message-ID: <0b4fc64434b3b2b9827ed2012294b0e0.NginxMailingListRussian@forum.nginx.org> На довольно старом сервере есть HTTPS-сайт, работающий на порту 8181, который также открывается на 80 порту. Хочу чтобы сайт открывался только на порту 8181 и через HTTPS. Для этого закрыл комментарием строку "listen XX.XX.XX.XX;" как показано ниже, однако это не привело к желаемому действию. После перезапуска nginx сайт по-прежнему доступен на порту 80. На 81 порту работает Apache FreeBSD 7.4 amd64, nginx version: nginx/1.2.1, конфигурация сайта создавалась ISPmanager Подскажите, пожалуйста, в чем тут может быть проблема. Спасибо! Александр Фролов Фрагмент секции server для сайта: server { server_name domain1.domain2.ru; # listen XX.XX.XX.XX; listen XX.XX.XX.XX:8181 default_server ssl ssl; ssl_certificate /usr/home/username/domain1.domain2.ru.crt; ssl_certificate_key /usr/home/username/domain1.domain2.ru.key; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; set $root_path /usr/home/username/data/www/domain1.domain2.ru; location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ { root $root_path; #access_log /usr/home/nginx-logs/username isp; access_log /usr/home/httpd-logs/domain1.domain2.ru.access.log ; error_page 404 = @fallback; } location / { proxy_pass http://domain1.domain2.ru; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_set_header Accept-Encoding ""; 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_set_header X-Forwarded-Proto $scheme; add_header Front-End-Https on; proxy_redirect off; } location ~* ^/(webstat|awstats|webmail|myadmin|pgadmin)/ { proxy_pass http://XX.XX.XX.XX:81; proxy_redirect http://XX.XX.XX.XX:81/ /; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; } location @fallback { proxy_pass http://XX.XX.XX.XX:81; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; } location ^~ /webstat/ { auth_basic "Restricted area"; auth_basic_user_file /usr/home/username/data/etc/25465686.passwd; try_files $uri @fallback; } } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261166,261166#msg-261166 From nginx-forum на nginx.us Sun Aug 23 20:56:10 2015 From: nginx-forum на nginx.us (Vadim Osipov) Date: Sun, 23 Aug 2015 16:56:10 -0400 Subject: =?UTF-8?B?0JzQvdC+0LPQvtGA0LDQt9C+0LLQvtC1INC/0LXRgNC10L3QsNC/0YDQsNCy0Ls=?= =?UTF-8?B?0LXQvdC40LUg0LfQsCDRgdGH0LXRgiBlcnJvciBwYWdl?= Message-ID: <7551fe73736f6647aefb903c058d1327.NginxMailingListRussian@forum.nginx.org> Здравствуйте ! Скажите, пожалуйста, можно ли использовать несколько раз error_page для перемещения по location-ам, если получаемый статус не является желаемым ? Вот конфигурация (рабочая, но придуманная "от фонаря" для целей тестирования): location /images { set $memcached_key "$arg_mykey"; memcached_pass localhost:11211; error_page 404 502 504 @go_to_server; } location @go_to_server { proxy_pass http://localhost:8080; error_page 400 @go_for_default; } location @go_for_default { set $memcached_key "default_key_$arg_mykey"; memcached_pass localhost:11211; error_page 404 502 502 @go_for_default_to_server; } location @go_for_default_to_server { proxy_pass http://localhost:8080/default/images; return 400; } Посылаю запрос на /images, если в memcached нету, то обрабатываю от него статус, путем перенаправления запроса на сервер приложений. Но вот что мне не удалось, так это обработать статус от сервера приложений путем переброски запроса на другой location, чтобы, например как здесь, сделать запрос к memcached за дефолтным значением (и опять на сервер приложений в последний раз). Может быть то, что я хочу сделать не так делается или есть другая возможность за счет другой директивы или в принципе такое нельзя сделать в nginx (только 1 раз от memcached -> backend и за счет error_page) ? P.S. location @go_to_server { proxy_pass http://localhost:8080; error_page 400 @go_for_default; } самое интересное, что статус на клиент приходит 404. Даже если заменить на error_page 400 = 200; Получается, что 2ой раз использование error_page игнорируется ? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261196,261196#msg-261196 From nordicdyno на yandex.ru Mon Aug 24 00:40:55 2015 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Mon, 24 Aug 2015 03:40:55 +0300 Subject: =?UTF-8?B?UmU6INCk0L7RgNC80LDRgiDQutC10Ygt0YTQsNC50LvQvtCy?= In-Reply-To: <2391049.R245cPT79Y@vbart-workstation> References: <1153161440078011@web28g.yandex.ru> <2391049.R245cPT79Y@vbart-workstation> Message-ID: <1169241440376855@web4j.yandex.ru> An HTML attachment was scrubbed... URL: From vadim.lazovskiy на gmail.com Mon Aug 24 06:32:44 2015 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Mon, 24 Aug 2015 09:32:44 +0300 Subject: =?UTF-8?B?UmU6INCc0L3QvtCz0L7RgNCw0LfQvtCy0L7QtSDQv9C10YDQtdC90LDQv9GA0LA=?= =?UTF-8?B?0LLQu9C10L3QuNC1INC30LAg0YHRh9C10YIgZXJyb3IgcGFnZQ==?= In-Reply-To: <7551fe73736f6647aefb903c058d1327.NginxMailingListRussian@forum.nginx.org> References: <7551fe73736f6647aefb903c058d1327.NginxMailingListRussian@forum.nginx.org> Message-ID: Здравствуйте. http://nginx.org/en/docs/http/ngx_http_core_module.html#recursive_error_pages 23 августа 2015 г., 23:56 пользователь Vadim Osipov написал: > Здравствуйте ! > > Скажите, пожалуйста, можно ли использовать несколько раз error_page для > перемещения по location-ам, если получаемый статус не является желаемым ? > Вот конфигурация (рабочая, но придуманная "от фонаря" для целей > тестирования): > > location /images { > set $memcached_key "$arg_mykey"; > memcached_pass localhost:11211; > error_page 404 502 504 @go_to_server; > } > > location @go_to_server { > proxy_pass http://localhost:8080; > error_page 400 @go_for_default; > } > > location @go_for_default { > set $memcached_key "default_key_$arg_mykey"; > memcached_pass localhost:11211; > error_page 404 502 502 @go_for_default_to_server; > } > > location @go_for_default_to_server { > proxy_pass http://localhost:8080/default/images; > return 400; > } > > Посылаю запрос на /images, если в memcached нету, то обрабатываю от него > статус, путем перенаправления запроса на сервер приложений. > Но вот что мне не удалось, так это обработать статус от сервера приложений > путем переброски запроса на другой location, чтобы, например как здесь, > сделать запрос к memcached за дефолтным значением (и опять на сервер > приложений в последний раз). > > Может быть то, что я хочу сделать > не так делается > или есть другая возможность за счет другой директивы > или в принципе такое нельзя сделать в nginx (только 1 раз от memcached -> > backend и за счет error_page) > ? > > P.S. > location @go_to_server { > proxy_pass http://localhost:8080; > error_page 400 @go_for_default; > } > самое интересное, что статус на клиент приходит 404. Даже если заменить на > error_page 400 = 200; > Получается, что 2ой раз использование error_page игнорируется ? > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261196,261196#msg-261196 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- WBR, Vadim Lazovskiy From nginx-forum на nginx.us Mon Aug 24 09:19:57 2015 From: nginx-forum на nginx.us (Vadim Osipov) Date: Mon, 24 Aug 2015 05:19:57 -0400 Subject: =?UTF-8?B?UmU6INCc0L3QvtCz0L7RgNCw0LfQvtCy0L7QtSDQv9C10YDQtdC90LDQv9GA0LA=?= =?UTF-8?B?0LLQu9C10L3QuNC1INC30LAg0YHRh9C10YIgZXJyb3IgcGFnZQ==?= In-Reply-To: References: Message-ID: <18e984257ad2289e1b3dbc9970cf9466.NginxMailingListRussian@forum.nginx.org> Спасибо ! Но, вы знаете, что-то не работает, хотя по документации должно и лимит не превышает. Я установил на уровне http, location изменил код возврата на 400 от сервера и все равно в location @go_for_default не переходит, а возвращает 404. Если у вас работает, не затруднит ли вас прислать конфигурацию ? Я даже логировал, в 2ю заходит, а в 3ю -нет :( Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261199,261200#msg-261200 From vadim.lazovskiy на gmail.com Mon Aug 24 11:29:20 2015 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Mon, 24 Aug 2015 14:29:20 +0300 Subject: =?UTF-8?B?UmU6INCc0L3QvtCz0L7RgNCw0LfQvtCy0L7QtSDQv9C10YDQtdC90LDQv9GA0LA=?= =?UTF-8?B?0LLQu9C10L3QuNC1INC30LAg0YHRh9C10YIgZXJyb3IgcGFnZQ==?= In-Reply-To: <18e984257ad2289e1b3dbc9970cf9466.NginxMailingListRussian@forum.nginx.org> References: <18e984257ad2289e1b3dbc9970cf9466.NginxMailingListRussian@forum.nginx.org> Message-ID: А еще у вас не видно: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_intercept_errors в вашем случае до обработки error_page просто не доходит. Если с обеими директивами не заработает, то смотрите debug log. 24 августа 2015 г., 12:19 пользователь Vadim Osipov написал: > Спасибо ! > Но, вы знаете, что-то не работает, хотя по документации должно и лимит не > превышает. > Я установил на уровне http, location изменил код возврата на 400 от сервера > и все равно в location @go_for_default не переходит, а возвращает 404. > Если у вас работает, не затруднит ли вас прислать конфигурацию ? > Я даже логировал, в 2ю заходит, а в 3ю -нет :( > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261199,261200#msg-261200 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- WBR, Vadim Lazovskiy From mdounin на mdounin.ru Mon Aug 24 16:01:29 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 24 Aug 2015 19:01:29 +0300 Subject: =?UTF-8?B?UmU6INCY0L3QvtCz0LTQsCDQutC10Ygg0YDQsNGB0YLQtdGCINGB0LLQtdGA0YUg?= =?UTF-8?B?0LvQuNC80LjRgtCw?= In-Reply-To: <55D48A74.6010406@csdoc.com> References: <20150813181920.GN37350@mdounin.ru> <20150817115731.GY37350@mdounin.ru> <55D2296D.1030101@csdoc.com> <20150817201020.GE37350@mdounin.ru> <55D2D34F.4070605@csdoc.com> <20150818113849.GG37350@mdounin.ru> <55D48A74.6010406@csdoc.com> Message-ID: <20150824160129.GZ37350@mdounin.ru> Hello! On Wed, Aug 19, 2015 at 04:53:56PM +0300, Gena Makhomed wrote: [...] > >Речь про блокировки отдельных элементов кеша, а не всей зоны > >разделяемой памяти. С зоны разделяемой памяти блокировку после > >падения процессов мы снимать умеем, см. ngx_shmtx_force_unlock(). > > "блокировка отдельных элементов кеша" - > это когда в структуре ngx_http_cache_s > установлен бит lock ? Нет, речь про поле count. При этом одновременно установленных блокировок может быть больше одной, и просто полем под pid - не обойдёшься. [...] -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Mon Aug 24 16:13:43 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 24 Aug 2015 19:13:43 +0300 Subject: =?UTF-8?B?UmU6INCY0L3QvtCz0LTQsCDQutC10Ygg0YDQsNGB0YLQtdGCINGB0LLQtdGA0YUg?= =?UTF-8?B?0LvQuNC80LjRgtCw?= In-Reply-To: References: <20150813181920.GN37350@mdounin.ru> <20150817115731.GY37350@mdounin.ru> Message-ID: <20150824161343.GA37350@mdounin.ru> Hello! On Wed, Aug 19, 2015 at 05:06:53PM +0300, kpoxa wrote: [...] > Максим, давно уже с вами обсуждали, что было бы хорошо применять политики > для cache loader к cache manager, чтобы последний не вешал систему > удалением очень большого числа файлов из кеша, сейчас это меня бы спасло, > может быть запланируете? Есть и другие кейсы, когда это полезно, например > при уменьшении размера кеша или уменьшении inactive в конфиге. Спасло - чем? Решить конкретную проблему с неочисткой старых элементов из кеша проще всего с помощью процедуры обновления nginx'а - кеш будет загружен заново, заблокированные ранее элементы будут разблокированы. Вопрос именно в том, почему элементы оказались заблокированы. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Mon Aug 24 16:51:45 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 24 Aug 2015 19:51:45 +0300 Subject: =?UTF-8?B?UmU6IFJlOiBSZTogbmdpbngg0Lgg0L/QvtGC0YDQtdCx0LvQtdC90LjQtSDQv9Cw?= =?UTF-8?B?0LzRj9GC0Lg=?= In-Reply-To: References: Message-ID: <20150824165145.GC37350@mdounin.ru> Hello! On Thu, Aug 20, 2015 at 03:28:04PM +0500, Amanda Sproule wrote: > >>Но в данном случае я не вижу повода, чтобы беспокоить уважаемого человека. > > Ну не видна логика, как можно не протестированный модуль пихать в > продакшен порт? По умолчанию соответствующий модуль не собирается. Это было вашим решением его собрать. > Второе, если на то пошло, то помечать как анстейбл или > экспериментал, что в первую очередь отпугнёт заядлых стейбл > продакшенистов. Специально для того, чтобы отличать - в опциях порта все 3rd party модули явно отмечены. Я в своё время не поленился, и сделал патч, реализующий это разделение - именно для того, чтобы можно было отличать. Следить за статусом и нюансами работы конкретных 3rd party модулей - скорее задача тех, кто эти модули пытается использовать. > В-третьих, раз уж речь зашла о 3rd party модулях, то > почему там нет всяких китайских поделок ? Всё на усмотрение много > уважаемого Сергея Осокина? AFAIK, Сергей без проблем принимает патчи с добавлением любых модулей, если это не ломает сборку. Если интересующих вас модулей нет - вероятно, вы забыли прислать патч. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Mon Aug 24 17:52:02 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 24 Aug 2015 20:52:02 +0300 Subject: =?UTF-8?B?UmU6INCd0LUg0L/QvtC70YPRh9Cw0LXRgtGB0Y8g0L7RgtC60LvRjtGH0LjRgtGM?= =?UTF-8?B?IEhUVFAt0LLQtdGA0YHQuNGOIEhUVFBTLdGB0LDQudGC0LA=?= In-Reply-To: <0b4fc64434b3b2b9827ed2012294b0e0.NginxMailingListRussian@forum.nginx.org> References: <0b4fc64434b3b2b9827ed2012294b0e0.NginxMailingListRussian@forum.nginx.org> Message-ID: <20150824175202.GD37350@mdounin.ru> Hello! On Fri, Aug 21, 2015 at 09:15:33AM -0400, alexandre_frolov wrote: > На довольно старом сервере есть HTTPS-сайт, работающий на порту 8181, > который также открывается на 80 порту. Хочу чтобы сайт открывался только на > порту 8181 и через HTTPS. > > Для этого закрыл комментарием строку "listen XX.XX.XX.XX;" как показано > ниже, однако это не привело к желаемому действию. После перезапуска nginx > сайт по-прежнему доступен на порту 80. > > На 81 порту работает Apache > FreeBSD 7.4 amd64, nginx version: nginx/1.2.1, конфигурация сайта > создавалась ISPmanager > > Подскажите, пожалуйста, в чем тут может быть проблема. > Спасибо! Скорее всего у вас где-то в конфигах закопан ещё один блок server{}, в котором присутствует listen 80 (или вообще отсутствет listen, что по умолчанию означает listen 80). Смотрите полный конфиг, nginx.conf. Непонимание обычно возникает, если смотреть на отдельные включаемые файлы, которые так любят использовать всякие автоматические системы управления конфигурацией. -- Maxim Dounin http://nginx.org/ From kpoxa на kpoxa.net Tue Aug 25 08:22:16 2015 From: kpoxa на kpoxa.net (kpoxa) Date: Tue, 25 Aug 2015 11:22:16 +0300 Subject: =?UTF-8?B?UmU6INCY0L3QvtCz0LTQsCDQutC10Ygg0YDQsNGB0YLQtdGCINGB0LLQtdGA0YUg?= =?UTF-8?B?0LvQuNC80LjRgtCw?= In-Reply-To: <20150824161343.GA37350@mdounin.ru> References: <20150813181920.GN37350@mdounin.ru> <20150817115731.GY37350@mdounin.ru> <20150824161343.GA37350@mdounin.ru> Message-ID: Добрый день. Спасло тем, что при загрузке после процедуры обновления или просто restart вызывают очистку диска, который становится загружен на 100% и на другие запросы отвечает с гигантскими задержками, если бы очиска диска шла с удалением loader_files файлов за loader_sleep секунд, то тормозов в это время (у меня это минут 10-15) не было бы. Я понимаю, что разобраться с причиной блокировок важно и поставил на 20 серверов nginx с патчем, как будут результаты непременно поделюсь. 24 августа 2015 г., 19:13 пользователь Maxim Dounin написал: > Hello! > > On Wed, Aug 19, 2015 at 05:06:53PM +0300, kpoxa wrote: > > [...] > > > Максим, давно уже с вами обсуждали, что было бы хорошо применять политики > > для cache loader к cache manager, чтобы последний не вешал систему > > удалением очень большого числа файлов из кеша, сейчас это меня бы спасло, > > может быть запланируете? Есть и другие кейсы, когда это полезно, например > > при уменьшении размера кеша или уменьшении inactive в конфиге. > > Спасло - чем? Решить конкретную проблему с неочисткой старых > элементов из кеша проще всего с помощью процедуры обновления > nginx'а - кеш будет загружен заново, заблокированные ранее > элементы будут разблокированы. Вопрос именно в том, почему > элементы оказались заблокированы. > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Kpoxa -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum на nginx.us Tue Aug 25 11:42:10 2015 From: nginx-forum на nginx.us (Denis76) Date: Tue, 25 Aug 2015 07:42:10 -0400 Subject: =?UTF-8?B?bmdpbngsIHVyaSDQuCDQuNCy0YDQuNGC?= Message-ID: <4ee3b00dab9094b2284f318b4afa9661.NginxMailingListRussian@forum.nginx.org> День добрый. Нужно написать реврайт для некоторый uri на иврите. В логе nginx обращения представлены в виде /%d7%a1%d7%9c%d7%99%d7%97%d7%94,+%d7%9e%d7%94+%d7%94%d7%a9%d7%a2%d7%94?!.html однако, если делаю что-то типа такого для теста: if ($uri = "/%d7%a1%d7%9c%d7%99%d7%97%d7%94,+%d7%9e%d7%94+%d7%94%d7%a9%d7%a2%d7%94?!.html") { return 403; } или map "$uri" $bad { "/%D7%A1%D7%9C%D7%99%D7%97%D7%94,+%D7%9E%D7%94+%D7%94%D7%A9%D7%A2%D7%94?!.html" "1"; } то правила не срабатывают. Как я понимаю проблема в экранировании некоторых символов, коих тут вижу ",%!?." какие из них должны быть экранированы и дело ли вообще в этом? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261223,261223#msg-261223 From nginx-forum на nginx.us Tue Aug 25 11:57:19 2015 From: nginx-forum на nginx.us (amatol15) Date: Tue, 25 Aug 2015 07:57:19 -0400 Subject: =?UTF-8?B?0JrRjdGI0LjRgNC+0LLQsNC90LjQtSDQsdGA0LDRg9C30LXRgNC+0Lw=?= Message-ID: <65f8700b3b93da09ee5007e233042c86.NginxMailingListRussian@forum.nginx.org> Добрый день Есть сайт, Nginx проксирует запросы к apache, находятся они на разных серверах. Нужно включить кэширование браузером картинок, после добавления location ~* ^.+\.(jpg|jpeg|gif|png|ico)$ { expires 60m; } Картинки вообще перестают отображатся, в чем может быть проблема? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261224,261224#msg-261224 From mdounin на mdounin.ru Tue Aug 25 12:17:46 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 25 Aug 2015 15:17:46 +0300 Subject: =?UTF-8?B?UmU6IG5naW54LCB1cmkg0Lgg0LjQstGA0LjRgg==?= In-Reply-To: <4ee3b00dab9094b2284f318b4afa9661.NginxMailingListRussian@forum.nginx.org> References: <4ee3b00dab9094b2284f318b4afa9661.NginxMailingListRussian@forum.nginx.org> Message-ID: <20150825121746.GF37350@mdounin.ru> Hello! On Tue, Aug 25, 2015 at 07:42:10AM -0400, Denis76 wrote: > День добрый. Нужно написать реврайт для некоторый uri на иврите. > В логе nginx обращения представлены в виде > /%d7%a1%d7%9c%d7%99%d7%97%d7%94,+%d7%9e%d7%94+%d7%94%d7%a9%d7%a2%d7%94?!.html > > однако, если делаю что-то типа такого для теста: > if ($uri = > "/%d7%a1%d7%9c%d7%99%d7%97%d7%94,+%d7%9e%d7%94+%d7%94%d7%a9%d7%a2%d7%94?!.html") > { > return 403; > } > или > map "$uri" $bad { > "/%D7%A1%D7%9C%D7%99%D7%97%D7%94,+%D7%9E%D7%94+%D7%94%D7%A9%D7%A2%D7%94?!.html" > "1"; > } > > то правила не срабатывают. Как я понимаю проблема в экранировании некоторых > символов, коих тут вижу ",%!?." какие из них должны быть экранированы и дело > ли вообще в этом? Значение переменной $uri - в раскодированном виде, т.е. проверять надо текст, а не %-escaped строку. Если хочется проверять ровно то значение, которое передал клиент, то следует использовать переменную $request_uri (note: включает в себя аргументы запроса). Документация тут: http://nginx.org/r/$uri http://nginx.org/r/$request_uri -- Maxim Dounin http://nginx.org/ From vbart на nginx.com Tue Aug 25 12:21:48 2015 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Tue, 25 Aug 2015 15:21:48 +0300 Subject: =?UTF-8?B?UmU6INCa0Y3RiNC40YDQvtCy0LDQvdC40LUg0LHRgNCw0YPQt9C10YDQvtC8?= In-Reply-To: <65f8700b3b93da09ee5007e233042c86.NginxMailingListRussian@forum.nginx.org> References: <65f8700b3b93da09ee5007e233042c86.NginxMailingListRussian@forum.nginx.org> Message-ID: <4190440.YYNM11Mdmr@vbart-workstation> On Tuesday 25 August 2015 07:57:19 amatol15 wrote: > Добрый день > Есть сайт, Nginx проксирует запросы к apache, находятся они на разных > серверах. Нужно включить кэширование браузером картинок, после добавления > location ~* ^.+\.(jpg|jpeg|gif|png|ico)$ { > expires 60m; > } > Картинки вообще перестают отображатся, в чем может быть проблема? В данном location у вас нет настроек, которые бы сообщали nginx о том, что запрос нужно проксировать к apache. Для каждого запроса nginx выбирает только один location. Подробнее: - http://nginx.org/r/location/ru - http://nginx.org/ru/docs/http/request_processing.html -- Валентин Бартенев From mdounin на mdounin.ru Tue Aug 25 12:24:47 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 25 Aug 2015 15:24:47 +0300 Subject: =?UTF-8?B?UmU6INCa0Y3RiNC40YDQvtCy0LDQvdC40LUg0LHRgNCw0YPQt9C10YDQvtC8?= In-Reply-To: <65f8700b3b93da09ee5007e233042c86.NginxMailingListRussian@forum.nginx.org> References: <65f8700b3b93da09ee5007e233042c86.NginxMailingListRussian@forum.nginx.org> Message-ID: <20150825122447.GG37350@mdounin.ru> Hello! On Tue, Aug 25, 2015 at 07:57:19AM -0400, amatol15 wrote: > Добрый день > Есть сайт, Nginx проксирует запросы к apache, находятся они на разных > серверах. Нужно включить кэширование браузером картинок, после добавления > location ~* ^.+\.(jpg|jpeg|gif|png|ico)$ { > expires 60m; > } > Картинки вообще перестают отображатся, в чем может быть проблема? В соответствии с директивами location nginx выбирает конфигурацию для обработки запроса. Ровно одну конфигурацию, ту, которая указана в наиболее специфичном location'е. В вашем случае для картинок это будет добавленный вами location с expires. Поскольку каких-либо директив кроме expires в этом location'е не содержится, для попавших в него запросов будет использован обработчик по умолчанию - т.е. они будут рассматриватся, как запросы к статическим файлам. Если вам нужно, чтобы эти запросы также отправлялись на бекенд, то следует в этом location'е продублировать proxy_pass на бекенд. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Aug 25 13:16:17 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 25 Aug 2015 16:16:17 +0300 Subject: =?UTF-8?B?UmU6INCY0L3QvtCz0LTQsCDQutC10Ygg0YDQsNGB0YLQtdGCINGB0LLQtdGA0YUg?= =?UTF-8?B?0LvQuNC80LjRgtCw?= In-Reply-To: References: <20150813181920.GN37350@mdounin.ru> <20150817115731.GY37350@mdounin.ru> <20150824161343.GA37350@mdounin.ru> Message-ID: <20150825131617.GK37350@mdounin.ru> Hello! On Tue, Aug 25, 2015 at 11:22:16AM +0300, kpoxa wrote: > Спасло тем, что при загрузке после процедуры обновления или просто restart > вызывают очистку диска, который становится загружен на 100% и на другие > запросы отвечает с гигантскими задержками, если бы очиска диска шла с > удалением loader_files файлов за loader_sleep секунд, то тормозов в это > время (у меня это минут 10-15) не было бы. А, в смысле - проблема с высокой нагрузкой на диск возникает после устранения исходной проблемы с неочисткой кеша, когда cache manager после перезапуска кидается навёрстывать упущенное ранее. Понятно, спасибо. Совсем напрямую применять настройки loader_files и т.п. для cache manager'а, наверное, будет не очень хорошо, т.к. кешей может быть больше одного, и следить надо за всеми одновременно. Но что-то с этим местом делать определённо надо. -- Maxim Dounin http://nginx.org/ From nginx-forum на nginx.us Tue Aug 25 14:37:20 2015 From: nginx-forum на nginx.us (paperroot) Date: Tue, 25 Aug 2015 10:37:20 -0400 Subject: =?UTF-8?B?0KXQvtGH0YMg0L3QsNC/0LjRgdCw0YLRjCDQv9Cw0YLRhw==?= Message-ID: <04407f1475ee73956db1c4449b90633a.NginxMailingListRussian@forum.nginx.org> Здравствуйте. Хочу написать патч, который будет отдавать контент предварительно setuid'ившись в системного пользователя указанного в конфиге virtual_host'a, для того чтобы обезопасить большое кол-во независимых проектов от разных пользователей, работающих на одном мощном сервере. Сделал правку в файле src/http/modules/ngx_http_static_module.c в функции ngx_http_static_handler. Суть правки: делается clone на участок кода: setgit(vh_gid); setuid(vh_uid); ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool); данная правка работает, но имеются проблемы со сторонними модулями, например pagespeed. Подскажите пожалуйста, где идеалогически правильнее делать такую правку, чтобы она дружила с другими модулями, или хотябы с модулем pagespeed. Спасибо. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261237,261237#msg-261237 From nginx-forum на nginx.us Tue Aug 25 14:46:14 2015 From: nginx-forum на nginx.us (amatol15) Date: Tue, 25 Aug 2015 10:46:14 -0400 Subject: =?UTF-8?B?UmU6INCa0Y3RiNC40YDQvtCy0LDQvdC40LUg0LHRgNCw0YPQt9C10YDQvtC8?= In-Reply-To: <20150825122447.GG37350@mdounin.ru> References: <20150825122447.GG37350@mdounin.ru> Message-ID: <662a3ce85480a46792d9e84400e67ce6.NginxMailingListRussian@forum.nginx.org> Спасибо. Но после добавления в этот location proxy_pass http://_IP_; Картинки отображаются но кэширование не работает. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261224,261238#msg-261238 From nstrannik на yandex.ru Tue Aug 25 17:54:47 2015 From: nstrannik на yandex.ru (=?koi8-r?B?98zBxMnNydI=?=) Date: Tue, 25 Aug 2015 20:54:47 +0300 Subject: nginx + lua Message-ID: <682351440525287@web28o.yandex.ru>   Добрый день! Заметил странное. Использую nginx-1.8 и lua5.1 На уровне http, указан access_by_lua_file, некоторый обработчик, который помимо прочего ведет статистику запросов. Однако, если в конфигурации какого-либо вирт-хоста, указан локейшен с кодом возврата, то этот запрос идет мимо обработчика access_by_lua_file. Т.Е, вообще. К примеру server {  server_name sample.org;  location /test/ {    return 410;  } ... скип ... в этом случае /test/ вообще не пройдет через access_by_lua_file :( И обращение к sample.org/test/ мы не учтем. Еще хотелось бы узнать, возможно ли в lua получить какие-то параметры загруженного файла конфигурации nginx-а? Вроде ngx.config но не параметры сборки, а параметры из текущего загруженного конфига nginx.conf. Вопрос встал, когда возникла необходимость в обработчике lua вести свой лог. При проверке конфигурации nginx -t -c /etc/nginx/nginx.conf происходит инициализация lua модуля, создается файл лога. Но вот проверка конфига идет с правами рута. Соответственно, и файл лога получает владельца - рута. А после рестарта nginx-а, воркер меняет пользователя (обычно на www-data в debian/ubuntu ), и модуль lua после рестарта не может записать в свой лог. Найти возможность получить параметр user из конфига nginx.conf стандартными средствами не удалось. Пришлось завести еще один параметр в конфиг модуля lua (не парсить же nginx.conf самому) Одинаковые параметры в разных конфигах - потенциальный источник ошибок imho Тем более что в запущенном nginx-е эта инфа где-то есть наверняка, может быть я плохо искал. From semenukha на gmail.com Tue Aug 25 18:37:39 2015 From: semenukha на gmail.com (Styopa Semenukha) Date: Tue, 25 Aug 2015 14:37:39 -0400 Subject: =?UTF-8?B?UmU6IFJlOiDQmtGN0YjQuNGA0L7QstCw0L3QuNC1INCx0YDQsNGD0LfQtdGA0L4=?= =?UTF-8?B?0Lw=?= In-Reply-To: <662a3ce85480a46792d9e84400e67ce6.NginxMailingListRussian@forum.nginx.org> References: <20150825122447.GG37350@mdounin.ru> <662a3ce85480a46792d9e84400e67ce6.NginxMailingListRussian@forum.nginx.org> Message-ID: <2204460.4kaWE2nsxC@tornado> Посмотрите на заголовки, отдаваемые бэкендом. Тут перечислены те, на которые нужно обратить внимание: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_valid On Tuesday, August 25, 2015 10:46:14 AM amatol15 wrote: > Спасибо. > Но после добавления в этот location > proxy_pass http://_IP_; Картинки отображаются но кэширование не работает. > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,261224,261238#msg-261238 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Styopa Semenukha. From annulen на yandex.ru Tue Aug 25 21:02:54 2015 From: annulen на yandex.ru (Konstantin Tokarev) Date: Wed, 26 Aug 2015 00:02:54 +0300 Subject: =?UTF-8?B?UmU6INCl0L7Rh9GDINC90LDQv9C40YHQsNGC0Ywg0L/QsNGC0Yc=?= In-Reply-To: <04407f1475ee73956db1c4449b90633a.NginxMailingListRussian@forum.nginx.org> References: <04407f1475ee73956db1c4449b90633a.NginxMailingListRussian@forum.nginx.org> Message-ID: <152291440536574@web28h.yandex.ru> 25.08.2015, 17:37, "paperroot" : > Здравствуйте. > > Хочу написать патч, который будет отдавать контент предварительно > setuid'ившись в системного пользователя указанного в конфиге virtual_host'a, > для того чтобы обезопасить большое кол-во независимых проектов от разных > пользователей, работающих на одном мощном сервере. > > Сделал правку в файле src/http/modules/ngx_http_static_module.c в функции > ngx_http_static_handler. > Суть правки: делается clone на участок кода: > > setgit(vh_gid); > setuid(vh_uid); > ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool); > > данная правка работает, но имеются проблемы со сторонними модулями, например > pagespeed. > > Подскажите пожалуйста, где идеалогически правильнее делать такую правку, > чтобы она дружила с другими модулями, или хотябы с модулем pagespeed. Мне кажется, что единственный идеологически верный путь - запускать по отдельной копии nginx для каждого виртуального хоста под соответствующим пользователем, и проксировать на них запросы с главного Nginx > > Спасибо. > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261237,261237#msg-261237 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Regards, Konstantin From chipitsine на gmail.com Wed Aug 26 07:54:24 2015 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Wed, 26 Aug 2015 12:54:24 +0500 Subject: =?UTF-8?B?UmU6INCl0L7Rh9GDINC90LDQv9C40YHQsNGC0Ywg0L/QsNGC0Yc=?= In-Reply-To: <04407f1475ee73956db1c4449b90633a.NginxMailingListRussian@forum.nginx.org> References: <04407f1475ee73956db1c4449b90633a.NginxMailingListRussian@forum.nginx.org> Message-ID: pagespeed - это странный модуль. если у вас ненагруженный сайт, мало трафика, вы спокойно проживете без него, если нагруженный, поверьте, манипуляции с контентом на лету - это не то, что вам захочется делать на нагруженном сайте. есть куча инструментов, которые оптимизируют статику, всякие бандлеры, jpegoptim, spriteme и т.д. 25 августа 2015 г., 19:37 пользователь paperroot написал: > Здравствуйте. > > Хочу написать патч, который будет отдавать контент предварительно > setuid'ившись в системного пользователя указанного в конфиге > virtual_host'a, > для того чтобы обезопасить большое кол-во независимых проектов от разных > пользователей, работающих на одном мощном сервере. > > Сделал правку в файле src/http/modules/ngx_http_static_module.c в функции > ngx_http_static_handler. > Суть правки: делается clone на участок кода: > > setgit(vh_gid); > setuid(vh_uid); > ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool); > > данная правка работает, но имеются проблемы со сторонними модулями, > например > pagespeed. > > Подскажите пожалуйста, где идеалогически правильнее делать такую правку, > чтобы она дружила с другими модулями, или хотябы с модулем pagespeed. > > Спасибо. > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,261237,261237#msg-261237 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From a.vasilishin на kpi.ua Wed Aug 26 08:35:50 2015 From: a.vasilishin на kpi.ua (=?UTF-8?B?0JDQvdC00YDQtdC5INCS0LDRgdC40LvQuNGI0LjQvQ==?=) Date: Wed, 26 Aug 2015 11:35:50 +0300 Subject: segfault at 0 ip 000000000042d9ae sp 00007ffdc4fe6e70 error 4 in nginx[400000+d4000] In-Reply-To: <55C8F532.10203@kpi.ua> References: <55C8F532.10203@kpi.ua> Message-ID: <55DD7A66.3090404@kpi.ua> Проблема воспроизводится в версии 1.8.0 # nginx -V nginx version: nginx/1.8.0 built by gcc 4.7.2 (Debian 4.7.2-5) built with OpenSSL 1.0.1e 11 Feb 2013 TLS SNI support enabled configure arguments: --prefix=/etc/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 --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-file-aio --with-http_spdy_module --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security' --with-ld-opt=-Wl,-z,relro --with-ipv6 --with-debug From nginx-forum на nginx.us Wed Aug 26 09:00:40 2015 From: nginx-forum на nginx.us (paperroot) Date: Wed, 26 Aug 2015 05:00:40 -0400 Subject: =?UTF-8?B?UmU6INCl0L7Rh9GDINC90LDQv9C40YHQsNGC0Ywg0L/QsNGC0Yc=?= In-Reply-To: <152291440536574@web28h.yandex.ru> References: <152291440536574@web28h.yandex.ru> Message-ID: <34c83e95fd0533081ffa1e49b25cf652.NginxMailingListRussian@forum.nginx.org> Konstantin Tokarev Wrote: ------------------------------------------------------- > 25.08.2015, 17:37, "paperroot" : > > Здравствуйте. > > > > Хочу написать патч, который будет отдавать контент предварительно > > setuid'ившись в системного пользователя указанного в конфиге > virtual_host'a, > > для того чтобы обезопасить большое кол-во независимых проектов от > разных > > пользователей, работающих на одном мощном сервере. > > > > Сделал правку в файле src/http/modules/ngx_http_static_module.c в > функции > > ngx_http_static_handler. > > Суть правки: делается clone на участок кода: > > > > setgit(vh_gid); > > setuid(vh_uid); > > ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool); > > > > данная правка работает, но имеются проблемы со сторонними модулями, > например > > pagespeed. > > > > Подскажите пожалуйста, где идеалогически правильнее делать такую > правку, > > чтобы она дружила с другими модулями, или хотябы с модулем > pagespeed. > > Мне кажется, что единственный идеологически верный путь - запускать по > отдельной > копии nginx для каждого виртуального хоста под соответствующим > пользователем, и > проксировать на них запросы с главного Nginx > > > > > Спасибо. > > > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,261237,261237#msg-261237 > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru на nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > -- > Regards, > Konstantin > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Да такой вариант тоже рассматривался, но он к сожалению довольно затратен по вычислительным ресурсам и слишком сложный для управления и сопровождения. Я лишь прошу подсказать "точку входа" для правки, т.к. чтение кода nginx и дебагинг с gdb не дали мне ответа на этот вопрос. Гугление тоже ничего не дало, нету описания архитектуры или схемы обработки сетевого подключения. Поэтому и решил задать вопрос здесь. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261237,261255#msg-261255 From kpoxa на kpoxa.net Wed Aug 26 10:21:15 2015 From: kpoxa на kpoxa.net (kpoxa) Date: Wed, 26 Aug 2015 13:21:15 +0300 Subject: =?UTF-8?B?UmU6INCl0L7Rh9GDINC90LDQv9C40YHQsNGC0Ywg0L/QsNGC0Yc=?= In-Reply-To: <34c83e95fd0533081ffa1e49b25cf652.NginxMailingListRussian@forum.nginx.org> References: <152291440536574@web28h.yandex.ru> <34c83e95fd0533081ffa1e49b25cf652.NginxMailingListRussian@forum.nginx.org> Message-ID: В вашем случае будет несколько процессов nginx под разными пользователями, но как.. как вы будете коннекту приказывать подключиться к тому или иному процессу, если на этапе коннекта вы не знаете к какому сайту будет запрос? 26 августа 2015 г., 12:00 пользователь paperroot написал: > Konstantin Tokarev Wrote: > ------------------------------------------------------- > > 25.08.2015, 17:37, "paperroot" : > > > Здравствуйте. > > > > > > Хочу написать патч, который будет отдавать контент предварительно > > > setuid'ившись в системного пользователя указанного в конфиге > > virtual_host'a, > > > для того чтобы обезопасить большое кол-во независимых проектов от > > разных > > > пользователей, работающих на одном мощном сервере. > > > > > > Сделал правку в файле src/http/modules/ngx_http_static_module.c в > > функции > > > ngx_http_static_handler. > > > Суть правки: делается clone на участок кода: > > > > > > setgit(vh_gid); > > > setuid(vh_uid); > > > ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool); > > > > > > данная правка работает, но имеются проблемы со сторонними модулями, > > например > > > pagespeed. > > > > > > Подскажите пожалуйста, где идеалогически правильнее делать такую > > правку, > > > чтобы она дружила с другими модулями, или хотябы с модулем > > pagespeed. > > > > Мне кажется, что единственный идеологически верный путь - запускать по > > отдельной > > копии nginx для каждого виртуального хоста под соответствующим > > пользователем, и > > проксировать на них запросы с главного Nginx > > > > > > > > Спасибо. > > > > > > Posted at Nginx Forum: > > http://forum.nginx.org/read.php?21,261237,261237#msg-261237 > > > > > > _______________________________________________ > > > nginx-ru mailing list > > > nginx-ru на nginx.org > > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > -- > > Regards, > > Konstantin > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru на nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > Да такой вариант тоже рассматривался, но он к сожалению довольно затратен > по > вычислительным ресурсам и слишком сложный для управления и сопровождения. > > Я лишь прошу подсказать "точку входа" для правки, т.к. чтение кода nginx и > дебагинг с gdb не дали мне ответа на этот вопрос. Гугление тоже ничего не > дало, нету описания архитектуры или схемы обработки сетевого подключения. > > Поэтому и решил задать вопрос здесь. > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,261237,261255#msg-261255 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Kpoxa -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum на nginx.us Wed Aug 26 10:26:23 2015 From: nginx-forum на nginx.us (Dremore) Date: Wed, 26 Aug 2015 06:26:23 -0400 Subject: =?UTF-8?B?cmVxdWVzdCBsaW1pdCDQstGL0YHRgtCw0LLQu9GP0LXRgiA1MDMg0YHRgtCw0YI=?= =?UTF-8?B?0YPRgSwg0L3QviDQt9Cw0L/RgNC+0YEg0LLRgdC1INGA0LDQstC90L4g0LI=?= =?UTF-8?B?0YvQv9C+0LvQvdGP0LXRgtGB0Y8=?= Message-ID: Добрый день, Имеется вот такая зона: limit_req_zone $proxy_add_x_forwarded_for zone=rest:30m rate=50r/s; И имеется вот такая конфигурация для server секции: limit_req zone=rest burst=50 nodelay; Есть нюанс, что запросы идут на лоад балансер секцию и дальше перенаправляются на выбранный сервер (другая секция), где они уже направляются на Томкат. Конфигурация для зоны прописана в секции для лоад балансера. При превышении числа запросов ожидаю 503 респонс от Nginx на входе, на самом же деле запрос все же выполняется сначала, и лишь затем, ему выставляется статус 503 с "правильным" телом запроса. Т.е. запрос выполняется, возвращает то, что нужно, но его статус выставлен в 503. Подскажите, почему это происходит, в чем может быть проблема? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261258,261258#msg-261258 From v.tolstov на selfip.ru Wed Aug 26 10:29:13 2015 From: v.tolstov на selfip.ru (Vasiliy Tolstov) Date: Wed, 26 Aug 2015 13:29:13 +0300 Subject: =?UTF-8?B?UmU6INCl0L7Rh9GDINC90LDQv9C40YHQsNGC0Ywg0L/QsNGC0Yc=?= In-Reply-To: <34c83e95fd0533081ffa1e49b25cf652.NginxMailingListRussian@forum.nginx.org> References: <152291440536574@web28h.yandex.ru> <34c83e95fd0533081ffa1e49b25cf652.NginxMailingListRussian@forum.nginx.org> Message-ID: 26 авг. 2015 г. 12:01 пользователь "paperroot" написал: > > Konstantin Tokarev Wrote: > ------------------------------------------------------- > > 25.08.2015, 17:37, "paperroot" : > > > Здравствуйте. > > > > > > Хочу написать патч, который будет отдавать контент предварительно > > > setuid'ившись в системного пользователя указанного в конфиге > > virtual_host'a, > > > для того чтобы обезопасить большое кол-во независимых проектов от > > разных > > > пользователей, работающих на одном мощном сервере. > > > > > > Сделал правку в файле src/http/modules/ngx_http_static_module.c в > > функции > > > ngx_http_static_handler. > > > Суть правки: делается clone на участок кода: > > > > > > setgit(vh_gid); > > > setuid(vh_uid); > > > ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool); > > > > > > данная правка работает, но имеются проблемы со сторонними модулями, > > например > > > pagespeed. > > > > > > Подскажите пожалуйста, где идеалогически правильнее делать такую > > правку, > > > чтобы она дружила с другими модулями, или хотябы с модулем > > pagespeed. > > > > Мне кажется, что единственный идеологически верный путь - запускать по > > отдельной > > копии nginx для каждого виртуального хоста под соответствующим > > пользователем, и > > проксировать на них запросы с главного Nginx > > > > > > > > Спасибо. > > > > > > Posted at Nginx Forum: > > http://forum.nginx.org/read.php?21,261237,261237#msg-261237 > > > > > > _______________________________________________ > > > nginx-ru mailing list > > > nginx-ru на nginx.org > > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > -- > > Regards, > > Konstantin > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru на nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > Да такой вариант тоже рассматривался, но он к сожалению довольно затратен по > вычислительным ресурсам и слишком сложный для управления и сопровождения. > Я видел такие решения у некоторых хостингов. Экономия выходит на спичках, а проблем становиться больше. Накладные расходы на каждый экземпляр nginx для пользователя несущественны. Не мучайтесь и не заводите себя в тупик. Сделайте каждому юзеру по nginx и все. > Я лишь прошу подсказать "точку входа" для правки, т.к. чтение кода nginx и > дебагинг с gdb не дали мне ответа на этот вопрос. Гугление тоже ничего не > дало, нету описания архитектуры или схемы обработки сетевого подключения. > > Поэтому и решил задать вопрос здесь. > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261237,261255#msg-261255 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From livingdeadzerg на yandex.ru Wed Aug 26 11:09:40 2015 From: livingdeadzerg на yandex.ru (navern) Date: Wed, 26 Aug 2015 14:09:40 +0300 Subject: =?UTF-8?B?UmU6INCl0L7Rh9GDINC90LDQv9C40YHQsNGC0Ywg0L/QsNGC0Yc=?= In-Reply-To: References: <152291440536574@web28h.yandex.ru> <34c83e95fd0533081ffa1e49b25cf652.NginxMailingListRussian@forum.nginx.org> Message-ID: <55DD9E74.4000009@yandex.ru> On 26.08.2015 13:29, Vasiliy Tolstov wrote: > > > 26 авг. 2015 г. 12:01 пользователь "paperroot" > написал: > > > > Konstantin Tokarev Wrote: > > ------------------------------------------------------- > > > 25.08.2015, 17:37, "paperroot" >: > > > > Здравствуйте. > > > > > > > > Хочу написать патч, который будет отдавать контент предварительно > > > > setuid'ившись в системного пользователя указанного в конфиге > > > virtual_host'a, > > > > для того чтобы обезопасить большое кол-во независимых проектов от > > > разных > > > > пользователей, работающих на одном мощном сервере. > > > > > > > > Сделал правку в файле src/http/modules/ngx_http_static_module.c в > > > функции > > > > ngx_http_static_handler. > > > > Суть правки: делается clone на участок кода: > > > > > > > > setgit(vh_gid); > > > > setuid(vh_uid); > > > > ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool); > > > > > > > > данная правка работает, но имеются проблемы со сторонними модулями, > > > например > > > > pagespeed. > > > > > > > > Подскажите пожалуйста, где идеалогически правильнее делать такую > > > правку, > > > > чтобы она дружила с другими модулями, или хотябы с модулем > > > pagespeed. > > > > > > Мне кажется, что единственный идеологически верный путь - запускать по > > > отдельной > > > копии nginx для каждого виртуального хоста под соответствующим > > > пользователем, и > > > проксировать на них запросы с главного Nginx > > > > > > > > > > > Спасибо. > > > > > > > > Posted at Nginx Forum: > > > http://forum.nginx.org/read.php?21,261237,261237#msg-261237 > > > > > > > > _______________________________________________ > > > > nginx-ru mailing list > > > > nginx-ru на nginx.org > > > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > -- > > > Regards, > > > Konstantin > > > > > > _______________________________________________ > > > nginx-ru mailing list > > > nginx-ru на nginx.org > > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > Да такой вариант тоже рассматривался, но он к сожалению довольно > затратен по > > вычислительным ресурсам и слишком сложный для управления и > сопровождения. > > > > Я видел такие решения у некоторых хостингов. Экономия выходит на > спичках, а проблем становиться больше. Накладные расходы на каждый > экземпляр nginx для пользователя несущественны. Не мучайтесь и не > заводите себя в тупик. Сделайте каждому юзеру по nginx и все. > > > Я лишь прошу подсказать "точку входа" для правки, т.к. чтение кода > nginx и > > дебагинг с gdb не дали мне ответа на этот вопрос. Гугление тоже > ничего не > > дало, нету описания архитектуры или схемы обработки сетевого > подключения. > > > > Поэтому и решил задать вопрос здесь. > > > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,261237,261255#msg-261255 > > > > _______________________________________________ > > 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, рекомендую взглянуть на книгу архитектура приложений с открытым исходным кодом: http://rus-linux.net/MyLDP/BOOKS/Architecture-Open-Source-Applications/Vol-2/14-nginx-1.html Там отдельная глава, посвященная nginx и принципам его работы. Во-вторых при реализации подобного решения нужно учитывать принципы работы nginx и его модель обработки соединений(epoll). Если в апаче есть мод itk и там для каждого соединения делается fork, внутри которого можно делать смену uid и это ограничивает для всяких PHP скриптов возможность записи в другие директории, то в nginx висит фиксированное число workers, которые обрабатывают все connect'ы. Даже если сделать setuid перед обработкой статики, а потом выходить, то никакого увеличения безопасности не будет. Уже не говорю про накладные расходы. По поводу несколько экземпляров nginx. Это тоже не вариант решения вопроса, так как если у вас два-три клиента, то это может и будет экономия на спичках, но если на одном сервере тысячи клиентов, то такое решение уже совсем не подходит. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From onokonem на gmail.com Wed Aug 26 11:25:04 2015 From: onokonem на gmail.com (Daniel Podolsky) Date: Wed, 26 Aug 2015 14:25:04 +0300 Subject: =?UTF-8?B?UmU6INCl0L7Rh9GDINC90LDQv9C40YHQsNGC0Ywg0L/QsNGC0Yc=?= In-Reply-To: <55DD9E74.4000009@yandex.ru> References: <152291440536574@web28h.yandex.ru> <34c83e95fd0533081ffa1e49b25cf652.NginxMailingListRussian@forum.nginx.org> <55DD9E74.4000009@yandex.ru> Message-ID: > но если на одном сервере тысячи клиентов, то такое решение уже совсем не подходит. да почему же? dedup страниц памяти на основании inode исполнимого файла/библиотеки не делся никуда же... From livingdeadzerg на yandex.ru Wed Aug 26 11:56:42 2015 From: livingdeadzerg на yandex.ru (navern) Date: Wed, 26 Aug 2015 14:56:42 +0300 Subject: =?UTF-8?B?UmU6INCl0L7Rh9GDINC90LDQv9C40YHQsNGC0Ywg0L/QsNGC0Yc=?= In-Reply-To: References: <152291440536574@web28h.yandex.ru> <34c83e95fd0533081ffa1e49b25cf652.NginxMailingListRussian@forum.nginx.org> <55DD9E74.4000009@yandex.ru> Message-ID: <55DDA97A.5020405@yandex.ru> On 26.08.2015 14:25, Daniel Podolsky wrote: >> но если на одном сервере тысячи клиентов, то такое решение уже совсем не подходит. > да почему же? dedup страниц памяти на основании inode исполнимого > файла/библиотеки не делся никуда же... > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Где-то такое видели уже в продакшене? Не тестировал, но уверен оверхед и накладные расходы(не говоря уж о количестве процессов и управлении всем этим) будут достаточно большие. Если где-то такое работает, то хотелось бы про это почитать. From onokonem на gmail.com Wed Aug 26 12:05:34 2015 From: onokonem на gmail.com (Daniel Podolsky) Date: Wed, 26 Aug 2015 15:05:34 +0300 Subject: =?UTF-8?B?UmU6INCl0L7Rh9GDINC90LDQv9C40YHQsNGC0Ywg0L/QsNGC0Yc=?= In-Reply-To: <55DDA97A.5020405@yandex.ru> References: <152291440536574@web28h.yandex.ru> <34c83e95fd0533081ffa1e49b25cf652.NginxMailingListRussian@forum.nginx.org> <55DD9E74.4000009@yandex.ru> <55DDA97A.5020405@yandex.ru> Message-ID: > Где-то такое видели уже в продакшене? Не тестировал, но уверен оверхед и > накладные расходы(не говоря уж о количестве процессов и управлении всем > этим) будут достаточно большие. Если где-то такое работает, то хотелось бы > про это почитать. такое - это какое? дедап? он приделан к ядру линуксовому уже давно. почитать - на вскидку только вот это: http://unix.stackexchange.com/questions/116327/loading-of-shared-libraries-and-ram-usage From livingdeadzerg на yandex.ru Wed Aug 26 12:15:14 2015 From: livingdeadzerg на yandex.ru (navern) Date: Wed, 26 Aug 2015 15:15:14 +0300 Subject: =?UTF-8?B?UmU6INCl0L7Rh9GDINC90LDQv9C40YHQsNGC0Ywg0L/QsNGC0Yc=?= In-Reply-To: References: <152291440536574@web28h.yandex.ru> <34c83e95fd0533081ffa1e49b25cf652.NginxMailingListRussian@forum.nginx.org> <55DD9E74.4000009@yandex.ru> <55DDA97A.5020405@yandex.ru> Message-ID: <55DDADD2.8030504@yandex.ru> On 26.08.2015 15:05, Daniel Podolsky wrote: >> Где-то такое видели уже в продакшене? Не тестировал, но уверен оверхед и >> накладные расходы(не говоря уж о количестве процессов и управлении всем >> этим) будут достаточно большие. Если где-то такое работает, то хотелось бы >> про это почитать. > такое - это какое? дедап? он приделан к ядру линуксовому уже давно. > > почитать - на вскидку только вот это: > http://unix.stackexchange.com/questions/116327/loading-of-shared-libraries-and-ram-usage > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Я понимаю, что такое dedup:) Такое - это более тысячи nginx бинарников, каждый запущенный из-под своего пользователя. From onokonem на gmail.com Wed Aug 26 12:38:13 2015 From: onokonem на gmail.com (Daniel Podolsky) Date: Wed, 26 Aug 2015 15:38:13 +0300 Subject: =?UTF-8?B?UmU6INCl0L7Rh9GDINC90LDQv9C40YHQsNGC0Ywg0L/QsNGC0Yc=?= In-Reply-To: <55DDADD2.8030504@yandex.ru> References: <152291440536574@web28h.yandex.ru> <34c83e95fd0533081ffa1e49b25cf652.NginxMailingListRussian@forum.nginx.org> <55DD9E74.4000009@yandex.ru> <55DDA97A.5020405@yandex.ru> <55DDADD2.8030504@yandex.ru> Message-ID: > Такое - это более тысячи nginx бинарников, каждый запущенный из-под своего > пользователя. нет, в проде я такого не видел, у меня другая специализация. но и препятствий к этому не вижу никаких переключения контекста современный проц уж как-нибудь отработает. правда, следует заметить, что запустить apache+suexec окажется, скорее всего, выгоднее From kpoxa на kpoxa.net Wed Aug 26 13:40:28 2015 From: kpoxa на kpoxa.net (kpoxa) Date: Wed, 26 Aug 2015 16:40:28 +0300 Subject: =?UTF-8?B?UmU6INCl0L7Rh9GDINC90LDQv9C40YHQsNGC0Ywg0L/QsNGC0Yc=?= In-Reply-To: <04407f1475ee73956db1c4449b90633a.NginxMailingListRussian@forum.nginx.org> References: <04407f1475ee73956db1c4449b90633a.NginxMailingListRussian@forum.nginx.org> Message-ID: Кстати, а опишите задачу полностью, наверняка решается без подобного кодоблудия. 25 августа 2015 г., 17:37 пользователь paperroot написал: > Здравствуйте. > > Хочу написать патч, который будет отдавать контент предварительно > setuid'ившись в системного пользователя указанного в конфиге > virtual_host'a, > для того чтобы обезопасить большое кол-во независимых проектов от разных > пользователей, работающих на одном мощном сервере. > > Сделал правку в файле src/http/modules/ngx_http_static_module.c в функции > ngx_http_static_handler. > Суть правки: делается clone на участок кода: > > setgit(vh_gid); > setuid(vh_uid); > ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool); > > данная правка работает, но имеются проблемы со сторонними модулями, > например > pagespeed. > > Подскажите пожалуйста, где идеалогически правильнее делать такую правку, > чтобы она дружила с другими модулями, или хотябы с модулем pagespeed. > > Спасибо. > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,261237,261237#msg-261237 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Kpoxa -------------- next part -------------- An HTML attachment was scrubbed... URL: From livingdeadzerg на yandex.ru Wed Aug 26 13:43:30 2015 From: livingdeadzerg на yandex.ru (navern) Date: Wed, 26 Aug 2015 16:43:30 +0300 Subject: =?UTF-8?B?UmU6INCl0L7Rh9GDINC90LDQv9C40YHQsNGC0Ywg0L/QsNGC0Yc=?= In-Reply-To: References: <152291440536574@web28h.yandex.ru> <34c83e95fd0533081ffa1e49b25cf652.NginxMailingListRussian@forum.nginx.org> <55DD9E74.4000009@yandex.ru> <55DDA97A.5020405@yandex.ru> <55DDADD2.8030504@yandex.ru> Message-ID: <55DDC282.4010206@yandex.ru> On 26.08.2015 15:38, Daniel Podolsky wrote: >> Такое - это более тысячи nginx бинарников, каждый запущенный из-под своего >> пользователя. > нет, в проде я такого не видел, у меня другая специализация. но и > препятствий к этому не вижу никаких переключения контекста современный > проц уж как-нибудь отработает. > > правда, следует заметить, что запустить apache+suexec окажется, скорее > всего, выгоднее > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Думаю есть разница между 40 воркерами для одного nginx и 4000 воркерами для двух тысяч клиентов на сервере(предположим в каждом кастомном экземпляре nginx будет по два воркера). Не выглядит это как производительное решение. В апаче есть mod_itk и там такой проблемы нет. Но там fork работает, поэтому что-то подобное проще сделать. Возможно есть кто-то еще, кто делал нечто подобное? From onokonem на gmail.com Wed Aug 26 13:47:37 2015 From: onokonem на gmail.com (Daniel Podolsky) Date: Wed, 26 Aug 2015 16:47:37 +0300 Subject: =?UTF-8?B?UmU6INCl0L7Rh9GDINC90LDQv9C40YHQsNGC0Ywg0L/QsNGC0Yc=?= In-Reply-To: <55DDC282.4010206@yandex.ru> References: <152291440536574@web28h.yandex.ru> <34c83e95fd0533081ffa1e49b25cf652.NginxMailingListRussian@forum.nginx.org> <55DD9E74.4000009@yandex.ru> <55DDA97A.5020405@yandex.ru> <55DDADD2.8030504@yandex.ru> <55DDC282.4010206@yandex.ru> Message-ID: > Не выглядит это как производительное решение. никто же не мешает просто взять и померять. From public-mail на alekciy.ru Wed Aug 26 13:50:00 2015 From: public-mail на alekciy.ru (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0KHRg9C90LTRg9C60L7Qsg==?=) Date: Wed, 26 Aug 2015 17:50:00 +0400 Subject: =?UTF-8?B?UmU6INCl0L7Rh9GDINC90LDQv9C40YHQsNGC0Ywg0L/QsNGC0Yc=?= In-Reply-To: <04407f1475ee73956db1c4449b90633a.NginxMailingListRussian@forum.nginx.org> References: <04407f1475ee73956db1c4449b90633a.NginxMailingListRussian@forum.nginx.org> Message-ID: >для того чтобы обезопасить большое кол-во независимых проектов от разных > пользователей, работающих на одном мощном сервере. nginx+php-fpm, каждый требующий изоляции проект заводится в своем pool-е (я для fpm при этом еще и chroot делаю). На корневую папку проекта ставим права 740, при этом nginx должен входить в группу которая имеет доступ к файлам проекта. Т.е. все решается без костылей на уровне конфигов и правильной расстановки прав на файлы. 25 августа 2015 г., 18:37 пользователь paperroot написал: > Здравствуйте. > > Хочу написать патч, который будет отдавать контент предварительно > setuid'ившись в системного пользователя указанного в конфиге > virtual_host'a, > для того чтобы обезопасить большое кол-во независимых проектов от разных > пользователей, работающих на одном мощном сервере. > > Сделал правку в файле src/http/modules/ngx_http_static_module.c в функции > ngx_http_static_handler. > Суть правки: делается clone на участок кода: > > setgit(vh_gid); > setuid(vh_uid); > ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool); > > данная правка работает, но имеются проблемы со сторонними модулями, > например > pagespeed. > > Подскажите пожалуйста, где идеалогически правильнее делать такую правку, > чтобы она дружила с другими модулями, или хотябы с модулем pagespeed. > > Спасибо. > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,261237,261237#msg-261237 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From alex.hha на gmail.com Wed Aug 26 13:54:02 2015 From: alex.hha на gmail.com (Alex Domoradov) Date: Wed, 26 Aug 2015 16:54:02 +0300 Subject: =?UTF-8?B?UmU6INCl0L7Rh9GDINC90LDQv9C40YHQsNGC0Ywg0L/QsNGC0Yc=?= In-Reply-To: References: <04407f1475ee73956db1c4449b90633a.NginxMailingListRussian@forum.nginx.org> Message-ID: > В апаче есть mod_itk и там такой проблемы нет. Но там fork работает, поэтому что-то подобное проще сделать. классная штука, только вот при использовании mod_fcgid, к сожалению, нельзя запустить сайт от пользователя отличного от apache. И это его самый большой минус пожалуй 2015-08-26 16:50 GMT+03:00 Алексей Сундуков : > >для того чтобы обезопасить большое кол-во независимых проектов от разных > > пользователей, работающих на одном мощном сервере. > > nginx+php-fpm, каждый требующий изоляции проект заводится в своем pool-е > (я для fpm при этом еще и chroot делаю). На корневую папку проекта ставим > права 740, при этом nginx должен входить в группу которая имеет доступ к > файлам проекта. Т.е. все решается без костылей на уровне конфигов и > правильной расстановки прав на файлы. > > 25 августа 2015 г., 18:37 пользователь paperroot > написал: > > Здравствуйте. >> >> Хочу написать патч, который будет отдавать контент предварительно >> setuid'ившись в системного пользователя указанного в конфиге >> virtual_host'a, >> для того чтобы обезопасить большое кол-во независимых проектов от разных >> пользователей, работающих на одном мощном сервере. >> >> Сделал правку в файле src/http/modules/ngx_http_static_module.c в функции >> ngx_http_static_handler. >> Суть правки: делается clone на участок кода: >> >> setgit(vh_gid); >> setuid(vh_uid); >> ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool); >> >> данная правка работает, но имеются проблемы со сторонними модулями, >> например >> pagespeed. >> >> Подскажите пожалуйста, где идеалогически правильнее делать такую правку, >> чтобы она дружила с другими модулями, или хотябы с модулем pagespeed. >> >> Спасибо. >> >> Posted at Nginx Forum: >> http://forum.nginx.org/read.php?21,261237,261237#msg-261237 >> >> _______________________________________________ >> 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 > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From citrin на citrin.ru Wed Aug 26 14:02:11 2015 From: citrin на citrin.ru (Anton Yuzhaninov) Date: Wed, 26 Aug 2015 17:02:11 +0300 Subject: =?UTF-8?B?UmU6INCl0L7Rh9GDINC90LDQv9C40YHQsNGC0Ywg0L/QsNGC0Yc=?= In-Reply-To: <04407f1475ee73956db1c4449b90633a.NginxMailingListRussian@forum.nginx.org> References: <04407f1475ee73956db1c4449b90633a.NginxMailingListRussian@forum.nginx.org> Message-ID: <55DDC6E3.5000501@citrin.ru> On 08/25/15 17:37, paperroot wrote: > Хочу написать патч, который будет отдавать контент предварительно > setuid'ившись в системного пользователя указанного в конфиге virtual_host'a, > для того чтобы обезопасить большое кол-во независимых проектов от разных > пользователей, работающих на одном мощном сервере. Лучше посмотреть в сторону POSIX ACL (setfacl) чтобы пользователю nginx можно было выдать права на чтение всех пользовательских файлов, при этом чтобы сами пользователи не могли читать файлы друг-друга. From alex.hha на gmail.com Wed Aug 26 14:30:20 2015 From: alex.hha на gmail.com (Alex Domoradov) Date: Wed, 26 Aug 2015 17:30:20 +0300 Subject: =?UTF-8?B?UmU6INCl0L7Rh9GDINC90LDQv9C40YHQsNGC0Ywg0L/QsNGC0Yc=?= In-Reply-To: <55DDC6E3.5000501@citrin.ru> References: <04407f1475ee73956db1c4449b90633a.NginxMailingListRussian@forum.nginx.org> <55DDC6E3.5000501@citrin.ru> Message-ID: Думаю, что в поддержке такая система потребует много времени. Я вот, например, использую примерно такую конструкцию ServerName staging.example.net ServerAlias *.example.net UseCanonicalName Off VirtualDocumentRoot /vhosts/example.net/%1 DirectoryIndex index.php index.html AssignUserFromPath "^/vhosts/example.net/([^/]+)" stg_$1 stg_$1 Options -Indexes AllowOverride All Order allow,deny Allow from all Все что нужно, это создать нового пользователя в системе. # useradd -s /sbin/nologin -d /vhosts/example.net/project1 stg_project1 единственный минус - нет возможности одновременно запускать несколько версий php, а часто бывает нужно. 2015-08-26 17:02 GMT+03:00 Anton Yuzhaninov : > On 08/25/15 17:37, paperroot wrote: > >> Хочу написать патч, который будет отдавать контент предварительно >> setuid'ившись в системного пользователя указанного в конфиге >> virtual_host'a, >> для того чтобы обезопасить большое кол-во независимых проектов от разных >> пользователей, работающих на одном мощном сервере. >> > > Лучше посмотреть в сторону POSIX ACL (setfacl) чтобы пользователю nginx > можно было выдать права на чтение всех пользовательских файлов, при этом > чтобы сами пользователи не могли читать файлы друг-друга. > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From wangsamp на gmail.com Wed Aug 26 15:25:36 2015 From: wangsamp на gmail.com (Oleksandr V. Typlyns'kyi) Date: Wed, 26 Aug 2015 18:25:36 +0300 (EEST) Subject: =?UTF-8?B?UmU6INCl0L7Rh9GDINC90LDQv9C40YHQsNGC0Ywg0L/QsNGC0Yc=?= In-Reply-To: <55DDC282.4010206@yandex.ru> References: <152291440536574@web28h.yandex.ru> <34c83e95fd0533081ffa1e49b25cf652.NginxMailingListRussian@forum.nginx.org> <55DD9E74.4000009@yandex.ru> <55DDA97A.5020405@yandex.ru> <55DDADD2.8030504@yandex.ru> <55DDC282.4010206@yandex.ru> Message-ID: Today Aug 26, 2015 at 16:43 navern wrote: > В апаче есть mod_itk и там такой проблемы нет. Но там fork работает, > поэтому что-то подобное проще сделать. И производительность с ним в 2-3 раза ниже, а число процессов вдвое выше. Ибо висят они изначально от root, а под каждый запрос делают fork. -- WNGS-RIPE From alex.hha на gmail.com Wed Aug 26 15:45:18 2015 From: alex.hha на gmail.com (Alex Domoradov) Date: Wed, 26 Aug 2015 18:45:18 +0300 Subject: =?UTF-8?B?UmU6INCl0L7Rh9GDINC90LDQv9C40YHQsNGC0Ywg0L/QsNGC0Yc=?= In-Reply-To: References: <152291440536574@web28h.yandex.ru> <34c83e95fd0533081ffa1e49b25cf652.NginxMailingListRussian@forum.nginx.org> <55DD9E74.4000009@yandex.ru> <55DDA97A.5020405@yandex.ru> <55DDADD2.8030504@yandex.ru> <55DDC282.4010206@yandex.ru> Message-ID: В рассылке mpm-itk выкладывали сравнения производительности, падение было 5-10%, так что 2-3 раза то вы загнули 2015-08-26 18:25 GMT+03:00 Oleksandr V. Typlyns'kyi : > Today Aug 26, 2015 at 16:43 navern wrote: > > > В апаче есть mod_itk и там такой проблемы нет. Но там fork работает, > > поэтому что-то подобное проще сделать. > > И производительность с ним в 2-3 раза ниже, а число процессов вдвое выше. > Ибо висят они изначально от root, а под каждый запрос делают fork. > -- > WNGS-RIPE > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From wangsamp на gmail.com Wed Aug 26 16:48:53 2015 From: wangsamp на gmail.com (Oleksandr V. Typlyns'kyi) Date: Wed, 26 Aug 2015 19:48:53 +0300 (EEST) Subject: =?UTF-8?B?UmU6INCl0L7Rh9GDINC90LDQv9C40YHQsNGC0Ywg0L/QsNGC0Yc=?= In-Reply-To: References: <152291440536574@web28h.yandex.ru> <34c83e95fd0533081ffa1e49b25cf652.NginxMailingListRussian@forum.nginx.org> <55DD9E74.4000009@yandex.ru> <55DDA97A.5020405@yandex.ru> <55DDADD2.8030504@yandex.ru> <55DDC282.4010206@yandex.ru> Message-ID: Today Aug 26, 2015 at 18:45 Alex Domoradov wrote: > В рассылке mpm-itk выкладывали сравнения производительности, падение было > 5-10%, так что 2-3 раза то вы загнули Это на обслуживании только динамики, где львиную долю занимает интерпретатор языка или сайта вцелом с кучей fork-ов на кучу картиночек? Я пробовал использовать его с apache 2.2 лет 7 назад и проседание производительности было существенным. -- WNGS-RIPE From mdounin на mdounin.ru Wed Aug 26 21:37:10 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 27 Aug 2015 00:37:10 +0300 Subject: =?UTF-8?B?UmU6IHJlcXVlc3QgbGltaXQg0LLRi9GB0YLQsNCy0LvRj9C10YIgNTAzINGB0YI=?= =?UTF-8?B?0LDRgtGD0YEsINC90L4g0LfQsNC/0YDQvtGBINCy0YHQtSDRgNCw0LLQvdC+?= =?UTF-8?B?INCy0YvQv9C+0LvQvdGP0LXRgtGB0Y8=?= In-Reply-To: References: Message-ID: <20150826213710.GB13309@mdounin.ru> Hello! On Wed, Aug 26, 2015 at 06:26:23AM -0400, Dremore wrote: > Добрый день, > > Имеется вот такая зона: > limit_req_zone $proxy_add_x_forwarded_for zone=rest:30m rate=50r/s; > > И имеется вот такая конфигурация для server секции: > limit_req zone=rest burst=50 nodelay; > > Есть нюанс, что запросы идут на лоад балансер секцию и дальше > перенаправляются на выбранный сервер (другая секция), где они уже > направляются на Томкат. Конфигурация для зоны прописана в секции для лоад > балансера. > > При превышении числа запросов ожидаю 503 респонс от Nginx на входе, на самом > же деле запрос все же выполняется сначала, и лишь затем, ему выставляется > статус 503 с "правильным" телом запроса. Т.е. запрос выполняется, возвращает > то, что нужно, но его статус выставлен в 503. Подскажите, почему это > происходит, в чем может быть проблема? Вероятно, вы с помощью error_page заворачиваете 503-и ошибки опять же на бекенд, без изменения запроса. Смотрите конфиг. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Thu Aug 27 03:48:13 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 27 Aug 2015 06:48:13 +0300 Subject: segfault at 0 ip 000000000042d9ae sp 00007ffdc4fe6e70 error 4 in nginx[400000+d4000] In-Reply-To: <55DD7A66.3090404@kpi.ua> References: <55C8F532.10203@kpi.ua> <55DD7A66.3090404@kpi.ua> Message-ID: <20150827034813.GF13309@mdounin.ru> Hello! On Wed, Aug 26, 2015 at 11:35:50AM +0300, Андрей Василишин wrote: > Проблема воспроизводится в версии 1.8.0 > # nginx -V > nginx version: nginx/1.8.0 [...] Чтение debug log'а наводит на мысль, что проблема во взаимодействии aio, проксирования с X-Accel-Redirect'ом и закрытия клиентом соединения в неподходящий момент. Я ещё буду смотреть/пробовать воспроизвести, сейчас для тестов имеет смысл прописать в конфиге "proxy_ignore_client_abort on;" и посмотреть, исчезнет ли проблема. -- Maxim Dounin http://nginx.org/ From paranoidchaos на gmail.com Fri Aug 28 08:13:04 2015 From: paranoidchaos на gmail.com (Amanda Sproule) Date: Fri, 28 Aug 2015 13:13:04 +0500 Subject: =?UTF-8?B?UmU6IFJlOiDQpdC+0YfRgyDQvdCw0L/QuNGB0LDRgtGMINC/0LDRgtGH?= Message-ID: >>Т.е. все решается без костылей на уровне конфигов и правильной расстановки прав на файлы. так и есть > для того чтобы обезопасить большое кол-во независимых проектов от разных > пользователей, работающих на одном мощном сервере. не вижу проблем с безопасностью када нджинкс работает под www и проксирует на разные бекенды с разными юид/гид-ами. Товаришь выше правильно описал - достаточно пихнуть нджинкс в общую группу с хостами и расставить права. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From a.vasilishin на kpi.ua Fri Aug 28 08:24:10 2015 From: a.vasilishin на kpi.ua (=?UTF-8?B?0JDQvdC00YDQtdC5INCS0LDRgdC40LvQuNGI0LjQvQ==?=) Date: Fri, 28 Aug 2015 11:24:10 +0300 Subject: segfault at 0 ip 000000000042d9ae sp 00007ffdc4fe6e70 error 4 in nginx[400000+d4000] In-Reply-To: <20150827034813.GF13309@mdounin.ru> References: <55C8F532.10203@kpi.ua> <55DD7A66.3090404@kpi.ua> <20150827034813.GF13309@mdounin.ru> Message-ID: <55E01AAA.2090409@kpi.ua> 27.08.2015 6:48, Maxim Dounin пишет: > Чтение debug log'а наводит на мысль, что проблема во > взаимодействии aio, проксирования с X-Accel-Redirect'ом и закрытия > клиентом соединения в неподходящий момент. > > Я ещё буду смотреть/пробовать воспроизвести, сейчас для тестов > имеет смысл прописать в конфиге "proxy_ignore_client_abort on;" и > посмотреть, исчезнет ли проблема. > Добавил "proxy_ignore_client_abort on; за ночь ни одного сигфолта. Спасибо, Максим, помогло! From public-mail на alekciy.ru Fri Aug 28 11:54:13 2015 From: public-mail на alekciy.ru (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0KHRg9C90LTRg9C60L7Qsg==?=) Date: Fri, 28 Aug 2015 15:54:13 +0400 Subject: =?UTF-8?B?UmU6IFJlOiDQpdC+0YfRgyDQvdCw0L/QuNGB0LDRgtGMINC/0LDRgtGH?= In-Reply-To: References: Message-ID: > достаточно пихнуть нджинкс в общую группу с хостами и расставить права. Я бы внес уточнения в формулировку. Не в какую-то ОДНУ общую группу, а в Х групп, где Х-количество системных аккаунтов из под которых работают vhost-ы. Тогда достаточно на корневую директорию vhost поставить 0740 и быть уверенным, что файлы внутри может читать только владелец и nginx при этом дальше по дереву директорий (при дефолном umask в 022) владелец без проблем меняет файлы, а nginx по прежнему имеет к ним доступ (касается ситуации, когда файлы закачали, к примеру, по ftp). -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum на nginx.us Fri Aug 28 12:07:32 2015 From: nginx-forum на nginx.us (Vadim Osipov) Date: Fri, 28 Aug 2015 08:07:32 -0400 Subject: =?UTF-8?B?UmU6INCc0L3QvtCz0L7RgNCw0LfQvtCy0L7QtSDQv9C10YDQtdC90LDQv9GA0LA=?= =?UTF-8?B?0LLQu9C10L3QuNC1INC30LAg0YHRh9C10YIgZXJyb3IgcGFnZQ==?= In-Reply-To: References: Message-ID: <45048e513cbeebb56725dbed14d35cd2.NginxMailingListRussian@forum.nginx.org> Спасибо, получилось. Просто не отписался. Самое интересное, в начале заработало, но не полностью. @go_for_default_to_server до него управление доходило, только если в нем не было proxy_pass, а был, скажем, return 200. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261199,261317#msg-261317 From paranoidchaos на gmail.com Fri Aug 28 13:07:47 2015 From: paranoidchaos на gmail.com (Amanda Sproule) Date: Fri, 28 Aug 2015 18:07:47 +0500 Subject: =?UTF-8?B?UmU6IFJlOiBSZTog0KXQvtGH0YMg0L3QsNC/0LjRgdCw0YLRjCDQv9Cw0YLRhw==?= Message-ID: >>Не в какую-то ОДНУ общую группу, а в Х групп, где Х-количество системных аккаунтов из под которых работают vhost-ы. /var/www/vhost1 - 740 - vhost1:www /var/www/vhost2 - 740 - vhost2:www /var/www/vhost3 - 740 - vhost3:www или так /var/www/vhost1 - 740 - vhost1:vhost1 /var/www/vhost2 - 740 - vhost2:vhost2 /var/www/vhost3 - 740 - vhost3:vhost3 и добавить пользователю нджинкса все юзер группы хостов. username: nginxuser group: (nginxuser,vhost1,vhost2,vhost3) пс: для первого варианта лучше ещё добавить для каждого vhost open_base_dir ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на nginx.us Fri Aug 28 13:28:23 2015 From: nginx-forum на nginx.us (chmoknutij) Date: Fri, 28 Aug 2015 09:28:23 -0400 Subject: =?UTF-8?B?0KDQsNC30LTQtdC70LXQvdC40LUg0L/QviBJUA==?= Message-ID: День добрый всем. Возникла необходимость спрятать доступ до административной части сайта за конкретный IP адрес. В данный момоент есть 4 зоны: some.domain.com/group1 some.domain.com/group2 some.domain.com/group3 some.domain.com/admin Посмотрел в конфиг, посмотрел в мануал Nginx-а, посмотрел в гугл и слепил что-то вроде этого, но не взлетело. А почему не взлетело, понять не могу. location ~ ^(\/admin\/.+\.php)$ { allow xxx.xxx.xxx.xxx; deny all; include fastcgi_params; fastcgi_pass unix:/tmp/php.sock; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } И сам конфиг (без этой части), который меня встретил и дал мне по щам: server { listen 80; listen 443 ssl; server_name some.domain.com; rewrite ^(.*)$ https://$server_name$1 permanent; ssl_protocols TLSv1.2 TLSv1.1 TLSv1; ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DE ssl_certificate /etc/nginx/certs/crt; ssl_certificate_key /etc/nginx/certs/key; ssl_trusted_certificate /etc/nginx/certs/trusted; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_stapling on; ssl_stapling_verify on; access_log /var/log/nginx/access.log main; error_log /var/log/nginx/error.log; root /home/user/www; location / { index index.php index.html index.htm; if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; break; } } location ~ ^(.+\.php)(.*)$ { include fastcgi_params; fastcgi_pass unix:/tmp/php.sock; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } location ~ /\.ht { deny all; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } Буду признателен, если кто-нибудь наведет меня на правильную мысль. С наилучшими. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261320,261320#msg-261320 From postmaster на softsearch.ru Fri Aug 28 18:46:20 2015 From: postmaster на softsearch.ru (=?Windows-1251?B?zOj14OjrIMzu7eD4uOI=?=) Date: Fri, 28 Aug 2015 21:46:20 +0300 Subject: =?UTF-8?B?UmU6INCg0LDQt9C00LXQu9C10L3QuNC1INC/0L4gSVA=?= In-Reply-To: References: Message-ID: <601110821.20150828214620@softsearch.ru> Здравствуйте. > Возникла необходимость спрятать доступ до административной части сайта за > конкретный IP адрес. > В данный момоент есть 4 зоны: > some.domain.com/group1 > some.domain.com/group2 > some.domain.com/group3 > some.domain.com/admin В конфиге они будут выглядеть так: location /group1 { ... } location /group2 { ... } location /group3 { ... } location /admin { allow xxx.xxx.xxx.xxx; deny all; ... } регэкспы в локейшнах городить не нужно, если на то нет ОСТРОЙ необходимости. Включите debug-лог и в нём видно будет как проходят запросы. Это поможет локализовать место с ошибкой. -- С уважением, Михаил mailto:postmaster на softsearch.ru From nginx-forum на nginx.us Mon Aug 31 07:03:16 2015 From: nginx-forum на nginx.us (chmoknutij) Date: Mon, 31 Aug 2015 03:03:16 -0400 Subject: =?UTF-8?B?UmU6INCg0LDQt9C00LXQu9C10L3QuNC1INC/0L4gSVA=?= In-Reply-To: <601110821.20150828214620@softsearch.ru> References: <601110821.20150828214620@softsearch.ru> Message-ID: Добрый день. Спасибо, за совет. Особенно - включить дебаг, почему я это не сделал с самого начала, я рационально объяснить не могу, но именно это мне помогло в результате. Еще раз спасибо. З.Ы. Регулярки изначально городил не я и пока не хочу их убирать. "Софт" не подконтролен полностью, а сапорт при этом сомнителен. С наилучшими. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261320,261329#msg-261329 From nginx-forum на nginx.us Mon Aug 31 13:14:35 2015 From: nginx-forum на nginx.us (lolyinseo) Date: Mon, 31 Aug 2015 09:14:35 -0400 Subject: =?UTF-8?B?0J3QtSDQvNC+0LPRgyDQv9C+0L3Rj9GC0Ywg0LvQvtCz0LjQutGD?= Message-ID: Пример конфига server { listen 80; server_name site.ru; root /home/www/site.ru; index index.php; location / { try_files $uri /index.php?$uri; } location /admin { try_files $uri /index.php?$uri; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } Я ожидаю, что поведение в location / и location /admin должно быть одинаковым. Но это не так, в папке /admin файлы .php не выполняются. Почему? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261332,261332#msg-261332 From dmitriy на lyalyuev.info Mon Aug 31 14:05:57 2015 From: dmitriy на lyalyuev.info (Dmitriy Lyalyuev) Date: Mon, 31 Aug 2015 17:05:57 +0300 Subject: =?UTF-8?B?UmU6INCd0LUg0LzQvtCz0YMg0L/QvtC90Y/RgtGMINC70L7Qs9C40LrRgw==?= In-Reply-To: References: Message-ID: <55E45F45.50106@lyalyuev.info> Вероятно потому, что рерайтится в корневой index.php. 31.08.2015 16:14, lolyinseo пишет: > Пример конфига > > server { > listen 80; > server_name site.ru; > > root /home/www/site.ru; > index index.php; > > location / { > try_files $uri /index.php?$uri; > } > > location /admin { > try_files $uri /index.php?$uri; > } > > # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 > # > location ~ \.php$ { > fastcgi_pass 127.0.0.1:9000; > fastcgi_index index.php; > fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; > include fastcgi_params; > } > } > > Я ожидаю, что поведение в location / и location /admin должно быть > одинаковым. Но это не так, в папке /admin файлы .php не выполняются. Почему? > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261332,261332#msg-261332 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum на nginx.us Mon Aug 31 17:11:47 2015 From: nginx-forum на nginx.us (drook) Date: Mon, 31 Aug 2015 13:11:47 -0400 Subject: SSI: flastmod, fsize In-Reply-To: References: Message-ID: <6f09440ccfdd5d1d9c1fe84d964a2b4a.NginxMailingListRussian@forum.nginx.org> И я, и я, слезши с apache, тоже этим опечален. Нас уже шестеро! :) Posted at Nginx Forum: http://forum.nginx.org/read.php?21,238064,261340#msg-261340