From nginx-forum на nginx.us Tue Nov 1 08:36:17 2011 From: nginx-forum на nginx.us (alexnginx) Date: Tue, 01 Nov 2011 04:36:17 -0400 Subject: Nginx + Apache + ssl Message-ID: Имеем сервер на Win 2008. На нём Апач + Nginx. Нужно настроить Nginx таким образом, чтобы шифрование выполнялось на Apache. Т.е. чтобы в конфигурации Nginx не нужно было указывать ключей шифрования, всё это будет указываться в настройках Apache. Можно ли сделать так чтобы все пакеты которые попадали на Nginx сразу перенаправлялись на порт Apache? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217592,217592#msg-217592 From mva на mva.name Tue Nov 1 08:42:45 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Tue, 01 Nov 2011 15:42:45 +0700 Subject: Nginx + Apache + ssl In-Reply-To: References: Message-ID: <1320136965.9523.2.camel@N900> а зачем тогда NginX? Ну и хотелось бы знать причины таких странных неестественных желаний... On вт 01 ноя 2011 15:36:17 KRAT, alexnginx wrote: > Имеем сервер на Win 2008. На нём Апач + Nginx. > Нужно настроить Nginx таким образом, > чтобы шифрование выполнялось на Apache. > Т.е. чтобы в конфигурации Nginx не нужно > было указывать ключей шифрования, всё > это будет указываться в настройках Apache. > Можно ли сделать так чтобы все пакеты > которые попадали на Nginx сразу > перенаправлялись на порт Apache? > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,217592,217592#msg-217592 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, mva From nginx-forum на nginx.us Tue Nov 1 09:00:26 2011 From: nginx-forum на nginx.us (alexnginx) Date: Tue, 01 Nov 2011 05:00:26 -0400 Subject: Nginx + Apache + ssl In-Reply-To: References: Message-ID: <5daaf8005de58ea0416a0742d124b782.NginxMailingListRussian@forum.nginx.org> Так можно или нет? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217592,217594#msg-217594 From igor на sysoev.ru Tue Nov 1 09:07:12 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Tue, 1 Nov 2011 13:07:12 +0400 Subject: Nginx + Apache + ssl In-Reply-To: <5daaf8005de58ea0416a0742d124b782.NginxMailingListRussian@forum.nginx.org> References: <5daaf8005de58ea0416a0742d124b782.NginxMailingListRussian@forum.nginx.org> Message-ID: Нет. -- Igor Sysoev 01.11.2011, в 13:00, "alexnginx" написал(а): > Так можно или нет? > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217592,217594#msg-217594 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum на nginx.us Tue Nov 1 09:35:57 2011 From: nginx-forum на nginx.us (alexnginx) Date: Tue, 01 Nov 2011 05:35:57 -0400 Subject: Nginx + Apache + ssl In-Reply-To: References: Message-ID: <285b1a063d028a30f828242f9be4d2c9.NginxMailingListRussian@forum.nginx.org> Спасибо за ответы. Тогда такой вопрос (незнаю стоит создавать новую тему или нет). Nginx использует для шифрования библиотеку Open SSL. Есть сведения что последняя версия Open SSL 1.0.0. поддерживает российские криптоалгоритмы ГОСТ. Где можно взять такую библиотеку с поддержкой российских криптоалгоритмов ГОСТ для Windows (установленная версия 1.0.0. при команде chipher не выдает алгоритмов GOST). На openssl.net всё сборки для *nix систем. Как прикрутить Open SSL 1.0.0. с поддержкой российских криптоалгоритмов ГОСТ к уже поставленному Nginx. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217592,217596#msg-217596 From rush.zlo на gmail.com Tue Nov 1 10:43:23 2011 From: rush.zlo на gmail.com (=?UTF-8?B?0JXQstCz0LXQvdC40LkgJ1J1c2gnINCd0LXQv9C+0LzQvdGP0YnQuNC5?=) Date: Tue, 1 Nov 2011 14:43:23 +0400 Subject: Nginx + Apache + ssl In-Reply-To: References: Message-ID: 1 ноября 2011 г. 12:36 пользователь alexnginx написал: > Имеем сервер на Win 2008. На нём Апач + Nginx. > Нужно настроить Nginx таким образом, Мусье знает толк в извращениях (с) -- Cogito ergo sum From nginx-forum на nginx.us Tue Nov 1 11:00:29 2011 From: nginx-forum на nginx.us (alexnginx) Date: Tue, 01 Nov 2011 07:00:29 -0400 Subject: Nginx + Apache + ssl In-Reply-To: References: Message-ID: <604ea377d7a52d7f6dbacd1e74a2a31b.NginxMailingListRussian@forum.nginx.org> давайте по теме... Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217592,217600#msg-217600 From rush.zlo на gmail.com Tue Nov 1 11:39:47 2011 From: rush.zlo на gmail.com (=?UTF-8?B?0JXQstCz0LXQvdC40LkgJ1J1c2gnINCd0LXQv9C+0LzQvdGP0YnQuNC5?=) Date: Tue, 1 Nov 2011 15:39:47 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQu9GM0L3QsNGPINC90LDQs9GA0YPQt9C60LAg0L3QsCDRgdC10YA=?= =?UTF-8?B?0LLQtdGALSDRgdGC0YDQuNC80LjQvdCzIEZMVg==?= In-Reply-To: <4EAE927E.5060504@kpi.ua> References: <4EA46544.80803@kpi.ua> <4EA46B98.8000404@kpi.ua> <4EA46ECC.5010001@kpi.ua> <4EA470B8.7020607@kpi.ua> <4EA5173C.6080608@itcraft.org> <4EA5293F.4060000@kpi.ua> <4EA52E00.1030401@itcraft.org> <4EA52F3D.9060100@kpi.ua> <4EA53069.4090304@itcraft.org> <4EA533B7.4050606@kpi.ua> <4EA549D0.1090801@csdoc.com> <4EA54F94.3090306@kpi.ua> <1777068947.20111029083614@coolcold.org> <4EAE5ACB.9060508@amhost.net> <4EAE927E.5060504@kpi.ua> Message-ID: 31 октября 2011 г. 16:20 пользователь Андрей Василишин написал: > Можно вынести окончательный вердикт? А то я как раз тут созрел сделать 4 > рейда по 2 диска, есть сервак где периодически 1 - 2 диска стают > перегруженными, а остальные - практически стоят. RAID5, а если дисков много то даже RAID6. Ну и конечно желательно избежать софтовых решений, прикупив что нибудь типа LSI Logic MegaRAID. -- Cogito ergo sum From vsjcfm на gmail.com Tue Nov 1 11:48:49 2011 From: vsjcfm на gmail.com (Sayetsky Anton) Date: Tue, 1 Nov 2011 13:48:49 +0200 Subject: =?UTF-8?B?UmU6INCh0LjQu9GM0L3QsNGPINC90LDQs9GA0YPQt9C60LAg0L3QsCDRgdC10YA=?= =?UTF-8?B?0LLQtdGALSDRgdGC0YDQuNC80LjQvdCzIEZMVg==?= In-Reply-To: References: <4EA46544.80803@kpi.ua> <4EA46B98.8000404@kpi.ua> <4EA46ECC.5010001@kpi.ua> <4EA470B8.7020607@kpi.ua> <4EA5173C.6080608@itcraft.org> <4EA5293F.4060000@kpi.ua> <4EA52E00.1030401@itcraft.org> <4EA52F3D.9060100@kpi.ua> <4EA53069.4090304@itcraft.org> <4EA533B7.4050606@kpi.ua> <4EA549D0.1090801@csdoc.com> <4EA54F94.3090306@kpi.ua> <1777068947.20111029083614@coolcold.org> <4EAE5ACB.9060508@amhost.net> <4EAE927E.5060504@kpi.ua> Message-ID: 1 ноября 2011 г. 13:39 пользователь Евгений 'Rush' Непомнящий написал: > RAID5, а если дисков много то даже RAID6. Ну и конечно желательно > избежать софтовых решений, прикупив что нибудь типа LSI Logic > MegaRAID. RAID6 и надеяться на скорость? Мсье знает толк в извращениях. From sales на edemnv.ru Tue Nov 1 11:56:22 2011 From: sales на edemnv.ru (=?koi8-r?B?88HXxczYxdcg4czFy9PBzsTS?=) Date: Tue, 1 Nov 2011 16:56:22 +0500 Subject: =?UTF-8?B?UkU6INCh0LjQu9GM0L3QsNGPINC90LDQs9GA0YPQt9C60LAg0L3QsCDRgdC10YA=?= =?UTF-8?B?0LLQtdGALSDRgdGC0YDQuNC80LjQvdCzIEZMVg==?= In-Reply-To: Message-ID: На мой взгляд самый быстрый это Raid 10 может кто и не согласиться. С Уважением, Савельев Александр -----Original Message----- From: nginx-ru-bounces на nginx.org [mailto:nginx-ru-bounces на nginx.org] On Behalf Of Sayetsky Anton Sent: Tuesday, November 01, 2011 4:49 PM To: nginx-ru на nginx.org Subject: Re: Сильная нагрузка на сервер- стриминг FLV 1 ноября 2011 г. 13:39 пользователь Евгений 'Rush' Непомнящий написал: > RAID5, а если дисков много то даже RAID6. Ну и конечно желательно > избежать софтовых решений, прикупив что нибудь типа LSI Logic > MegaRAID. RAID6 и надеяться на скорость? Мсье знает толк в извращениях. _______________________________________________ nginx-ru mailing list nginx-ru на nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru From vsjcfm на gmail.com Tue Nov 1 11:59:24 2011 From: vsjcfm на gmail.com (Sayetsky Anton) Date: Tue, 1 Nov 2011 13:59:24 +0200 Subject: =?UTF-8?B?UmU6INCh0LjQu9GM0L3QsNGPINC90LDQs9GA0YPQt9C60LAg0L3QsCDRgdC10YA=?= =?UTF-8?B?0LLQtdGALSDRgdGC0YDQuNC80LjQvdCzIEZMVg==?= In-Reply-To: References: Message-ID: 1 ноября 2011 г. 13:56 пользователь Савельев Александр написал: > На мой взгляд самый быстрый это Raid 10 может кто и не согласиться. Да, самый быстрый, но большой overhead. Так что оптимальным всё же является RAID5. From a.vasilishin на kpi.ua Tue Nov 1 12:14:54 2011 From: a.vasilishin на kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Tue, 01 Nov 2011 14:14:54 +0200 Subject: =?UTF-8?B?UmU6INCh0LjQu9GM0L3QsNGPINC90LDQs9GA0YPQt9C60LAg0L3QsCDRgdC10YA=?= =?UTF-8?B?0LLQtdGALSDRgdGC0YDQuNC80LjQvdCzIEZMVg==?= In-Reply-To: References: <4EA46544.80803@kpi.ua> <4EA46B98.8000404@kpi.ua> <4EA46ECC.5010001@kpi.ua> <4EA470B8.7020607@kpi.ua> <4EA5173C.6080608@itcraft.org> <4EA5293F.4060000@kpi.ua> <4EA52E00.1030401@itcraft.org> <4EA52F3D.9060100@kpi.ua> <4EA53069.4090304@itcraft.org> <4EA533B7.4050606@kpi.ua> <4EA549D0.1090801@csdoc.com> <4EA54F94.3090306@kpi.ua> <1777068947.20111029083614@coolcold.org> <4EAE5ACB.9060508@amhost.net> <4EAE927E.5060504@kpi.ua> Message-ID: <4EAFE2BE.107@kpi.ua> 01.11.2011 13:39, Евгений 'Rush' Непомнящий пишет: > 31 октября 2011 г. 16:20 пользователь Андрей Василишин > написал: >> Можно вынести окончательный вердикт? А то я как раз тут созрел сделать 4 >> рейда по 2 диска, есть сервак где периодически 1 - 2 диска стают >> перегруженными, а остальные - практически стоят. > > RAID5, а если дисков много то даже RAID6. Ну и конечно желательно > избежать софтовых решений, прикупив что нибудь типа LSI Logic > MegaRAID. > "Не читал, но осуждаю" (с) Евгений, Вы б тред для приличия прочитали чтоли -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From ola_nk на mail.ru Tue Nov 1 13:09:10 2011 From: ola_nk на mail.ru (ola) Date: Tue, 1 Nov 2011 16:09:10 +0300 Subject: =?UTF-8?B?0J3QtSDRgNCw0LHQvtGC0LDQtdGCIGluY2x1ZGUg0YEg0LzQsNGB0LrQvtC5ICo=?= Message-ID: <1796687024.20111101160910@mail.ru> Здравствуйте, Nginx-ru. # uname -a Linux ditel.ru 2.6.18-238.9.1.el5xen #1 SMP Tue Apr 12 18:53:56 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux # ./nginx -V nginx: nginx version: nginx/1.0.8 nginx: built by gcc 4.1.2 20080704 (Red Hat 4.1.2-51) nginx: configure arguments: --prefix=/data/test/nginx-1.0.8 --user=user1 --group=user1 --sbin-path=/data/test/nginx-1.0.8/nginx --with-cc-opt='-I /usr/local/include' --with-pcre=../pcre-8.12 --with-zlib=../zlib-1.2.5 --without-http_access_module --without-http_auth_basic_module --without-http_autoindex_module --without-http_browser_module --without-http_fastcgi_module --without-http_limit_req_module --without-http_limit_zone_module --without-http_memcached_module --without-http_scgi_module --without-http_split_clients_module --without-http_upstream_ip_hash_module --with-http_perl_module --with-http_random_index_module # cat conf/nginx.conf worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; map $uri $new { include map/*.map; } server { listen 127.0.0.1:80; server_name localhost; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } # ls conf/map/ default.map # cat conf/map/default.map default ''; # ./nginx -t nginx: [emerg] open() "/data/test/nginx-1.0.8/conf/map/*.map" failed (2: No such file or directory) in /data/test/nginx-1.0.8/conf/nginx.conf:16 nginx: configuration file /data/test/nginx-1.0.8/conf/nginx.conf test failed Что я не так делаю? -- С уважением, Ольга Н. From rush.zlo на gmail.com Tue Nov 1 13:17:11 2011 From: rush.zlo на gmail.com (=?UTF-8?B?0JXQstCz0LXQvdC40LkgJ1J1c2gnINCd0LXQv9C+0LzQvdGP0YnQuNC5?=) Date: Tue, 1 Nov 2011 17:17:11 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQu9GM0L3QsNGPINC90LDQs9GA0YPQt9C60LAg0L3QsCDRgdC10YA=?= =?UTF-8?B?0LLQtdGALSDRgdGC0YDQuNC80LjQvdCzIEZMVg==?= In-Reply-To: <4EAFE2BE.107@kpi.ua> References: <4EA46544.80803@kpi.ua> <4EA46B98.8000404@kpi.ua> <4EA46ECC.5010001@kpi.ua> <4EA470B8.7020607@kpi.ua> <4EA5173C.6080608@itcraft.org> <4EA5293F.4060000@kpi.ua> <4EA52E00.1030401@itcraft.org> <4EA52F3D.9060100@kpi.ua> <4EA53069.4090304@itcraft.org> <4EA533B7.4050606@kpi.ua> <4EA549D0.1090801@csdoc.com> <4EA54F94.3090306@kpi.ua> <1777068947.20111029083614@coolcold.org> <4EAE5ACB.9060508@amhost.net> <4EAE927E.5060504@kpi.ua> <4EAFE2BE.107@kpi.ua> Message-ID: 1 ноября 2011 г. 15:59 пользователь Sayetsky Anton написал: > Да, самый быстрый, но большой overhead. Так что оптимальным всё же > является RAID5. Абсолютно согласен. 1 ноября 2011 г. 15:48 пользователь Sayetsky Anton написал: > RAID6 и надеяться на скорость? Мсье знает толк в извращениях. 1 ноября 2011 г. 16:14 пользователь Андрей Василишин написал: > Евгений, Вы б тред для приличия прочитали чтоли Весь тред желания перечитывать нет, перечитал только топик-стартера. У меня абсолютно аналогичная ситуация как у него, только файлы бывают побольше, да трафика побольше. Raid5(6) на 15(16) винтах на одном и том же оборудовании - разницы в скорости __ровно ноль__, только на RAID5 один винт из 16 в hotspare, а на RAID6 на постоянку запущены все. А про надёжность винтов даже не начинайте, у нас таких хоронилищ шесть штук, на свалку начало перебираться уже третье поколение винтов. Думаем даже поставить эксперимент - не купить ли обычных "десктопных" винтов, ибо дешевле, а проработают может и столько же. -- Cogito ergo sum From mdounin на mdounin.ru Tue Nov 1 13:19:41 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 1 Nov 2011 17:19:41 +0400 Subject: =?UTF-8?B?UmU6INCd0LUg0YDQsNCx0L7RgtCw0LXRgiBpbmNsdWRlINGBINC80LDRgdC60L4=?= =?UTF-8?B?0LkgKg==?= In-Reply-To: <1796687024.20111101160910@mail.ru> References: <1796687024.20111101160910@mail.ru> Message-ID: <20111101131940.GG95664@mdounin.ru> Hello! On Tue, Nov 01, 2011 at 04:09:10PM +0300, ola wrote: [...] > map $uri $new { > include map/*.map; > } [...] > nginx: [emerg] open() "/data/test/nginx-1.0.8/conf/map/*.map" failed (2: No such file or directory) in /data/test/nginx-1.0.8/conf/nginx.conf:16 > nginx: configuration file /data/test/nginx-1.0.8/conf/nginx.conf test failed > > > Что я не так делаю? Внутри map{} обработка include отдельная, и shell globs там сейчас не поддерживаются. Maxim Dounin From ola_nk на mail.ru Tue Nov 1 13:25:19 2011 From: ola_nk на mail.ru (ola) Date: Tue, 1 Nov 2011 16:25:19 +0300 Subject: =?UTF-8?B?UmU6INCd0LUg0YDQsNCx0L7RgtCw0LXRgiBpbmNsdWRlINGBINC80LDRgdC60L4=?= =?UTF-8?B?0LkgKg==?= In-Reply-To: <20111101131940.GG95664@mdounin.ru> References: <1796687024.20111101160910@mail.ru> <20111101131940.GG95664@mdounin.ru> Message-ID: <1443702567.20111101162519@mail.ru> Здравствуйте, Maxim. Вы писали 1 ноября 2011 г., 16:19:41: > [...] >> map $uri $new { >> include map/*.map; >> } > [...] >> nginx: [emerg] open() "/data/test/nginx-1.0.8/conf/map/*.map" failed (2: No such file or directory) in /data/test/nginx-1.0.8/conf/nginx.conf:16 >> nginx: configuration file /data/test/nginx-1.0.8/conf/nginx.conf test failed >> >> >> Что я не так делаю? > Внутри map{} обработка include отдельная, и shell globs там сейчас > не поддерживаются. Планируется ли сделать поддержку shell globs в include внутри map{} в ближайших версиях? -- С уважением, Ольга Н. From mdounin на mdounin.ru Tue Nov 1 13:42:27 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 1 Nov 2011 17:42:27 +0400 Subject: =?UTF-8?B?UmU6INCd0LUg0YDQsNCx0L7RgtCw0LXRgiBpbmNsdWRlINGBINC80LDRgdC60L4=?= =?UTF-8?B?0LkgKg==?= In-Reply-To: <1443702567.20111101162519@mail.ru> References: <1796687024.20111101160910@mail.ru> <20111101131940.GG95664@mdounin.ru> <1443702567.20111101162519@mail.ru> Message-ID: <20111101134227.GH95664@mdounin.ru> Hello! On Tue, Nov 01, 2011 at 04:25:19PM +0300, ola wrote: > Здравствуйте, Maxim. > > Вы писали 1 ноября 2011 г., 16:19:41: > > > [...] > > >> map $uri $new { > >> include map/*.map; > >> } > > > [...] > > >> nginx: [emerg] open() "/data/test/nginx-1.0.8/conf/map/*.map" failed (2: No such file or directory) in /data/test/nginx-1.0.8/conf/nginx.conf:16 > >> nginx: configuration file /data/test/nginx-1.0.8/conf/nginx.conf test failed > >> > >> > >> Что я не так делаю? > > > Внутри map{} обработка include отдельная, и shell globs там сейчас > > не поддерживаются. > > Планируется ли сделать поддержку shell globs в include внутри map{} в > ближайших версиях? Возможно. Maxim Dounin From nginx-forum на nginx.us Tue Nov 1 14:57:43 2011 From: nginx-forum на nginx.us (Lsync) Date: Tue, 01 Nov 2011 10:57:43 -0400 Subject: =?UTF-8?B?UmU6IHtXaW5kb3dzXSDQn9C+0YHQu9C1INC90LXRgdC60L7Qu9GM0LrQuNGFINGA?= =?UTF-8?B?0LXRgdGC0LDRgNGC0L7QsiDRgdC10YDQstC10YAg0LfQsNCy0LjRgdCw0LU=?= =?UTF-8?B?0YIg0L/RgNC4INC30LDQv9GA0L7RgdCw0YUg0LogcGhw?= In-Reply-To: <20110916102808.GL1137@mdounin.ru> References: <20110916102808.GL1137@mdounin.ru> Message-ID: Maxim Dounin Wrote: ------------------------------------------------------- > Использование более одного рабочего процесса под Windows сейчас бессмысленно. AFAIK, к > проблемам это приводить не должно... Похоже, всё-таки приводит. Сегодня столкнутлся с той же проблемой, что и ТС. Windows XP Pro SP3, nginx попробовал четырех разных версий (пару последних, пару стабильных: 1.1.7, 1.1.6, 1.0.8, 0.7.69) - строго одно и то же, перестает отвечать на запросы либо после перезагрузки, либо через произвольное время. За nginx у меня стоит JBoss, и проблема точно не в его зависании - запросы напрямую на 8080 (nginx проксирует с 80 на 8080) отрабатываются отлично в то время, когда nginx уже висит. Временно решил проблему переходом на лайти (вполне помогло), но затем наткнулся на этот топик. Исправил, вернулся на nginx, спасибо, Максим. > > error_log logs/error.log debug; > > Вот туда имеет смысл заглянуть при возникновении проблем. Туда ничего при таком зависании не выводится (самое обидное), что и позволило успешно убить впустую несколько часов при поиске проблемы. С уважением, Валентин Posted at Nginx Forum: http://forum.nginx.org/read.php?21,215292,217642#msg-217642 From igor на sysoev.ru Tue Nov 1 14:58:44 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Tue, 1 Nov 2011 18:58:44 +0400 Subject: nginx-1.0.9 Message-ID: <20111101145844.GC89884@nginx.com> Изменения в nginx 1.0.9 01.11.2011 *) Изменение: теперь символы 0x7F-0xFF в access_log записываются в виде \xXX. *) Изменение: SIGWINCH сигнал теперь работает только в режиме демона. *) Добавление: директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers" теперь поддерживают значения X-Accel-Limit-Rate, X-Accel-Buffering и X-Accel-Charset. *) Добавление: уменьшение потребления памяти при использовании SSL. *) Добавление: теперь на NetBSD поддерживаются accept фильтры. *) Добавление: директивы uwsgi_buffering и scgi_buffering. Спасибо Peter Smit. *) Исправление: на старте или во время переконфигурации происходил segmentation fault, если директива ssl использовалась на уровне http и не был указан ssl_certificate. *) Исправление: некоторые UTF-8 символы обрабатывались неправильно. Спасибо Алексею Куцу. *) Исправление: директивы модуля ngx_http_rewrite_module, заданные на уровне server, применялись повторно, если для запроса не находилось ни одного location'а. *) Исправление: при использовании "aio sendfile" могла происходить утечка сокетов. *) Исправление: при использовании файлового AIO соединения с быстрыми клиентами могли быть закрыты по истечению send_timeout. *) Исправление: в модуле ngx_http_autoindex_module. *) Исправление: модуль ngx_http_mp4_module не поддерживал перемотку на 32-битных платформах. *) Исправление: при использовании proxy_cache_bypass могли быть закэшированы некэшируемые ответы. Спасибо John Ferlito. *) Исправление: закэшированные ответы с пустым телом возвращались некорректно; ошибка появилась в 0.8.31. *) Исправление: ответы с кодом 201 модуля ngx_http_dav_module были некорректны; ошибка появилась в 0.8.32. *) Исправление: в директиве return. *) Исправление: директивы ssl_verify_client, ssl_verify_depth и ssl_prefer_server_cipher могли работать некорректно, если использовался SNI. -- Игорь Сысоев http://sysoev.ru From mva на mva.name Tue Nov 1 15:05:16 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Tue, 01 Nov 2011 22:05:16 +0700 Subject: nginx-1.0.9 In-Reply-To: <20111101145844.GC89884@nginx.com> References: <20111101145844.GC89884@nginx.com> Message-ID: <1320159916.1973.2.camel@N900> А в 1.1 ветку эти изменения попадут только к следующему релизу? ;) On вт 01 ноя 2011 21:58:44 KRAT, Igor Sysoev wrote: > Изменения в nginx 1.0.9                                                                                  > 01.11.2011 > >        *) Изменение: теперь символы 0x7F-0xFF в access_log записываются в > виде            \xXX. > >        *) Изменение: SIGWINCH сигнал теперь работает только в режиме демона. > >        *) Добавление: директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers" >              теперь поддерживают значения X-Accel-Limit-Rate, > X-Accel-Buffering и            X-Accel-Charset. > >        *) Добавление: уменьшение потребления памяти при использовании SSL. > >        *) Добавление: теперь на NetBSD поддерживаются accept фильтры. > >        *) Добавление: директивы uwsgi_buffering и scgi_buffering. >              Спасибо Peter Smit. > >        *) Исправление: на старте или во время переконфигурации происходил >              segmentation fault, если директива ssl использовалась на уровне > http            и не был указан ssl_certificate. > >        *) Исправление: некоторые UTF-8 символы обрабатывались неправильно. >              Спасибо Алексею Куцу. > >        *) Исправление: директивы модуля ngx_http_rewrite_module, заданные на >              уровне server, применялись повторно, если для запроса не > находилось            ни одного location'а. > >        *) Исправление: при использовании "aio sendfile" могла происходить >              утечка сокетов. > >        *) Исправление: при использовании файлового AIO соединения с быстрыми >              клиентами могли быть закрыты по истечению send_timeout. > >        *) Исправление: в модуле ngx_http_autoindex_module. > >        *) Исправление: модуль ngx_http_mp4_module не поддерживал перемотку > на            32-битных платформах. > >        *) Исправление: при использовании proxy_cache_bypass могли быть >              закэшированы некэшируемые ответы. >              Спасибо John Ferlito. > >        *) Исправление: закэшированные ответы с пустым телом возвращались >              некорректно; ошибка появилась в 0.8.31. > >        *) Исправление: ответы с кодом 201 модуля ngx_http_dav_module были >              некорректны; ошибка появилась в 0.8.32. > >        *) Исправление: в директиве return. > >        *) Исправление: директивы ssl_verify_client, ssl_verify_depth и >              ssl_prefer_server_cipher могли работать некорректно, если >              использовался SNI. > > > -- > Игорь Сысоев > http://sysoev.ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, mva From igor на sysoev.ru Tue Nov 1 15:06:32 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Tue, 1 Nov 2011 19:06:32 +0400 Subject: nginx-1.0.9 In-Reply-To: <1320159916.1973.2.camel@N900> References: <20111101145844.GC89884@nginx.com> <1320159916.1973.2.camel@N900> Message-ID: <20111101150632.GF89884@nginx.com> On Tue, Nov 01, 2011 at 10:05:16PM +0700, Мисбах-Соловь?в Вадим wrote: > А в 1.1 ветку эти изменения попадут только к следующему релизу? ;) Наоборот. В 1.1 они уже, а многие и давно, есть. -- Игорь Сысоев http://sysoev.ru From mdounin на mdounin.ru Tue Nov 1 15:08:10 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 1 Nov 2011 19:08:10 +0400 Subject: =?UTF-8?B?UmU6IHtXaW5kb3dzXSDQn9C+0YHQu9C1INC90LXRgdC60L7Qu9GM0LrQuNGFINGA?= =?UTF-8?B?0LXRgdGC0LDRgNGC0L7QsiDRgdC10YDQstC10YAg0LfQsNCy0LjRgdCw0LU=?= =?UTF-8?B?0YIg0L/RgNC4INC30LDQv9GA0L7RgdCw0YUg0LogcGhw?= In-Reply-To: References: <20110916102808.GL1137@mdounin.ru> Message-ID: <20111101150810.GJ95664@mdounin.ru> Hello! On Tue, Nov 01, 2011 at 10:57:43AM -0400, Lsync wrote: > Maxim Dounin Wrote: > ------------------------------------------------------- > > Использование более одного рабочего > процесса под Windows сейчас бессмысленно. > AFAIK, к > > проблемам это приводить не должно... > > Похоже, всё-таки приводит. Сегодня Да, приводит. Это письмо было написано 16 сентября, с тех пор тут этот вопрос уже как минимум один раз обсуждали. Чтобы к проблемам не приводило - можно выключить accept_mutex. Но бессмысленность от этого не исчезнет. Maxim Dounin From a.vasilishin на kpi.ua Tue Nov 1 15:45:38 2011 From: a.vasilishin на kpi.ua (=?UTF-8?B?0JDQvdC00YDQtdC5INCS0LDRgdC40LvQuNGI0LjQvQ==?=) Date: Tue, 01 Nov 2011 17:45:38 +0200 Subject: =?UTF-8?B?0JLQu9C+0LbQtdC90L3QvdGL0Lkg0LvQvtC60LXQudGI0L0g0LLQvdGD0YLRgNC4?= =?UTF-8?B?INC40LzQtdC90L7QstCw0L3QvdC+0LPQviDQu9C+0LrQtdC50YjQuNC90LA=?= Message-ID: <4EB01422.7090204@kpi.ua> Как сделать возможным сабж. или как сделать альтернативный конфиг? Reloading nginx configuration: nginx: [emerg] location "\.flv$" could not be inside the named location "@sata" in /etc/nginx/sites-enabled/site.com.conf:54 # nginx -V nginx: nginx version: nginx/1.1.3 nginx: configure arguments: --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-debug --with-file-aio --with-http_flv_module --with-http_mp4_module --with-http_geoip_module --with-http_realip_module --with-http_secure_link_module --with-http_stub_status_module --without-http_memcached_module --without-http_scgi_module --without-http_split_clients_module --without-http_uwsgi_module -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From nginx-forum на nginx.us Tue Nov 1 16:18:38 2011 From: nginx-forum на nginx.us (vnagara) Date: Tue, 01 Nov 2011 12:18:38 -0400 Subject: =?UTF-8?B?UmU6IFtCdWddINCf0LDRgNCw0LzQtdGC0YAgZmFzdGNnaSBwYXJhbSBQSFAgVkFM?= =?UTF-8?B?VUUg0LLQu9C40Y/QtdGCINC90LAg0L7RgdGC0LDQu9GM0L3Ri9C1INGB0LU=?= =?UTF-8?B?0YDQstC10YDQsA==?= In-Reply-To: <1a88eb9b83db9ba8a84bd809f0d1e069.NginxMailingListRussian@forum.nginx.org> References: <1a88eb9b83db9ba8a84bd809f0d1e069.NginxMailingListRussian@forum.nginx.org> Message-ID: <36fa97db85c7584a7c55d22f40af259f.NginxMailingListRussian@forum.nginx.org> Ребята, мне кто-то что-то ответит? Увидел ли кто-то из программеров баг. Когда будут им заниматься? Нада ли доп. информация? П.С. Это мой первый пост. А баг уже давно (более 6-ти мес.), не пойму как его никто до меня не заметил? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217542,217657#msg-217657 From mdounin на mdounin.ru Tue Nov 1 16:37:03 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 1 Nov 2011 20:37:03 +0400 Subject: =?UTF-8?B?UmU6IFtCdWddINCf0LDRgNCw0LzQtdGC0YAgZmFzdGNnaSBwYXJhbSBQSFAgVkFM?= =?UTF-8?B?VUUg0LLQu9C40Y/QtdGCINC90LAg0L7RgdGC0LDQu9GM0L3Ri9C1INGB0LU=?= =?UTF-8?B?0YDQstC10YDQsA==?= In-Reply-To: <36fa97db85c7584a7c55d22f40af259f.NginxMailingListRussian@forum.nginx.org> References: <1a88eb9b83db9ba8a84bd809f0d1e069.NginxMailingListRussian@forum.nginx.org> <36fa97db85c7584a7c55d22f40af259f.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111101163703.GL95664@mdounin.ru> Hello! On Tue, Nov 01, 2011 at 12:18:38PM -0400, vnagara wrote: > Ребята, мне кто-то что-то ответит? > Увидел ли кто-то из программеров баг. > Когда будут им заниматься? Нада ли доп. > информация? > > П.С. Это мой первый пост. А баг уже давно > (более 6-ти мес.), не пойму как его никто > до меня не заметил? Судя по описанию, проблема не в nginx'е, а в php. Похоже на то, что выставленные через PHP_VALUE значения остаются для конкретного процесса php (и используются при следующих запросах в этом же процессе). Нужно убедится, что nginx передаёт fastcgi_param PHP_VALUE в тех запросах, в которых должен, и не передаёт там где не должен. Это можно сделать, например, с помощью tcpdump'а. Если всё действительно так (nginx передаёт всё правильно, а php обрабатывает не так, как вы ожидаете) - то идти разбираться с php. Maxim Dounin From mva на mva.name Tue Nov 1 16:42:37 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Tue, 01 Nov 2011 23:42:37 +0700 Subject: =?UTF-8?B?UmU6IFtCdWddINCf0LDRgNCw0LzQtdGC0YAgZmFzdGNnaSBwYXJhbSBQSFAgVkFM?= =?UTF-8?B?VUUg0LLQu9C40Y/QtdGCINC90LAg0L7RgdGC0LDQu9GM0L3Ri9C1INGB0LU=?= =?UTF-8?B?0YDQstC10YDQsA==?= In-Reply-To: <20111101163703.GL95664@mdounin.ru> References: <1a88eb9b83db9ba8a84bd809f0d1e069.NginxMailingListRussian@forum.nginx.org> <36fa97db85c7584a7c55d22f40af259f.NginxMailingListRussian@forum.nginx.org> <20111101163703.GL95664@mdounin.ru> Message-ID: <1320165757.1973.8.camel@N900> либо передавать пустой там где не надо ;) Но это костыль. On вт 01 ноя 2011 23:37:03 KRAT, Maxim Dounin wrote: > Hello! > > On Tue, Nov 01, 2011 at 12:18:38PM -0400, vnagara wrote: > > > Ребята, мне кто-то что-то ответит? > > Увидел ли кто-то из программеров баг. > > Когда будут им заниматься? Нада ли доп. > > информация? > > > > П.С. Это мой первый пост. А баг уже давно > > (более 6-ти мес.), не пойму как его никто > > до меня не заметил? > > Судя по описанию, проблема не в nginx'е, а в php.  Похоже на то, > что выставленные через PHP_VALUE значения остаются для конкретного > процесса php (и используются при следующих запросах в этом же > процессе). > > Нужно убедится, что nginx передаёт fastcgi_param PHP_VALUE в тех > запросах, в которых должен, и не передаёт там где не должен.  Это > можно сделать, например, с помощью tcpdump'а. > > Если всё действительно так (nginx передаёт всё правильно, а > php обрабатывает не так, как вы ожидаете) - то идти разбираться с > php. > > Maxim Dounin > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, mva From nginx-forum на nginx.us Tue Nov 1 16:55:44 2011 From: nginx-forum на nginx.us (xoper) Date: Tue, 01 Nov 2011 12:55:44 -0400 Subject: =?UTF-8?B?0KDQsNCx0L7RgtCwINGBINC40L8g0LDQtNGA0LXRgdC+0Lw=?= Message-ID: Доброго времени суток. Столкнулся с такой проблемой, сервер находится под ДДОС атакой уже несколько суток, вроде эту проблему победили на уровне nginx'a следующим образом: раз в 15 минут парсится access.log и выбираются плохие адреса с занесением в файл в виде ип_адрес 1; в конфиге нгинкса прописано так: http { .......... geo $remote_addr $ip_blocklist_out { default 0; include /home/test/ddos_ip; } server{ ................ if ($ip_blocklist_out = 1){ rewrite ^/(.*) /index_ddos.htm last; return 403; } .............. } } Все работает LA с 66 упал до привычных 0.5 но попались юзеры, у которых оказался хитрый провайдер: вместо $remote_addr подставляется "общий ип", а ип адрес пользователя прописывается в $http_x_forwarded_for, следовательно конструкция банит всю подсеть провайдера по $remote_addr. Так вот вопрос в следующем, как при наличии ип адреса в $http_x_forwarded_for учитывать его в geo фильтре а при отсутствии использовать $remote_addr. Спасибо. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217662,217662#msg-217662 From ne на vbart.ru Tue Nov 1 17:04:05 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Tue, 1 Nov 2011 21:04:05 +0400 Subject: =?UTF-8?B?UmU6INCg0LDQsdC+0YLQsCDRgSDQuNC/INCw0LTRgNC10YHQvtC8?= In-Reply-To: References: Message-ID: <201111012104.05651.ne@vbart.ru> On Tuesday 01 November 2011 20:55:44 xoper wrote: [...] > раз в 15 минут парсится access.log и > выбираются плохие адреса с занесением [...] > Так вот вопрос в следующем, как при > наличии ип адреса в $http_x_forwarded_for > учитывать его в geo фильтре а при > отсутствии использовать $remote_addr. Писать $http_x_forwarded_for наравне с $remote_addr в access.log, а затем уже ваш скрипт, который парсит лог, будет решать какой IP использовать. http://nginx.org/ru/docs/http/ngx_http_log_module.html#log_format -- Валентин Бартенев http://vbart.ru/ From mdounin на mdounin.ru Tue Nov 1 17:20:48 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 1 Nov 2011 21:20:48 +0400 Subject: =?UTF-8?B?UmU6IFtCdWddINCf0LDRgNCw0LzQtdGC0YAgZmFzdGNnaSBwYXJhbSBQSFAgVkFM?= =?UTF-8?B?VUUg0LLQu9C40Y/QtdGCINC90LAg0L7RgdGC0LDQu9GM0L3Ri9C1INGB0LU=?= =?UTF-8?B?0YDQstC10YDQsA==?= In-Reply-To: <1320165757.1973.8.camel@N900> References: <1a88eb9b83db9ba8a84bd809f0d1e069.NginxMailingListRussian@forum.nginx.org> <36fa97db85c7584a7c55d22f40af259f.NginxMailingListRussian@forum.nginx.org> <20111101163703.GL95664@mdounin.ru> <1320165757.1973.8.camel@N900> Message-ID: <20111101172048.GM95664@mdounin.ru> Hello! On Tue, Nov 01, 2011 at 11:42:37PM +0700, Мисбах-Соловь?в Вадим wrote: > либо передавать пустой там где не надо ;) Но это костыль. Пустой, насколько я понимаю, не поможет. По крайней мере такое впечатление у меня создалось от беглого прочтения коммита, добавляющего в php обработку PHP_VALUE. Скорее надо явно все те же самые параметры выставлять в те значения, которые нужны "по умолчанию" (т.е. для остальных запросов). Maxim Dounin From mdounin на mdounin.ru Tue Nov 1 17:28:21 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 1 Nov 2011 21:28:21 +0400 Subject: =?UTF-8?B?UmU6INCg0LDQsdC+0YLQsCDRgSDQuNC/INCw0LTRgNC10YHQvtC8?= In-Reply-To: References: Message-ID: <20111101172821.GN95664@mdounin.ru> Hello! On Tue, Nov 01, 2011 at 12:55:44PM -0400, xoper wrote: > Доброго времени суток. > Столкнулся с такой проблемой, сервер > находится под ДДОС атакой уже > несколько суток, вроде эту проблему > победили на уровне nginx'a следующим > образом: > раз в 15 минут парсится access.log и > выбираются плохие адреса с занесением > в файл в виде > ип_адрес 1; > в конфиге нгинкса прописано так: > http > { > .......... > geo $remote_addr $ip_blocklist_out { > default 0; > include /home/test/ddos_ip; > } > server{ > ................ > if ($ip_blocklist_out = 1){ > rewrite ^/(.*) /index_ddos.htm last; > return 403; Just a side note: до "return" тут дело не дойдёт. > } > > .............. > } > } > Все работает LA с 66 упал до привычных 0.5 > но попались юзеры, у которых оказался > хитрый провайдер: > вместо $remote_addr подставляется "общий ип", > а ип адрес пользователя прописывается > в $http_x_forwarded_for, следовательно > конструкция банит всю подсеть > провайдера по $remote_addr. > Так вот вопрос в следующем, как при > наличии ип адреса в $http_x_forwarded_for > учитывать его в geo фильтре а при > отсутствии использовать $remote_addr. > Спасибо. Для этого в модуле geo есть директива proxy. Подробнее тут: http://nginx.org/ru/docs/http/ngx_http_geo_module.html Желательно туда не заносить всех подряд, а только реально существующих провайдеров, которые делают так. В противном случае такая блокировка будет легко и непринуждённо обходиться дописыванием в запрос заголовка "X-Forwarded-For: <случайный ip>". Maxim Dounin From zzz на zzz.org.ua Tue Nov 1 17:48:42 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Tue, 1 Nov 2011 19:48:42 +0200 Subject: [ANN] nginx-perl Message-ID: Hello, Предлагаю попробовать расширенный встроенный перл. Я решил переделать все то, что мне не нравилось в прошлом моем модуле, но уже в виде патча для nginx, Взять в виде дистрибутива можно тут: https://github.com/zzzcpan/nginx-perl Вся документация пока только в этом письме. Старый API не меняется и практически не тронут: http://nginx.org/ru/docs/http/ngx_http_perl_module.html 1. Установка Сразу советую собрать с новым перлом, использованиe памяти в других не обрадует: Сейчас это довольно просто: % sudo cpan App::perlbrew % perlbrew --force install perl-5.14.2 И через пол часа получите перл в /home//perl5/perlbrew/perls/perl-5.14.2/ Теперь nginx, перл там включен сразу, нужно только указать, с каким собрать: % ./configure --with-perl=/home//perl5/perlbrew/perls/perl-5.14.2/bin/perl % make В дистрибутиве есть готовый конфиг для быстрого старта: % mkdir hello/logs % ./objs/nginx -p hello Пример модуля лежит в hello/lib/Hello.pm, конфиг в hello/conf/nginx.conf. 2. Асинхронные ответы Можно отвечать на запросы асинхронно из другого обработчика: sub handler { my $r = shift; $r->main_count_inc; # ... здесь создаем обработчики для других событий return NGX_DONE; } NGX_DONE позволяет не обрабатывать запрос по старому, а сразу выйти из обрабтчика и вернуться в event loop. Чтобы отправить ответ позже, нужно две строчки: $r->send_special(NGX_HTTP_LAST); $r->finalize_request(NGX_OK); Пример, создать таймер и ответить через секунду: sub handler { my $r = shift; $r->main_count_inc; ngx_timer 1, 0, sub { $r->send_http_header("text/html"); $r->print("Hello\n"); $r->send_special(NGX_HTTP_LAST); $r->finalize_request(NGX_OK); } return NGX_DONE; } 3. Асинхронные соединения: - все ошибки устанавливаются в $!, - EOF считается ошибкой, можно проверить условием: $! == NGX_EOF - flow control происходит через return: return NGX_READ; return NGX_WRITE; return NGX_CLOSE; Чтобы подключиться к какому-то хосту используется ngx_connector: ngx_connector $host, $port, $timeout, sub { return NGX_CLOSE if $!; my $connection = shift; ... }; Внутри коннектора можно создавать функции чтения и записи: ngx_writer $buf, $timeout, sub { return NGX_CLOSE if $!; ... return NGX_READ; }; ngx_reader $buf, $min, $max, $timeout, sub { return NGX_CLOSE if $!; ... return NGX_CLOSE; }; ngx_reader и ngx_writer можно пересоздавать внутри сколько угодно раз. Пример: подключиться к какому-то фтп и считать приветствие: ngx_connector '87.51.34.132', 21, 5, sub { return NGX_CLOSE if $!; my $c = shift; my $buf = ''; ngx_reader $c, $buf, 0, 0, 5, sub { return NGX_CLOSE if $!; return NGX_READ if $buf !~ /\x0a/; warn "buf = $buf\n"; return NGX_CLOSE; }; return NGX_READ; }; Более сложный пример можно найти в hello/lib/Hello.pm, функция selftest_get. Она отправляет простой http запрос, принимает ответ и возвращает результат в колбэк. 4. Подход Уже наверное понятно, какой подход реализован: - все, что вложено -- последовательно - все, что подряд -- параллельно Все переменные хранятся в пэдах, никаких объектов. Чтобы не запутаться, лучше так и продолжать, это довольно просто: sub foo ($\$&) { my ($arg, $arg_ref, $cb) = @_; # ... здесь можно вызывать таймер, коннектор и т.д. &$cb(); } Вызов: foo 1, $buf, sub { print $buf; }; 5. Баги Модуль довольно большой, так что не без багов. Будьте осторожны с отправкой ответа два раза, это вызовет segfault, потому что $r уже после первого будет указывать на осоводившуюся память. Со временем пофиксим. На всякий случай прикладываю и в виде патча. From zzz на zzz.org.ua Tue Nov 1 17:50:59 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Tue, 1 Nov 2011 19:50:59 +0200 Subject: [ANN] nginx-perl In-Reply-To: References: Message-ID: > На всякий случай прикладываю и в виде патча. Патч. -------------- next part -------------- diff --git a/src/http/modules/perl/nginx.pm b/src/http/modules/perl/nginx.pm --- a/src/http/modules/perl/nginx.pm +++ b/src/http/modules/perl/nginx.pm @@ -1,14 +1,37 @@ package nginx; -use 5.006001; use strict; use warnings; require Exporter; +our @ISA = qw(Exporter); +our @EXPORT = qw( -our @ISA = qw(Exporter); + ngx_timer + ngx_connector + ngx_reader + ngx_writer + ngx_read + ngx_write + ngx_close + ngx_noop -our @EXPORT = qw( + NGX_READ + NGX_WRITE + NGX_CLOSE + NGX_NOOP + NGX_EOF + NGX_EINVAL + NGX_ENOMEM + NGX_ETIMEDOUT + NGX_EBADE + NGX_EBADF + + NGX_DONE + NGX_OK + NGX_HTTP_LAST + + OK DECLINED @@ -53,54 +76,6 @@ require XSLoader; XSLoader::load('nginx', $VERSION); -# Preloaded methods go here. - -use constant OK => 0; -use constant DECLINED => -5; - -use constant HTTP_OK => 200; -use constant HTTP_CREATED => 201; -use constant HTTP_ACCEPTED => 202; -use constant HTTP_NO_CONTENT => 204; -use constant HTTP_PARTIAL_CONTENT => 206; - -use constant HTTP_MOVED_PERMANENTLY => 301; -use constant HTTP_MOVED_TEMPORARILY => 302; -use constant HTTP_REDIRECT => 302; -use constant HTTP_NOT_MODIFIED => 304; - -use constant HTTP_BAD_REQUEST => 400; -use constant HTTP_UNAUTHORIZED => 401; -use constant HTTP_PAYMENT_REQUIRED => 402; -use constant HTTP_FORBIDDEN => 403; -use constant HTTP_NOT_FOUND => 404; -use constant HTTP_NOT_ALLOWED => 405; -use constant HTTP_NOT_ACCEPTABLE => 406; -use constant HTTP_REQUEST_TIME_OUT => 408; -use constant HTTP_CONFLICT => 409; -use constant HTTP_GONE => 410; -use constant HTTP_LENGTH_REQUIRED => 411; -use constant HTTP_REQUEST_ENTITY_TOO_LARGE => 413; -use constant HTTP_REQUEST_URI_TOO_LARGE => 414; -use constant HTTP_UNSUPPORTED_MEDIA_TYPE => 415; -use constant HTTP_RANGE_NOT_SATISFIABLE => 416; - -use constant HTTP_INTERNAL_SERVER_ERROR => 500; -use constant HTTP_SERVER_ERROR => 500; -use constant HTTP_NOT_IMPLEMENTED => 501; -use constant HTTP_BAD_GATEWAY => 502; -use constant HTTP_SERVICE_UNAVAILABLE => 503; -use constant HTTP_GATEWAY_TIME_OUT => 504; -use constant HTTP_INSUFFICIENT_STORAGE => 507; - - -sub rflush { - my $r = shift; - - $r->flush; -} - - 1; __END__ diff --git a/src/http/modules/perl/nginx.xs b/src/http/modules/perl/nginx.xs --- a/src/http/modules/perl/nginx.xs +++ b/src/http/modules/perl/nginx.xs @@ -93,9 +93,62 @@ return ngx_http_output_filter(r, &out); } +#define ci(stash, a, b) newCONSTSUB (stash, a, newSViv(b)) MODULE = nginx PACKAGE = nginx +BOOT: + HV *stash = gv_stashpv ("nginx", 1); + ci (stash, "NGX_DONE", NGX_DONE); + ci (stash, "NGX_HTTP_LAST", NGX_HTTP_LAST); + ci (stash, "NGX_OK", NGX_OK); + ci (stash, "NGX_DECLINED", NGX_DECLINED); + ci (stash, "NGX_NOOP", NGX_PERL_NOOP); + ci (stash, "NGX_READ", NGX_PERL_READ); + ci (stash, "NGX_WRITE", NGX_PERL_WRITE); + ci (stash, "NGX_CLOSE", NGX_PERL_CLOSE); + ci (stash, "NGX_EOF", NGX_PERL_EOF); + ci (stash, "NGX_EINVAL", NGX_PERL_EINVAL); + ci (stash, "NGX_ENOMEM", NGX_PERL_ENOMEM); + ci (stash, "NGX_EBADF", NGX_PERL_EBADF); + ci (stash, "NGX_EBADE", NGX_PERL_EBADE); + ci (stash, "NGX_ETIMEDOUT", NGX_PERL_ETIMEDOUT); + ci (stash, "OK", 0); + ci (stash, "DECLINED", -5); + ci (stash, "HTTP_OK", 200); + ci (stash, "HTTP_CREATED", 201); + ci (stash, "HTTP_ACCEPTED", 202); + ci (stash, "HTTP_NO_CONTENT", 204); + ci (stash, "HTTP_PARTIAL_CONTENT", 206); + ci (stash, "HTTP_MOVED_PERMANENTLY", 301); + ci (stash, "HTTP_MOVED_TEMPORARILY", 302); + ci (stash, "HTTP_REDIRECT", 302); + ci (stash, "HTTP_NOT_MODIFIED", 304); + ci (stash, "HTTP_BAD_REQUEST", 400); + ci (stash, "HTTP_UNAUTHORIZED", 401); + ci (stash, "HTTP_PAYMENT_REQUIRED", 402); + ci (stash, "HTTP_FORBIDDEN", 403); + ci (stash, "HTTP_NOT_FOUND", 404); + ci (stash, "HTTP_NOT_ALLOWED", 405); + ci (stash, "HTTP_NOT_ACCEPTABLE", 406); + ci (stash, "HTTP_REQUEST_TIME_OUT", 408); + ci (stash, "HTTP_CONFLICT", 409); + ci (stash, "HTTP_GONE", 410); + ci (stash, "HTTP_LENGTH_REQUIRED", 411); + ci (stash, "HTTP_REQUEST_ENTITY_TOO_LARGE", 413); + ci (stash, "HTTP_REQUEST_URI_TOO_LARGE", 414); + ci (stash, "HTTP_UNSUPPORTED_MEDIA_TYPE", 415); + ci (stash, "HTTP_RANGE_NOT_SATISFIABLE", 416); + ci (stash, "HTTP_INTERNAL_SERVER_ERROR", 500); + ci (stash, "HTTP_SERVER_ERROR", 500); + ci (stash, "HTTP_NOT_IMPLEMENTED", 501); + ci (stash, "HTTP_BAD_GATEWAY", 502); + ci (stash, "HTTP_SERVICE_UNAVAILABLE", 503); + ci (stash, "HTTP_GATEWAY_TIME_OUT", 504); + ci (stash, "HTTP_INSUFFICIENT_STORAGE", 507); + +PROTOTYPES: DISABLE + void status(r, code) @@ -696,6 +749,9 @@ void flush(r) + ALIAS: + rflush = 1 + CODE: ngx_http_request_t *r; @@ -983,3 +1039,147 @@ p = (u_char *) SvPV(msg, len); ngx_log_error(NGX_LOG_ERR, r->connection->log, e, "perl: %s", p); + + +void +main_count_inc(r) + CODE: + + ngx_http_request_t *r; + + ngx_http_perl_set_request(r); + + r->main->count++; + + +void +finalize_request(r, rc) + ALIAS: + send_special = 1 + CODE: + + ngx_http_request_t *r; + + ngx_http_perl_set_request(r); + + switch (ix) { + case 1: + ngx_http_send_special(r, SvIV(ST(1))); + break; + default: + ngx_http_finalize_request(r, SvIV(ST(1))); + break; + } + + +SV * +ngx_timer(after, repeat, cb) + PROTOTYPE: $$& + CODE: + + ngx_connection_t *c; + + c = ngx_perl_timer((ngx_int_t)SvIV(ST(0)), ST(1), ST(2)); + if (c == NULL) { + croak("ngx_perl_timer returned NULL"); + } + + RETVAL = newSViv(PTR2IV(c)); + + OUTPUT: + RETVAL + + +void +ngx_timer_clear(timer) + CODE: + + ngx_connection_t *c; + + c = INT2PTR(ngx_connection_t *, SvIV(ST(0))); + ngx_perl_timer_clear(c); + + +void +ngx_connector(address, port, timeout, cb) + PROTOTYPE: $$$& + CODE: + + ngx_perl_connector(ST(0), ST(1), ST(2), ST(3)); + + +void +ngx_reader(c, buf, min, max, timeout, cb) + PROTOTYPE: $$$$$& + CODE: + + ngx_connection_t *c; + + c = INT2PTR(ngx_connection_t *, SvIV(ST(0))); + + ngx_perl_reader(c, ST(1), ST(2), ST(3), ST(4), ST(5)); + + +void +ngx_writer(c, buf, timeout, cb) + PROTOTYPE: $$$& + CODE: + + ngx_connection_t *c; + + c = INT2PTR(ngx_connection_t *, SvIV(ST(0))); + + ngx_perl_writer(c, ST(1), ST(2), ST(3)); + + +void +ngx_close(c) + PROTOTYPE: $ + CODE: + + ngx_connection_t *c; + + c = INT2PTR(ngx_connection_t *, SvIV(ST(0))); + + ngx_perl_close(c); + + +void +ngx_read(c) + PROTOTYPE: $ + CODE: + + ngx_connection_t *c; + + c = INT2PTR(ngx_connection_t *, SvIV(ST(0))); + + ngx_perl_read(c); + + +void +ngx_write(c) + PROTOTYPE: $ + CODE: + + ngx_connection_t *c; + + c = INT2PTR(ngx_connection_t *, SvIV(ST(0))); + + ngx_perl_write(c); + if (c->write->ready) { + c->write->handler(c->write); + } + + +void +ngx_noop(c) + PROTOTYPE: $ + CODE: + + ngx_connection_t *c; + + c = INT2PTR(ngx_connection_t *, SvIV(ST(0))); + + ngx_perl_noop(c); + + diff --git a/src/http/modules/perl/ngx_http_perl_module.c b/src/http/modules/perl/ngx_http_perl_module.c --- a/src/http/modules/perl/ngx_http_perl_module.c +++ b/src/http/modules/perl/ngx_http_perl_module.c @@ -11,8 +11,6 @@ typedef struct { - PerlInterpreter *perl; - HV *nginx; ngx_array_t *modules; ngx_array_t *requires; } ngx_http_perl_main_conf_t; @@ -42,7 +40,7 @@ static ngx_int_t ngx_http_perl_run_requires(pTHX_ ngx_array_t *requires, ngx_log_t *log); static ngx_int_t ngx_http_perl_call_handler(pTHX_ ngx_http_request_t *r, - HV *nginx, SV *sub, SV **args, ngx_str_t *handler, ngx_str_t *rv); + SV *sub, SV **args, ngx_str_t *handler, ngx_str_t *rv); static void ngx_http_perl_eval_anon_sub(pTHX_ ngx_str_t *handler, SV **sv); static ngx_int_t ngx_http_perl_preconfiguration(ngx_conf_t *cf); @@ -54,13 +52,16 @@ static char *ngx_http_perl(ngx_conf_t *cf, ngx_command_t *cmd, void *conf); static char *ngx_http_perl_set(ngx_conf_t *cf, ngx_command_t *cmd, void *conf); -#if (NGX_HAVE_PERL_MULTIPLICITY) -static void ngx_http_perl_cleanup_perl(void *data); -#endif - static ngx_int_t ngx_http_perl_init_worker(ngx_cycle_t *cycle); static void ngx_http_perl_exit(ngx_cycle_t *cycle); +static void ngx_perl_timer_callback(ngx_event_t *ev); +static void ngx_perl_connection_cleanup(void *data); +static void ngx_perl_connect_handler(ngx_event_t *ev); +static void ngx_perl_dummy_handler(ngx_event_t *ev); +static void ngx_perl_read_handler(ngx_event_t *ev); +static void ngx_perl_write_handler(ngx_event_t *ev); + static ngx_command_t ngx_http_perl_commands[] = { @@ -148,12 +149,9 @@ static ngx_str_t ngx_null_name = ngx_null_string; static HV *nginx_stash; - -#if (NGX_HAVE_PERL_MULTIPLICITY) -static ngx_uint_t ngx_perl_term; -#else -static PerlInterpreter *perl; -#endif +static PerlInterpreter *my_perl; + +static ngx_log_t *ngx_perl_log; static void @@ -170,8 +168,12 @@ { r->main->count++; + /* ngx_perl_log = r->connection->log; */ + ngx_http_perl_handle_request(r); + /* ngx_perl_log = ngx_cycle->log; */ + return NGX_DONE; } @@ -184,7 +186,6 @@ ngx_str_t uri, args, *handler; ngx_http_perl_ctx_t *ctx; ngx_http_perl_loc_conf_t *plcf; - ngx_http_perl_main_conf_t *pmcf; ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, "perl handler"); @@ -200,28 +201,18 @@ ngx_http_set_ctx(r, ctx, ngx_http_perl_module); } - pmcf = ngx_http_get_module_main_conf(r, ngx_http_perl_module); - - { - - dTHXa(pmcf->perl); - PERL_SET_CONTEXT(pmcf->perl); if (ctx->next == NULL) { plcf = ngx_http_get_module_loc_conf(r, ngx_http_perl_module); sub = plcf->sub; handler = &plcf->handler; - } else { sub = ctx->next; handler = &ngx_null_name; ctx->next = NULL; } - rc = ngx_http_perl_call_handler(aTHX_ r, pmcf->nginx, sub, NULL, handler, - NULL); - - } + rc = ngx_http_perl_call_handler(aTHX_ r, sub, NULL, handler, NULL); ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, "perl handler done: %i", rc); @@ -297,7 +288,6 @@ ngx_int_t rc; ngx_str_t value; ngx_http_perl_ctx_t *ctx; - ngx_http_perl_main_conf_t *pmcf; ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, "perl variable handler"); @@ -313,20 +303,11 @@ ngx_http_set_ctx(r, ctx, ngx_http_perl_module); } - pmcf = ngx_http_get_module_main_conf(r, ngx_http_perl_module); - value.data = NULL; - { - - dTHXa(pmcf->perl); - PERL_SET_CONTEXT(pmcf->perl); - - rc = ngx_http_perl_call_handler(aTHX_ r, pmcf->nginx, pv->sub, NULL, + rc = ngx_http_perl_call_handler(aTHX_ r, pv->sub, NULL, &pv->handler, &value); - } - if (value.data) { v->len = value.len; v->valid = 1; @@ -359,7 +340,6 @@ ngx_str_t *handler, **args; ngx_uint_t i; ngx_http_perl_ctx_t *ctx; - ngx_http_perl_main_conf_t *pmcf; ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, "perl ssi handler"); @@ -375,18 +355,11 @@ ngx_http_set_ctx(r, ctx, ngx_http_perl_module); } - pmcf = ngx_http_get_module_main_conf(r, ngx_http_perl_module); - ctx->ssi = ssi_ctx; handler = params[NGX_HTTP_PERL_SSI_SUB]; handler->data[handler->len] = '\0'; - { - - dTHXa(pmcf->perl); - PERL_SET_CONTEXT(pmcf->perl); - #if 0 /* the code is disabled to force the precompiled perl code using only */ @@ -430,13 +403,11 @@ asv = NULL; } - rc = ngx_http_perl_call_handler(aTHX_ r, pmcf->nginx, sv, asv, handler, + rc = ngx_http_perl_call_handler(aTHX_ r, sv, asv, handler, NULL); SvREFCNT_dec(sv); - } - ctx->filename.data = NULL; ctx->redirect_uri.len = 0; ctx->ssi = NULL; @@ -454,15 +425,6 @@ { ngx_str_t *m; ngx_uint_t i; -#if (NGX_HAVE_PERL_MULTIPLICITY) - ngx_pool_cleanup_t *cln; - - cln = ngx_pool_cleanup_add(cf->pool, 0); - if (cln == NULL) { - return NGX_CONF_ERROR; - } - -#endif #ifdef NGX_PERL_MODULES if (pmcf->modules == NGX_CONF_UNSET_PTR) { @@ -490,9 +452,7 @@ } } -#if !(NGX_HAVE_PERL_MULTIPLICITY) - - if (perl) { + if (my_perl) { if (ngx_set_environment(cf->cycle, NULL) == NULL) { return NGX_CONF_ERROR; @@ -504,37 +464,20 @@ return NGX_CONF_ERROR; } - pmcf->perl = perl; - pmcf->nginx = nginx_stash; - return NGX_CONF_OK; } -#endif if (nginx_stash == NULL) { PERL_SYS_INIT(&ngx_argc, &ngx_argv); } - pmcf->perl = ngx_http_perl_create_interpreter(cf, pmcf); - - if (pmcf->perl == NULL) { + my_perl = ngx_http_perl_create_interpreter(cf, pmcf); + + if (my_perl == NULL) { return NGX_CONF_ERROR; } - pmcf->nginx = nginx_stash; - -#if (NGX_HAVE_PERL_MULTIPLICITY) - - cln->handler = ngx_http_perl_cleanup_perl; - cln->data = pmcf->perl; - -#else - - perl = pmcf->perl; - -#endif - return NGX_CONF_OK; } @@ -549,7 +492,6 @@ char *ver, **embedding; ngx_str_t *m; ngx_uint_t i; - PerlInterpreter *perl; ngx_log_debug0(NGX_LOG_DEBUG_HTTP, cf->log, 0, "create perl interpreter"); @@ -557,18 +499,17 @@ return NULL; } - perl = perl_alloc(); - if (perl == NULL) { + my_perl = perl_alloc(); + if (my_perl == NULL) { ngx_log_error(NGX_LOG_ALERT, cf->log, 0, "perl_alloc() failed"); return NULL; } { - dTHXa(perl); - PERL_SET_CONTEXT(perl); - - perl_construct(perl); + perl_construct(my_perl); + + PL_origalen = 1; #ifdef PERL_EXIT_DESTRUCT_END PL_exit_flags |= PERL_EXIT_DESTRUCT_END; @@ -595,7 +536,7 @@ embedding[n++] = "-e"; embedding[n++] = "0"; - n = perl_parse(perl, ngx_http_perl_xs_init, n, embedding, NULL); + n = perl_parse(my_perl, ngx_http_perl_xs_init, n, embedding, NULL); if (n != 0) { ngx_log_error(NGX_LOG_ALERT, cf->log, 0, "perl_parse() failed: %d", n); @@ -618,13 +559,13 @@ } - return perl; + return my_perl; fail: - (void) perl_destruct(perl); - - perl_free(perl); + (void) perl_destruct(my_perl); + + perl_free(my_perl); return NULL; } @@ -665,7 +606,7 @@ static ngx_int_t -ngx_http_perl_call_handler(pTHX_ ngx_http_request_t *r, HV *nginx, SV *sub, +ngx_http_perl_call_handler(pTHX_ ngx_http_request_t *r, SV *sub, SV **args, ngx_str_t *handler, ngx_str_t *rv) { SV *sv; @@ -685,7 +626,7 @@ PUSHMARK(sp); - sv = sv_2mortal(sv_bless(newRV_noinc(newSViv(PTR2IV(r))), nginx)); + sv = sv_2mortal(sv_bless(newRV_noinc(newSViv(PTR2IV(r))), nginx_stash)); XPUSHs(sv); if (args) { @@ -808,7 +749,7 @@ { ngx_http_perl_main_conf_t *pmcf = conf; - if (pmcf->perl == NULL) { + if (my_perl == NULL) { if (ngx_http_perl_init_interpreter(cf, pmcf) != NGX_CONF_OK) { return NGX_CONF_ERROR; } @@ -818,28 +759,6 @@ } -#if (NGX_HAVE_PERL_MULTIPLICITY) - -static void -ngx_http_perl_cleanup_perl(void *data) -{ - PerlInterpreter *perl = data; - - PERL_SET_CONTEXT(perl); - - (void) perl_destruct(perl); - - perl_free(perl); - - if (ngx_perl_term) { - ngx_log_debug0(NGX_LOG_DEBUG_HTTP, ngx_cycle->log, 0, "perl term"); - - PERL_SYS_TERM(); - } -} - -#endif - static ngx_int_t ngx_http_perl_preconfiguration(ngx_conf_t *cf) @@ -922,7 +841,7 @@ pmcf = ngx_http_conf_get_module_main_conf(cf, ngx_http_perl_module); - if (pmcf->perl == NULL) { + if (my_perl == NULL) { if (ngx_http_perl_init_interpreter(cf, pmcf) != NGX_CONF_OK) { return NGX_CONF_ERROR; } @@ -930,11 +849,6 @@ plcf->handler = value[1]; - { - - dTHXa(pmcf->perl); - PERL_SET_CONTEXT(pmcf->perl); - ngx_http_perl_eval_anon_sub(aTHX_ &value[1], &plcf->sub); if (plcf->sub == &PL_sv_undef) { @@ -947,8 +861,6 @@ plcf->sub = newSVpvn((char *) value[1].data, value[1].len); } - } - clcf = ngx_http_conf_get_module_loc_conf(cf, ngx_http_core_module); clcf->handler = ngx_http_perl_handler; @@ -993,7 +905,7 @@ pmcf = ngx_http_conf_get_module_main_conf(cf, ngx_http_perl_module); - if (pmcf->perl == NULL) { + if (my_perl == NULL) { if (ngx_http_perl_init_interpreter(cf, pmcf) != NGX_CONF_OK) { return NGX_CONF_ERROR; } @@ -1003,9 +915,6 @@ { - dTHXa(pmcf->perl); - PERL_SET_CONTEXT(pmcf->perl); - ngx_http_perl_eval_anon_sub(aTHX_ &value[2], &pv->sub); if (pv->sub == &PL_sv_undef) { @@ -1035,14 +944,14 @@ pmcf = ngx_http_cycle_get_module_main_conf(cycle, ngx_http_perl_module); if (pmcf) { - dTHXa(pmcf->perl); - PERL_SET_CONTEXT(pmcf->perl); /* set worker's $$ */ sv_setiv(GvSV(gv_fetchpv("$", TRUE, SVt_PV)), (I32) ngx_pid); } + ngx_perl_log = ngx_cycle->log; + return NGX_OK; } @@ -1050,26 +959,977 @@ static void ngx_http_perl_exit(ngx_cycle_t *cycle) { -#if (NGX_HAVE_PERL_MULTIPLICITY) - - /* - * the master exit hook is run before global pool cleanup, - * therefore just set flag here - */ - - ngx_perl_term = 1; - -#else if (nginx_stash) { ngx_log_debug0(NGX_LOG_DEBUG_HTTP, cycle->log, 0, "perl term"); - (void) perl_destruct(perl); - - perl_free(perl); + (void) perl_destruct(my_perl); + + perl_free(my_perl); PERL_SYS_TERM(); } - -#endif } + + +ngx_connection_t * +ngx_perl_timer(ngx_int_t after, SV *repeat, SV *cb) +{ + ngx_connection_t *c; + ngx_perl_timer_t *t; + + c = ngx_get_connection((ngx_socket_t) 0, ngx_cycle->log); + if (c == NULL) { + return NULL; + } + + Newz(0, t, 1, ngx_perl_timer_t); + if (t == NULL) { + return NULL; + } + + c->read->handler = ngx_perl_timer_callback; + c->read->active = 1; + c->read->log = ngx_cycle->log; + + c->data = (void *) t; + + t->after = after; + t->repeat = repeat; + t->cb = cb; + + SvREFCNT_inc(t->repeat); + SvREFCNT_inc(t->cb); + + ngx_add_timer(c->read, t->after * 1000); + + return c; +} + + +void +ngx_perl_timer_clear(ngx_connection_t *c) +{ + ngx_perl_timer_t *t; + + if (c->destroyed) { + ngx_log_error(NGX_LOG_ERR, ngx_cycle->log, 0, + "ngx_perl_timer_clear: connection already destroyed"); + return; + } + + t = (ngx_perl_timer_t *) c->data; + + SvREFCNT_dec(t->repeat); + SvREFCNT_dec(t->cb); + + if (c->read->timer_set) { + ngx_del_timer(c->read); + } + + safefree(t); + ngx_free_connection(c); + + return; +} + + +static void +ngx_perl_timer_callback(ngx_event_t *ev) +{ + ngx_connection_t *c; + ngx_perl_timer_t *t; + dSP; + + c = (ngx_connection_t *) ev->data; + t = (ngx_perl_timer_t *) c->data; + + ENTER; + SAVETMPS; + + PUSHMARK(SP); + XPUSHs(sv_2mortal(newSViv(PTR2IV(c)))); + PUTBACK; + + call_sv(t->cb, G_VOID|G_DISCARD); + + FREETMPS; + LEAVE; + + if (SvIV(t->repeat) > 0) { + ngx_add_timer(ev, SvIV(t->repeat) * 1000); + } else { + ngx_perl_timer_clear(c); + } + + return; +} + + +void +ngx_perl_connector(SV *address, SV *port, SV *timeout, SV *cb) +{ + in_addr_t inaddr; + in_port_t inport; + ngx_pool_t *pool; + struct sockaddr_in *sin; + ngx_peer_connection_t *peer; + ngx_perl_connection_t *plc; + ngx_pool_cleanup_t *plccln; + ngx_connection_t *c; + ngx_int_t rc; + dSP; + + if (!SvOK(address) || !SvOK(port) || !SvOK(timeout)) { + ngx_log_error(NGX_LOG_ERR, ngx_perl_log, 0, + "ngx_perl_connector: incorrect argument(s)"); + errno = NGX_PERL_EINVAL; + goto FATAL; + } + + inport = (in_port_t) SvIV(port); + + inaddr = ngx_inet_addr((u_char *) SvPV_nolen(address), SvCUR(address)); + + if (inaddr == INADDR_NONE) { + ngx_log_error(NGX_LOG_ERR, ngx_perl_log, 0, + "ngx_perl_connector: incorrect address"); + errno = NGX_PERL_EINVAL; + goto FATAL; + } + + pool = ngx_create_pool(1024, ngx_perl_log); + + if (pool == NULL) { + errno = NGX_PERL_ENOMEM; + goto FATAL; + } + + sin = ngx_pcalloc(pool, sizeof(struct sockaddr_in)); + + if (sin == NULL) { + ngx_log_error(NGX_LOG_ERR, pool->log, 0, + "ngx_perl_connector: ngx_pcalloc() failed"); + ngx_destroy_pool(pool); + errno = NGX_PERL_ENOMEM; + goto FATAL; + } + + sin->sin_family = AF_INET; + sin->sin_addr.s_addr = inaddr; + sin->sin_port = htons(inport); + + + + plc = ngx_pcalloc(pool, sizeof(ngx_perl_connection_t)); + + if (plc == NULL) { + ngx_log_error(NGX_LOG_ERR, pool->log, 0, + "ngx_perl_connector: ngx_pcalloc() failed"); + ngx_destroy_pool(pool); + errno = NGX_PERL_ENOMEM; + goto FATAL; + } + + plccln = ngx_pool_cleanup_add(pool, 0); + + if (plccln == NULL) { + ngx_log_error(NGX_LOG_ERR, pool->log, 0, + "ngx_perl_connector: ngx_pool_cleanup_add() failed"); + ngx_destroy_pool(pool); + errno = NGX_PERL_ENOMEM; + goto FATAL; + } + + plccln->data = (void *) plc; + plccln->handler = ngx_perl_connection_cleanup; + + + + peer = ngx_pcalloc(pool, sizeof(ngx_peer_connection_t)); + + if (peer == NULL) { + ngx_log_error(NGX_LOG_ERR, pool->log, 0, + "ngx_perl_connector: ngx_pcalloc() failed"); + ngx_destroy_pool(pool); + errno = NGX_PERL_ENOMEM; + goto FATAL; + } + + peer->sockaddr = (struct sockaddr *) sin; + peer->socklen = sizeof(struct sockaddr_in); + peer->get = ngx_event_get_peer; + peer->log = pool->log; + peer->log_error = NGX_ERROR_ERR; + + + peer->name = ngx_pcalloc(pool, sizeof(ngx_str_t)); + + if (peer->name == NULL) { + ngx_log_error(NGX_LOG_ERR, peer->log, 0, + "ngx_perl_connector: ngx_pcalloc() failed"); + ngx_destroy_pool(pool); + errno = NGX_PERL_ENOMEM; + goto FATAL; + } + + peer->name->data = ngx_pcalloc(pool, SvCUR(address)); + + if (peer->name->data == NULL) { + ngx_log_error(NGX_LOG_ERR, peer->log, 0, + "ngx_perl_connector: ngx_pcalloc() failed"); + ngx_destroy_pool(pool); + errno = NGX_PERL_ENOMEM; + goto FATAL; + } + + ngx_memcpy(peer->name->data, SvPVX(address), SvCUR(address)); + peer->name->len = SvCUR(address); + + + + rc = ngx_event_connect_peer(peer); + + if (rc == NGX_ERROR || rc == NGX_BUSY || rc == NGX_DECLINED) { + ngx_log_error(NGX_LOG_ERR, peer->log, 0, + "ngx_perl_connector: ngx_event_connect_peer() failed"); + + if (peer->connection) + ngx_close_connection(peer->connection); + + ngx_destroy_pool(pool); + + errno = NGX_PERL_EBADF; + goto FATAL; + } + + + c = peer->connection; + + if (c == NULL) { + ngx_log_error(NGX_LOG_ERR, pool->log, 0, + "ngx_perl_connector: no peer->connection"); + ngx_destroy_pool(pool); + errno = NGX_PERL_EBADF; + goto FATAL; + } + + c->pool = pool; + c->log = pool->log; + c->data = (void *) plc; + + plc->connect_cb = cb; + SvREFCNT_inc(cb); + + c->write->handler = ngx_perl_connect_handler; + c->read->handler = ngx_perl_connect_handler; + + ngx_add_timer(c->write, SvOK(timeout) && SvIV(timeout) + ? SvIV(timeout) * 1000 : 15000); + + if (rc == NGX_OK) { + c->write->handler(c->write); + return; + } + + return; + +FATAL: + + SvREFCNT_inc(cb); + + ENTER; + SAVETMPS; + + PUSHMARK(SP); + PUTBACK; + + call_sv(cb, G_VOID|G_DISCARD); + + FREETMPS; + LEAVE; + + SvREFCNT_dec(cb); + errno = 0; + + return; +} + + +void +ngx_perl_reader(ngx_connection_t *c, SV *buf, SV *min, SV *max, + SV *timeout, SV *cb) +{ + ngx_perl_connection_t *plc; + + plc = (ngx_perl_connection_t *) c->data; + + if (plc->read_min) { + SvREFCNT_dec(plc->read_min); + plc->read_min = NULL; + } + + if (plc->read_max) { + SvREFCNT_dec(plc->read_max); + plc->read_max = NULL; + } + + if (plc->read_timeout) { + SvREFCNT_dec(plc->read_timeout); + plc->read_timeout = NULL; + } + + if (plc->read_buffer) { + SvREFCNT_dec(plc->read_buffer); + plc->read_buffer = NULL; + } + + if (plc->read_cb) { + SvREFCNT_dec(plc->read_cb); + plc->read_cb = NULL; + } + + plc->read_min = min; + plc->read_max = max; + plc->read_buffer = buf; + plc->read_timeout = timeout; + plc->read_cb = cb; + + SvREFCNT_inc(min); + SvREFCNT_inc(max); + SvREFCNT_inc(buf); + SvREFCNT_inc(timeout); + SvREFCNT_inc(cb); + + return; +} + + +void +ngx_perl_writer(ngx_connection_t *c, SV *buf, SV *timeout, SV *cb) +{ + ngx_perl_connection_t *plc; + + plc = (ngx_perl_connection_t *) c->data; + + if (plc->write_timeout) { + SvREFCNT_dec(plc->write_timeout); + plc->write_timeout = NULL; + } + + if (plc->write_buffer) { + SvREFCNT_dec(plc->write_buffer); + plc->write_buffer = NULL; + } + + if (plc->write_cb) { + SvREFCNT_dec(plc->write_cb); + plc->write_cb = NULL; + } + + plc->write_buffer = buf; + plc->write_timeout = timeout; + plc->write_cb = cb; + + SvREFCNT_inc(buf); + SvREFCNT_inc(timeout); + SvREFCNT_inc(cb); + + return; +} + +static void +ngx_perl_connection_cleanup(void *data) +{ + ngx_perl_connection_t *plc; + + plc = (ngx_perl_connection_t *) data; + + + if (plc->connect_cb) { + SvREFCNT_dec(plc->connect_cb); + plc->connect_cb = NULL; + } + + + if (plc->read_min) { + SvREFCNT_dec(plc->read_min); + plc->read_min = NULL; + } + + if (plc->read_max) { + SvREFCNT_dec(plc->read_max); + plc->read_max = NULL; + } + + if (plc->read_timeout) { + SvREFCNT_dec(plc->read_timeout); + plc->read_timeout = NULL; + } + + if (plc->read_buffer) { + SvREFCNT_dec(plc->read_buffer); + plc->read_buffer = NULL; + } + + if (plc->read_cb) { + SvREFCNT_dec(plc->read_cb); + plc->read_cb = NULL; + } + + + if (plc->write_timeout) { + SvREFCNT_dec(plc->write_timeout); + plc->write_timeout = NULL; + } + + if (plc->write_buffer) { + SvREFCNT_dec(plc->write_buffer); + plc->write_buffer = NULL; + } + + if (plc->write_cb) { + SvREFCNT_dec(plc->write_cb); + plc->write_cb = NULL; + } + + + return; +} + + +void +ngx_perl_close(ngx_connection_t *c) +{ + ngx_pool_t *pool; + + if (c->destroyed) { + ngx_log_error(NGX_LOG_ERR, c->log, 0, + "ngx_perl_close: " + "connection already destroyed"); + return; + } + + pool = c->pool; + + ngx_close_connection(c); + ngx_destroy_pool(pool); + + return; +} + + +void +ngx_perl_read(ngx_connection_t *c) +{ + ngx_perl_connection_t *plc; + + plc = (ngx_perl_connection_t *) c->data; + + if (c->read->timer_set) { + ngx_del_timer(c->read); + } + + c->read->handler = ngx_perl_read_handler; + c->write->handler = ngx_perl_dummy_handler; + + if (ngx_handle_read_event(c->read, 0) != NGX_OK) { + + if (c->read->error == 0) + c->read->error = 1; + + c->read->handler(c->read); + return; + } + + if (!c->read->timer_set) { + + if (plc->read_timeout != NULL && + SvOK (plc->read_timeout) && + SvIV (plc->read_timeout) >= 0) + { + ngx_add_timer(c->read, SvIV(plc->read_timeout) * 1000); + + } else { + + ngx_log_error(NGX_LOG_ERR, c->log, 0, + "ngx_perl_read: " + "incorrent read timeout, using 15 s instead"); + + ngx_add_timer(c->read, 15000); + } + } + + return; +} + + +void +ngx_perl_write(ngx_connection_t *c) +{ + ngx_perl_connection_t *plc; + + plc = (ngx_perl_connection_t *) c->data; + + plc->write_offset = 0; + + if (c->write->timer_set) { + ngx_del_timer(c->write); + } + + c->read->handler = ngx_perl_read_handler; + c->write->handler = ngx_perl_write_handler; + + if (ngx_handle_write_event(c->write, 0) != NGX_OK) { + + if (c->write->error == 0) + c->write->error = 1; + + c->write->handler(c->write); + return; + } + + if (!c->write->timer_set) { + + if (plc->write_timeout != NULL && + SvOK (plc->write_timeout) && + SvIV (plc->write_timeout) >= 0) + { + ngx_add_timer(c->write, SvIV(plc->write_timeout) * 1000); + + } else { + + ngx_log_error(NGX_LOG_ERR, c->log, 0, + "ngx_perl_write: " + "incorrent write timeout, using 15 s instead"); + + ngx_add_timer(c->write, 15000); + } + } + + return; +} + + +void +ngx_perl_noop(ngx_connection_t *c) +{ + + c->read->handler = ngx_perl_dummy_handler; + c->write->handler = ngx_perl_dummy_handler; + + return; +} + + +static void +ngx_perl_dummy_handler(ngx_event_t *ev) +{ + ngx_connection_t *c; + + c = (ngx_connection_t *) ev->data; + + ngx_log_debug(NGX_LOG_DEBUG, c->log, 0, + "ngx_perl_dummy_handler called"); + + return; +} + + +static void +ngx_perl_connect_handler(ngx_event_t *ev) +{ + ngx_connection_t *c; + ngx_perl_connection_t *plc; + ngx_int_t cmd, count; + dSP; + + c = (ngx_connection_t *) ev->data; + plc = (ngx_perl_connection_t *) c->data; + + c->read->handler = ngx_perl_dummy_handler; + c->write->handler = ngx_perl_dummy_handler; + + if (ev->timer_set) { + ngx_del_timer(ev); + } + + if (ev->timedout) { + errno = NGX_PERL_ETIMEDOUT; + goto CALLBACK; + } + + if (ev->error || c->error) { + errno = NGX_PERL_EBADE; + goto CALLBACK; + } + + errno = 0; + +CALLBACK: + + SvREFCNT_inc(plc->connect_cb); + + ENTER; + SAVETMPS; + + PUSHMARK(SP); + XPUSHs(sv_2mortal(newSViv(PTR2IV(c)))); + PUTBACK; + + count = call_sv(plc->connect_cb, G_VOID|G_SCALAR); + + if (count != 1) { + ngx_log_error(NGX_LOG_ERR, c->log, 0, + "ngx_perl_connect_handler: " + "call_sv returned wrong count = %i", + count); + } + + SPAGAIN; + cmd = POPi; + PUTBACK; + + FREETMPS; + LEAVE; + + SvREFCNT_dec(plc->connect_cb); + errno = 0; + + if ((ev->error || c->error) && cmd != NGX_PERL_CLOSE) { + ngx_log_error(NGX_LOG_ERR, c->log, 0, + "ngx_perl_connect_handler: " + "NGX_CLOSE required on error, forcing"); + ngx_perl_close(c); + return; + } + + switch (cmd) { + case NGX_PERL_CLOSE: + ngx_perl_close(c); + break; + case NGX_PERL_READ: + ngx_perl_read(c); + if (c->read->ready) { + c->read->handler(c->read); + } + break; + case NGX_PERL_WRITE: + ngx_perl_write(c); + if (c->write->ready) { + c->write->handler(c->write); + } + break; + case NGX_PERL_NOOP: + ngx_perl_noop(c); + break; + } + + return; +} + + +static void +ngx_perl_read_handler(ngx_event_t *ev) +{ + ssize_t n; + ngx_connection_t *c; + ngx_perl_connection_t *plc; + SV *sv, *cb; + U32 min, max; + ngx_int_t cmd, count; + dSP; + + c = (ngx_connection_t *) ev->data; + plc = (ngx_perl_connection_t *) c->data; + + if (ev->timer_set) { + ngx_del_timer(ev); + } + + if (ev->timedout) { + errno = NGX_PERL_ETIMEDOUT; + goto CALLBACK; + } + +AGAIN: + + if (ev->error || c->error) { + errno = NGX_PERL_EBADE; + goto CALLBACK; + } + + + min = 0; + max = 0; + + if ( SvOK ( plc->read_min ) && + SvIV ( plc->read_min ) ) + min = SvIV ( plc->read_min ); + + if ( SvOK ( plc->read_max ) && + SvIV ( plc->read_max ) ) + max = SvIV ( plc->read_max ); + + + sv = plc->read_buffer; + + SvPOK_on(sv); + + if ( SvLEN(sv) - SvCUR(sv) < 1500) { + if ( max ) { + if ( SvLEN(sv) < max + 1 ) { + SvGROW(sv, ( SvCUR(sv) * 2 ) + 1500); + } else { + if ( SvCUR(sv) >= max ) { + goto CALLBACK; + } + } + } else { + SvGROW(sv, ( SvCUR(sv) * 2 ) + 1500); + } + } + + + for ( ;; ) { + + ngx_socket_errno = 0; + + n = c->recv(c, (u_char *) SvPVX (sv) + SvCUR (sv), + ( max && SvLEN (sv) > max + ? max + 1 : SvLEN (sv) ) - SvCUR (sv) - 1); + + if (n == NGX_AGAIN) { + + if (ngx_handle_read_event(c->read, 0) != NGX_OK) { + errno = NGX_PERL_EBADE; + goto CALLBACK; + } + + return; + } + + if (n == 0) { + errno = NGX_PERL_EOF; + goto CALLBACK; + } + + if (n == NGX_ERROR) { + errno = ngx_socket_errno ? ngx_socket_errno : NGX_PERL_EBADE; + goto CALLBACK; + } + + SvCUR_set (sv, SvCUR (sv) + n); + + if ( SvCUR (sv) < min ) { + continue; + } + + break; + } + + errno = 0; + +CALLBACK: + + cb = plc->read_cb; + + SvREFCNT_inc(cb); + + ENTER; + SAVETMPS; + + PUSHMARK(SP); + XPUSHs(sv_2mortal(newSViv(PTR2IV(c)))); + PUTBACK; + + ngx_log_debug(NGX_LOG_DEBUG, c->log, 0, + "ngx_perl_read_handler: " + "ev->eof = %i, ev->error = %i, c->error = %i", + ev->eof, ev->error, c->error); + + count = call_sv(cb, G_VOID|G_SCALAR); + + if (count != 1) { + ngx_log_error(NGX_LOG_ERR, c->log, 0, + "ngx_perl_read_handler: " + "call_sv returned wrong count = %i", + count); + } + + SPAGAIN; + cmd = POPi; + PUTBACK; + + FREETMPS; + LEAVE; + + SvREFCNT_dec(cb); + errno = 0; + + if ((ev->error || c->error) && cmd != NGX_PERL_CLOSE) { + ngx_log_error(NGX_LOG_ERR, c->log, 0, + "ngx_perl_read_handler: " + "NGX_CLOSE required on error, forcing"); + ngx_perl_close(c); + return; + } + + switch (cmd) { + case NGX_PERL_CLOSE: + ngx_perl_close(c); + break; + case NGX_PERL_READ: + ngx_perl_read(c); + if (c->read->ready) { + goto AGAIN; + } + break; + case NGX_PERL_WRITE: + ngx_perl_write(c); + if (c->write->ready) { + c->write->handler(c->write); + } + break; + case NGX_PERL_NOOP: + ngx_perl_noop(c); + break; + } + + return; +} + + +static void +ngx_perl_write_handler(ngx_event_t *ev) +{ + ssize_t n; + ngx_connection_t *c; + ngx_perl_connection_t *plc; + SV *sv, *cb; + ngx_int_t cmd, count; + dSP; + + c = (ngx_connection_t *) ev->data; + plc = (ngx_perl_connection_t *) c->data; + + if (ev->timer_set) { + ngx_del_timer(ev); + } + + if (ev->timedout) { + errno = NGX_PERL_ETIMEDOUT; + goto CALLBACK; + } + +AGAIN: + + if (ev->error || c->error) { + errno = NGX_PERL_EBADE; + goto CALLBACK; + } + + sv = plc->write_buffer; + + for ( ;; ) { + + ngx_socket_errno = 0; + + n = c->send(c, (u_char *) SvPV_nolen (sv) + plc->write_offset, + SvCUR (sv) - plc->write_offset); + + if (n == NGX_AGAIN) { + + if (ngx_handle_write_event(c->write, 0) != NGX_OK) { + errno = NGX_PERL_EBADE; + goto CALLBACK; + } + + return; + } + + if (n == 0) { + errno = NGX_PERL_EOF; + goto CALLBACK; + } + + if (n == NGX_ERROR) { + errno = ngx_socket_errno ? ngx_socket_errno : NGX_PERL_EBADE; + goto CALLBACK; + } + + plc->write_offset += n; + + if (SvCUR(sv) - plc->write_offset > 0) { + continue; + } + + break; + } + + errno = 0; + +CALLBACK: + + plc->write_offset = 0; + + cb = plc->write_cb; + + SvREFCNT_inc(cb); + + ENTER; + SAVETMPS; + + PUSHMARK(SP); + XPUSHs(sv_2mortal(newSViv(PTR2IV(c)))); + PUTBACK; + + count = call_sv(cb, G_VOID|G_SCALAR); + + if (count != 1) { + ngx_log_error(NGX_LOG_ERR, c->log, 0, + "ngx_perl_write_handler: " + "call_sv returned wrong count = %i", + count); + } + + SPAGAIN; + cmd = POPi; + PUTBACK; + + FREETMPS; + LEAVE; + + SvREFCNT_dec(cb); + errno = 0; + + if ((ev->error || c->error) && cmd != NGX_PERL_CLOSE) { + ngx_log_error(NGX_LOG_ERR, c->log, 0, + "ngx_perl_write_handler: " + "NGX_CLOSE required on error, forcing"); + ngx_perl_close(c); + return; + } + + switch (cmd) { + case NGX_PERL_CLOSE: + ngx_perl_close(c); + break; + case NGX_PERL_READ: + ngx_perl_read(c); + break; + case NGX_PERL_WRITE: + ngx_perl_write(c); + if (c->write->ready) { + goto AGAIN; + } + break; + case NGX_PERL_NOOP: + ngx_perl_noop(c); + break; + } + + return; +} + + diff --git a/src/http/modules/perl/ngx_http_perl_module.h b/src/http/modules/perl/ngx_http_perl_module.h --- a/src/http/modules/perl/ngx_http_perl_module.h +++ b/src/http/modules/perl/ngx_http_perl_module.h @@ -51,8 +51,8 @@ * when building with perl 5.6.1 */ #ifndef PERL_IMPLICIT_CONTEXT -#undef dTHXa -#define dTHXa(a) +# undef dTHXa +# define dTHXa(a) #endif @@ -63,4 +63,55 @@ void ngx_http_perl_sleep_handler(ngx_http_request_t *r); + +typedef struct { + ngx_int_t after; + SV *repeat; + SV *cb; +} ngx_perl_timer_t; + +ngx_connection_t *ngx_perl_timer(ngx_int_t after, SV *repeat, SV *cb); +void ngx_perl_timer_clear(ngx_connection_t *c); + + +#define NGX_PERL_NOOP 0 +#define NGX_PERL_READ 1 +#define NGX_PERL_WRITE 2 +#define NGX_PERL_CONNECT 4 +#define NGX_PERL_CLOSE 8 + +#ifndef EBADE +# define EBADE 52 +#endif + +#define NGX_PERL_EOF 42 /* ENOMSG */ +#define NGX_PERL_EINVAL EINVAL +#define NGX_PERL_ENOMEM ENOMEM +#define NGX_PERL_EBADE EBADE +#define NGX_PERL_EBADF EBADF +#define NGX_PERL_ETIMEDOUT ETIMEDOUT + +typedef struct { + SV *connect_cb; + SV *read_buffer; + SV *read_min; + SV *read_max; + SV *read_timeout; + SV *read_cb; + SV *write_buffer; + ssize_t write_offset; + SV *write_timeout; + SV *write_cb; +} ngx_perl_connection_t; + +void ngx_perl_connector(SV *address, SV *port, SV *timeout, SV *cb); +void ngx_perl_writer(ngx_connection_t *c, SV *buf, SV *timeout, SV *cb); +void ngx_perl_reader(ngx_connection_t *c, SV *buf, SV *min, SV *max, + SV *timeout, SV *cb); +void ngx_perl_close(ngx_connection_t *c); +void ngx_perl_read(ngx_connection_t *c); +void ngx_perl_write(ngx_connection_t *c); +void ngx_perl_noop(ngx_connection_t *c); + + #endif /* _NGX_HTTP_PERL_MODULE_H_INCLUDED_ */ From hell-for-yahoo на umail.ru Tue Nov 1 18:33:21 2011 From: hell-for-yahoo на umail.ru (Andrey Repin) Date: Tue, 1 Nov 2011 21:33:21 +0300 Subject: lower case URL In-Reply-To: References: <4E943BF0.3010704@csdoc.com> Message-ID: <1268210154.20111101213321@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) Anton Kiryushkin! AK> Если кому-то интересно, то можно сделать следующим образом. Делается AK> локейшн для файлов в нижнем регистре, например: AK> location AK> ^.+\.(css|js|jpg|jpeg|gif|png|zip|rar|tgz|gz|bz2|cab|mp3|swf|pdf|ico|xls|doc|ppt|txt)$ AK> { AK> root /path/to/file; AK> } AK> Дальше делается локейшн для "трудных файлов": AK> location ~* /loc { AK> rewrite_by_lua ' AK> local uri = string.lower(ngx.var.uri) AK> ngx.req.set_uri(uri,false) AK> '; AK> } AK> Признаюсь честно, я пока не понял, как сделать логирование этих запросов, AK> но если спросить урл вида http://domain.com/lOc/File.txt, то отдается AK> http://domain.com/loc/file.txt. Хотя урл в строке адресной не меняется. В результате сайт начинает распадаться и дублироваться в поисковиках. На такие запросы надо отдавать 301-й с правильной ссылкой. -- С уважением Andrey Repin (hell-for-yahoo на umail.ru) вторник, 01.11.2011, <21:32> From hell-for-yahoo на umail.ru Tue Nov 1 18:42:23 2011 From: hell-for-yahoo на umail.ru (Andrey Repin) Date: Tue, 1 Nov 2011 21:42:23 +0300 Subject: Nginx + Apache + ssl In-Reply-To: References: Message-ID: <814706477.20111101214223@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) alexnginx! a> Имеем сервер на Win 2008. На нём Апач + Nginx. a> Нужно настроить Nginx таким образом, a> чтобы шифрование выполнялось на Apache. a> Т.е. чтобы в конфигурации Nginx не нужно a> было указывать ключей шифрования, всё a> это будет указываться в настройках Apache. a> Можно ли сделать так чтобы все пакеты a> которые попадали на Nginx сразу a> перенаправлялись на порт Apache? Вы так и не ответили, какова цель подобного хотения. Потому что настроить-то можно, но, как верно заметили, тогда пропадает смысл в nginx. -- С уважением Andrey Repin (hell-for-yahoo на umail.ru) вторник, 01.11.2011, <21:41> From alexey.bobok на gmail.com Tue Nov 1 19:34:03 2011 From: alexey.bobok на gmail.com (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0JHQvtCx0L7Qug==?=) Date: Tue, 1 Nov 2011 21:34:03 +0200 Subject: ssl_crl 3:unable to get certificate CRL Message-ID: Приветствую. Имею аналогичную проблему как здесь http://forum.nginx.org/read.php?21,6417,175050 server { ... ssl on; ssl_certificate /usr/local/etc/nginx/certs/api.srv.biz.crt; ssl_certificate_key /usr/local/etc/nginx/certs/api.srv.biz.key; ssl_session_timeout 5m; ssl_session_cache shared:SSL:10m; ssl_protocols TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on; ssl_verify_client on; ssl_client_certificate /usr/local/etc/nginx/certs/capem.crt; ... } все работало. После того, как включил в секции http{ ssl_crl /usr/local/etc/nginx/certs/crl.pem; } стало выдавать: 400 Bad Request The SSL certificate error nginx/1.0.3 а в логе: 2011/11/01 21:27:02 [info] 1287#0: *1741 client SSL certificate verify error: (3:unable to get certificate CRL) while reading client request headers, client: 89.*.*.99, server: api.srv.biz, request: "GET / HTTP/1.1", host: "api.srv.biz" CRL список, указанный в пользовательском сертификате - доступен. Он же подгружается самой опцией ssl_crl. внутри файла такое: st1# openssl crl -text -in /usr/local/etc/nginx/certs/crl.pem Certificate Revocation List (CRL): Version 2 (0x1) Signature Algorithm: sha256WithRSAEncryption Issuer: /C=UA/CN=ca.srv.biz Last Update: Nov 1 18:46:07 2011 GMT Next Update: Oct 29 18:46:07 2021 GMT CRL extensions: X509v3 CRL Number: 5 Revoked Certificates: Serial Number: 0A Revocation Date: Nov 1 18:42:17 2011 GMT Serial Number: 2E Revocation Date: Nov 1 18:45:20 2011 GMT Serial Number: 38 Revocation Date: Nov 1 18:40:49 2011 GMT Signature Algorithm: sha256WithRSAEncryption ce:03:8c:b3:a9:f1:b3:4d:55:38:d0:17:bd:36:b4:5c:2c:7f: 10:a2:c6:10:d6:2f:09:59:68:f5:7b:82:32:46:2c:50:a9:9a: 10:75:f6:81:b1:29:6b:89:1c:36:88:3d:ff:c4:5e:cb:be:5f: df:1a:0c:74:2c:b0:63:c7:9d:f6:37:13:45:40:a7:12:32:c4: 82:c2:78:50:f0:a8:8e:ff:fe:61:56:1b:0a:1d:1c:e0:ed:4e: 86:2c:4b:75:cf:35:b5:78:7b:72:48:f7:32:40:60:78:fb:ec: 89:a8:7a:27:8a:95:56:ad:9e:a6:12:de:c7:17:9f:93:38:81: 73:3d:93:2c:63:ce:b4:3b:4f:30:3d:53:19:ae:5f:3e:98:92: cc:a9:e9:a7:93:8f:a9:61:bc:39:44:67:4b:e6:3b:4e:32:c3: 19:de:01:90:e9:5e:15:63:ae:38:9c:4d:30:9f:06:a1:20:60: 59:d7:21:23:c9:18:49:e1:8c:ae:23:8a:ca:c1:dc:6a:41:cb: b4:83:23:c0:b5:62:2e:96:cb:9a:ba:04:02:1e:62:ab:ff:9d: b5:d4:c9:37:8a:cf:23:9a:93:54:bb:ad:04:23:43:90:cb:2d: 78:b6:58:64:8c:4a:74:7d:f9:cc:41:45:98:12:39:a7:88:35: 73:2f:28:f8 -----BEGIN X509 CRL----- MIIBvTCBpgIBATANBgkqhkiG9w0BAQsFADAmMQswCQYDVQQGEwJVQTEXMBUGA1UE AwwOY2EuZmluc29mdC5iaXoXDTExMTEwMTE4NDYwN1oXDTIxMTAyOTE4NDYwN1ow PDASAgEKFw0xMTExMDExODQyMTdaMBICAS4XDTExMTEwMTE4NDUyMFowEgIBOBcN MTExMTAxMTg0MDQ5WqAOMAwwCgYDVR0UBAMCAQUwDQYJKoZIhvcNAQELBQADggEB AM4DjLOp8bNNVTjQF702tFwsfxCixhDWLwlZaPV7gjJGLFCpmhB19oGxKWuJHDaI Pf/EXsu+X98aDHQssGPHnfY3E0VApxIyxILCeFDwqI7//mFWGwodHODtToYsS3XP NbV4e3JI9zJAYHj77ImoeieKlVatnqYS3scXn5M4gXM9kyxjzrQ7TzA9UxmuXz6Y ksyp6aeTj6lhvDlEZ0vmO04ywxneAZDpXhVjrjicTTCfBqEgYFnXISPJGEnhjK4j isrB3GpBy7SDI8C1Yi6Wy5q6BAIeYqv/nbXUyTeKzyOak1S7rQQjQ5DLLXi2WGSM SnR9+cxBRZgSOaeINXMvKPg= -----END X509 CRL----- Объясните плз, что не так. Благодарю. --  Think before you print. Best regards, Alexey Bobok. From mdounin на mdounin.ru Tue Nov 1 22:17:06 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 2 Nov 2011 02:17:06 +0400 Subject: ssl_crl 3:unable to get certificate CRL In-Reply-To: References: Message-ID: <20111101221706.GO95664@mdounin.ru> Hello! On Tue, Nov 01, 2011 at 09:34:03PM +0200, Алексей Бобок wrote: > Приветствую. > Имею аналогичную проблему как здесь > http://forum.nginx.org/read.php?21,6417,175050 > > server { > ... > ssl on; > ssl_certificate /usr/local/etc/nginx/certs/api.srv.biz.crt; > ssl_certificate_key /usr/local/etc/nginx/certs/api.srv.biz.key; > > ssl_session_timeout 5m; > ssl_session_cache shared:SSL:10m; > ssl_protocols TLSv1; > ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; > ssl_prefer_server_ciphers on; > ssl_verify_client on; > ssl_client_certificate /usr/local/etc/nginx/certs/capem.crt; > > ... > } > > все работало. > > После того, как включил в секции http{ > ssl_crl /usr/local/etc/nginx/certs/crl.pem; > } > > стало выдавать: > > 400 Bad Request > The SSL certificate error > nginx/1.0.3 > > а в логе: > 2011/11/01 21:27:02 [info] 1287#0: *1741 client SSL certificate verify > error: (3:unable to get certificate CRL) while reading client request > headers, client: 89.*.*.99, server: api.srv.biz, request: "GET / > HTTP/1.1", host: "api.srv.biz" > > CRL список, указанный в пользовательском сертификате - доступен. Он же > подгружается самой опцией ssl_crl. > внутри файла такое: > st1# openssl crl -text -in /usr/local/etc/nginx/certs/crl.pem > Certificate Revocation List (CRL): > Version 2 (0x1) > Signature Algorithm: sha256WithRSAEncryption > Issuer: /C=UA/CN=ca.srv.biz Возвращённая ошибка предполагает, что не найден crl для одного из сертификатов в цепочке. Клиентский сертификат выдан "/C=UA/CN=ca.srv.biz", а тот в свою очередь - self-signed? Maxim Dounin From swood на fotofor.biz Wed Nov 2 03:29:17 2011 From: swood на fotofor.biz (Anton Kiryushkin) Date: Wed, 2 Nov 2011 07:29:17 +0400 Subject: lower case URL In-Reply-To: <1268210154.20111101213321@mtu-net.ru> References: <4E943BF0.3010704@csdoc.com> <1268210154.20111101213321@mtu-net.ru> Message-ID: Значит что-то не так делаете. У меня ничего не развалилось - HTTP://beta.translate.ru - можете проверить. вторник, 1 ноября 2011 г. пользователь Andrey Repin писал: > Здравствуйте, Уважаемый(-ая, -ое) Anton Kiryushkin! > > AK> Если кому-то интересно, то можно сделать следующим образом. Делается > AK> локейшн для файлов в нижнем регистре, например: > AK> location > AK> ^.+\.(css|js|jpg|jpeg|gif|png|zip|rar|tgz|gz|bz2|cab|mp3|swf|pdf|ico|xls|doc|ppt|txt)$ > AK> { > AK> root /path/to/file; > AK> } > > AK> Дальше делается локейшн для "трудных файлов": > > AK> location ~* /loc { > AK> rewrite_by_lua ' > AK> local uri = string.lower(ngx.var.uri) > AK> ngx.req.set_uri(uri,false) > AK> '; > AK> } > > AK> Признаюсь честно, я пока не понял, как сделать логирование этих запросов, > AK> но если спросить урл вида http://domain.com/lOc/File.txt, то отдается > AK> http://domain.com/loc/file.txt. Хотя урл в строке адресной не меняется. > > В результате сайт начинает распадаться и дублироваться в поисковиках. > На такие запросы надо отдавать 301-й с правильной ссылкой. > > > -- > С уважением > > Andrey Repin (hell-for-yahoo на umail.ru) вторник, 01.11.2011, <21:32> > > _______________________________________________ > 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 swood на fotofor.biz Wed Nov 2 03:57:50 2011 From: swood на fotofor.biz (Anton Kiryushkin) Date: Wed, 2 Nov 2011 07:57:50 +0400 Subject: lower case URL In-Reply-To: References: <4E943BF0.3010704@csdoc.com> <1268210154.20111101213321@mtu-net.ru> Message-ID: Да,забыл. На файловой системе вся статика переименовывается в нижний регистр. среда, 2 ноября 2011 г. пользователь Anton Kiryushkin писал: > Значит что-то не так делаете. У меня ничего не развалилось - HTTP://beta.translate.ru - можете проверить. > > вторник, 1 ноября 2011 г. пользователь Andrey Repin < hell-for-yahoo на umail.ru> писал: >> Здравствуйте, Уважаемый(-ая, -ое) Anton Kiryushkin! >> >> AK> Если кому-то интересно, то можно сделать следующим образом. Делается >> AK> локейшн для файлов в нижнем регистре, например: >> AK> location >> AK> ^.+\.(css|js|jpg|jpeg|gif|png|zip|rar|tgz|gz|bz2|cab|mp3|swf|pdf|ico|xls|doc|ppt|txt)$ >> AK> { >> AK> root /path/to/file; >> AK> } >> >> AK> Дальше делается локейшн для "трудных файлов": >> >> AK> location ~* /loc { >> AK> rewrite_by_lua ' >> AK> local uri = string.lower(ngx.var.uri) >> AK> ngx.req.set_uri(uri,false) >> AK> '; >> AK> } >> >> AK> Признаюсь честно, я пока не понял, как сделать логирование этих запросов, >> AK> но если спросить урл вида http://domain.com/lOc/File.txt, то отдается >> AK> http://domain.com/loc/file.txt. Хотя урл в строке адресной не меняется. >> >> В результате сайт начинает распадаться и дублироваться в поисковиках. >> На такие запросы надо отдавать 301-й с правильной ссылкой. >> >> >> -- >> С уважением >> >> Andrey Repin (hell-for-yahoo на umail.ru) вторник, 01.11.2011, <21:32> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > -- > Best regards, > Anton Kiryushkin, > > -- Best regards, Anton Kiryushkin, -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum на nginx.us Wed Nov 2 09:20:10 2011 From: nginx-forum на nginx.us (amikish) Date: Wed, 02 Nov 2011 05:20:10 -0400 Subject: Several requests in one connection Message-ID: Привет, нужен совет знатоков nginx Я сделал handler на основе hello world модуля Получаю там тело HTTP, передаю его в свою либу, прилинкованную к nginx Либа возвращает ответ и handler отсылает HTTP ответ клиенту Первый запрос обрабатывается нормально и ответ уходит клиенту А вот второй запрос в том же соединении не обрабатывается После первого запроса worker заходит в ngx_http_finalize_request, соединение с клиентом не рветcz А дальше сваливается в "http reading blocked" Клиент соответственно блокируется на чтении ответа на второй запрос Можно ли обрабатывать несколько запросов в одном соединении в одном worker? Если да, то подскажите плиз как это можно сделать Лог воркера получается такой: 2011/11/02 12:50:40 [debug] 3258#0: *2 http process request header line 2011/11/02 12:50:40 [debug] 3258#0: *2 http header: "Host: 127.0.0.1:8080" 2011/11/02 12:50:40 [debug] 3258#0: *2 http header: "Content-type: text/html" 2011/11/02 12:50:40 [debug] 3258#0: *2 http header: "Content-Length: 578" 2011/11/02 12:50:40 [debug] 3258#0: *2 http header: "Connection: Keep-Alive" 2011/11/02 12:50:40 [debug] 3258#0: *2 http header: "Cache-Control: no-cache" 2011/11/02 12:50:40 [debug] 3258#0: *2 http header done 2011/11/02 12:50:40 [debug] 3258#0: *2 event timer del: 9: 1320223897430 2011/11/02 12:50:40 [debug] 3258#0: *2 rewrite phase: 0 2011/11/02 12:50:40 [debug] 3258#0: *2 test location: "/" 2011/11/02 12:50:40 [debug] 3258#0: *2 using configuration "/" 2011/11/02 12:50:40 [debug] 3258#0: *2 http cl:578 max:1048576 2011/11/02 12:50:40 [debug] 3258#0: *2 rewrite phase: 2 2011/11/02 12:50:40 [debug] 3258#0: *2 post rewrite phase: 3 2011/11/02 12:50:40 [debug] 3258#0: *2 generic phase: 4 2011/11/02 12:50:40 [debug] 3258#0: *2 generic phase: 5 2011/11/02 12:50:40 [debug] 3258#0: *2 access phase: 6 2011/11/02 12:50:40 [debug] 3258#0: *2 access phase: 7 2011/11/02 12:50:40 [debug] 3258#0: *2 post access phase: 8 2011/11/02 12:50:40 [debug] 3258#0: *2 http client request body preread 578 2011/11/02 12:50:40 [debug] 3258#0: *2 HTTP/1.1 200 OK Server: nginx/1.0.8 Date: Wed, 02 Nov 2011 08:50:40 GMT Content-Type: text/html Content-Length: 13 Connection: keep-alive 2011/11/02 12:50:40 [debug] 3258#0: *2 write new buf t:1 f:0 0000000001F487F8, pos 0000000001F487F8, size: 146 file: 0, size: 0 2011/11/02 12:50:40 [debug] 3258#0: *2 http write filter: l:0 f:0 s:146 2011/11/02 12:50:40 [debug] 3258#0: *2 http output filter "/?" 2011/11/02 12:50:40 [debug] 3258#0: *2 http copy filter: "/?" 2011/11/02 12:50:40 [debug] 3258#0: *2 http postpone filter "/?" 00007FFFD40FF940 2011/11/02 12:50:40 [debug] 3258#0: *2 write old buf t:1 f:0 0000000001F487F8, pos 0000000001F487F8, size: 146 file: 0, size: 0 2011/11/02 12:50:40 [debug] 3258#0: *2 write new buf t:0 f:0 0000000000000000, pos 0000000000688C88, size: 13 file: 0, size: 0 2011/11/02 12:50:40 [debug] 3258#0: *2 http write filter: l:1 f:0 s:159 2011/11/02 12:50:40 [debug] 3258#0: *2 http write filter limit 0 2011/11/02 12:50:40 [debug] 3258#0: *2 writev: 159 2011/11/02 12:50:40 [debug] 3258#0: *2 http write filter 0000000000000000 2011/11/02 12:50:40 [debug] 3258#0: *2 http copy filter: 0 "/?" 2011/11/02 12:50:40 [debug] 3258#0: *2 http finalize request: 0, "/?" a:1, c:2 2011/11/02 12:50:40 [debug] 3258#0: *2 http request count:2 blk:0 2011/11/02 12:51:02 [debug] 3258#0: *2 http run request: "/?" 2011/11/02 12:51:02 [debug] 3258#0: *2 http reading blocked Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217687,217687#msg-217687 From nginx-forum на nginx.us Wed Nov 2 09:37:23 2011 From: nginx-forum на nginx.us (LeoK) Date: Wed, 02 Nov 2011 05:37:23 -0400 Subject: =?UTF-8?B?KGRldikg0J/QtdGA0LXRhdCy0LDRgiDRg9C/0YDQsNCy0LvQtdC90LjRjyDQv9C+?= =?UTF-8?B?0YHQu9C1INC+0YLQtNCw0YfQuCDQv9C+IHRyeSBmaWxlcw==?= Message-ID: Добрый день. Написан модуль по отдаче файлов с контролем доступа, логика работы следующая: 1. приходит урл с токеном 2. в модуле на фазе NGX_HTTP_ACCESS_PHASE токен расшифровывается, по инфе в токене генерируется имя файла, это имя файла подставляется в динамическую переменную 3. далее в локейшене эта переменная с именем файла передается в директиву try_files Сейчас встала задача отработать нужную логику по окончании отдачи файла/потока(при мультипоточной загрузке). Как это сделать? Хотя бы куда копать? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217688,217688#msg-217688 From nginx-forum на nginx.us Wed Nov 2 10:36:56 2011 From: nginx-forum на nginx.us (alexnginx) Date: Wed, 02 Nov 2011 06:36:56 -0400 Subject: Nginx + Apache + ssl In-Reply-To: References: Message-ID: <587ead83e994e4fb4e8db7abb04fd8f0.NginxMailingListRussian@forum.nginx.org> ответ на вопрос: "какова цель подобного хотения?" изложен в посте November 01, 2011 05:35AM. Иными словами заставить шифровать Nginx по ГОСТу пока не получилось, но получилось заставить Апач. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217592,217690#msg-217690 From nginx-forum на nginx.us Wed Nov 2 10:58:27 2011 From: nginx-forum на nginx.us (Saniek) Date: Wed, 02 Nov 2011 06:58:27 -0400 Subject: =?UTF-8?B?0JrQsNC6INC/0L7QtNGA0YPQttC40YLRjCBwaHBNeWFkbWluINC4IGVBY2NlbGVy?= =?UTF-8?B?YXRvcg==?= Message-ID: <1a5c3ab5c2ad8bc7fb03ea6f6a4ae5ba.NginxMailingListRussian@forum.nginx.org> Добрый день. Подскажите, пожалуйста, как настроить phpMyadmin и eAccelerator чтобы они не конфликтовали между собой. На сервере стоит freebsd8+nginx+phpMyAdmin+eaccelerator. При включенном акселераторе phpMyAdmin не работает. Везде пишут в конфиге апача отключить eaccelerator для каталога админа: php_admin_value eaccelerator.enable 0 Но как это сделать в nginx непонятно. Помогите, кто сталкивался. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217691,217691#msg-217691 From vsjcfm на gmail.com Wed Nov 2 10:59:52 2011 From: vsjcfm на gmail.com (Sayetsky Anton) Date: Wed, 2 Nov 2011 12:59:52 +0200 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9C+0LTRgNGD0LbQuNGC0YwgcGhwTXlhZG1pbiDQuCBlQWNj?= =?UTF-8?B?ZWxlcmF0b3I=?= In-Reply-To: <1a5c3ab5c2ad8bc7fb03ea6f6a4ae5ba.NginxMailingListRussian@forum.nginx.org> References: <1a5c3ab5c2ad8bc7fb03ea6f6a4ae5ba.NginxMailingListRussian@forum.nginx.org> Message-ID: 2 ноября 2011 г. 12:58 пользователь Saniek написал: > При включенном акселераторе phpMyAdmin не > работает. Не работает - это как? УМВР, никаких проблем. From dr.dim.pro на gmail.com Wed Nov 2 11:02:06 2011 From: dr.dim.pro на gmail.com (Bogatkin Dmitriy) Date: Wed, 02 Nov 2011 17:02:06 +0600 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9C+0LTRgNGD0LbQuNGC0YwgcGhwTXlhZG1pbiDQuCBlQWNj?= =?UTF-8?B?ZWxlcmF0b3I=?= In-Reply-To: <1a5c3ab5c2ad8bc7fb03ea6f6a4ae5ba.NginxMailingListRussian@forum.nginx.org> References: <1a5c3ab5c2ad8bc7fb03ea6f6a4ae5ba.NginxMailingListRussian@forum.nginx.org> Message-ID: <4EB1232E.3000504@gmail.com> 02.11.2011 16:58, Saniek пишет: > Добрый день. > Подскажите, пожалуйста, как настроить > phpMyadmin и eAccelerator чтобы они не > конфликтовали между собой. > На сервере стоит freebsd8+nginx+phpMyAdmin+eaccelerator. > При включенном акселераторе phpMyAdmin не > работает. Везде пишут в конфиге апача > отключить eaccelerator для каталога админа: > > > php_admin_value eaccelerator.enable 0 > > > Но как это сделать в nginx непонятно. > Помогите, кто сталкивался. > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217691,217691#msg-217691 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru phpMyAdmin 3.4.7 + eaccelerator + php-fpm 5.3.8 работает без ошибок. From unlexx на gmail.com Wed Nov 2 11:02:22 2011 From: unlexx на gmail.com (Un Lexx) Date: Wed, 2 Nov 2011 16:02:22 +0500 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9C+0LTRgNGD0LbQuNGC0YwgcGhwTXlhZG1pbiDQuCBlQWNj?= =?UTF-8?B?ZWxlcmF0b3I=?= In-Reply-To: References: <1a5c3ab5c2ad8bc7fb03ea6f6a4ae5ba.NginxMailingListRussian@forum.nginx.org> Message-ID: >Но как это сделать в nginx непонятно. по моему это надо настраивать не в nginx а на том что у вас выполняет php скрипты From rush.zlo на gmail.com Wed Nov 2 12:22:09 2011 From: rush.zlo на gmail.com (=?UTF-8?B?0JXQstCz0LXQvdC40LkgJ1J1c2gnINCd0LXQv9C+0LzQvdGP0YnQuNC5?=) Date: Wed, 2 Nov 2011 16:22:09 +0400 Subject: Nginx + Apache + ssl In-Reply-To: <587ead83e994e4fb4e8db7abb04fd8f0.NginxMailingListRussian@forum.nginx.org> References: <587ead83e994e4fb4e8db7abb04fd8f0.NginxMailingListRussian@forum.nginx.org> Message-ID: 2 ноября 2011 г. 14:36 пользователь alexnginx написал: > Иными словами заставить шифровать Nginx > по ГОСТу пока не получилось, но > получилось заставить Апач. С этого и надо было начинать. Я бы на вашем месте для начала пересобрал nginx самостоятельно с нужными модулями и библиотеками. Правда как это сделать под Windows не подскажу, но думаю если бы вопрос сразу прозвучал так, как вы написали только что, ответы бы не заставили себя ждать. -- Cogito ergo sum From rush.zlo на gmail.com Wed Nov 2 12:27:41 2011 From: rush.zlo на gmail.com (=?UTF-8?B?0JXQstCz0LXQvdC40LkgJ1J1c2gnINCd0LXQv9C+0LzQvdGP0YnQuNC5?=) Date: Wed, 2 Nov 2011 16:27:41 +0400 Subject: =?UTF-8?B?UmU6IChkZXYpINCf0LXRgNC10YXQstCw0YIg0YPQv9GA0LDQstC70LXQvdC40Y8g?= =?UTF-8?B?0L/QvtGB0LvQtSDQvtGC0LTQsNGH0Lgg0L/QviB0cnkgZmlsZXM=?= In-Reply-To: References: Message-ID: 2 ноября 2011 г. 13:37 пользователь LeoK написал: > Сейчас встала задача отработать нужную > логику по  окончании отдачи > файла/потока(при мультипоточной > загрузке). Как это сделать? Хотя бы куда > копать? Копать в сторону post_action. Понятия "окончание отдачи файла/потока при мультипоточной загрузке" в терминах nginx не существует, эта задача как раз перекладывается на ваши плечи. Лично я определяю "окончание" по суммарному успешному количеству байт в данной сессии. Да, у меня написан патч для nginx, который добавляет в post_action возможность использовать переменную с временем передачи (время отработки запроса) - если вам нужно, обращайтесь. -- Cogito ergo sum From rush.zlo на gmail.com Wed Nov 2 12:32:32 2011 From: rush.zlo на gmail.com (=?UTF-8?B?0JXQstCz0LXQvdC40LkgJ1J1c2gnINCd0LXQv9C+0LzQvdGP0YnQuNC5?=) Date: Wed, 2 Nov 2011 16:32:32 +0400 Subject: Several requests in one connection In-Reply-To: References: Message-ID: Телепатов тут только два -Сысоев и Дунин. Только они смогут ответить на ваш вопрос, не видя кода :) 2 ноября 2011 г. 13:20 пользователь amikish написал: > Привет, нужен совет знатоков nginx > > Я сделал handler на основе hello world модуля > Получаю там тело HTTP, передаю его в свою > либу, прилинкованную к nginx > Либа возвращает ответ и handler отсылает > HTTP ответ клиенту > > Первый запрос обрабатывается > нормально и ответ уходит клиенту > А вот второй запрос в том же соединении > не обрабатывается > После первого запроса worker заходит в > ngx_http_finalize_request, соединение с клиентом не > рветcz > А дальше сваливается в "http reading blocked" > Клиент соответственно блокируется на > чтении ответа на второй запрос > > Можно ли обрабатывать несколько > запросов в одном соединении в одном > worker? > Если да, то подскажите плиз как это > можно сделать > > Лог воркера получается такой: > > 2011/11/02 12:50:40 [debug] 3258#0: *2 http process request header line > 2011/11/02 12:50:40 [debug] 3258#0: *2 http header: "Host: > 127.0.0.1:8080" > 2011/11/02 12:50:40 [debug] 3258#0: *2 http header: "Content-type: > text/html" > 2011/11/02 12:50:40 [debug] 3258#0: *2 http header: "Content-Length: > 578" > 2011/11/02 12:50:40 [debug] 3258#0: *2 http header: "Connection: > Keep-Alive" > 2011/11/02 12:50:40 [debug] 3258#0: *2 http header: "Cache-Control: > no-cache" > 2011/11/02 12:50:40 [debug] 3258#0: *2 http header done > 2011/11/02 12:50:40 [debug] 3258#0: *2 event timer del: 9: > 1320223897430 > 2011/11/02 12:50:40 [debug] 3258#0: *2 rewrite phase: 0 > 2011/11/02 12:50:40 [debug] 3258#0: *2 test location: "/" > 2011/11/02 12:50:40 [debug] 3258#0: *2 using configuration "/" > 2011/11/02 12:50:40 [debug] 3258#0: *2 http cl:578 max:1048576 > 2011/11/02 12:50:40 [debug] 3258#0: *2 rewrite phase: 2 > 2011/11/02 12:50:40 [debug] 3258#0: *2 post rewrite phase: 3 > 2011/11/02 12:50:40 [debug] 3258#0: *2 generic phase: 4 > 2011/11/02 12:50:40 [debug] 3258#0: *2 generic phase: 5 > 2011/11/02 12:50:40 [debug] 3258#0: *2 access phase: 6 > 2011/11/02 12:50:40 [debug] 3258#0: *2 access phase: 7 > 2011/11/02 12:50:40 [debug] 3258#0: *2 post access phase: 8 > 2011/11/02 12:50:40 [debug] 3258#0: *2 http client request body preread > 578 > 2011/11/02 12:50:40 [debug] 3258#0: *2 HTTP/1.1 200 OK > Server: nginx/1.0.8 > Date: Wed, 02 Nov 2011 08:50:40 GMT > Content-Type: text/html > Content-Length: 13 > Connection: keep-alive > > 2011/11/02 12:50:40 [debug] 3258#0: *2 write new buf t:1 f:0 > 0000000001F487F8, pos 0000000001F487F8, size: 146 file: 0, size: 0 > 2011/11/02 12:50:40 [debug] 3258#0: *2 http write filter: l:0 f:0 s:146 > 2011/11/02 12:50:40 [debug] 3258#0: *2 http output filter "/?" > 2011/11/02 12:50:40 [debug] 3258#0: *2 http copy filter: "/?" > 2011/11/02 12:50:40 [debug] 3258#0: *2 http postpone filter "/?" > 00007FFFD40FF940 > 2011/11/02 12:50:40 [debug] 3258#0: *2 write old buf t:1 f:0 > 0000000001F487F8, pos 0000000001F487F8, size: 146 file: 0, size: 0 > 2011/11/02 12:50:40 [debug] 3258#0: *2 write new buf t:0 f:0 > 0000000000000000, pos 0000000000688C88, size: 13 file: 0, size: 0 > 2011/11/02 12:50:40 [debug] 3258#0: *2 http write filter: l:1 f:0 s:159 > 2011/11/02 12:50:40 [debug] 3258#0: *2 http write filter limit 0 > 2011/11/02 12:50:40 [debug] 3258#0: *2 writev: 159 > 2011/11/02 12:50:40 [debug] 3258#0: *2 http write filter > 0000000000000000 > 2011/11/02 12:50:40 [debug] 3258#0: *2 http copy filter: 0 "/?" > 2011/11/02 12:50:40 [debug] 3258#0: *2 http finalize request: 0, "/?" > a:1, c:2 > 2011/11/02 12:50:40 [debug] 3258#0: *2 http request count:2 blk:0 > 2011/11/02 12:51:02 [debug] 3258#0: *2 http run request: "/?" > 2011/11/02 12:51:02 [debug] 3258#0: *2 http reading blocked > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217687,217687#msg-217687 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Cogito ergo sum From nginx-forum на nginx.us Wed Nov 2 13:06:07 2011 From: nginx-forum на nginx.us (amikish) Date: Wed, 02 Nov 2011 09:06:07 -0400 Subject: Several requests in one connection In-Reply-To: References: Message-ID: <43be3a446abab9cb807f5de59a2a736a.NginxMailingListRussian@forum.nginx.org> Код взят отсюда практически без изменений http://nutrun.com/weblog/2009/08/15/hello-world-nginx-module.html static void body_handler(ngx_http_request_t *r) { } static ngx_int_t ngx_handler(ngx_http_request_t *r) { ngx_int_t rc; ngx_buf_t *b; ngx_chain_t out; if (!(r->method & (NGX_HTTP_GET|NGX_HTTP_HEAD|NGX_HTTP_POST))) { return NGX_HTTP_NOT_ALLOWED; } // rc = ngx_http_discard_request_body(r); rc = ngx_http_read_client_request_body(r, body_handler); if (rc != NGX_OK) { return rc; } /* set the 'Content-type' header */ r->headers_out.content_type_len = sizeof("text/html") - 1; r->headers_out.content_type.len = sizeof("text/html") - 1; r->headers_out.content_type.data = (u_char *) "text/html"; /* send the header only, if the request type is http 'HEAD' */ if (r->method == NGX_HTTP_HEAD) { r->headers_out.status = NGX_HTTP_OK; r->headers_out.content_length_n = sizeof(ngx_hello_world) - 1; return ngx_http_send_header(r); } /* allocate a buffer for your response body */ b = ngx_pcalloc(r->pool, sizeof(ngx_buf_t)); if (b == NULL) { return NGX_HTTP_INTERNAL_SERVER_ERROR; } /* attach this buffer to the buffer chain */ out.buf = b; out.next = NULL; b->pos = ngx_hello_world; b->last = ngx_hello_world + sizeof(ngx_hello_world) - 1; b->memory = 1; /* this buffer is in memory */ b->last_buf = 1; /* this is the last buffer in the buffer chain */ /* set the status line */ r->headers_out.status = NGX_HTTP_OK; r->headers_out.content_length_n = sizeof(ngx_hello_world) - 1; /* send the headers of your response */ rc = ngx_http_send_header(r); if (rc == NGX_ERROR || rc > NGX_OK || r->header_only) { return rc; } /* send the buffer chain of your response */ return ngx_http_output_filter(r, &out); } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217687,217698#msg-217698 From mdounin на mdounin.ru Wed Nov 2 13:15:43 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 2 Nov 2011 17:15:43 +0400 Subject: Several requests in one connection In-Reply-To: <43be3a446abab9cb807f5de59a2a736a.NginxMailingListRussian@forum.nginx.org> References: <43be3a446abab9cb807f5de59a2a736a.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111102131543.GP95664@mdounin.ru> Hello! On Wed, Nov 02, 2011 at 09:06:07AM -0400, amikish wrote: > Код взят отсюда практически без > изменений > http://nutrun.com/weblog/2009/08/15/hello-world-nginx-module.html > > static void > body_handler(ngx_http_request_t *r) > { > } > > static ngx_int_t > ngx_handler(ngx_http_request_t *r) > { > ngx_int_t rc; > ngx_buf_t *b; > ngx_chain_t out; > > if (!(r->method & (NGX_HTTP_GET|NGX_HTTP_HEAD|NGX_HTTP_POST))) { > return NGX_HTTP_NOT_ALLOWED; > } > > // rc = ngx_http_discard_request_body(r); > rc = ngx_http_read_client_request_body(r, body_handler); > > if (rc != NGX_OK) { > return rc; > } Это неправильный код. После ngx_http_read_client_request_body() нужно выходить с NGX_DONE, и всю остальную работу делать в body_handler(). Пример можно посмотреть в src/http/modules/ngx_http_dav_module.c. Maxim Dounin From nginx-forum на nginx.us Wed Nov 2 13:26:45 2011 From: nginx-forum на nginx.us (Saniek) Date: Wed, 02 Nov 2011 09:26:45 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9C+0LTRgNGD0LbQuNGC0YwgcGhwTXlhZG1pbiDQuCBlQWNj?= =?UTF-8?B?ZWxlcmF0b3I=?= In-Reply-To: References: Message-ID: <11d49a5b691ef5da37624cc04aff7f78.NginxMailingListRussian@forum.nginx.org> Надо настроить так, чтобы для конкретного location отключить eaccelerator, это надо делать в апаче (если он стоит), или в nginx где описываются директории. Вроде так должно быть. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217691,217701#msg-217701 From nginx-forum на nginx.us Wed Nov 2 13:28:20 2011 From: nginx-forum на nginx.us (Saniek) Date: Wed, 02 Nov 2011 09:28:20 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9C+0LTRgNGD0LbQuNGC0YwgcGhwTXlhZG1pbiDQuCBlQWNj?= =?UTF-8?B?ZWxlcmF0b3I=?= In-Reply-To: References: Message-ID: Sayetsky Anton Wrote: ------------------------------------------------------- > 2 ноября 2011 г. 12:58 > пользователь Saniek > написал: > > При включенном > акселераторе phpMyAdmin не > > работает. > > Не работает - это как? УМВР, > никаких проблем. > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru После авторизации белый экран, при отключении eaccelerator работает нормально. Эта проблема известна, но решение везде описано только для апач. phpMyAdmin v. 3.4.7 Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217691,217702#msg-217702 From nginx-forum на nginx.us Wed Nov 2 13:30:16 2011 From: nginx-forum на nginx.us (Saniek) Date: Wed, 02 Nov 2011 09:30:16 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9C+0LTRgNGD0LbQuNGC0YwgcGhwTXlhZG1pbiDQuCBlQWNj?= =?UTF-8?B?ZWxlcmF0b3I=?= In-Reply-To: <4EB1232E.3000504@gmail.com> References: <4EB1232E.3000504@gmail.com> Message-ID: drdim Wrote: ------------------------------------------------------- > 02.11.2011 16:58, Saniek пишет: > > Добрый день. > > Подскажите, пожалуйста, > как настроить > > phpMyadmin и eAccelerator чтобы они > не > > конфликтовали между > собой. > > На сервере стоит > freebsd8+nginx+phpMyAdmin+eaccelerator. > > При включенном > акселераторе phpMyAdmin не > > работает. Везде пишут в > конфиге апача > > отключить eaccelerator для > каталога админа: > > > > > > php_admin_value eaccelerator.enable 0 > > > > > > Но как это сделать в nginx > непонятно. > > Помогите, кто сталкивался. > > > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,217691,217691#m > sg-217691 > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru на nginx.org > > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > phpMyAdmin 3.4.7 + eaccelerator + php-fpm 5.3.8 > работает без ошибок. > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru У меня стоит точно такая же связка - при включенном eaccelerator не работает. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217691,217703#msg-217703 From nginx на khpnets.info Wed Nov 2 13:44:30 2011 From: nginx на khpnets.info (Paul Khusainov) Date: Wed, 02 Nov 2011 17:44:30 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9C+0LTRgNGD0LbQuNGC0YwgcGhwTXlhZG1pbiDQuCBlQWNj?= =?UTF-8?B?ZWxlcmF0b3I=?= In-Reply-To: References: <4EB1232E.3000504@gmail.com> Message-ID: <4EB1493E.4040001@khpnets.info> Создайте отдельный пул в php-fpm и вырубите в нём eA. From mdounin на mdounin.ru Wed Nov 2 13:45:26 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 2 Nov 2011 17:45:26 +0400 Subject: =?UTF-8?B?UmU6IChkZXYpINCf0LXRgNC10YXQstCw0YIg0YPQv9GA0LDQstC70LXQvdC40Y8g?= =?UTF-8?B?0L/QvtGB0LvQtSDQvtGC0LTQsNGH0Lgg0L/QviB0cnkgZmlsZXM=?= In-Reply-To: References: Message-ID: <20111102134526.GQ95664@mdounin.ru> Hello! On Wed, Nov 02, 2011 at 05:37:23AM -0400, LeoK wrote: > Добрый день. > > Написан модуль по отдаче файлов с > контролем доступа, логика работы > следующая: > 1. приходит урл с токеном > 2. в модуле на фазе NGX_HTTP_ACCESS_PHASE токен > расшифровывается, по инфе в токене > генерируется имя файла, это имя файла > подставляется в динамическую > переменную > 3. далее в локейшене эта переменная с > именем файла передается в директиву > try_files > > Сейчас встала задача отработать нужную > логику по окончании отдачи > файла/потока(при мультипоточной > загрузке). Как это сделать? Хотя бы куда > копать? По окончанию запроса вызывается NGX_HTTP_LOG_PHASE, туда имеет смысл и ставить обработку. Maxim Dounin From nginx-forum на nginx.us Wed Nov 2 14:00:19 2011 From: nginx-forum на nginx.us (Saniek) Date: Wed, 02 Nov 2011 10:00:19 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9C+0LTRgNGD0LbQuNGC0YwgcGhwTXlhZG1pbiDQuCBlQWNj?= =?UTF-8?B?ZWxlcmF0b3I=?= In-Reply-To: <4EB1493E.4040001@khpnets.info> References: <4EB1493E.4040001@khpnets.info> Message-ID: <8c838d7b4da00b14177663450cd69b1f.NginxMailingListRussian@forum.nginx.org> Если не сложно, сделайте набросок как это сделать Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217691,217709#msg-217709 From alexey.bobok на gmail.com Wed Nov 2 14:13:34 2011 From: alexey.bobok на gmail.com (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0JHQvtCx0L7Qug==?=) Date: Wed, 2 Nov 2011 16:13:34 +0200 Subject: ssl_crl 3:unable to get certificate CRL In-Reply-To: References: Message-ID: Корневой сертификат, который подписан юзерский сертификат, да - самоподписанный. 2011/11/1 Алексей Бобок : > Приветствую. > Имею аналогичную проблему как здесь > http://forum.nginx.org/read.php?21,6417,175050 > > server { > ... >        ssl                  on; >        ssl_certificate      /usr/local/etc/nginx/certs/api.srv.biz.crt; >        ssl_certificate_key  /usr/local/etc/nginx/certs/api.srv.biz.key; > >        ssl_session_timeout  5m; >        ssl_session_cache  shared:SSL:10m; >        ssl_protocols TLSv1; >        ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; >        ssl_prefer_server_ciphers   on; >        ssl_verify_client on; >        ssl_client_certificate /usr/local/etc/nginx/certs/capem.crt; > > ... > } > > все работало. > > После того, как включил в секции http{ > ssl_crl /usr/local/etc/nginx/certs/crl.pem; > } > > стало выдавать: > > 400 Bad Request > The SSL certificate error > nginx/1.0.3 > > а в логе: > 2011/11/01 21:27:02 [info] 1287#0: *1741 client SSL certificate verify > error: (3:unable to get certificate CRL) while reading client request > headers, client: 89.*.*.99, server: api.srv.biz, request: "GET / > HTTP/1.1", host: "api.srv.biz" > > CRL список, указанный в пользовательском сертификате - доступен. Он же > подгружается самой опцией ssl_crl. > внутри файла такое: > st1# openssl crl -text -in /usr/local/etc/nginx/certs/crl.pem > Certificate Revocation List (CRL): >        Version 2 (0x1) >        Signature Algorithm: sha256WithRSAEncryption >        Issuer: /C=UA/CN=ca.srv.biz >        Last Update: Nov  1 18:46:07 2011 GMT >        Next Update: Oct 29 18:46:07 2021 GMT >        CRL extensions: >            X509v3 CRL Number: >                5 > Revoked Certificates: >    Serial Number: 0A >        Revocation Date: Nov  1 18:42:17 2011 GMT >    Serial Number: 2E >        Revocation Date: Nov  1 18:45:20 2011 GMT >    Serial Number: 38 >        Revocation Date: Nov  1 18:40:49 2011 GMT >    Signature Algorithm: sha256WithRSAEncryption >        ce:03:8c:b3:a9:f1:b3:4d:55:38:d0:17:bd:36:b4:5c:2c:7f: >        10:a2:c6:10:d6:2f:09:59:68:f5:7b:82:32:46:2c:50:a9:9a: >        10:75:f6:81:b1:29:6b:89:1c:36:88:3d:ff:c4:5e:cb:be:5f: >        df:1a:0c:74:2c:b0:63:c7:9d:f6:37:13:45:40:a7:12:32:c4: >        82:c2:78:50:f0:a8:8e:ff:fe:61:56:1b:0a:1d:1c:e0:ed:4e: >        86:2c:4b:75:cf:35:b5:78:7b:72:48:f7:32:40:60:78:fb:ec: >        89:a8:7a:27:8a:95:56:ad:9e:a6:12:de:c7:17:9f:93:38:81: >        73:3d:93:2c:63:ce:b4:3b:4f:30:3d:53:19:ae:5f:3e:98:92: >        cc:a9:e9:a7:93:8f:a9:61:bc:39:44:67:4b:e6:3b:4e:32:c3: >        19:de:01:90:e9:5e:15:63:ae:38:9c:4d:30:9f:06:a1:20:60: >        59:d7:21:23:c9:18:49:e1:8c:ae:23:8a:ca:c1:dc:6a:41:cb: >        b4:83:23:c0:b5:62:2e:96:cb:9a:ba:04:02:1e:62:ab:ff:9d: >        b5:d4:c9:37:8a:cf:23:9a:93:54:bb:ad:04:23:43:90:cb:2d: >        78:b6:58:64:8c:4a:74:7d:f9:cc:41:45:98:12:39:a7:88:35: >        73:2f:28:f8 > -----BEGIN X509 CRL----- > MIIBvTCBpgIBATANBgkqhkiG9w0BAQsFADAmMQswCQYDVQQGEwJVQTEXMBUGA1UE > AwwOY2EuZmluc29mdC5iaXoXDTExMTEwMTE4NDYwN1oXDTIxMTAyOTE4NDYwN1ow > PDASAgEKFw0xMTExMDExODQyMTdaMBICAS4XDTExMTEwMTE4NDUyMFowEgIBOBcN > MTExMTAxMTg0MDQ5WqAOMAwwCgYDVR0UBAMCAQUwDQYJKoZIhvcNAQELBQADggEB > AM4DjLOp8bNNVTjQF702tFwsfxCixhDWLwlZaPV7gjJGLFCpmhB19oGxKWuJHDaI > Pf/EXsu+X98aDHQssGPHnfY3E0VApxIyxILCeFDwqI7//mFWGwodHODtToYsS3XP > NbV4e3JI9zJAYHj77ImoeieKlVatnqYS3scXn5M4gXM9kyxjzrQ7TzA9UxmuXz6Y > ksyp6aeTj6lhvDlEZ0vmO04ywxneAZDpXhVjrjicTTCfBqEgYFnXISPJGEnhjK4j > isrB3GpBy7SDI8C1Yi6Wy5q6BAIeYqv/nbXUyTeKzyOak1S7rQQjQ5DLLXi2WGSM > SnR9+cxBRZgSOaeINXMvKPg= > -----END X509 CRL----- > > > > Объясните плз, что не так. > Благодарю. > > -- >  Think before you print. > Best regards, Alexey Bobok. > --  Think before you print. Best regards, Alexey Bobok. From universite на ukr.net Wed Nov 2 14:32:05 2011 From: universite на ukr.net (=?WINDOWS-1251?B?wuvg5Ojx6+DiIM/w7uTg7Q==?=) Date: Wed, 02 Nov 2011 16:32:05 +0200 Subject: =?UTF-8?B?0J/QvtC00YHQutCw0LbQuNGC0LUsINC60LDQuiDRgdC00LXQu9Cw0YLRjCDQsNC9?= =?UTF-8?B?0L7QvdC40LzQvdC+0LUg0L/RgNC+0LrRgdC4INC90LAg0LHQsNC30LUgbmdp?= =?UTF-8?B?bngu?= Message-ID: <51504.1320244325.8533657937645142016@ffe2.ukr.net> ткните, плз, в кусок конфига или в how-to -- Vladislav V. Prodan System & Network Administrator http://support.od.ua +380 67 4584408, +380 99 4060508 VVP88-RIPE ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ola_nk на mail.ru Wed Nov 2 15:50:52 2011 From: ola_nk на mail.ru (ola) Date: Wed, 2 Nov 2011 18:50:52 +0300 Subject: =?UTF-8?Q?rewrite_=D0=B8_args?= Message-ID: <1428005626.20111102185052@mail.ru> Здравствуйте, Nginx-ru. set $new1 /file.html?a=1; set $new2 /file.html; rewrite ^ $new1 last; # не работает rewrite ^ $new2?a=1 last; # работает При срабатывании первого правила rewrite nginx пытается открыть файл с именем /file.html?a=1, которого, естественно, нет. Экранирование знака вопроса в $new1 тоже нужного эффекта не дает. Получается, что строки $new1 и $new2?a=1 не равны? -- С уважением, Ольга Н. From rush.zlo на gmail.com Wed Nov 2 14:51:20 2011 From: rush.zlo на gmail.com (=?UTF-8?B?0JXQstCz0LXQvdC40LkgJ1J1c2gnINCd0LXQv9C+0LzQvdGP0YnQuNC5?=) Date: Wed, 2 Nov 2011 18:51:20 +0400 Subject: =?UTF-8?B?UmU6IChkZXYpINCf0LXRgNC10YXQstCw0YIg0YPQv9GA0LDQstC70LXQvdC40Y8g?= =?UTF-8?B?0L/QvtGB0LvQtSDQvtGC0LTQsNGH0Lgg0L/QviB0cnkgZmlsZXM=?= In-Reply-To: <20111102134526.GQ95664@mdounin.ru> References: <20111102134526.GQ95664@mdounin.ru> Message-ID: 2 ноября 2011 г. 17:45 пользователь Maxim Dounin написал: > По окончанию запроса вызывается NGX_HTTP_LOG_PHASE, туда имеет > смысл и ставить обработку. Хм... Я не догадался быть кэпом - человек всё же модуль написал. Но теперь такое ощущение что мы оба промахнулись, он похоже спрашивал именно _алгоритм_ наступления события "файл _полностью_ скачан клиентом". -- Cogito ergo sum From ruz на bestpractical.com Wed Nov 2 15:15:15 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Wed, 2 Nov 2011 19:15:15 +0400 Subject: [Moscow.pm] [ANN] nginx-perl In-Reply-To: References: Message-ID: Привет, Есть в загашнике один асинхронный проект, но пока нету времени к нему вернуться, но все равно спрошу общие вопросы. Я еще раньше смотрел на ваш Nginx::Engine краем глаза. Я так понимаю это новое решение полностью вытеснит необходимость в Nginx::Engine. Верно? Судя по всему можно поверх этого дела написать реализацию AnyEvent::Impl::Nginx. Верно? 2011/11/1 Alexandr Gomoliako : > Hello, > > Предлагаю попробовать расширенный встроенный перл. > Я решил переделать все то, что мне не нравилось в прошлом > моем модуле, но уже в виде патча для nginx, > > Взять в виде дистрибутива можно тут: >    https://github.com/zzzcpan/nginx-perl > > Вся документация пока только в этом письме. > > Старый API не меняется и практически не тронут: >    http://nginx.org/ru/docs/http/ngx_http_perl_module.html > > > 1. Установка > > Сразу советую собрать с новым перлом, использованиe > памяти в других не обрадует: > Сейчас это довольно просто: >    % sudo cpan App::perlbrew >    % perlbrew --force install perl-5.14.2 > > И через пол часа получите перл в >    /home//perl5/perlbrew/perls/perl-5.14.2/ > > Теперь nginx, перл там включен сразу, нужно только > указать, с каким собрать: >    % ./configure > --with-perl=/home//perl5/perlbrew/perls/perl-5.14.2/bin/perl >    % make > > В дистрибутиве есть готовый конфиг для быстрого старта: >    % mkdir hello/logs >    % ./objs/nginx -p hello > > Пример модуля лежит в hello/lib/Hello.pm, конфиг в hello/conf/nginx.conf. > > > 2. Асинхронные ответы > > Можно отвечать на запросы асинхронно из другого > обработчика: > >    sub handler { >        my $r = shift; > >        $r->main_count_inc; > >        # ... здесь создаем обработчики для других событий > >        return NGX_DONE; >    } > > NGX_DONE позволяет не обрабатывать запрос по старому, > а сразу выйти из обрабтчика и вернуться в event loop. > > Чтобы отправить ответ позже, нужно две строчки: > >    $r->send_special(NGX_HTTP_LAST); >    $r->finalize_request(NGX_OK); > > Пример, создать таймер и ответить через секунду: > >    sub handler { >        my $r = shift; >        $r->main_count_inc; > >        ngx_timer 1, 0, sub { >            $r->send_http_header("text/html"); >            $r->print("Hello\n"); > >            $r->send_special(NGX_HTTP_LAST); >            $r->finalize_request(NGX_OK); >        } > >        return NGX_DONE; >    } > > > 3. Асинхронные соединения: > >  - все ошибки устанавливаются в $!, >  - EOF считается ошибкой, можно проверить условием: >        $! == NGX_EOF >  - flow control происходит через return: >        return NGX_READ; >        return NGX_WRITE; >        return NGX_CLOSE; > > Чтобы подключиться к какому-то хосту используется > ngx_connector: > >    ngx_connector $host, $port, $timeout, sub { >        return NGX_CLOSE  if $!; >        my $connection = shift; >        ... >    }; > > Внутри коннектора можно создавать функции чтения > и записи: > >    ngx_writer $buf, $timeout, sub { >        return NGX_CLOSE  if $!; >        ... >        return NGX_READ; >    }; > >    ngx_reader $buf, $min, $max, $timeout, sub { >        return NGX_CLOSE  if $!; >        ... >        return NGX_CLOSE; >    }; > > ngx_reader и ngx_writer можно пересоздавать > внутри сколько угодно раз. > > Пример: подключиться к какому-то фтп и считать > приветствие: > >    ngx_connector '87.51.34.132', 21, 5, sub { >        return NGX_CLOSE  if $!; > >        my $c = shift; >        my $buf = ''; > >        ngx_reader $c, $buf, 0, 0, 5, sub { >            return NGX_CLOSE  if $!; >            return NGX_READ  if $buf !~ /\x0a/; > >            warn "buf = $buf\n"; > >            return NGX_CLOSE; >        }; > >        return NGX_READ; >    }; > > Более сложный пример можно найти в hello/lib/Hello.pm, > функция selftest_get. Она отправляет простой http запрос, > принимает ответ и возвращает результат в колбэк. > > > 4. Подход > > Уже наверное понятно, какой подход реализован: >  - все, что вложено --  последовательно >  - все, что подряд -- параллельно > > Все переменные хранятся в пэдах, никаких объектов. > Чтобы не запутаться, лучше так и продолжать, это довольно > просто: > >    sub foo ($\$&) { >        my ($arg, $arg_ref, $cb) = @_; >        # ...  здесь можно вызывать таймер, коннектор и т.д. >        &$cb(); >    } > > Вызов: >    foo 1, $buf, sub { >         print $buf; >    }; > > > 5. Баги > > Модуль довольно большой, так что не без багов. > > Будьте осторожны с отправкой ответа два раза, это > вызовет segfault, потому что $r уже после первого будет > указывать на осоводившуюся память. > Со временем пофиксим. > > > На всякий случай прикладываю и в виде патча. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Best regards, Ruslan. From mdounin на mdounin.ru Wed Nov 2 16:19:42 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 2 Nov 2011 20:19:42 +0400 Subject: =?UTF-8?B?UmU6IChkZXYpINCf0LXRgNC10YXQstCw0YIg0YPQv9GA0LDQstC70LXQvdC40Y8g?= =?UTF-8?B?0L/QvtGB0LvQtSDQvtGC0LTQsNGH0Lgg0L/QviB0cnkgZmlsZXM=?= In-Reply-To: References: <20111102134526.GQ95664@mdounin.ru> Message-ID: <20111102161942.GS95664@mdounin.ru> Hello! On Wed, Nov 02, 2011 at 06:51:20PM +0400, Евгений 'Rush' Непомнящий wrote: > 2 ноября 2011 г. 17:45 пользователь Maxim Dounin написал: > > По окончанию запроса вызывается NGX_HTTP_LOG_PHASE, туда имеет > > смысл и ставить обработку. > > Хм... Я не догадался быть кэпом - человек всё же модуль написал. Но > теперь такое ощущение что мы оба промахнулись, он похоже спрашивал > именно _алгоритм_ наступления события "файл _полностью_ скачан > клиентом". Задача была сформулирована как "вставить нужную логику". Как вставить нужную логику - я написал. Что касается "алгоритма наступления события 'файл полностью скачан клиентом'", то тут всё очень просто: такого алгоритма не существует. В протоколе http нет подтверждения получения ответа клиентом, и даже если всё вроде как штатно отдалось - не факт, что оно дошло до клиента. Вполне могло осесть где-нибудь по дороге (или tcp-буферах на машине с nginx'ом, или вообще на какой-нибудь проксе), а до клиента не добраться. Maxim Dounin From nginx на khpnets.info Wed Nov 2 19:47:26 2011 From: nginx на khpnets.info (Paul Khusainov) Date: Wed, 02 Nov 2011 23:47:26 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9C+0LTRgNGD0LbQuNGC0YwgcGhwTXlhZG1pbiDQuCBlQWNj?= =?UTF-8?B?ZWxlcmF0b3I=?= In-Reply-To: <8c838d7b4da00b14177663450cd69b1f.NginxMailingListRussian@forum.nginx.org> References: <4EB1493E.4040001@khpnets.info> <8c838d7b4da00b14177663450cd69b1f.NginxMailingListRussian@forum.nginx.org> Message-ID: <4EB19E4E.6000508@khpnets.info> 02.11.2011 18:00, Saniek пишет: > Если не сложно, сделайте набросок как > это сделать > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217691,217709#msg-217709 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru В php-fpm.conf добавляете новый пул: [forpma] listen = /tmp/sockets/forpma ;listen.backlog = -1 listen.owner = www listen.group = www listen.mode = 0660 pm = dynamic pm.max_children = 60 pm.start_servers = 10 pm.min_spare_servers = 4 pm.max_spare_servers = 20 php_value[error_reporting] = 0 php_flag[display_errors] = off php_value[eaccelerator.enable] = 0 ;; вот оно ;request_terminate_timeout = 0 request_slowlog_timeout = 5s В самом nginx нужно создать новый location, примерно такой location ~ /phpmyadmin/*\.php$ { From zcrendel на gmail.com Wed Nov 2 21:13:58 2011 From: zcrendel на gmail.com (Grigory A. Mozhaev) Date: Thu, 3 Nov 2011 00:13:58 +0300 Subject: =?UTF-8?B?Q2FjaGUgTWFuYWdlciDQvdC1INGD0LTQsNC70Y/QtdGCINGE0LDQudC70Ysg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L/RgNC10LLRi9GI0LXQvdC40LggbWF4IHNpemU=?= In-Reply-To: <4EB19E4E.6000508@khpnets.info> References: <4EB1493E.4040001@khpnets.info> <8c838d7b4da00b14177663450cd69b1f.NginxMailingListRussian@forum.nginx.org> <4EB19E4E.6000508@khpnets.info> Message-ID: <201111030013.58791.zcrendel@gmail.com> С чем может быть связано такое поведение? Куда копать? Версия nginx 1.0.6 -- С уважением, Можаев Григорий From nginx-forum на nginx.us Wed Nov 2 21:19:36 2011 From: nginx-forum на nginx.us (xT) Date: Wed, 02 Nov 2011 17:19:36 -0400 Subject: =?UTF-8?B?0JXQtNC40L3Ri9C5IEZhc3RjZ2kg0LrRjdGIINC00LvRjyDQvdC10YHQutC+0Ls=?= =?UTF-8?B?0YzQutC40YUg0YHQtdGA0LLQtdGA0L7Qsg==?= Message-ID: Доброго времени суток Имеется несколько веб-серверов с nginx(1.0.5) в "кластере". На каждом из серверов настроен fastcgi cache, хранилище расположено на NFS и едино для всех. Для обеспечения более быстрой выдачи контента. Проблема заключается в следующем: если ответ бэкэнда был закеширован на одном сервере, то второй сервер при запросе клиента не видит кеш-файла и пересоздает его заного. Но, если после создания кеша перезапустить процессы nginx на всех серверах, то кеш-файлы нормально подхватятся ими и клиентам будут отдаваться закешированные ответы. Как я понимаю, загвозка в cache manager, который не следит за появлением новых файлов во время работы и обновляет зону только во время собственной работы и перезапуске процессов. Пробовал уменьшать\увеличивать размер зоны (1мб и 512мб, нулевого размера зона не назначается), но не помогло Есть ли для данной ситуации решение? Спасибо Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217721,217721#msg-217721 From nginx-forum на nginx.us Wed Nov 2 21:22:36 2011 From: nginx-forum на nginx.us (xT) Date: Wed, 02 Nov 2011 17:22:36 -0400 Subject: =?UTF-8?B?UmU6INCV0LTQuNC90YvQuSBGYXN0Y2dpINC60Y3RiCDQtNC70Y8g0L3QtdGB0Lo=?= =?UTF-8?B?0L7Qu9GM0LrQuNGFINGB0LXRgNCy0LXRgNC+0LI=?= In-Reply-To: References: Message-ID: <86af160cf8d320117a24c0e194523fc8.NginxMailingListRussian@forum.nginx.org> xT Wrote: ------------------------------------------------------- > Для обеспечения более быстрой выдачи контента. Сорри, тут не дописал: Для обеспечения более быстрой выдачи контента мы ходим по урлам с помощью "краулера", для формирования статического кеша. Потом проверяем с помощью ab или браузера, или того же краулера Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217721,217722#msg-217722 From zcrendel на gmail.com Wed Nov 2 21:27:25 2011 From: zcrendel на gmail.com (Grigory A. Mozhaev) Date: Thu, 3 Nov 2011 00:27:25 +0300 Subject: =?UTF-8?B?Q2FjaGUgTWFuYWdlciDQvdC1INGD0LTQsNC70Y/QtdGCINGE0LDQudC70Ysg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L/RgNC10LLRi9GI0LXQvdC40LggbWF4IHNpemU=?= Message-ID: <201111030027.25354.zcrendel@gmail.com> Backtrace: (gdb) bt full #0  0x00007faa6cfd67c3 in __epoll_wait_nocancel () from /lib64/libc.so.6 No symbol table info available. #1  0x000000000042410d in ngx_epoll_process_events (cycle=0x2141430, timer=1000, flags=1) at src/event/modules/ngx_epoll_module.c:529         events =         revents =         instance =         i =         level =         err =         rev =         wev =         queue =         c = #2  0x000000000041bc94 in ngx_process_events_and_timers (cycle=0x2141430) at src/event/ngx_event.c:245         flags = 1         timer = 1000         delta = 1319339651016 #3  0x000000000042315a in ngx_cache_manager_process_cycle (cycle=0x2141430, data=) at src/os/unix/ngx_process_cycle.c:1328         ctx =         ident = {0x10, 0x7faa6cf9f675, 0x10, 0xffffffffffffffff}         ev = {data = 0x7ffff82cc410, write = 0, accept = 0, instance = 0, active = 0, disabled = 0, ready = 0, oneshot = 0, complete = 0, eof = 0, error = 0, timedout = 1,           timer_set = 1, delayed = 0, read_discarded = 0, unexpected_eof = 0, deferred_accept = 0, pending_eof = 0, posted_ready = 0, available = 0,           handler = 0x422b50 , index = 0, log = 0x2141448, timer = {key = 1319339652016, left = 0x6a8c80, right = 0x6a8c80,             parent = 0x0, color = 0 '\000', data = 0 '\000'}, closed = 0, channel = 0, resolver = 0, next = 0x0, prev = 0x0} #4  0x00000000004211d7 in ngx_spawn_process (cycle=0x2141430, proc=0x422f24 , data=0x6990e0, name=0x47b67c "cache manager process",     respawn=-3) at src/os/unix/ngx_process.c:196         on = 1         pid = 0         s = 16 #5  0x0000000000421ef3 in ngx_start_cache_manager_processes (cycle=0x2141430, respawn=0) at src/os/unix/ngx_process_cycle.c:398         i =         manager =         loader = 1         path =         ch = {command = 15, pid = 35, slot = 3, fd = 95} #6  0x000000000042332c in ngx_master_process_cycle (cycle=0x2141430) at src/os/unix/ngx_process_cycle.c:138         title = 0x2175afc "master process /cachefly/nginx-0.8.54-cf/sbin/nginx -c /cachefly/local/me/nginx/nginx-ssd.conf"         p =         size = 95         i = 3         n =         sigio =         set = {__val = {0 }}         itv = {it_interval = {tv_sec = 35084872, tv_usec = 1}, it_value = {tv_sec = 6910576, tv_usec = 0}}         live =         delay =         ls =         ccf = 0x2141d10 #7  0x0000000000406760 in main (argc=, argv=) at src/core/nginx.c:405         i =         log = 0x6a6aa0         cycle = 0x2141430         init_cycle = {conf_ctx = 0x0, pool = 0x21406a0, log = 0x6a6aa0, new_log = {log_level = 0, file = 0x0, connection = 0, handler = 0, data = 0x0, action = 0x0},           files = 0x0, free_connections = 0x0, free_connection_n = 0, reusable_connections_queue = {prev = 0x0, next = 0x0}, listening = {elts = 0x2140ca0, nelts = 1,             size = 184, nalloc = 10, pool = 0x21406a0}, pathes = {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 = 39,             data = 0x7ffff82cce75 ""}, conf_param = {len = 0, data = 0x0}, conf_prefix = {len = 25, data = 0x7ffff82cce75 ""}, prefix = {len = 26,             data = 0x477475 "/cachefly/nginx-0.8.54-cf/"}, lock_file = {len = 0, data = 0x0}, hostname = {len = 0, data = 0x0}}         ccf = -- С уважением, Можаев Григорий From zcrendel на gmail.com Wed Nov 2 21:37:25 2011 From: zcrendel на gmail.com (Grigory A. Mozhaev) Date: Thu, 3 Nov 2011 00:37:25 +0300 Subject: =?UTF-8?B?Q2FjaGUgTWFuYWdlciDQvdC1INGD0LTQsNC70Y/QtdGCINGE0LDQudC70Ysg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L/RgNC10LLRi9GI0LXQvdC40LggbWF4IHNpemU=?= Message-ID: <201111030037.25635.zcrendel@gmail.com> Извиняюсь, запостил случайно не в тот тред :\ Cache Manager по-прошествии некоторого времени перестает ограничивать кеш размером max_size. С чем может быть связано такое поведение? Куда копать? Версия nginx 1.0.6 Backtrace: (gdb) bt full #0  0x00007faa6cfd67c3 in __epoll_wait_nocancel () from /lib64/libc.so.6 No symbol table info available. #1  0x000000000042410d in ngx_epoll_process_events (cycle=0x2141430, timer=1000, flags=1) at src/event/modules/ngx_epoll_module.c:529         events =         revents =         instance =         i =         level =         err =         rev =         wev =         queue =         c = #2  0x000000000041bc94 in ngx_process_events_and_timers (cycle=0x2141430) at src/event/ngx_event.c:245         flags = 1         timer = 1000         delta = 1319339651016 #3  0x000000000042315a in ngx_cache_manager_process_cycle (cycle=0x2141430, data=) at src/os/unix/ngx_process_cycle.c:1328         ctx =         ident = {0x10, 0x7faa6cf9f675, 0x10, 0xffffffffffffffff}         ev = {data = 0x7ffff82cc410, write = 0, accept = 0, instance = 0, active = 0, disabled = 0, ready = 0, oneshot = 0, complete = 0, eof = 0, error = 0, timedout = 1,           timer_set = 1, delayed = 0, read_discarded = 0, unexpected_eof = 0, deferred_accept = 0, pending_eof = 0, posted_ready = 0, available = 0,           handler = 0x422b50 , index = 0, log = 0x2141448, timer = {key = 1319339652016, left = 0x6a8c80, right = 0x6a8c80,             parent = 0x0, color = 0 '\000', data = 0 '\000'}, closed = 0, channel = 0, resolver = 0, next = 0x0, prev = 0x0} #4  0x00000000004211d7 in ngx_spawn_process (cycle=0x2141430, proc=0x422f24 , data=0x6990e0, name=0x47b67c "cache manager process",     respawn=-3) at src/os/unix/ngx_process.c:196         on = 1         pid = 0         s = 16 #5  0x0000000000421ef3 in ngx_start_cache_manager_processes (cycle=0x2141430, respawn=0) at src/os/unix/ngx_process_cycle.c:398         i =         manager =         loader = 1         path =         ch = {command = 15, pid = 35, slot = 3, fd = 95} #6  0x000000000042332c in ngx_master_process_cycle (cycle=0x2141430) at src/os/unix/ngx_process_cycle.c:138         title = 0x2175afc "master process /cachefly/nginx-0.8.54-cf/sbin/nginx -c /cachefly/local/me/nginx/nginx-ssd.conf"         p =         size = 95         i = 3         n =         sigio =         set = {__val = {0 }}         itv = {it_interval = {tv_sec = 35084872, tv_usec = 1}, it_value = {tv_sec = 6910576, tv_usec = 0}}         live =         delay =         ls =         ccf = 0x2141d10 #7  0x0000000000406760 in main (argc=, argv=) at src/core/nginx.c:405         i =         log = 0x6a6aa0         cycle = 0x2141430         init_cycle = {conf_ctx = 0x0, pool = 0x21406a0, log = 0x6a6aa0, new_log = {log_level = 0, file = 0x0, connection = 0, handler = 0, data = 0x0, action = 0x0},           files = 0x0, free_connections = 0x0, free_connection_n = 0, reusable_connections_queue = {prev = 0x0, next = 0x0}, listening = {elts = 0x2140ca0, nelts = 1,             size = 184, nalloc = 10, pool = 0x21406a0}, pathes = {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 = 39,             data = 0x7ffff82cce75 ""}, conf_param = {len = 0, data = 0x0}, conf_prefix = {len = 25, data = 0x7ffff82cce75 ""}, prefix = {len = 26,             data = 0x477475 "/cachefly/nginx-0.8.54-cf/"}, lock_file = {len = 0, data = 0x0}, hostname = {len = 0, data = 0x0}}         ccf = -- С уважением, Можаев Григорий From mdounin на mdounin.ru Wed Nov 2 22:09:43 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 3 Nov 2011 02:09:43 +0400 Subject: =?UTF-8?B?UmU6INCV0LTQuNC90YvQuSBGYXN0Y2dpINC60Y3RiCDQtNC70Y8g0L3QtdGB0Lo=?= =?UTF-8?B?0L7Qu9GM0LrQuNGFINGB0LXRgNCy0LXRgNC+0LI=?= In-Reply-To: References: Message-ID: <20111102220943.GZ95664@mdounin.ru> Hello! On Wed, Nov 02, 2011 at 05:19:36PM -0400, xT wrote: > Доброго времени суток > > Имеется несколько веб-серверов с > nginx(1.0.5) в "кластере". > На каждом из серверов настроен fastcgi cache, > хранилище расположено на NFS и едино для > всех. > Для обеспечения более быстрой выдачи > контента. > > Проблема заключается в следующем: > если ответ бэкэнда был закеширован на > одном сервере, то второй сервер при > запросе клиента не видит кеш-файла и > пересоздает его заного. > Но, если после создания кеша > перезапустить процессы nginx на всех > серверах, то кеш-файлы нормально > подхватятся ими и клиентам будут > отдаваться закешированные ответы. > Как я понимаю, загвозка в cache manager, > который не следит за появлением новых > файлов во время работы и обновляет зону > только во время собственной работы и > перезапуске процессов. Пробовал > уменьшать\увеличивать размер зоны (1мб > и 512мб, нулевого размера зона не > назначается), но не помогло > > Есть ли для данной ситуации решение? Работа с кешом, общим для нескольких экземпляров nginx'а, сейчас не поддерживается. Помимо описанного "не видит новых файлов" подобная работа чревата ещё и другими проблемами. Не надо так делать. Maxim Dounin From nginx-forum на nginx.us Wed Nov 2 22:28:18 2011 From: nginx-forum на nginx.us (xT) Date: Wed, 02 Nov 2011 18:28:18 -0400 Subject: =?UTF-8?B?UmU6INCV0LTQuNC90YvQuSBGYXN0Y2dpINC60Y3RiCDQtNC70Y8g0L3QtdGB0Lo=?= =?UTF-8?B?0L7Qu9GM0LrQuNGFINGB0LXRgNCy0LXRgNC+0LI=?= In-Reply-To: <20111102220943.GZ95664@mdounin.ru> References: <20111102220943.GZ95664@mdounin.ru> Message-ID: Maxim Dounin Wrote: ------------------------------------------------------- > Hello! > Работа с кешом, общим для нескольких экземпляров nginx'а, сейчас не поддерживается. > > Помимо описанного "не видит новых файлов" подобная работа чревата ещё и другими проблемами. > Не надо так делать. Привет, Спасибо за ответ : ) Чем еще, помимо описанной проблемы, чревато использование такого подхода? И каким другим простым способом получить распределенный кеш? Класть в мемкешед или в Редис(усложняется тем, что установка кеша производится "внешними" средствами(lua))? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217721,217728#msg-217728 From ekruglov на gmail.com Thu Nov 3 06:04:21 2011 From: ekruglov на gmail.com (Kruglov Eugenie) Date: Thu, 3 Nov 2011 10:04:21 +0400 Subject: =?UTF-8?B?UmU6INCV0LTQuNC90YvQuSBGYXN0Y2dpINC60Y3RiCDQtNC70Y8g0L3QtdGB0Lo=?= =?UTF-8?B?0L7Qu9GM0LrQuNGFINGB0LXRgNCy0LXRgNC+0LI=?= In-Reply-To: References: <20111102220943.GZ95664@mdounin.ru> Message-ID: Зачем вам это? Почему не хватает одного сервера с кешем? Во что вы в нём упираетесь? 2011/11/3 xT > Maxim Dounin Wrote: > ------------------------------------------------------- > > Hello! > > Работа с кешом, общим для нескольких > экземпляров nginx'а, сейчас не > поддерживается. > > > > Помимо описанного "не видит новых > файлов" подобная работа чревата ещё и > другими проблемами. > > Не надо так делать. > > Привет, > > Спасибо за ответ : ) > > Чем еще, помимо описанной проблемы, > чревато использование такого подхода? > > И каким другим простым способом > получить распределенный кеш? > Класть в мемкешед или в > Редис(усложняется тем, что установка > кеша производится "внешними" > средствами(lua))? > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,217721,217728#msg-217728 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Faithfully yours, Eugenie ICQ #701217 GTalk ekruglov на gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum на nginx.us Thu Nov 3 06:30:16 2011 From: nginx-forum на nginx.us (Saniek) Date: Thu, 03 Nov 2011 02:30:16 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9C+0LTRgNGD0LbQuNGC0YwgcGhwTXlhZG1pbiDQuCBlQWNj?= =?UTF-8?B?ZWxlcmF0b3I=?= In-Reply-To: <1a5c3ab5c2ad8bc7fb03ea6f6a4ae5ba.NginxMailingListRussian@forum.nginx.org> References: <1a5c3ab5c2ad8bc7fb03ea6f6a4ae5ba.NginxMailingListRussian@forum.nginx.org> Message-ID: <6afe481a84d46762b16a6ac8018251b2.NginxMailingListRussian@forum.nginx.org> Paul Khusainov, спасибо Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217691,217738#msg-217738 From nginx-forum на nginx.us Thu Nov 3 12:22:08 2011 From: nginx-forum на nginx.us (Saniek) Date: Thu, 03 Nov 2011 08:22:08 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9C+0LTRgNGD0LbQuNGC0YwgcGhwTXlhZG1pbiDQuCBlQWNj?= =?UTF-8?B?ZWxlcmF0b3I=?= In-Reply-To: <1a5c3ab5c2ad8bc7fb03ea6f6a4ae5ba.NginxMailingListRussian@forum.nginx.org> References: <1a5c3ab5c2ad8bc7fb03ea6f6a4ae5ba.NginxMailingListRussian@forum.nginx.org> Message-ID: <6ee5800d61621313ea9e40708951f69c.NginxMailingListRussian@forum.nginx.org> Еще такой вопрос: сделал такой пул [pma] listen = /var/run/pma.sock listen.owner = www listen.group = www listen.mode = 0666 user = www group = www pm = static pm.max_children = 2 pm.start_servers = 2 pm.min_spare_servers = 2 pm.max_spare_servers = 2 pm.max_requests = 500 php_admin_value[eaccelerator.enable] = 0 в nginx добавил location /pma{ expires epoch; index index.php index.html index.htm; fastcgi_pass unix:/var/run/pma.sock; fastcgi_index index.html; fastcgi_intercept_errors on; fastcgi_param SCRIPT_FILENAME /usr/local/www/nginx$fastcgi_script_name; include fastcgi_params; } Но MyAdm не запускается с такой ошибкой Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly. Сессия так то работает, может в пул надо что-то добавить? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217691,217756#msg-217756 From kav на karagodov.name Thu Nov 3 12:31:13 2011 From: kav на karagodov.name (Alexey V. Karagodov) Date: Thu, 3 Nov 2011 16:31:13 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9C+0LTRgNGD0LbQuNGC0YwgcGhwTXlhZG1pbiDQuCBlQWNj?= =?UTF-8?B?ZWxlcmF0b3I=?= In-Reply-To: References: <1a5c3ab5c2ad8bc7fb03ea6f6a4ae5ba.NginxMailingListRussian@forum.nginx.org> Message-ID: <81F81B1D-F6DA-4A71-8306-31ED461BD029@karagodov.name> плюсую ко всем, у кого работает как собирали пхп? модули? версии? это явно off-topic From nginx-forum на nginx.us Thu Nov 3 12:38:23 2011 From: nginx-forum на nginx.us (Saniek) Date: Thu, 03 Nov 2011 08:38:23 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9C+0LTRgNGD0LbQuNGC0YwgcGhwTXlhZG1pbiDQuCBlQWNj?= =?UTF-8?B?ZWxlcmF0b3I=?= In-Reply-To: <1a5c3ab5c2ad8bc7fb03ea6f6a4ae5ba.NginxMailingListRussian@forum.nginx.org> References: <1a5c3ab5c2ad8bc7fb03ea6f6a4ae5ba.NginxMailingListRussian@forum.nginx.org> Message-ID: Собирал обычно, из портов Freebsd, после апгрейда такая фигня, почитал - оказывается это проблема у многих. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217691,217764#msg-217764 From hell-for-yahoo на umail.ru Thu Nov 3 14:34:08 2011 From: hell-for-yahoo на umail.ru (Andrey Repin) Date: Thu, 3 Nov 2011 18:34:08 +0400 Subject: Nginx + Apache + ssl In-Reply-To: <587ead83e994e4fb4e8db7abb04fd8f0.NginxMailingListRussian@forum.nginx.org> References: <587ead83e994e4fb4e8db7abb04fd8f0.NginxMailingListRussian@forum.nginx.org> Message-ID: <672332200.20111103183408@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) alexnginx! a> ответ на вопрос: "какова цель подобного a> хотения?" изложен в посте November 01, 2011 05:35AM. a> Иными словами заставить шифровать Nginx a> по ГОСТу пока не получилось, но a> получилось заставить Апач. Удалось заставить, хорошо, а какова цель подобного извраще... проксирования-то? Вы так и не ответили, какую роль должен выполнять в этой ситуации nginx, кроме той, с которой вполне справится обычный NAT? -- С уважением Andrey Repin (hell-for-yahoo на umail.ru) четверг, 03.11.2011, <18:32> From ola_nk на mail.ru Thu Nov 3 16:28:05 2011 From: ola_nk на mail.ru (ola) Date: Thu, 3 Nov 2011 19:28:05 +0300 Subject: random_index Message-ID: <713710584.20111103192805@mail.ru> Здравствуйте, Nginx-ru. Помогите, пожалуйста, разобраться с random_index. server { listen 127.0.0.1:80; server_name localhost; error_log logs/error.log debug; location / { root /common/example.org/www; index index.html; } location ~ ^/banner(\d+)/$ { alias /common/example.org/adv/$1/; random_index on; } } При запросе /banner2/ получается 404-я ошибка, nginx пытается отдать файл /common/example.org/www/banner2/1.html Если использовать location ~ ^/banner(\d+)/ {} (без завершающего $), то nginx делает 10 внутренних редиректов и "Redirection limit of 10 URL's reached" -- С уважением, Ольга Н. From mdounin на mdounin.ru Thu Nov 3 16:31:04 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 3 Nov 2011 20:31:04 +0400 Subject: random_index In-Reply-To: <713710584.20111103192805@mail.ru> References: <713710584.20111103192805@mail.ru> Message-ID: <20111103163104.GB95664@mdounin.ru> Hello! On Thu, Nov 03, 2011 at 07:28:05PM +0300, ola wrote: > Здравствуйте, Nginx-ru. > > Помогите, пожалуйста, разобраться с random_index. > > server { > listen 127.0.0.1:80; > server_name localhost; > error_log logs/error.log debug; > > location / { > root /common/example.org/www; > index index.html; > } > > location ~ ^/banner(\d+)/$ { > alias /common/example.org/adv/$1/; > random_index on; > } > } > > При запросе /banner2/ получается 404-я ошибка, nginx пытается отдать > файл /common/example.org/www/banner2/1.html > > Если использовать location ~ ^/banner(\d+)/ {} (без завершающего $), > то nginx делает 10 внутренних редиректов и "Redirection limit of 10 > URL's reached" Если в директиве alias используются переменные, то она задаёт полный путь к файлу, который надо использовать. Должно сработать как-то так: location ~ ^/banner(?\d+)/(?.*) { alias /common/example.org/adv/$number/$file; random_index on; } Maxim Dounin From ola_nk на mail.ru Thu Nov 3 18:35:53 2011 From: ola_nk на mail.ru (ola) Date: Thu, 3 Nov 2011 21:35:53 +0300 Subject: random_index In-Reply-To: <20111103163104.GB95664@mdounin.ru> References: <713710584.20111103192805@mail.ru> <20111103163104.GB95664@mdounin.ru> Message-ID: <839241475.20111103213553@mail.ru> Здравствуйте, Maxim. Вы писали 3 ноября 2011 г., 19:31:04: >> Помогите, пожалуйста, разобраться с random_index. >> >> server { >> listen 127.0.0.1:80; >> server_name localhost; >> error_log logs/error.log debug; >> >> location / { >> root /common/example.org/www; >> index index.html; >> } >> >> location ~ ^/banner(\d+)/$ { >> alias /common/example.org/adv/$1/; >> random_index on; >> } >> } >> >> При запросе /banner2/ получается 404-я ошибка, nginx пытается отдать >> файл /common/example.org/www/banner2/1.html >> >> Если использовать location ~ ^/banner(\d+)/ {} (без завершающего $), >> то nginx делает 10 внутренних редиректов и "Redirection limit of 10 >> URL's reached" > Если в директиве alias используются переменные, то она задаёт > полный путь к файлу, который надо использовать. Максим, объясните, пожалуйста, поподробнее. Я ж вроде и использую полный путь. > Должно сработать как-то так: > location ~ ^/banner(?\d+)/(?.*) { > alias /common/example.org/adv/$number/$file; > random_index on; > } Это немного не то. Если использовать ваш вариант, то получается что рандомные имена файлов (?.*) надо генерить на бекенде. А хотелось бы использовать nginx для этой задачи. По дебаг-логу видно что нгинкс сначала преобразовывает алиас, затем из списка файлов в получившейся директории выбирает рандомный, но добавляет выбранное имя файла к исходному (текущему?) uri, а не к пути, полученному из алиаса. Потом делается внутренний редирект и начинается опять поиск нужного дlocation'a. Вот если бы выбранное рандомом имя добавить к преобразованному алиасу и остановиться на этом... Пробовала написать break; но видимо оно не для internal redirect. -- С уважением, Ольга Н. From mdounin на mdounin.ru Thu Nov 3 18:12:24 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 3 Nov 2011 22:12:24 +0400 Subject: random_index In-Reply-To: <839241475.20111103213553@mail.ru> References: <713710584.20111103192805@mail.ru> <20111103163104.GB95664@mdounin.ru> <839241475.20111103213553@mail.ru> Message-ID: <20111103181224.GE95664@mdounin.ru> Hello! On Thu, Nov 03, 2011 at 09:35:53PM +0300, ola wrote: > Здравствуйте, Maxim. > > Вы писали 3 ноября 2011 г., 19:31:04: > > >> Помогите, пожалуйста, разобраться с random_index. > >> > >> server { > >> listen 127.0.0.1:80; > >> server_name localhost; > >> error_log logs/error.log debug; > >> > >> location / { > >> root /common/example.org/www; > >> index index.html; > >> } > >> > >> location ~ ^/banner(\d+)/$ { > >> alias /common/example.org/adv/$1/; > >> random_index on; > >> } > >> } > >> > >> При запросе /banner2/ получается 404-я ошибка, nginx пытается отдать > >> файл /common/example.org/www/banner2/1.html > >> > >> Если использовать location ~ ^/banner(\d+)/ {} (без завершающего $), > >> то nginx делает 10 внутренних редиректов и "Redirection limit of 10 > >> URL's reached" > > > Если в директиве alias используются переменные, то она задаёт > > полный путь к файлу, который надо использовать. > Максим, объясните, пожалуйста, поподробнее. Я ж вроде и использую > полный путь. Значение "/common/example.org/adv/$1/" задаёт путь к каталогу, а не к конкретному файлу. > > Должно сработать как-то так: > > > location ~ ^/banner(?\d+)/(?.*) { > > alias /common/example.org/adv/$number/$file; > > random_index on; > > } > Это немного не то. Если использовать ваш вариант, то получается что > рандомные имена файлов (?.*) надо генерить на бекенде. А > хотелось бы использовать nginx для этой задачи. Нет, не надо. Модуль random index, увидив запрос к каталогу, сгенерирует внутренний редирект на случайный файл из каталога. Дальше нужно, чтобы этот перенаправленный запрос кто-то обработал. В конфиге, который вы привели, всё происходит так: 1. Запрос "/banner2/" попадает в "location ~ ^/banner(\d+)/$". 2. Модуль random index делает внутренний редирект на "/banner2/1.html". 3. Запрос "/banner2/1.html" попадает в "location /", пытается открыть файл /common/example.org/www/banner2/1.html (root + uri) и возвращает 404, т.к. такого файла нет. Если написать, как вы пытались, "location ~ ^/banner(\d+)/" аналогичного содержания, то будет так: 1, 2 - то же самое. 3. Запрос "/banner2/1.html" попадает в "location ~ ^/banner(\d+)/". Тут nginx попытается открыть путь, заданный директивой alias (ибо она с переменными), а именно "/common/example.org/adv/2/". Обнаружит, что это - не файл, а каталог, и отдаёт 301 redirect с добавлением ещё одного '/' в конец uri. Дальше браузер делает ещё один запрос, и цикл повторяется пока браузеру не надоест. > По дебаг-логу видно что нгинкс сначала преобразовывает алиас, затем из > списка файлов в получившейся директории выбирает рандомный, но > добавляет выбранное имя файла к исходному (текущему?) uri, а не к > пути, полученному из алиаса. Потом делается внутренний редирект и > начинается опять поиск нужного дlocation'a. Да, именно так. И index, и random_index работают по одному и тому же принципу: ищут подходящий индексный файл и делают внутренний редирект на него. Это, в частности, позволяет использовать индексные файлы с отдельной обработкой, e.g. index.php. Дополнительные детали можно почитать тут: http://nginx.org/en/docs/http/request_processing.html > Вот если бы выбранное рандомом имя добавить к преобразованному > алиасу и остановиться на этом... > Пробовала написать break; но видимо оно не для internal redirect. Нужно просто сделать, чтобы получившийся после внутреннего редиректа запрос правильно обрабатывался. Именно это и делает предложенный мной конфиг. Maxim Dounin From ne на vbart.ru Thu Nov 3 18:13:26 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Thu, 3 Nov 2011 22:13:26 +0400 Subject: random_index In-Reply-To: <839241475.20111103213553@mail.ru> References: <713710584.20111103192805@mail.ru> <20111103163104.GB95664@mdounin.ru> <839241475.20111103213553@mail.ru> Message-ID: <201111032213.27037.ne@vbart.ru> On Thursday 03 November 2011 22:35:53 ola wrote: [...] > > Должно сработать как-то так: > > location ~ ^/banner(?\d+)/(?.*) { > > > > alias /common/example.org/adv/$number/$file; > > random_index on; > > > > } > > Это немного не то. Если использовать ваш вариант, то получается что > рандомные имена файлов (?.*) надо генерить на бекенде. А > хотелось бы использовать nginx для этой задачи. А вы пробовали предложенную конфигурацию? 1) Как я себе представляю, она должна работать так: Запрос /banner2/ попадет в указанный локейшн, при этом $number == 2 , а $file == "" alias примет вид: /common/example.org/adv/2/ Поскольку uri заканчивается на /, то сработает random_index и возьмет один случайный файл (назовем его random.file) из root + alias и сделает внутренний редирект на /banner2/random.file 2) Это запрос /banner2/random.file опять попадет в указанный локейшн, при этом: $number == 2 , а $file == random.file alias примет вид: /common/example.org/adv/2/random.file Поскольку uri теперь не заканчивается на / , то random_index не сработает, а будет просто отдан файл root + alias, т. е. /common/example.org/adv/2/random.file Не этого ли вы хотите? -- Валентин Бартенев http://vbart.ru/ From bas на it-core.org Thu Nov 3 18:28:43 2011 From: bas на it-core.org (bas) Date: Fri, 4 Nov 2011 00:28:43 +0600 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9C+0LTRgNGD0LbQuNGC0YwgcGhwTXlhZG1pbiDQuCBlQWNj?= =?UTF-8?B?ZWxlcmF0b3I=?= In-Reply-To: References: <1a5c3ab5c2ad8bc7fb03ea6f6a4ae5ba.NginxMailingListRussian@forum.nginx.org> Message-ID: Переставьте порт pma без apc. 03.11.2011 18:38 пользователь "Saniek" написал: > Собирал обычно, из портов Freebsd, после > апгрейда такая фигня, почитал - > оказывается это проблема у многих. > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,217691,217764#msg-217764 > > _______________________________________________ > 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 ne на vbart.ru Thu Nov 3 18:45:51 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Thu, 3 Nov 2011 22:45:51 +0400 Subject: random_index In-Reply-To: <201111032213.27037.ne@vbart.ru> References: <713710584.20111103192805@mail.ru> <839241475.20111103213553@mail.ru> <201111032213.27037.ne@vbart.ru> Message-ID: <201111032245.51541.ne@vbart.ru> On Thursday 03 November 2011 22:13:26 Валентин Бартенев wrote: [...] > случайный файл (назовем его random.file) из root + alias и сделает [...] > не сработает, а будет просто отдан файл root + alias, т. е. [...] Про root + alias не прав. Просто alias. root и alias - взаимоисключающие. -- Валентин Бартенев http://vbart.ru/ From bas на it-core.org Thu Nov 3 18:50:03 2011 From: bas на it-core.org (bas) Date: Fri, 4 Nov 2011 00:50:03 +0600 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9C+0LTRgNGD0LbQuNGC0YwgcGhwTXlhZG1pbiDQuCBlQWNj?= =?UTF-8?B?ZWxlcmF0b3I=?= In-Reply-To: References: <1a5c3ab5c2ad8bc7fb03ea6f6a4ae5ba.NginxMailingListRussian@forum.nginx.org> Message-ID: И удалите apc, если используете eaccelerator 04.11.2011 0:28 пользователь "bas" написал: > Переставьте порт pma без apc. > 03.11.2011 18:38 пользователь "Saniek" написал: > >> Собирал обычно, из портов Freebsd, после >> апгрейда такая фигня, почитал - >> оказывается это проблема у многих. >> >> Posted at Nginx Forum: >> http://forum.nginx.org/read.php?21,217691,217764#msg-217764 >> >> _______________________________________________ >> 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 ru на nginx.com Thu Nov 3 20:30:48 2011 From: ru на nginx.com (Ruslan Ermilov) Date: Thu, 3 Nov 2011 20:30:48 +0000 Subject: random_index In-Reply-To: <20111103163104.GB95664@mdounin.ru> References: <713710584.20111103192805@mail.ru> <20111103163104.GB95664@mdounin.ru> Message-ID: <20111103203048.GA99293@lo0.su> On Thu, Nov 03, 2011 at 08:31:04PM +0400, Maxim Dounin wrote: > Hello! > > On Thu, Nov 03, 2011 at 07:28:05PM +0300, ola wrote: > > > Здравствуйте, Nginx-ru. > > > > Помогите, пожалуйста, разобраться с random_index. > > > > server { > > listen 127.0.0.1:80; > > server_name localhost; > > error_log logs/error.log debug; > > > > location / { > > root /common/example.org/www; > > index index.html; > > } > > > > location ~ ^/banner(\d+)/$ { > > alias /common/example.org/adv/$1/; > > random_index on; > > } > > } > > > > При запросе /banner2/ получается 404-я ошибка, nginx пытается отдать > > файл /common/example.org/www/banner2/1.html > > > > Если использовать location ~ ^/banner(\d+)/ {} (без завершающего $), > > то nginx делает 10 внутренних редиректов и "Redirection limit of 10 > > URL's reached" > > Если в директиве alias используются переменные, то она задаёт > полный путь к файлу, который надо использовать. Это неверно. Наличие в значении alias переменных не приводит к такому эффекту. Правильно написано в документации, а именно: если alias указана внутри location, заданного регулярным выражением, то regexp должен содержать captures, и alias должна на них ссылаться. В любом случае значение директивы alias заменяет значение директивы location целиком, будь то regexp или префикс. > Должно сработать как-то так: > > location ~ ^/banner(?\d+)/(?.*) { > alias /common/example.org/adv/$number/$file; > random_index on; > } -- Ruslan Ermilov From jd на artdesign.ru Thu Nov 3 22:19:45 2011 From: jd на artdesign.ru (Vladimir Sopot) Date: Fri, 4 Nov 2011 02:19:45 +0400 Subject: =?UTF-8?B?Z3ppcCDQstC+INCy0LvQvtC20LXQvdC90YvRhSBsb2NhdGlvbg==?= Message-ID: <3ABB794A-2954-4DC8-BE55-67D7C025FF7C@artdesign.ru> День добрый. Есть location / { if ($country != ru ) { gzip on; } location = /superfly.php { # if ($country != ru ) { gzip on; } .............. В результате с комментарием /superfly.php отдаётся без сжатия. Без комментария - сжимается. Вопрос: должен ли наследоваться gzip on во вложенные location или нет? jd From nginx-forum на nginx.us Fri Nov 4 00:20:37 2011 From: nginx-forum на nginx.us (xT) Date: Thu, 03 Nov 2011 20:20:37 -0400 Subject: =?UTF-8?B?UmU6INCV0LTQuNC90YvQuSBGYXN0Y2dpINC60Y3RiCDQtNC70Y8g0L3QtdGB0Lo=?= =?UTF-8?B?0L7Qu9GM0LrQuNGFINGB0LXRgNCy0LXRgNC+0LI=?= In-Reply-To: References: Message-ID: <66025b270905c6e0e298afc27de18af3.NginxMailingListRussian@forum.nginx.org> Kruglov Eugenie Wrote: ------------------------------------------------------- > Зачем вам это? Почему не хватает одного сервера с кешем? Во что вы в нём упираетесь? Упираемся в приложение и количество посетителей, а так же в необходимость быстрого ответа поисковым системам(в частности, гуглу) Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217721,217790#msg-217790 From nginx-forum на nginx.us Fri Nov 4 04:09:00 2011 From: nginx-forum на nginx.us (NURLANK) Date: Fri, 04 Nov 2011 00:09:00 -0400 Subject: =?UTF-8?B?0LLQvtC/0YDQvtGBINC/0L4g0YHQtdGA0YLQuNGE0LjQutCw0YLQsNC8?= Message-ID: <7927695223a598b7be4755618837ea9b.NginxMailingListRussian@forum.nginx.org> При работе по протоколу HTTPS возникает проблема с сертификатами, точнее c клиентскими сертификатами с приватными ключами. Есть поставщики услуг, которые высылают только серверный сертификат. Тогда, высланный поставщиком серверный сертификат мы импортируем в хранилище доверенных сертификатов. Поставщиков, использующих только серверный сертификат мы можем подключать сколько угодно след образом: ./keytool -import -alias aesroot ?keystore /export/home/way4/appserver/jdk/1.6/jre/lib/security/cacerts ?file /export/home/way4/appserver/mystores/aes_ca.crt Также есть поставщики услуг, которые высылают серверный и клиентский сертификат. В этом случае мы указываем в коде программы или в настройках приложения следующие пути к сертификатам: -Djavax.net.ssl.keyStore=app/config/work/keys/halyk.p12 -Djavax.net.ssl.keyStoreType=pkcs12 -Djavax.net.ssl.keyStorePassword=changeit -Djavax.net.ssl.trustStore=app/config/work/keys/aes.keystore -Djavax.net.ssl.trustStoreType=jks -Djavax.net.ssl.trustStorePassword=changeit Поставщиков, использующих серверный и клиентский сертификат мы можем подключить только одного. Если указываем несколько раз пути к клиентским сертификатам, то работает только последний указанный, предыдущие указанные пути затираются, при запросах возникает ошибка по сертификату. Серверные сертификаты мы добавим в cacerts или создадим отдельное хранилище и укажем пути в приложении. Но можем ли мы положить клиентские сертификаты в один файл под одним и тем же паролем, что и к самому хранилищу. Если да, то подскажите пожалуйста каким образом это можно и с помощью каких утилит? Если невозможно, подскажите пожалуйста другие пути решения проблемы, исходя из вашего опыта. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217795,217795#msg-217795 From nginx-forum на nginx.us Fri Nov 4 06:25:36 2011 From: nginx-forum на nginx.us (vnagara) Date: Fri, 04 Nov 2011 02:25:36 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9C+0LTRgNGD0LbQuNGC0YwgcGhwTXlhZG1pbiDQuCBlQWNj?= =?UTF-8?B?ZWxlcmF0b3I=?= In-Reply-To: <11d49a5b691ef5da37624cc04aff7f78.NginxMailingListRussian@forum.nginx.org> References: <11d49a5b691ef5da37624cc04aff7f78.NginxMailingListRussian@forum.nginx.org> Message-ID: <5575dacb323801941148966f7671191b.NginxMailingListRussian@forum.nginx.org> Saniek Wrote: ------------------------------------------------------- > Надо настроить так, чтобы > для конкретного location > отключить eaccelerator, это надо > делать в апаче (если он > стоит), или в nginx где > описываются директории. > Вроде так должно быть. In the location you should add the parameter fastcgi_param PHP_VALUE "eaccelerator.enable=off" or you can do it in php-fpm by row your proposition: php_value[eaccelerator.enable] = 0 correct will be: php_admin_flag[eaccelerator.enable] = off Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217691,217797#msg-217797 From nginx-forum на nginx.us Fri Nov 4 06:33:49 2011 From: nginx-forum на nginx.us (vnagara) Date: Fri, 04 Nov 2011 02:33:49 -0400 Subject: =?UTF-8?B?UmU6INCy0L7Qv9GA0L7RgSDQv9C+INGB0LXRgNGC0LjRhNC40LrQsNGC0LDQvA==?= In-Reply-To: <7927695223a598b7be4755618837ea9b.NginxMailingListRussian@forum.nginx.org> References: <7927695223a598b7be4755618837ea9b.NginxMailingListRussian@forum.nginx.org> Message-ID: А разве это не оффтопик? Форумом не ошибся? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217795,217798#msg-217798 From nginx-forum на nginx.us Fri Nov 4 06:51:49 2011 From: nginx-forum на nginx.us (vnagara) Date: Fri, 04 Nov 2011 02:51:49 -0400 Subject: =?UTF-8?B?UmU6INCS0LvQvtC20LXQvdC90L3Ri9C5INC70L7QutC10LnRiNC9INCy0L3Rg9GC?= =?UTF-8?B?0YDQuCDQuNC80LXQvdC+0LLQsNC90L3QvtCz0L4g0LvQvtC60LXQudGI0Lg=?= =?UTF-8?B?0L3QsA==?= In-Reply-To: <4EB01422.7090204@kpi.ua> References: <4EB01422.7090204@kpi.ua> Message-ID: <73c50bcf6adc4921139109d2d3442902.NginxMailingListRussian@forum.nginx.org> на сколько я знаю - никак, хотя хотельсь бы. Что мне приходит в голову так это только потом поставить условие типа: @sata { if ($uri ~ \.flv$) { you code; } } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217656,217799#msg-217799 From mdounin на mdounin.ru Fri Nov 4 09:00:43 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 4 Nov 2011 13:00:43 +0400 Subject: random_index In-Reply-To: <20111103203048.GA99293@lo0.su> References: <713710584.20111103192805@mail.ru> <20111103163104.GB95664@mdounin.ru> <20111103203048.GA99293@lo0.su> Message-ID: <20111104090043.GG95664@mdounin.ru> Hello! On Thu, Nov 03, 2011 at 08:30:48PM +0000, Ruslan Ermilov wrote: > On Thu, Nov 03, 2011 at 08:31:04PM +0400, Maxim Dounin wrote: [...] > > Если в директиве alias используются переменные, то она задаёт > > полный путь к файлу, который надо использовать. > > Это неверно. Наличие в значении alias переменных не приводит > к такому эффекту. Правильно написано в документации, а именно: > если alias указана внутри location, заданного регулярным > выражением, то regexp должен содержать captures, и alias должна > на них ссылаться. В любом случае значение директивы alias заменяет > значение директивы location целиком, будь то regexp или префикс. Да, согласен, моя формулировка некорректна, так более правильно. В данном случае речь идёт именно о location'е, заданном регулярным выражением, и соответственно директива alias должна задавать полный путь. Maxim Dounin From a.vasilishin на kpi.ua Fri Nov 4 09:02:22 2011 From: a.vasilishin на kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Fri, 04 Nov 2011 11:02:22 +0200 Subject: =?UTF-8?B?UmU6INCS0LvQvtC20LXQvdC90L3Ri9C5INC70L7QutC10LnRiNC9INCy0L3Rg9GC?= =?UTF-8?B?0YDQuCDQuNC80LXQvdC+0LLQsNC90L3QvtCz0L4g0LvQvtC60LXQudGI0Lg=?= =?UTF-8?B?0L3QsA==?= In-Reply-To: <73c50bcf6adc4921139109d2d3442902.NginxMailingListRussian@forum.nginx.org> References: <4EB01422.7090204@kpi.ua> <73c50bcf6adc4921139109d2d3442902.NginxMailingListRussian@forum.nginx.org> Message-ID: <4EB3AA1E.4060808@kpi.ua> 04.11.2011 8:51, vnagara пишет: > на сколько я знаю - никак, хотя хотельсь > бы. > Что мне приходит в голову так это > только потом поставить условие типа: > @sata { > if ($uri ~ \.flv$) { > you code; > } > } Решение я в принципе уже нашел - просто для каждого вложенного локейшина делать свой именованный, а пока для того случая, откуда вылезла та ошибка хватает и просто try_files -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From nginx-forum на nginx.us Fri Nov 4 09:07:27 2011 From: nginx-forum на nginx.us (NURLANK) Date: Fri, 04 Nov 2011 05:07:27 -0400 Subject: =?UTF-8?B?UmU6INCy0L7Qv9GA0L7RgSDQv9C+INGB0LXRgNGC0LjRhNC40LrQsNGC0LDQvA==?= In-Reply-To: References: <7927695223a598b7be4755618837ea9b.NginxMailingListRussian@forum.nginx.org> Message-ID: vnagara Wrote: ------------------------------------------------------- > А разве это не оффтопик? > Форумом не ошибся? Это не оффтопик. Нет не ошибся Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217795,217803#msg-217803 From nginx-forum на nginx.us Fri Nov 4 09:09:20 2011 From: nginx-forum на nginx.us (NURLANK) Date: Fri, 04 Nov 2011 05:09:20 -0400 Subject: =?UTF-8?B?UmU6INCy0L7Qv9GA0L7RgSDQv9C+INGB0LXRgNGC0LjRhNC40LrQsNGC0LDQvA==?= In-Reply-To: References: <7927695223a598b7be4755618837ea9b.NginxMailingListRussian@forum.nginx.org> Message-ID: vnagara Wrote: ------------------------------------------------------- > А разве это не оффтопик? > Форумом не ошибся? А ты знаешь хорошый форум где могут мне помочь? Если знаешь дай ссылку, плиз Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217795,217804#msg-217804 From mdounin на mdounin.ru Fri Nov 4 09:17:26 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 4 Nov 2011 13:17:26 +0400 Subject: =?UTF-8?B?UmU6INCy0L7Qv9GA0L7RgSDQv9C+INGB0LXRgNGC0LjRhNC40LrQsNGC0LDQvA==?= In-Reply-To: References: <7927695223a598b7be4755618837ea9b.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111104091726.GI95664@mdounin.ru> Hello! On Fri, Nov 04, 2011 at 05:07:27AM -0400, NURLANK wrote: > vnagara Wrote: > ------------------------------------------------------- > > А разве это не оффтопик? > > Форумом не ошибся? > > Это не оффтопик. Нет не ошибся Если не ошиблись - тогда переформулируйти ваш вопрос так, чтобы было понятно, какую именно проблему с nginx'ом вы пытаетесь решить. Maxim Dounin From a.vasilishin на kpi.ua Fri Nov 4 09:21:05 2011 From: a.vasilishin на kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Fri, 04 Nov 2011 11:21:05 +0200 Subject: =?UTF-8?B?UmU6INCy0L7Qv9GA0L7RgSDQv9C+INGB0LXRgNGC0LjRhNC40LrQsNGC0LDQvA==?= In-Reply-To: References: <7927695223a598b7be4755618837ea9b.NginxMailingListRussian@forum.nginx.org> Message-ID: <4EB3AE81.5040809@kpi.ua> 04.11.2011 11:09, NURLANK пишет: > vnagara Wrote: > ------------------------------------------------------- >> А разве это не оффтопик? >> Форумом не ошибся? > > > А ты знаешь хорошый форум где могут мне > помочь? Если знаешь дай ссылку, плиз Малчик, иди культуре поучись, да! -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From mdounin на mdounin.ru Fri Nov 4 09:37:00 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 4 Nov 2011 13:37:00 +0400 Subject: =?UTF-8?B?UmU6IGd6aXAg0LLQviDQstC70L7QttC10L3QvdGL0YUgbG9jYXRpb24=?= In-Reply-To: <3ABB794A-2954-4DC8-BE55-67D7C025FF7C@artdesign.ru> References: <3ABB794A-2954-4DC8-BE55-67D7C025FF7C@artdesign.ru> Message-ID: <20111104093700.GJ95664@mdounin.ru> Hello! On Fri, Nov 04, 2011 at 02:19:45AM +0400, Vladimir Sopot wrote: > День добрый. > > Есть > > location / { > if ($country != ru ) { gzip on; } > location = /superfly.php { > # if ($country != ru ) { gzip on; } > .............. > > В результате с комментарием /superfly.php отдаётся без сжатия. Без комментария - сжимается. > > Вопрос: должен ли наследоваться gzip on во вложенные location или нет? Директива gzip наследуется, однако в вашем случае используется директива if, которая не наследуется и не выполняется для запроса /superfly.php. Maxim Dounin From nginx-forum на nginx.us Fri Nov 4 20:35:47 2011 From: nginx-forum на nginx.us (bsyomov) Date: Fri, 04 Nov 2011 16:35:47 -0400 Subject: =?UTF-8?B?UmU6INCc0L7QtNGD0LvRjCBtcDQ6IDUwMCBJbnRlcm5hbCBTZXJ2ZXIsIHByZWFk?= =?UTF-8?B?KCkgZmFpbGVkICgyMjogSW52YWxpZCBhcmd1bWVudCks?= In-Reply-To: <4E8DCE43.1070607@kpi.ua> References: <4E8DCE43.1070607@kpi.ua> Message-ID: Аналогичная ситуация, при включённом aio одновременно с mp4 nginx 1.1.6 с http_mp4_module, проблема решается отключением aio. Кстати, ровно та же проблема наблюдалась и с nginx_mod_h264_streaming от http://h264.code-shop.com Posted at Nginx Forum: http://forum.nginx.org/read.php?21,216319,217824#msg-217824 From coolcold на coolcold.org Fri Nov 4 21:00:16 2011 From: coolcold на coolcold.org (CoolCold) Date: Sat, 5 Nov 2011 01:00:16 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQu9GM0L3QsNGPINC90LDQs9GA0YPQt9C60LAg0L3QsCDRgdC10YA=?= =?UTF-8?B?0LLQtdGALSDRgdGC0YDQuNC80LjQvdCzIEZMVg==?= In-Reply-To: <1777068947.20111029083614@coolcold.org> References: <4EA46544.80803@kpi.ua> <4EA46B98.8000404@kpi.ua> <4EA46ECC.5010001@kpi.ua> <4EA470B8.7020607@kpi.ua> <4EA5173C.6080608@itcraft.org> <4EA5293F.4060000@kpi.ua> <4EA52E00.1030401@itcraft.org> <4EA52F3D.9060100@kpi.ua> <4EA53069.4090304@itcraft.org> <4EA533B7.4050606@kpi.ua> <4EA549D0.1090801@csdoc.com> <4EA54F94.3090306@kpi.ua> <1777068947.20111029083614@coolcold.org> Message-ID: <25512336.20111105010016@coolcold.org> Hello CoolCold, Saturday, October 29, 2011, 8:36:14 AM, you wrote: C> Hello Андрей, C> Monday, October 24, 2011, 3:44:20 PM, you wrote: АВ>> 24.10.2011 14:19, Gena Makhomed пишет: >>> по какой причине этот вариант "почти рейд1" реализованный >>> скриптами и через try_files будет лучше нормального raid1 ? >>> >>> есть ли данные экспериментов linux mdraid + XFS + flv streaming, >>> которые подтверждают, что "независимые" винты будут лучше raid1 >>> (нормального (не глючного) програмного или нормального аппаратного)? >>> >>> когда этот вариант будет хуже - я уже писал, если какой-то файл >>> становится очень популярным, то винт с ним становится перегруженным >>> запросами, а все остальные винты при этом будут практически простаивать, >>> и суммарная производительность сервера будет меньше, чем могла бы быть в >>> случае использования нормального, а не "самодельного" raid1 массива. >>> >>> кстати, в raid1 массиве не обязательно должно быть всего 2 винта. >>> вполне может быть 2, 3, 4, 5, 6, 7, ... с соответствующим ростом >>> производительности массива raid1 при множественных random read. >>> АВ>> За рейд1 точно не скажу, потому что не помню как там куски файла АВ>> отдаются одному клиенту - всегда с одного диска или попеременно с разных АВ>> дисков, однозначно будет хуже в момент записи, так как запись идет АВ>> одновременно на все веники, остальные рейды проигрывают однозначно. C> Там в комментариях написано: C> 460 /* C> 461 * This routine returns the disk from which the requested read should C> 462 * be done. There is a per-array 'next expected sequential IO' sector C> 463 * number - if this matches on the next IO then we use the last disk. C> 464 * There is also a per-disk 'last know head position' sector that is C> 465 * maintained from IRQ contexts, both the normal and the resync IO C> 466 * completion handlers update this position correctly. If there is no C> 467 * perfect sequential match then we pick the disk whose head is closest. C> 468 * C> 469 * If there are 2 mirrors in the same 2 devices, performance degrades C> 470 * because position is mirror, not device based. C> 471 * C> 472 * The rdev for the device selected will have nr_pending incremented. C> 473 */ C> from C> http://neil.brown.name/git?p=linux-2.6;a=blob;f=drivers/md/raid1.c;h=4602fc57c961fd16edc5d558a050493a878fd50e;hb=HEAD#l460 C> MD(raid) файлами вообще не оперирует, это не его дело, он про них и не знает даже. Поскольку mdraid является блочным C> устройством, оперирует он блоками (внезапно). В каком месте - с дисков и/или md device происходит кэширование блоков в C> VFS я не знаю, нужно чтоб кто-нибудь посмотрел в исходники из тех кто знает C & linux kernel. От этого может зависеть C> эффективность раскладывания файла по standalone дискам/raid1. Проясняя вопрос: The kernel caches pages of files, not pages of devices. It doesn't matter where the page of data came from - it is the page of a file that is cached. by Neil Brown from http://www.spinics.net/lists/raid/msg36418.html Так что использование одного файла на одном устройстве вместо нескольких одинаковых файлах на разных устройствах будет (немного) выгоднее. Для разных файлов на разных устройствах получается что без разницы. C> Заодно, может не все знают, но: C> Individual devices in a RAID1 can be marked as "write-mostly". C> These drives are excluded from the normal read balancing and will only C> be read from when there is no other option. This can be useful for C> devices connected over a slow link. C> from http://neil.brown.name/git?p=mdadm;a=blob;f=md.4;h=99faad1ac50c48a3592b7ac27e5c1a8d20070923;hb=HEAD#l217 C> через что, если массив небольшой, можно подключать в пару sata + ssd диски и раздача будет вестись с ssd только. АВ>> По АВ>> поводу неравномерной нагрузки - да такое бывает, обычно самые популярные АВ>> файлы попадают в кеш ОС, если даже и этого не хватает, у меня на этот АВ>> случай есть скрипт, который перенесет часть активных файлов на другие, АВ>> менее нагруженные веники, для 1-но гигабитных серверов с 6-ю вениками АВ>> случаи перегрузки одного веника крайне редки, быстрее все же упирается в АВ>> канал. Скрипт используется в частности на 5-ти гбитном сервере с 8-ю АВ>> вениками и даже не по крону или как демон, так как случаи все равно АВ>> довольно редки. C> Best regards, C> CoolCold [COOLCOLD-RIPN] C> _______________________________________________ C> nginx-ru mailing list C> nginx-ru на nginx.org C> http://mailman.nginx.org/mailman/listinfo/nginx-ru np: < The system cannot find the file specified (e:\xmedia.info.txt) > Best regards, CoolCold [COOLCOLD-RIPN] From a.vasilishin на kpi.ua Fri Nov 4 21:09:02 2011 From: a.vasilishin на kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Fri, 04 Nov 2011 23:09:02 +0200 Subject: =?UTF-8?B?UmU6INCc0L7QtNGD0LvRjCBtcDQ6IDUwMCBJbnRlcm5hbCBTZXJ2ZXIsIHByZWFk?= =?UTF-8?B?KCkgZmFpbGVkICgyMjogSW52YWxpZCBhcmd1bWVudCks?= In-Reply-To: References: <4E8DCE43.1070607@kpi.ua> Message-ID: <4EB4546E.3050302@kpi.ua> 04.11.2011 22:35, bsyomov пишет: > Аналогичная ситуация, при включённом aio > одновременно с mp4 nginx 1.1.6 с http_mp4_module, > проблема решается отключением aio. > Кстати, ровно та же проблема > наблюдалась и с nginx_mod_h264_streaming от > http://h264.code-shop.com Посмотрел свой уже работающий конфиг, таки да, собрал нгинкс с nginx_mod_h264_streaming и отключил аио. -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From nginx-forum на nginx.us Sat Nov 5 06:25:40 2011 From: nginx-forum на nginx.us (idle) Date: Sat, 05 Nov 2011 02:25:40 -0400 Subject: 11: Resource temporarily unavailable Message-ID: <3c7982494952265d0392abf205b88876.NginxMailingListRussian@forum.nginx.org> connect() to unix:/home/webmaster/django_base/site/server.sock failed (11: Resource temporarily unavailable) while connecting to upstream Появляются такие ошибки при нагрузке. Бэкэнд - django через fastcgi. Можно ли тут сделать что-то силами nginx, или это полностью вина бэкэнда? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217836,217836#msg-217836 From boda2004 на gmail.com Sat Nov 5 07:03:39 2011 From: boda2004 на gmail.com (Oleksandr Bodnarashyk) Date: Sat, 5 Nov 2011 09:03:39 +0200 Subject: 11: Resource temporarily unavailable In-Reply-To: <3c7982494952265d0392abf205b88876.NginxMailingListRussian@forum.nginx.org> References: <3c7982494952265d0392abf205b88876.NginxMailingListRussian@forum.nginx.org> Message-ID: Пожалуй, можно попытаться с TCP сокетом и покрутить listen backlog. 5 ноября 2011 г. 8:25 пользователь idle написал: > connect() to unix:/home/webmaster/django_base/site/server.sock failed > (11: Resource temporarily unavailable) while connecting to upstream > > Появляются такие ошибки при нагрузке. > Бэкэнд - django через fastcgi. > Можно ли тут сделать что-то силами nginx, > или это полностью вина бэкэнда? > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217836,217836#msg-217836 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum на nginx.us Sat Nov 5 07:21:13 2011 From: nginx-forum на nginx.us (idle) Date: Sat, 05 Nov 2011 03:21:13 -0400 Subject: 11: Resource temporarily unavailable In-Reply-To: <3c7982494952265d0392abf205b88876.NginxMailingListRussian@forum.nginx.org> References: <3c7982494952265d0392abf205b88876.NginxMailingListRussian@forum.nginx.org> Message-ID: <5de73892f9eace5452223d3540079bea.NginxMailingListRussian@forum.nginx.org> И чем тут поможет backlog? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217836,217838#msg-217838 From boda2004 на gmail.com Sat Nov 5 07:34:13 2011 From: boda2004 на gmail.com (Oleksandr Bodnarashyk) Date: Sat, 5 Nov 2011 09:34:13 +0200 Subject: 11: Resource temporarily unavailable In-Reply-To: <5de73892f9eace5452223d3540079bea.NginxMailingListRussian@forum.nginx.org> References: <3c7982494952265d0392abf205b88876.NginxMailingListRussian@forum.nginx.org> <5de73892f9eace5452223d3540079bea.NginxMailingListRussian@forum.nginx.org> Message-ID: Первая ссылка в гугле по запросу "nginx listen backlog temporary unavailable" http://forum.nginx.org/read.php?21,63460,149066 Я конечно не могу гарантировать, что поможет, но стоит приложить хотя бы немного усилий для решения своей проблемы. 5 ноября 2011 г. 9:21 пользователь idle написал: > И чем тут поможет backlog? > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217836,217838#msg-217838 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum на nginx.us Sat Nov 5 07:38:24 2011 From: nginx-forum на nginx.us (idle) Date: Sat, 05 Nov 2011 03:38:24 -0400 Subject: 11: Resource temporarily unavailable In-Reply-To: References: Message-ID: <95fd93e88507d0115112fd79de3b1f25.NginxMailingListRussian@forum.nginx.org> Гугл я читал. Бэклог пробовал, безуспешно. Я пытаюсь механизм понять, как я уже написал я не уверен что это вина nginx. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217836,217840#msg-217840 From boda2004 на gmail.com Sat Nov 5 07:49:42 2011 From: boda2004 на gmail.com (Oleksandr Bodnarashyk) Date: Sat, 5 Nov 2011 09:49:42 +0200 Subject: 11: Resource temporarily unavailable In-Reply-To: <95fd93e88507d0115112fd79de3b1f25.NginxMailingListRussian@forum.nginx.org> References: <95fd93e88507d0115112fd79de3b1f25.NginxMailingListRussian@forum.nginx.org> Message-ID: Ясно. По существу - я бы уделил особое внимание http://forum.nginx.org/read.php?21,63460,149050#msg-149050 Еще в моменты, когда появляются такие ошибки, можно сделать netstat и попытаться оценить, в какое именно ограничение упирается сервер. 5 ноября 2011 г. 9:38 пользователь idle написал: > Гугл я читал. Бэклог пробовал, > безуспешно. > Я пытаюсь механизм понять, как я уже > написал я не уверен что это вина nginx. > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217836,217840#msg-217840 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum на nginx.us Sat Nov 5 07:59:08 2011 From: nginx-forum на nginx.us (idle) Date: Sat, 05 Nov 2011 03:59:08 -0400 Subject: 11: Resource temporarily unavailable In-Reply-To: <5de73892f9eace5452223d3540079bea.NginxMailingListRussian@forum.nginx.org> References: <3c7982494952265d0392abf205b88876.NginxMailingListRussian@forum.nginx.org> <5de73892f9eace5452223d3540079bea.NginxMailingListRussian@forum.nginx.org> Message-ID: Читал я это, и ещё 100500 постов. Везде предлагаются решения полученные методом научного тыка. Сама суть проблемы нигде не объясняется. Неужели у неё так много причин? Должен же быть некий общий принцип. Пока я даже не могу получить ответ на вопрос - кто тут виноват nginx или бэкэнд? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217836,217842#msg-217842 From igor на sysoev.ru Sat Nov 5 08:22:32 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Sat, 5 Nov 2011 12:22:32 +0400 Subject: 11: Resource temporarily unavailable In-Reply-To: References: <3c7982494952265d0392abf205b88876.NginxMailingListRussian@forum.nginx.org> <5de73892f9eace5452223d3540079bea.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111105082232.GA96439@nginx.com> On Sat, Nov 05, 2011 at 03:59:08AM -0400, idle wrote: > Читал я это, и ещё 100500 постов. Везде > предлагаются решения полученные > методом научного тыка. > Сама суть проблемы нигде не > объясняется. Неужели у неё так много > причин? > Должен же быть некий общий принцип. > Пока я даже не могу получить ответ на > вопрос - кто тут виноват nginx или бэкэнд? Причина ошибки "Resource temporarily unavailable" при операции connect() - переполнение listen queue бэкенда. Почему эта очередь переполнятеся - потому что бэкенд не успевает обрабатывать входящие запросы. Немного смягчить, но не решить проблему помогает увеличение backlog это очереди. А решается полностью только на стороне бэкенда. -- Игорь Сысоев http://sysoev.ru From temotor на gmail.com Sat Nov 5 08:49:23 2011 From: temotor на gmail.com (Sergey Shepelev) Date: Sat, 5 Nov 2011 12:49:23 +0400 Subject: 11: Resource temporarily unavailable In-Reply-To: <95fd93e88507d0115112fd79de3b1f25.NginxMailingListRussian@forum.nginx.org> References: <95fd93e88507d0115112fd79de3b1f25.NginxMailingListRussian@forum.nginx.org> Message-ID: Вы пробовали увеличивать backlog у джанги, а не nginx, правильно? Потому что переполняется он именно на бекенде. Что значит 11: Resource temporarily unavailable при работе с UNIX сокетами под Linux: http://stackoverflow.com/questions/5737493/sendto-resource-temporarily-unavailable-errno-11 Какое отношение это имеет к nginx: http://forum.nginx.org/read.php?3,97959,page=2 http://www.lexa.ru/nginx-ru/msg18577.html Что поможет: 1) увелечить backlog или количество воркеров или количество машин бекенда 2) подключаться к бекенду по TCP. Тогда вместо ошибки сразу, nginx будет ждать fastcgi_connect_timeout секунд и только потом будет 502. 3) найти проблему в бекенде и починить её. Проблем может быть две: - (невероятная) либо бекенд считает слишком много математики (например, вычисляете пи до миллионного знака или рендерите чудовищной сложности шаблоны) - тогда нужно увеличивать количество процессов бекенда на каждой машине вплоть до количества ядер * 1.1..1.5 - (скорее всего) либо бекенд долго ждёт ответа от других сервисов по сети. Скорее всего - от базы. С помощью вот этого кода ( http://temoto.ru/sql-stat.html ) можно выяснить какие запросы повторяются лишний раз. А с помощью вот этого ( http://temoto.ru/sql-trace.html ) можно выяснить какие модули/функции вызывают самые частые запросы. Кроме того, для жанги есть debug-toolbar, который позволяет посмотреть список запросов, которые были использованы при генерации страницы и для каждого из этих запросов посмотреть EXPLAIN. Общее правило примерно такое, что если в запросе есть group by или count(*) или нет where - должен сработать звоночек - потенциальная проблема. 2011/11/5 idle : > Гугл я читал. Бэклог пробовал, > безуспешно. > Я пытаюсь механизм понять, как я уже > написал я не уверен что это вина nginx. > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217836,217840#msg-217840 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From igor на sysoev.ru Sat Nov 5 08:50:35 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Sat, 5 Nov 2011 12:50:35 +0400 Subject: =?UTF-8?B?UmU6INCc0L7QtNGD0LvRjCBtcDQ6IDUwMCBJbnRlcm5hbCBTZXJ2ZXIsIHByZWFk?= =?UTF-8?B?KCkgZmFpbGVkICgyMjogSW52YWxpZCBhcmd1bWVudCks?= In-Reply-To: <4EB4546E.3050302@kpi.ua> References: <4E8DCE43.1070607@kpi.ua> <4EB4546E.3050302@kpi.ua> Message-ID: <20111105085034.GB96439@nginx.com> On Fri, Nov 04, 2011 at 11:09:02PM +0200, Андрей Василишин wrote: > 04.11.2011 22:35, bsyomov пишет: > > Аналогичная ситуация, при включённом aio > > одновременно с mp4 nginx 1.1.6 с http_mp4_module, > > проблема решается отключением aio. > > Кстати, ровно та же проблема > > наблюдалась и с nginx_mod_h264_streaming от > > http://h264.code-shop.com > > Посмотрел свой уже работающий конфиг, таки да, собрал нгинкс с > nginx_mod_h264_streaming и отключил аио. Скорее всего, используется open_file_cache. Должно помочь, если его выключить: location ~ \.mp4 { open_file_cache off; ... -- Игорь Сысоев http://sysoev.ru From nginx-forum на nginx.us Sat Nov 5 09:00:30 2011 From: nginx-forum на nginx.us (idle) Date: Sat, 05 Nov 2011 05:00:30 -0400 Subject: 11: Resource temporarily unavailable In-Reply-To: References: Message-ID: Igor Sysoev, Sergey Shepelev Спасибо за разъяснения. Попробую тцп. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217836,217846#msg-217846 From igor на sysoev.ru Sat Nov 5 09:07:50 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Sat, 5 Nov 2011 13:07:50 +0400 Subject: 11: Resource temporarily unavailable In-Reply-To: References: <95fd93e88507d0115112fd79de3b1f25.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111105090750.GC96439@nginx.com> On Sat, Nov 05, 2011 at 12:49:23PM +0400, Sergey Shepelev wrote: > 2) подключаться к бекенду по TCP. Тогда вместо ошибки сразу, nginx > будет ждать fastcgi_connect_timeout секунд и только потом будет 502. Если очередь переполнена, то ошибка тоже будет сразу, но другая: "Connection reset by peer". -- Игорь Сысоев http://sysoev.ru From temotor на gmail.com Sat Nov 5 09:19:14 2011 From: temotor на gmail.com (Sergey Shepelev) Date: Sat, 5 Nov 2011 13:19:14 +0400 Subject: 11: Resource temporarily unavailable In-Reply-To: <20111105090750.GC96439@nginx.com> References: <95fd93e88507d0115112fd79de3b1f25.NginxMailingListRussian@forum.nginx.org> <20111105090750.GC96439@nginx.com> Message-ID: >> 2) подключаться к бекенду по TCP. Тогда вместо ошибки сразу, nginx >> будет ждать fastcgi_connect_timeout секунд и только потом будет 502. > > Если очередь переполнена, то ошибка тоже будет сразу, но другая: > "Connection reset by peer". > А пока очередь ещё не переполнена разница между TCP/UNIX будет? From igor на sysoev.ru Sat Nov 5 09:23:41 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Sat, 5 Nov 2011 13:23:41 +0400 Subject: 11: Resource temporarily unavailable In-Reply-To: References: <95fd93e88507d0115112fd79de3b1f25.NginxMailingListRussian@forum.nginx.org> <20111105090750.GC96439@nginx.com> Message-ID: <20111105092341.GD96439@nginx.com> On Sat, Nov 05, 2011 at 01:19:14PM +0400, Sergey Shepelev wrote: > >> 2) подключаться к бекенду по TCP. Тогда вместо ошибки сразу, nginx > >> будет ждать fastcgi_connect_timeout секунд и только потом будет 502. > > > > Если очередь переполнена, то ошибка тоже будет сразу, но другая: > > "Connection reset by peer". > > А пока очередь ещё не переполнена разница между TCP/UNIX будет? Насколько я понимаю, разницы нет. -- Игорь Сысоев http://sysoev.ru From temotor на gmail.com Sat Nov 5 09:27:25 2011 From: temotor на gmail.com (Sergey Shepelev) Date: Sat, 5 Nov 2011 13:27:25 +0400 Subject: 11: Resource temporarily unavailable In-Reply-To: <20111105092341.GD96439@nginx.com> References: <95fd93e88507d0115112fd79de3b1f25.NginxMailingListRussian@forum.nginx.org> <20111105090750.GC96439@nginx.com> <20111105092341.GD96439@nginx.com> Message-ID: idle, извините за дезинформацию, второй пункт (переход на TCP) нужно исключить. From nginx-forum на nginx.us Sat Nov 5 10:44:25 2011 From: nginx-forum на nginx.us (idle) Date: Sat, 05 Nov 2011 06:44:25 -0400 Subject: 11: Resource temporarily unavailable In-Reply-To: <20111105092341.GD96439@nginx.com> References: <20111105092341.GD96439@nginx.com> Message-ID: Ну и что мне теперь делать? (( Не считая перевода стрелок на программистов. Я понимаю что разбираться надо с приложением, они будут это делать, но мне надо сейчас от багов избавиться. backlog увеличивать в nginx, параметра listen? Бэкэнд у нас на трёх машинах плюс одна раздающая и одна postgresql. Самый мощный бэкэнд, 16 ядер, 8г озу, на него наибольшая нагрузка(~400 х.c), он все баги и ловит. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217836,217851#msg-217851 From temotor на gmail.com Sat Nov 5 10:59:14 2011 From: temotor на gmail.com (Sergey Shepelev) Date: Sat, 5 Nov 2011 14:59:14 +0400 Subject: 11: Resource temporarily unavailable In-Reply-To: References: <20111105092341.GD96439@nginx.com> Message-ID: Кроме приложения можно только увеличить backlog на бекенде, в том процессе который слушает UNIX сокет. Насколько я помню manage.py runfcgi запускает flup. А он (по-крайней мере в последней версии) ставит backlog = SOMAXCONN. Поэтому проверьте, чему у вас равен sysctl net.core.somaxconn. Если бы backlog-а не хватало в nginx, была бы ошибка "невозможно подключиться к серверу" в браузере. 2011/11/5 idle : > Ну и что мне теперь делать? (( > > Не считая перевода стрелок на > программистов. Я понимаю что > разбираться надо с приложением, они > будут это делать, но мне надо сейчас от > багов избавиться. > > backlog увеличивать в nginx, параметра listen? > > Бэкэнд у нас на трёх машинах плюс  одна > раздающая и одна postgresql. > Самый мощный бэкэнд, 16 ядер, 8г озу,  на > него наибольшая нагрузка(~400 х.c), он все > баги и ловит. > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217836,217851#msg-217851 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum на nginx.us Sat Nov 5 11:03:13 2011 From: nginx-forum на nginx.us (idle) Date: Sat, 05 Nov 2011 07:03:13 -0400 Subject: 11: Resource temporarily unavailable In-Reply-To: <3c7982494952265d0392abf205b88876.NginxMailingListRussian@forum.nginx.org> References: <3c7982494952265d0392abf205b88876.NginxMailingListRussian@forum.nginx.org> Message-ID: > Поэтому проверьте, чему у вас равен sysctl net.core.somaxconn. Вчера повысил до 1024, со 128 помоему. Разницы не заметил. Попробую 4096 сделать. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217836,217853#msg-217853 From temotor на gmail.com Sat Nov 5 11:40:13 2011 From: temotor на gmail.com (Sergey Shepelev) Date: Sat, 5 Nov 2011 15:40:13 +0400 Subject: 11: Resource temporarily unavailable In-Reply-To: References: <3c7982494952265d0392abf205b88876.NginxMailingListRussian@forum.nginx.org> Message-ID: > Вчера повысил до 1024, со 128 помоему. > Разницы не заметил. Попробую 4096 > сделать. > Может быть другая версия flup или вообще не он. К сожалению, я сейчас не нашёл как посмотреть backlog сокета в чужом процессе. Попробуйте отследить по коду до места где делается listen сокету и посмотрите какое число передаётся в эту функцию. From nginx-forum на nginx.us Sat Nov 5 12:38:09 2011 From: nginx-forum на nginx.us (i.krivchun) Date: Sat, 05 Nov 2011 08:38:09 -0400 Subject: Nginx + Apache + ssl In-Reply-To: <285b1a063d028a30f828242f9be4d2c9.NginxMailingListRussian@forum.nginx.org> References: <285b1a063d028a30f828242f9be4d2c9.NginxMailingListRussian@forum.nginx.org> Message-ID: alexnginx Wrote: ------------------------------------------------------- > Спасибо за ответы. Тогда > такой вопрос (незнаю стоит > создавать новую тему или > нет). Nginx использует для > шифрования библиотеку Open > SSL. Есть сведения что > последняя версия Open SSL 1.0.0. > поддерживает российские > криптоалгоритмы ГОСТ. Где > можно взять такую > библиотеку с поддержкой > российских > криптоалгоритмов ГОСТ для > Windows (установленная версия > 1.0.0. при команде chipher не > выдает алгоритмов GOST). На > openssl.net всё сборки для *nix > систем. Как прикрутить Open SSL > 1.0.0. с поддержкой > российских > криптоалгоритмов ГОСТ к > уже поставленному Nginx. Для того, чтобы бинарники OpenSSL для WIndows стали работать с алгоритмами GOST, нужно модифицировать openssl.cfg как описано тут: http://cvs.openssl.org/fileview?f=openssl/engines/ccgost/README.gost&r=HEAD грубо говоря надо добавить строчки openssl_conf = openssl_def [openssl_def] engines = engine_section [engine_section] gost = gost_section [gost_section] engine_id = gost dynamic_path = C:/unix/openssl_100e/bin/gost.dll #(тут путь до gost.dll в вашей системе) default_algorithms = ALL CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet перед первой секцией в скобках. [.....] Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217592,217855#msg-217855 From nginx-forum на nginx.us Sat Nov 5 13:29:26 2011 From: nginx-forum на nginx.us (idle) Date: Sat, 05 Nov 2011 09:29:26 -0400 Subject: 11: Resource temporarily unavailable In-Reply-To: References: <3c7982494952265d0392abf205b88876.NginxMailingListRussian@forum.nginx.org> Message-ID: <48fdfca26d2aeae71fa82fd904b44912.NginxMailingListRussian@forum.nginx.org> > Попробуйте отследить по коду до места где делается listen сокету и посмотрите > какое число передаётся в эту функцию. В django? Хорошая мысль. Если бы мне кто-нибудь подсказал, как это сделать.. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217836,217856#msg-217856 From temotor на gmail.com Sat Nov 5 13:44:16 2011 From: temotor на gmail.com (Sergey Shepelev) Date: Sat, 5 Nov 2011 17:44:16 +0400 Subject: 11: Resource temporarily unavailable In-Reply-To: <48fdfca26d2aeae71fa82fd904b44912.NginxMailingListRussian@forum.nginx.org> References: <3c7982494952265d0392abf205b88876.NginxMailingListRussian@forum.nginx.org> <48fdfca26d2aeae71fa82fd904b44912.NginxMailingListRussian@forum.nginx.org> Message-ID: 2011/11/5 idle : >> Попробуйте отследить по коду до места > где делается listen сокету и посмотрите >> какое число передаётся в эту функцию. > В django? Хорошая мысль. > Если бы мне кто-нибудь подсказал, как > это сделать.. > Это лучше спросить, что называется "у них". https://www.djangoproject.com/community/ From mdounin на mdounin.ru Sat Nov 5 18:57:22 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Sat, 5 Nov 2011 22:57:22 +0400 Subject: 11: Resource temporarily unavailable In-Reply-To: <20111105090750.GC96439@nginx.com> References: <95fd93e88507d0115112fd79de3b1f25.NginxMailingListRussian@forum.nginx.org> <20111105090750.GC96439@nginx.com> Message-ID: <20111105185721.GN95664@mdounin.ru> Hello! On Sat, Nov 05, 2011 at 01:07:50PM +0400, Igor Sysoev wrote: > On Sat, Nov 05, 2011 at 12:49:23PM +0400, Sergey Shepelev wrote: > > > 2) подключаться к бекенду по TCP. Тогда вместо ошибки сразу, nginx > > будет ждать fastcgi_connect_timeout секунд и только потом будет 502. > > Если очередь переполнена, то ошибка тоже будет сразу, но другая: > "Connection reset by peer". На линуксе есть нюансы. Поведение по умолчанию - ничего не слать, надеяться на retransmit со стороны клиента. RST будет только если включён tcp_abort_on_overflow (по умолчанию - выключен). Maxim Dounin From nginx-forum на nginx.us Sat Nov 5 23:57:11 2011 From: nginx-forum на nginx.us (Balancer) Date: Sat, 05 Nov 2011 19:57:11 -0400 Subject: =?UTF-8?B?0JrQsNC6INC90LDQv9C40YHQsNGC0Ywg0YLQsNC60L7QuSB0cnkgZmlsZXMuINCY?= =?UTF-8?B?0LvQuCDQutCw0Log0LfQsNCx0LvQvtC60LjRgNC+0LLQsNGC0Ywg0LvQvtCz?= =?UTF-8?B?0LPQuNGA0L7QstCw0L3QuNC1IDQwMz8=?= Message-ID: Есть такая задача. По полученной ссылке нужно сперва обработать привычным образом ссылку прямо, ссылку в виде индексного файла по умолчанию, и если таких нет ? то обработать фреймворком. Делаю так: try_files $uri $uri/ @bors =404; Всё работает прекрасно до того момента, пока не окажется существующим каталог $uri/ без индексного файла. В этом случае (autoindex, понятно, выключен) вылетает 403-я ошибка. А это вполне обычная ситуация ? например, ссылка обрабатывается фреймворком, но внутри лежат обычные файлы. Вылечить не сложно: error_page 403 = @bors; и всё работает. Кроме черпака дёгтя ? после этого логи забиты 403-й ошибкой. Собственно, вопрос. Можно ли как-то избежать этой проблемы при try_files (не генерировать 403-й ошибкой, если выключен autoindex, а проверка в середине), либо хотя бы скрыть вывод 403-й ошибки в лог-файл (остальные ошибки выводить нужно). Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217862,217862#msg-217862 From ru на nginx.com Sun Nov 6 05:53:45 2011 From: ru на nginx.com (Ruslan Ermilov) Date: Sun, 6 Nov 2011 05:53:45 +0000 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQvdCw0L/QuNGB0LDRgtGMINGC0LDQutC+0LkgdHJ5IGZpbGVz?= =?UTF-8?B?LiDQmNC70Lgg0LrQsNC6INC30LDQsdC70L7QutC40YDQvtCy0LDRgtGMINC7?= =?UTF-8?B?0L7Qs9Cz0LjRgNC+0LLQsNC90LjQtSA0MDM/?= In-Reply-To: References: Message-ID: <20111106055345.GN87442@lo0.su> On Sat, Nov 05, 2011 at 07:57:11PM -0400, Balancer wrote: > Есть такая задача. По полученной ссылке > нужно сперва обработать привычным > образом ссылку прямо, ссылку в виде > индексного файла по умолчанию, и если > таких нет ? то обработать фреймворком. > > Делаю так: > try_files $uri $uri/ @bors =404; Последним аргументом может идти либо URI, либо named @location, либо =код, но не так как написано. > Всё работает прекрасно до того момента, > пока не окажется существующим каталог > $uri/ без индексного файла. В этом случае > (autoindex, понятно, выключен) вылетает 403-я > ошибка. А это вполне обычная ситуация ? > например, ссылка обрабатывается > фреймворком, но внутри лежат обычные > файлы. > > Вылечить не сложно: > error_page 403 = @bors; > и всё работает. Кроме черпака дёгтя ? > после этого логи забиты 403-й ошибкой. > > Собственно, вопрос. Можно ли как-то > избежать этой проблемы при try_files (не > генерировать 403-й ошибкой, если > выключен autoindex, а проверка в середине), > либо хотя бы скрыть вывод 403-й ошибки в > лог-файл (остальные ошибки выводить > нужно). А что мешает явно в try_files проверять индексные файлы? try_files $uri $uri/index.html @bors; Ну то есть прямо как в документации: http://nginx.org/en/docs/http/ngx_http_core_module.html#try_files From s0527705277 на gmail.com Sun Nov 6 14:42:15 2011 From: s0527705277 на gmail.com (Stephan Miyalik) Date: Sun, 6 Nov 2011 16:42:15 +0200 Subject: =?UTF-8?B?RndkOiBBY3RpdmUgY29ubmVjdGlvbnM6IDEwMDAg0Lgg0YHQutC+0YDQvtGB0YI=?= =?UTF-8?B?0Ywg0L/QsNC00LDQtdGC?= In-Reply-To: References: Message-ID: Здравствуйте! Когда конектов больше тысячи то скорость отдачи сильно падает! не пойму в чем дело... к примеру с 350+ конектов скорость доходит до 600mb/sec с 1000 конектов и больше, скорость 360mb/sec притом нагрузка на сервере минимальная. в чем дело и как можно это исправить? вот мой конфиг #user nginx; worker_processes 100; events { worker_connections 1024; multi_accept on; } http { include 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 logs/access.log main; sendfile off; tcp_nopush off; tcp_nodelay off; keepalive_timeout 0; server { listen 80; server_name video.website.com; root /video; location / { root /video; index index.html index.htm; output_buffers 1 1m; } location ~ \.flv$ { flv; } ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From voron на amhost.net Sun Nov 6 16:26:40 2011 From: voron на amhost.net (Alex Vorona) Date: Sun, 06 Nov 2011 18:26:40 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: References: Message-ID: <4EB6B540.8000400@amhost.net> Попробуйте добавить дисков. From s0527705277 на gmail.com Sun Nov 6 16:27:58 2011 From: s0527705277 на gmail.com (Stephan Miyalik) Date: Sun, 6 Nov 2011 18:27:58 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: <4EB6B540.8000400@amhost.net> References: <4EB6B540.8000400@amhost.net> Message-ID: уже стоят 4 диска 2011/11/6 Alex Vorona > Попробуйте добавить дисков. > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From voron на amhost.net Sun Nov 6 16:52:26 2011 From: voron на amhost.net (Alex Vorona) Date: Sun, 06 Nov 2011 18:52:26 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: References: <4EB6B540.8000400@amhost.net> Message-ID: <4EB6BB4A.3030603@amhost.net> С 4-х дисков RAID1 гигабит обычно можно выжать в 1к коннектов Попробуйте - выключить multi_accept - sendfile включить (если FreeBSD то попробуйте aio sendfile) - увеличить readahead в системе до 1-2мбайт [для нужных дисков] - включить read_ahead в nginx - поднять sndbuf сокета nginx до 300-500кБайт - поднять wmem_max и tcp_wmem Это позволит nginx засовывать в большие буфера большие куски данных за 1 раз, меньше дергая диски. From s0527705277 на gmail.com Sun Nov 6 17:06:20 2011 From: s0527705277 на gmail.com (Stephan Miyalik) Date: Sun, 6 Nov 2011 19:06:20 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: <4EB6BB4A.3030603@amhost.net> References: <4EB6B540.8000400@amhost.net> <4EB6BB4A.3030603@amhost.net> Message-ID: send file и aio не как не помогли все остольное тоже пробовал кроме read_ahead. как включить read_ahead в nginx? 2011/11/6 Alex Vorona > С 4-х дисков RAID1 гигабит обычно можно выжать в 1к коннектов > Попробуйте > - выключить multi_accept > - sendfile включить (если FreeBSD то попробуйте aio sendfile) > - увеличить readahead в системе до 1-2мбайт [для нужных дисков] > - включить read_ahead в nginx > - поднять sndbuf сокета nginx до 300-500кБайт > - поднять wmem_max и tcp_wmem > > Это позволит nginx засовывать в большие буфера большие куски данных за 1 > раз, меньше > дергая диски. > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From voron на amhost.net Sun Nov 6 17:31:18 2011 From: voron на amhost.net (Alex Vorona) Date: Sun, 06 Nov 2011 19:31:18 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: References: <4EB6B540.8000400@amhost.net> <4EB6BB4A.3030603@amhost.net> Message-ID: <4EB6C466.40406@amhost.net> 06.11.2011 19:06, Stephan Miyalik wrote: > send file и aio не как не помогли > все остольное тоже пробовал кроме read_ahead. Для минимизации сиков дисков нужно всё вместе. aio под linux выключает кэширование, что не всегда приемлемо. > как включить read_ahead в nginx? http://nginx.org/ru/docs/http/ngx_http_core_module.html#read_ahead From a.vasilishin на kpi.ua Sun Nov 6 17:40:01 2011 From: a.vasilishin на kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Sun, 06 Nov 2011 19:40:01 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: References: <4EB6B540.8000400@amhost.net> Message-ID: <4EB6C671.9020902@kpi.ua> 06.11.2011 18:27, Stephan Miyalik пишет: > уже стоят 4 диска И как они у Вас стоят? -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From a.vasilishin на kpi.ua Sun Nov 6 17:56:24 2011 From: a.vasilishin на kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Sun, 06 Nov 2011 19:56:24 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: References: <4EB6B540.8000400@amhost.net> Message-ID: <4EB6CA48.4010609@kpi.ua> 06.11.2011 18:27, Stephan Miyalik пишет: > уже стоят 4 диска Попробуйте 6 и все таки в каком они у Вас рейде? -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From s0527705277 на gmail.com Sun Nov 6 17:59:42 2011 From: s0527705277 на gmail.com (Stephan Miyalik) Date: Sun, 6 Nov 2011 19:59:42 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: <4EB6CA48.4010609@kpi.ua> References: <4EB6B540.8000400@amhost.net> <4EB6CA48.4010609@kpi.ua> Message-ID: Они без рейда... в прошлой переписке мне тут посоветовали поставить standalone чтобы выжать как можно больше с дисков... 2011/11/6 Андрей Василишин > 06.11.2011 18:27, Stephan Miyalik пишет: > >> уже стоят 4 диска >> > > Попробуйте 6 и все таки в каком они у Вас рейде? > > > > -- > WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE > > ______________________________**_________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/**mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From a.vasilishin на kpi.ua Sun Nov 6 18:07:40 2011 From: a.vasilishin на kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Sun, 06 Nov 2011 20:07:40 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: References: <4EB6B540.8000400@amhost.net> <4EB6CA48.4010609@kpi.ua> Message-ID: <4EB6CCEC.4080207@kpi.ua> 06.11.2011 19:59, Stephan Miyalik пишет: > Они без рейда... в прошлой переписке мне тут посоветовали поставить > standalone чтобы выжать как можно больше с дисков... Сколько у Вас памяти на сервере? output_buffers 1 1m; надо ставить в location ~ \.flv$ Сколько у Вас открытых файлов при 1000 конектах? -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From s0527705277 на gmail.com Sun Nov 6 18:37:18 2011 From: s0527705277 на gmail.com (Stephan Miyalik) Date: Sun, 6 Nov 2011 20:37:18 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: <4EB6CCEC.4080207@kpi.ua> References: <4EB6B540.8000400@amhost.net> <4EB6CA48.4010609@kpi.ua> <4EB6CCEC.4080207@kpi.ua> Message-ID: 16gb root на debi:~# cat /proc/sys/fs/file-nr 3616 0 1620150 2011/11/6 Андрей Василишин > 06.11.2011 19:59, Stephan Miyalik пишет: > > Они без рейда... в прошлой переписке мне тут посоветовали поставить >> standalone чтобы выжать как можно больше с дисков... >> > > Сколько у Вас памяти на сервере? > output_buffers 1 1m; надо ставить в location ~ \.flv$ > Сколько у Вас открытых файлов при 1000 конектах? > > > > -- > WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE > > ______________________________**_________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/**mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From s0527705277 на gmail.com Sun Nov 6 18:52:54 2011 From: s0527705277 на gmail.com (Stephan Miyalik) Date: Sun, 6 Nov 2011 20:52:54 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: References: <4EB6B540.8000400@amhost.net> <4EB6CA48.4010609@kpi.ua> <4EB6CCEC.4080207@kpi.ua> Message-ID: какие-то странные скачки... то оно если 250mbs дотягивает а сейчас rx: 14.49 Mbit/s 29754 p/s tx: 609.00 Mbit/s 52385 p/s притом конектов больше Active connections: 1341 server accepts handled requests 160674 160674 157473 Reading: 29 Writing: 1312 Waiting: 0 2011/11/6 Stephan Miyalik > 16gb > root на debi:~# cat /proc/sys/fs/file-nr > 3616 0 1620150 > > > 2011/11/6 Андрей Василишин > >> 06.11.2011 19:59, Stephan Miyalik пишет: >> >> Они без рейда... в прошлой переписке мне тут посоветовали поставить >>> standalone чтобы выжать как можно больше с дисков... >>> >> >> Сколько у Вас памяти на сервере? >> output_buffers 1 1m; надо ставить в location ~ \.flv$ >> Сколько у Вас открытых файлов при 1000 конектах? >> >> >> >> -- >> WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE >> >> ______________________________**_________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/**mailman/listinfo/nginx-ru >> > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From a.vasilishin на kpi.ua Sun Nov 6 18:53:24 2011 From: a.vasilishin на kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Sun, 06 Nov 2011 20:53:24 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: References: <4EB6B540.8000400@amhost.net> <4EB6CA48.4010609@kpi.ua> <4EB6CCEC.4080207@kpi.ua> Message-ID: <4EB6D7A4.2040005@kpi.ua> 06.11.2011 20:37, Stephan Miyalik пишет: > cat /proc/sys/fs/file-nr А вот так можно? lsof -np `pgrep -xd , nginx` | grep flv | awk '{ print "\t" $9 }' | sort | uniq -c | sort -rn | wc -l И заодно, какой средний размер файла? -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From s0527705277 на gmail.com Sun Nov 6 18:56:20 2011 From: s0527705277 на gmail.com (Stephan Miyalik) Date: Sun, 6 Nov 2011 20:56:20 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: <4EB6D7A4.2040005@kpi.ua> References: <4EB6B540.8000400@amhost.net> <4EB6CA48.4010609@kpi.ua> <4EB6CCEC.4080207@kpi.ua> <4EB6D7A4.2040005@kpi.ua> Message-ID: root на debi:~# lsof -np `pgrep -xd , nginx` | grep flv | awk '{ print "\t" $9 }' | sort | uniq -c | sort -rn | wc -l 237 где-то 250 -300 мб 2011/11/6 Андрей Василишин > 06.11.2011 20:37, Stephan Miyalik пишет: > >> cat /proc/sys/fs/file-nr >> > > > А вот так можно? > > lsof -np `pgrep -xd , nginx` | grep flv | awk '{ print "\t" $9 }' | sort | > uniq -c | sort -rn | wc -l > > > И заодно, какой средний размер файла? > > > -- > WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE > > ______________________________**_________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/**mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From a.vasilishin на kpi.ua Sun Nov 6 19:02:33 2011 From: a.vasilishin на kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Sun, 06 Nov 2011 21:02:33 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: References: <4EB6B540.8000400@amhost.net> <4EB6CA48.4010609@kpi.ua> <4EB6CCEC.4080207@kpi.ua> <4EB6D7A4.2040005@kpi.ua> Message-ID: <4EB6D9C9.9090208@kpi.ua> 06.11.2011 20:56, Stephan Miyalik пишет: > root на debi:~# lsof -np `pgrep -xd , nginx` | grep flv | awk '{ print "\t" > $9 }' | sort | uniq -c | sort -rn | wc -l > 237 > > где-то 250 -300 мб Явные лидеры есть, которые имеет смысл кешировать или все файлы по 4 конекта? lsof -np `pgrep -xd , nginx` | grep flv | awk '{ print "\t" $9 }' | sort | uniq -c | sort -rn output_buffers проставлены уже в нужном месте? -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From s0527705277 на gmail.com Sun Nov 6 19:06:33 2011 From: s0527705277 на gmail.com (Stephan Miyalik) Date: Sun, 6 Nov 2011 21:06:33 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: <4EB6D9C9.9090208@kpi.ua> References: <4EB6B540.8000400@amhost.net> <4EB6CA48.4010609@kpi.ua> <4EB6CCEC.4080207@kpi.ua> <4EB6D7A4.2040005@kpi.ua> <4EB6D9C9.9090208@kpi.ua> Message-ID: нет... еще нечего не делал 2011/11/6 Андрей Василишин > 06.11.2011 20:56, Stephan Miyalik пишет: > > root на debi:~# lsof -np `pgrep -xd , nginx` | grep flv | awk '{ print "\t" >> $9 }' | sort | uniq -c | sort -rn | wc -l >> 237 >> >> где-то 250 -300 мб >> > > > Явные лидеры есть, которые имеет смысл кешировать или все файлы по 4 > конекта? > > lsof -np `pgrep -xd , nginx` | grep flv | awk '{ print "\t" $9 }' | sort | > uniq -c | sort -rn > > > output_buffers проставлены уже в нужном месте? > > > -- > WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE > > ______________________________**_________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/**mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From s0527705277 на gmail.com Sun Nov 6 19:19:16 2011 From: s0527705277 на gmail.com (Stephan Miyalik) Date: Sun, 6 Nov 2011 21:19:16 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: References: <4EB6B540.8000400@amhost.net> <4EB6CA48.4010609@kpi.ua> <4EB6CCEC.4080207@kpi.ua> <4EB6D7A4.2040005@kpi.ua> <4EB6D9C9.9090208@kpi.ua> Message-ID: поставил output_buffers 1 1m; сейчас посмотрим если есть изменения но думаю проблема в другом... один раз скорость ели ели доходит до 250-300мб а в другой раз вытягивает по 700мб 2011/11/6 Stephan Miyalik > нет... еще нечего не делал > > > 2011/11/6 Андрей Василишин > >> 06.11.2011 20:56, Stephan Miyalik пишет: >> >> root на debi:~# lsof -np `pgrep -xd , nginx` | grep flv | awk '{ print "\t" >>> $9 }' | sort | uniq -c | sort -rn | wc -l >>> 237 >>> >>> где-то 250 -300 мб >>> >> >> >> Явные лидеры есть, которые имеет смысл кешировать или все файлы по 4 >> конекта? >> >> lsof -np `pgrep -xd , nginx` | grep flv | awk '{ print "\t" $9 }' | sort >> | uniq -c | sort -rn >> >> >> output_buffers проставлены уже в нужном месте? >> >> >> -- >> WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE >> >> ______________________________**_________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/**mailman/listinfo/nginx-ru >> > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From a.vasilishin на kpi.ua Sun Nov 6 19:22:02 2011 From: a.vasilishin на kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Sun, 06 Nov 2011 21:22:02 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: References: <4EB6B540.8000400@amhost.net> <4EB6CA48.4010609@kpi.ua> <4EB6CCEC.4080207@kpi.ua> <4EB6D7A4.2040005@kpi.ua> <4EB6D9C9.9090208@kpi.ua> Message-ID: <4EB6DE5A.2070801@kpi.ua> 06.11.2011 21:19, Stephan Miyalik пишет: > поставил > output_buffers 1 1m; > сейчас посмотрим если есть изменения > > но думаю проблема в другом... один раз скорость ели ели доходит до 250-300мб > а в другой раз вытягивает по 700мб > Поставьте утилиту atop, она наглядно покажет во что у Вас упирается. -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From s0527705277 на gmail.com Sun Nov 6 19:27:38 2011 From: s0527705277 на gmail.com (Stephan Miyalik) Date: Sun, 6 Nov 2011 21:27:38 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: <4EB6DE5A.2070801@kpi.ua> References: <4EB6B540.8000400@amhost.net> <4EB6CA48.4010609@kpi.ua> <4EB6CCEC.4080207@kpi.ua> <4EB6D7A4.2040005@kpi.ua> <4EB6D9C9.9090208@kpi.ua> <4EB6DE5A.2070801@kpi.ua> Message-ID: ок... вот до и после output_buffers eth0 / traffic statistics rx | tx --------------------------------------+------------------ bytes 1.64 GiB | 69.76 GiB --------------------------------------+------------------ max 16.53 Mbit/s | 716.89 Mbit/s average 14.42 Mbit/s | 612.79 Mbit/s min 13.03 Mbit/s | 549.31 Mbit/s --------------------------------------+------------------ packets 28314241 | 50351809 --------------------------------------+------------------ max 34111 p/s | 61586 p/s average 29648 p/s | 52724 p/s min 26712 p/s | 47305 p/s --------------------------------------+------------------ time 15.92 minutes root на debi:~# nano /usr/local/nginx/conf/nginx.conf root на debi:~# /usr/local/sbin/nginx -s reload root на debi:~# vnstat -l Monitoring eth0... (press CTRL-C to stop) rx: 15.02 Mbit/s 30941 p/s tx: 641.28 Mbit/s 55267 p/s^C eth0 / traffic statistics rx | tx --------------------------------------+------------------ bytes 980.82 MiB | 40.47 GiB --------------------------------------+------------------ max 16.26 Mbit/s | 687.16 Mbit/s average 14.15 Mbit/s | 597.69 Mbit/s min 12.59 Mbit/s | 529.58 Mbit/s --------------------------------------+------------------ packets 16507511 | 29201489 --------------------------------------+------------------ max 33553 p/s | 59056 p/s average 29062 p/s | 51411 p/s min 25809 p/s | 45513 p/s --------------------------------------+------------------ time 9.47 minutes 2011/11/6 Андрей Василишин > 06.11.2011 21:19, Stephan Miyalik пишет: > > поставил >> output_buffers 1 1m; >> сейчас посмотрим если есть изменения >> >> но думаю проблема в другом... один раз скорость ели ели доходит до >> 250-300мб >> а в другой раз вытягивает по 700мб >> >> > Поставьте утилиту atop, она наглядно покажет во что у Вас упирается. > > > > -- > WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE > > ______________________________**_________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/**mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From s0527705277 на gmail.com Sun Nov 6 19:31:29 2011 From: s0527705277 на gmail.com (Stephan Miyalik) Date: Sun, 6 Nov 2011 21:31:29 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: References: <4EB6B540.8000400@amhost.net> <4EB6CA48.4010609@kpi.ua> <4EB6CCEC.4080207@kpi.ua> <4EB6D7A4.2040005@kpi.ua> <4EB6D9C9.9090208@kpi.ua> <4EB6DE5A.2070801@kpi.ua> Message-ID: вот что выдало PRC | sys 3.32s | user 0.46s | #proc 576 | #zombie 0 | #exit 0 | CPU | sys 23% | user 6% | irq 48% | idle 498% | wait 24% | cpu | sys 11% | user 2% | irq 50% | idle 28% | cpu000 w 9% | cpu | sys 8% | user 4% | irq 0% | idle 77% | cpu001 w 10% | cpu | sys 1% | user 0% | irq 0% | idle 99% | cpu004 w 0% | cpu | sys 0% | user 0% | irq 0% | idle 100% | cpu005 w 0% | cpu | sys 2% | user 0% | irq 0% | idle 94% | cpu002 w 4% | cpu | sys 1% | user 0% | irq 0% | idle 99% | cpu003 w 1% | CPL | avg1 0.42 | avg5 0.43 | avg15 0.45 | csw 24966 | intr 424067 | MEM | tot 15.5G | free 84.8M | cache 11.8G | buff 0.0M | slab 2.7G | SWP | tot 8.0G | free 8.0G | | vmcom 1.2G | vmlim 15.7G | PAG | scan 75612 | stall 0 | | swin 0 | swout 0 | DSK | sda | busy 33% | read 512 | write 3 | avio 6 ms | DSK | sdb | busy 23% | read 383 | write 0 | avio 6 ms | DSK | sdc | busy 12% | read 188 | write 0 | avio 7 ms | DSK | sdd | busy 10% | read 152 | write 0 | avio 6 ms | NET | transport | tcpi 314462 | tcpo 519719 | udpi 0 | udpo 0 | NET | network | ipi 314452 | ipo 559134 | ipfrw 0 | deliv 314452 | NET | eth0 66% | pcki 314473 | pcko 559128 | si 15 Mbps | so 665 Mbps | PID SYSCPU USRCPU VGROW RGROW RDDSK WRDSK ST EXC S CPU CMD 1/10 87 0.08s 0.00s 0K 0K 0K 0K -- - S 1% kswapd0 3770 0.04s 0.01s 0K 0K 0K 0K -- - R 0% atop 2533 0.04s 0.00s 0K 0K 2348K 0K -- - S 0% nginx 3447 0.02s 0.01s 0K 0K 2484K 0K -- - S 0% nginx 3628 0.02s 0.01s 0K 0K 3476K 0K -- - S 0% nginx 3543 0.03s 0.00s 1024K 1024K 1108K 0K -- - S 0% nginx 3490 0.02s 0.01s 0K 0K 2048K 0K -- - S 0% nginx 3511 0.03s 0.00s 0K 0K 4096K 0K -- - S 0% nginx 2514 0.03s 0.00s 0K 0K 0K 0K -- - S 0% nginx 2521 0.03s 0.00s 0K 0K 0K 0K -- - S 0% nginx 2439 0.03s 0.00s 0K 0K 0K 0K -- - S 0% nginx 2427 0.02s 0.01s 0K 0K 0K 0K -- - S 0% nginx 2419 0.02s 0.01s 0K 0K 212K 0K -- - S 0% nginx 2545 0.03s 0.00s 0K 0K 6144K 0K -- - S 0% nginx 2479 0.03s 0.00s 0K 0K 24K 0K -- - S 0% nginx 2444 0.02s 0.01s 0K 0K 2048K 0K -- - S 0% nginx 2420 0.03s 0.00s 0K 0K 2048K 0K -- - S 0% nginx 2552 0.03s 0.00s 0K 0K 20K 0K -- - S 0% nginx 2540 0.02s 0.01s 0K 0K 4072K 0K -- - S 0% nginx 2382 0.02s 0.01s 0K 0K 4K 0K -- - S 0% nginx 2453 0.02s 0.01s 0K 0K 44K 0K -- - S 0% nginx 2364 0.02s 0.01s 0K 0K 3392K 0K -- - S 0% nginx 2551 0.03s 0.00s 0K 0K 5116K 0K -- - S 0% nginx 2377 0.02s 0.01s 0K 0K 2496K 0K -- - S 0% nginx 3442 0.02s 0.00s 0K 0K 0K 0K -- - S 0% nginx 3468 0.01s 0.01s 0K 0K 0K 0K -- - S 0% nginx 3601 0.01s 0.01s 0K 0K 24K 0K -- - S 0% nginx 3497 0.02s 0.00s 0K 0K 1436K 0K -- - S 0% nginx 3491 0.02s 0.00s 0K 0K 6072K 0K -- - S 0% nginx 3579 0.02s 0.00s 0K 0K 7200K 0K -- - S 0% nginx 3615 0.01s 0.01s 0K 0K 28K 0K -- - S 0% nginx 3498 0.02s 0.00s 0K 0K 180K 0K -- - S 0% nginx 3597 0.02s 0.00s 0K 0K 0K 0K -- - S 0% nginx 3632 0.02s 0.00s 0K 0K 4096K 0K -- - S 0% nginx 3436 0.01s 0.01s 0K 0K 0K 0K -- - S 0% nginx 3495 0.01s 0.01s 0K 0K 0K 4K -- - S 0% nginx 3513 0.01s 0.01s 0K 0K 0K 0K -- - S 0% nginx 3531 0.02s 0.00s 1028K 1028K 0K 0K -- - S 0% nginx 2011/11/6 Stephan Miyalik > ок... > > вот до и после output_buffers > > eth0 / traffic statistics > > rx | tx > --------------------------------------+------------------ > bytes 1.64 GiB | 69.76 GiB > --------------------------------------+------------------ > max 16.53 Mbit/s | 716.89 Mbit/s > average 14.42 Mbit/s | 612.79 Mbit/s > min 13.03 Mbit/s | 549.31 Mbit/s > --------------------------------------+------------------ > packets 28314241 | 50351809 > --------------------------------------+------------------ > max 34111 p/s | 61586 p/s > average 29648 p/s | 52724 p/s > min 26712 p/s | 47305 p/s > --------------------------------------+------------------ > time 15.92 minutes > > root на debi:~# nano /usr/local/nginx/conf/nginx.conf > root на debi:~# /usr/local/sbin/nginx -s reload > root на debi:~# vnstat -l > Monitoring eth0... (press CTRL-C to stop) > > rx: 15.02 Mbit/s 30941 p/s tx: 641.28 Mbit/s 55267 p/s^C > > > eth0 / traffic statistics > > rx | tx > --------------------------------------+------------------ > bytes 980.82 MiB | 40.47 GiB > --------------------------------------+------------------ > max 16.26 Mbit/s | 687.16 Mbit/s > average 14.15 Mbit/s | 597.69 Mbit/s > min 12.59 Mbit/s | 529.58 Mbit/s > --------------------------------------+------------------ > packets 16507511 | 29201489 > --------------------------------------+------------------ > max 33553 p/s | 59056 p/s > average 29062 p/s | 51411 p/s > min 25809 p/s | 45513 p/s > --------------------------------------+------------------ > time 9.47 minutes > > > 2011/11/6 Андрей Василишин > >> 06.11.2011 21:19, Stephan Miyalik пишет: >> >> поставил >>> output_buffers 1 1m; >>> сейчас посмотрим если есть изменения >>> >>> но думаю проблема в другом... один раз скорость ели ели доходит до >>> 250-300мб >>> а в другой раз вытягивает по 700мб >>> >>> >> Поставьте утилиту atop, она наглядно покажет во что у Вас упирается. >> >> >> >> -- >> WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE >> >> ______________________________**_________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/**mailman/listinfo/nginx-ru >> > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From a.vasilishin на kpi.ua Sun Nov 6 19:39:54 2011 From: a.vasilishin на kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Sun, 06 Nov 2011 21:39:54 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: References: <4EB6B540.8000400@amhost.net> <4EB6CA48.4010609@kpi.ua> <4EB6CCEC.4080207@kpi.ua> <4EB6D7A4.2040005@kpi.ua> <4EB6D9C9.9090208@kpi.ua> <4EB6DE5A.2070801@kpi.ua> Message-ID: <4EB6E28A.5020006@kpi.ua> 06.11.2011 21:31, Stephan Miyalik пишет: > вот что выдало Тут все нормально, видать не жрут сейчас больше 665 Мбит/с Запустите atop 1 и когда появится затык, тогда и смотрите что красное. -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From s0527705277 на gmail.com Sun Nov 6 19:52:36 2011 From: s0527705277 на gmail.com (Stephan Miyalik) Date: Sun, 6 Nov 2011 21:52:36 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: <4EB6E28A.5020006@kpi.ua> References: <4EB6B540.8000400@amhost.net> <4EB6CA48.4010609@kpi.ua> <4EB6CCEC.4080207@kpi.ua> <4EB6D7A4.2040005@kpi.ua> <4EB6D9C9.9090208@kpi.ua> <4EB6DE5A.2070801@kpi.ua> <4EB6E28A.5020006@kpi.ua> Message-ID: У меня у самого тормозит... скорость скачивание где-то 50-70кб он почему-то не дает 2011/11/6 Андрей Василишин > 06.11.2011 21:31, Stephan Miyalik пишет: > >> вот что выдало >> > > > Тут все нормально, видать не жрут сейчас больше 665 Мбит/с > Запустите > atop 1 > и когда появится затык, тогда и смотрите что красное. > > > > -- > WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE > > ______________________________**_________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/**mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From a.vasilishin на kpi.ua Sun Nov 6 19:57:15 2011 From: a.vasilishin на kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Sun, 06 Nov 2011 21:57:15 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: References: <4EB6B540.8000400@amhost.net> <4EB6CA48.4010609@kpi.ua> <4EB6CCEC.4080207@kpi.ua> <4EB6D7A4.2040005@kpi.ua> <4EB6D9C9.9090208@kpi.ua> <4EB6DE5A.2070801@kpi.ua> <4EB6E28A.5020006@kpi.ua> Message-ID: <4EB6E69B.3060202@kpi.ua> 06.11.2011 21:52, Stephan Miyalik пишет: > У меня у самого тормозит... скорость скачивание где-то 50-70кб > он почему-то не дает А как далеко Вы от сервера? Не надо исключать узкий канал где-либо между Вами и сервером. -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From s0527705277 на gmail.com Sun Nov 6 20:03:16 2011 From: s0527705277 на gmail.com (Stephan Miyalik) Date: Sun, 6 Nov 2011 22:03:16 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: <4EB6E69B.3060202@kpi.ua> References: <4EB6B540.8000400@amhost.net> <4EB6CA48.4010609@kpi.ua> <4EB6CCEC.4080207@kpi.ua> <4EB6D7A4.2040005@kpi.ua> <4EB6D9C9.9090208@kpi.ua> <4EB6DE5A.2070801@kpi.ua> <4EB6E28A.5020006@kpi.ua> <4EB6E69B.3060202@kpi.ua> Message-ID: Возможно! сейчас скачать файл с сервера в том же шкафу, качало 200к, с домашнего всего 30-70 2011/11/6 Андрей Василишин > 06.11.2011 21:52, Stephan Miyalik пишет: > > У меня у самого тормозит... скорость скачивание где-то 50-70кб >> он почему-то не дает >> > > > А как далеко Вы от сервера? Не надо исключать узкий канал где-либо между > Вами и сервером. > > > > -- > WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE > > ______________________________**_________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/**mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From bas на it-core.org Sun Nov 6 20:20:12 2011 From: bas на it-core.org (bas) Date: Mon, 7 Nov 2011 02:20:12 +0600 Subject: mod_aclr In-Reply-To: <1313490378.24976.3.camel@defan.zenon.net> References: <21e2fe584b2560962ed5fed10780a841.NginxMailingListRussian@forum.nginx.org> <20110810100809.GW1137@mdounin.ru> <4E42AA4B.90802@csdoc.com> <4E42C5BF.6040607@csdoc.com> <4E42C70F.7080706@amhost.net> <4E42E137.6050801@csdoc.com> <14707409.20110812121813@softsearch.ru> <4E452483.8000806@csdoc.com> <4E496052.3040202@maker.ru> <1313490378.24976.3.camel@defan.zenon.net> Message-ID: Выкладывать будете? 16.08.2011 16:26 пользователь "Andrey N. Belov" написал: > День добрый. > > On Mon, 2011-08-15 at 22:07 +0400, Dmitriy MiksIr wrote: > > [..] > > > почему нет модуля mod_aclr для apache 2.x - потому что такой > > > модуль никому не нужен? очевидно, что причина не в этом, > > > вопросы где скачать mod_aclr для apache 2.x задаются > > > постоянно, в том числе и в этом списке рассылки. > > > > У меня вот просто не было необходимости, да и сильного желания > > разбираться в измененном API 2.x. Я даже пытался, честно =) Но так как > > практической необходимости не было - "не торкнуло". > > Да и модуль - довольно специфический костыль для хостинговых компаний, > > мелкие из которых работают с готовыми панелями и их ничего не волнует > > больше, а большие, в принципе, силами сотрудников сами могут создать > > такое решение. Так что не сказал бы, что оно очень востребовано. > > > Нас заинтересовало подобное решение. > > Сейчас модуль адаптирован для работы под apache 2.2 и проходит > тестирование. > > > -- > Andrey N. Belov > Zenon N.S.P., http://www.zenon.net > > _______________________________________________ > 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 defan на zenon.net Mon Nov 7 07:37:55 2011 From: defan на zenon.net (Andrey N. Belov) Date: Mon, 07 Nov 2011 11:37:55 +0400 Subject: mod_aclr In-Reply-To: References: <21e2fe584b2560962ed5fed10780a841.NginxMailingListRussian@forum.nginx.org> <20110810100809.GW1137@mdounin.ru> <4E42AA4B.90802@csdoc.com> <4E42C5BF.6040607@csdoc.com> <4E42C70F.7080706@amhost.net> <4E42E137.6050801@csdoc.com> <14707409.20110812121813@softsearch.ru> <4E452483.8000806@csdoc.com> <4E496052.3040202@maker.ru> <1313490378.24976.3.camel@defan.zenon.net> Message-ID: <1320651475.30433.3.camel@defan.zenon.net> On Mon, 2011-11-07 at 02:20 +0600, bas wrote: > Выкладывать будете? Возможно. (модуль был адаптирован к хостинговой среде Зенона, поэтому сейчас не могу его открыть as is) > 16.08.2011 16:26 пользователь "Andrey N. Belov" > написал: > День добрый. > > On Mon, 2011-08-15 at 22:07 +0400, Dmitriy MiksIr wrote: > > [..] > > > почему нет модуля mod_aclr для apache 2.x - потому что > такой > > > модуль никому не нужен? очевидно, что причина не в этом, > > > вопросы где скачать mod_aclr для apache 2.x задаются > > > постоянно, в том числе и в этом списке рассылки. > > > > У меня вот просто не было необходимости, да и сильного > желания > > разбираться в измененном API 2.x. Я даже пытался, честно =) > Но так как > > практической необходимости не было - "не торкнуло". > > Да и модуль - довольно специфический костыль для хостинговых > компаний, > > мелкие из которых работают с готовыми панелями и их ничего > не волнует > > больше, а большие, в принципе, силами сотрудников сами могут > создать > > такое решение. Так что не сказал бы, что оно очень > востребовано. > > > Нас заинтересовало подобное решение. > > Сейчас модуль адаптирован для работы под apache 2.2 и проходит > тестирование. > > > -- > Andrey N. Belov > Zenon N.S.P., http://www.zenon.net [..] -- Andrey N. Belov Zenon N.S.P., http://www.zenon.net From nginx-forum на nginx.us Mon Nov 7 08:40:45 2011 From: nginx-forum на nginx.us (vnagara) Date: Mon, 07 Nov 2011 03:40:45 -0500 Subject: =?UTF-8?B?UmU6IFtCdWddINCf0LDRgNCw0LzQtdGC0YAgZmFzdGNnaSBwYXJhbSBQSFAgVkFM?= =?UTF-8?B?VUUg0LLQu9C40Y/QtdGCINC90LAg0L7RgdGC0LDQu9GM0L3Ri9C1INGB0LU=?= =?UTF-8?B?0YDQstC10YDQsA==?= In-Reply-To: <20111101172048.GM95664@mdounin.ru> References: <20111101172048.GM95664@mdounin.ru> Message-ID: 2 Maxim Dounin: Да это поможет, но это гон прописывать все параметры для остальных вирт. серверов ( у меня более 15-ти). И тогда что, при добавлении в PHP VALUE значения в одном сервере, в остальных 15-ти его обнулять? Этот параметры стоят внутри блока server {}, тоесть для других серверов значения должны браться дефолтные (в данном случае отсутсвие переменной). Нарушаеться абстрагирование серверов. + проявляется прикол: сервер может вести себя как бы взял PHP VALUE то с одного описания сервера, то с другого. Не всегда проявляется сразу. Выше описал как проявить этот баг. Спасибо, что ответели. А то я начал боятся, что запрос уйдет на дно. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217660,217905#msg-217905 From nginx-forum на nginx.us Mon Nov 7 08:53:53 2011 From: nginx-forum на nginx.us (vnagara) Date: Mon, 07 Nov 2011 03:53:53 -0500 Subject: =?UTF-8?B?UmU6IFtCdWddINCf0LDRgNCw0LzQtdGC0YAgZmFzdGNnaSBwYXJhbSBQSFAgVkFM?= =?UTF-8?B?VUUg0LLQu9C40Y/QtdGCINC90LAg0L7RgdGC0LDQu9GM0L3Ri9C1INGB0LU=?= =?UTF-8?B?0YDQstC10YDQsA==?= In-Reply-To: <20111101163703.GL95664@mdounin.ru> References: <20111101163703.GL95664@mdounin.ru> Message-ID: <47715c3247c666a1d57a42797949abee.NginxMailingListRussian@forum.nginx.org> Спасибо за идею. Сразу в голову не пришла. Разберусь с tcpdump, как посмотреть какие параметры идут, отпишусь. У меня php-fpm5 стоит. Maxim Dounin Wrote: ------------------------------------------------------- > Hello! > > On Tue, Nov 01, 2011 at 12:18:38PM -0400, vnagara > wrote: > > > Ребята, мне кто-то что-то > ответит? > > Увидел ли кто-то из > программеров баг. > > Когда будут им заниматься? > Нада ли доп. > > информация? > > > > П.С. Это мой первый пост. А > баг уже давно > > (более 6-ти мес.), не пойму > как его никто > > до меня не заметил? > > Судя по описанию, проблема > не в nginx'е, а в php. Похоже на > то, > что выставленные через > PHP_VALUE значения остаются для > конкретного > процесса php (и используются > при следующих запросах в > этом же > процессе). > > Нужно убедится, что nginx > передаёт fastcgi_param PHP_VALUE в тех > > запросах, в которых должен, > и не передаёт там где не > должен. Это > можно сделать, например, с > помощью tcpdump'а. > > Если всё действительно так > (nginx передаёт всё правильно, > а > php обрабатывает не так, как > вы ожидаете) - то идти > разбираться с > php. > > Maxim Dounin > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217660,217907#msg-217907 From nginx-forum на nginx.us Mon Nov 7 13:43:48 2011 From: nginx-forum на nginx.us (www) Date: Mon, 07 Nov 2011 08:43:48 -0500 Subject: =?UTF-8?Q?fastcgi_busy_buffers_size_=D0=B8_fastcgi_temp_file_write_size?= Message-ID: <8fc6007329d3b8b567a6c5482148d20a.NginxMailingListRussian@forum.nginx.org> Нашёл примеры конфигов fastcgi с такими параметрами: fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; В документации ничего о них не нашёл http://wiki.nginx.org/HttpFcgiModule Но nginx (0.8.53) о них знает. Собственно, вопросы: 1. Что именно они делают, какие значения по-умолчанию и как с ними работать? 2. Почему нет в документации? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217924,217924#msg-217924 From igor на sysoev.ru Mon Nov 7 14:49:55 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Mon, 7 Nov 2011 18:49:55 +0400 Subject: =?UTF-8?B?UmU6INCc0L7QtNGD0LvRjCBtcDQ6IDUwMCBJbnRlcm5hbCBTZXJ2ZXIsIHByZWFk?= =?UTF-8?B?KCkgZmFpbGVkICgyMjogSW52YWxpZCBhcmd1bWVudCks?= In-Reply-To: <20111105085034.GB96439@nginx.com> References: <4E8DCE43.1070607@kpi.ua> <4EB4546E.3050302@kpi.ua> <20111105085034.GB96439@nginx.com> Message-ID: <20111107144954.GB84102@nginx.com> On Sat, Nov 05, 2011 at 12:50:35PM +0400, Igor Sysoev wrote: > On Fri, Nov 04, 2011 at 11:09:02PM +0200, Андрей Василишин wrote: > > 04.11.2011 22:35, bsyomov пишет: > > > Аналогичная ситуация, при включённом aio > > > одновременно с mp4 nginx 1.1.6 с http_mp4_module, > > > проблема решается отключением aio. > > > Кстати, ровно та же проблема > > > наблюдалась и с nginx_mod_h264_streaming от > > > http://h264.code-shop.com > > > > Посмотрел свой уже работающий конфиг, таки да, собрал нгинкс с > > nginx_mod_h264_streaming и отключил аио. > > Скорее всего, используется open_file_cache. Должно помочь, если > его выключить: > > location ~ \.mp4 { > open_file_cache off; > ... Патч. -- Igor Sysoev -------------- next part -------------- Index: src/http/modules/ngx_http_mp4_module.c =================================================================== --- src/http/modules/ngx_http_mp4_module.c (revision 4264) +++ src/http/modules/ngx_http_mp4_module.c (working copy) @@ -434,7 +434,7 @@ ngx_memzero(&of, sizeof(ngx_open_file_info_t)); of.read_ahead = clcf->read_ahead; - of.directio = NGX_MAX_OFF_T_VALUE; + of.directio = clcf->directio; of.valid = clcf->open_file_cache_valid; of.min_uses = clcf->open_file_cache_min_uses; of.errors = clcf->open_file_cache_errors; @@ -554,25 +554,6 @@ log->action = "sending mp4 to client"; - if (clcf->directio <= of.size) { - - /* - * DIRECTIO is set on transfer only - * to allow kernel to cache "moov" atom - */ - - if (ngx_directio_on(of.fd) == NGX_FILE_ERROR) { - ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, - ngx_directio_on_n " \"%s\" failed", path.data); - } - - of.is_directio = 1; - - if (mp4) { - mp4->file.directio = 1; - } - } - r->headers_out.status = NGX_HTTP_OK; r->headers_out.last_modified_time = of.mtime; From nginx-forum на nginx.us Mon Nov 7 16:17:38 2011 From: nginx-forum на nginx.us (in_do) Date: Mon, 07 Nov 2011 11:17:38 -0500 Subject: server_name site.ru *.site.ru; Message-ID: <003ea57a761cf0cb85ade92a3604a8b6.NginxMailingListRussian@forum.nginx.org> Проблема такая : Домен - site.ru виден в интернете, www.site.ru - тоже виден Алиасы для site.ru прописаны как *.site.ru Но запрос любого вида (кроме site.ru и www.site.ru), например poddomen.site.ru, улетает в никуда ответ - Сервер не найден Часть конфига для site.ru : server { listen xx.xx.xx.xx:80; server_name site.ru *.site.ru; error_page 404 = @fallback; location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) { proxy_pass http://xx.xx.xx.xx:8080; proxy_redirect http://site.ru:8080/ /; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } location / { proxy_pass http://xx.xx.xx.xx:8080; proxy_redirect http://site.ru:8080/ /; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ { root /home/i/data/www/site.ru; access_log /home/httpd-logs/site.ru.access.log ; access_log /home/nginx-logs/i isp; } location @fallback { proxy_pass http://xx.xx.xx.xx:8080; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } } с конфига апача ServerName site.ru DocumentRoot /home/i/data/www/site.ru AssignUserID i i CustomLog /home/httpd-logs/site.ru.access.log combined ErrorLog /home/httpd-logs/site.ru.error.log ServerAlias *.site.ru php_admin_value open_basedir "/home/i/data:." php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f xxxx" php_admin_value upload_tmp_dir "/home/i/data/mod-tmp" php_admin_value session.save_path "/home/i/data/mod-tmp" AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml AddType application/x-httpd-php-source .phps Alias /manager/ "/home/i/data/www/site.ru/manager/" Есть ли ошибки в этом куске httpd.conf созданным ispmanager ? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217870,217870#msg-217870 From mdounin на mdounin.ru Mon Nov 7 17:07:40 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 7 Nov 2011 21:07:40 +0400 Subject: =?UTF-8?Q?Re=3A_fastcgi_busy_buffers_size_=D0=B8_fastcgi_temp_file_write_s?= =?UTF-8?Q?ize?= In-Reply-To: <8fc6007329d3b8b567a6c5482148d20a.NginxMailingListRussian@forum.nginx.org> References: <8fc6007329d3b8b567a6c5482148d20a.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111107170740.GP95664@mdounin.ru> Hello! On Mon, Nov 07, 2011 at 08:43:48AM -0500, www wrote: > Нашёл примеры конфигов fastcgi с такими > параметрами: > > fastcgi_busy_buffers_size 256k; > fastcgi_temp_file_write_size 256k; > > В документации ничего о них не нашёл > http://wiki.nginx.org/HttpFcgiModule > Но nginx (0.8.53) о них знает. > > Собственно, вопросы: > 1. Что именно они делают, какие значения > по-умолчанию и как с ними работать? Директива fastcgi_temp_file_write_size органичивает количество данных, которые могут быть сброшены на диск за одну операцию. Обычно использовать не нужно. Директива fastcgi_busy_buffers_size ограничивает суммарный размер буферов, которые могут быть заняты для отправки ответа клиенту (в случае, если ответ ещё не прочитан целиком). Оставшиеся буфера могут быть использованы для чтения ответа от бекенда (и, при необходимости, буферизации/сохранения ответа на диск). > 2. Почему нет в документации? Это очень старые (и потому не документированные при появлении) и редко когда нужные (и потому до сих пор не документированные) директивы. Мы сейчас вплотную работаем надо документацией, и до них наверное скоро доберёмся. Maxim Dounin From mdounin на mdounin.ru Mon Nov 7 17:29:42 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 7 Nov 2011 21:29:42 +0400 Subject: server_name site.ru *.site.ru; In-Reply-To: <003ea57a761cf0cb85ade92a3604a8b6.NginxMailingListRussian@forum.nginx.org> References: <003ea57a761cf0cb85ade92a3604a8b6.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111107172941.GS95664@mdounin.ru> Hello! On Mon, Nov 07, 2011 at 11:17:38AM -0500, in_do wrote: > Проблема такая : > > Домен - site.ru виден в интернете, www.site.ru - > тоже виден > Алиасы для site.ru прописаны как *.site.ru > Но запрос любого вида (кроме site.ru и > www.site.ru), например poddomen.site.ru, > улетает в никуда ответ - Сервер не > найден А в DNS домен poddomen.site.ru прописать не забыли? Maxim Dounin From postmaster на softsearch.ru Mon Nov 7 19:05:19 2011 From: postmaster на softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Mon, 7 Nov 2011 23:05:19 +0400 Subject: =?UTF-8?B?0KDQtdCz0LjRgdGC0YAgaHR0cC3Qt9Cw0LPQvtC70L7QstC60L7Qsg==?= Message-ID: <1549684968.20111107230519@softsearch.ru> Здравствуйте. Заметил, что прокси-сервера Оперы посылают весьма разные заголовки. Сейчас наснифил запрос с вот таким заголовком: x-forwarded-for: 195.189.142.176 Он делается при тестировании сайта через этот эмулятор: http://www.opera.com/developer/tools/mini/?ver=4 При работе через другие прокси Оперы выставляются вот такой заголовок: X-Forwarded-For: 86.62.113.23 Т.е. заголовок такой же, но написан в другом регистре. Вопрос: как nginx обрабатывает одни и те же http-заголовке в запросах, но написанные в разных регистрах? -- С уважением, Михаил mailto:postmaster на softsearch.ru From nginx-forum на nginx.us Mon Nov 7 19:51:16 2011 From: nginx-forum на nginx.us (Maximus43) Date: Mon, 07 Nov 2011 14:51:16 -0500 Subject: =?UTF-8?B?UmU6INCy0L7Qv9GA0L7RgSDQv9C+INGB0LXRgNGC0LjRhNC40LrQsNGC0LDQvA==?= In-Reply-To: <7927695223a598b7be4755618837ea9b.NginxMailingListRussian@forum.nginx.org> References: <7927695223a598b7be4755618837ea9b.NginxMailingListRussian@forum.nginx.org> Message-ID: <58382a36adb2dbdb1c2e8d1aec7c18b0.NginxMailingListRussian@forum.nginx.org> Сразу вопрос: зачем грузить клиентские сертификаты на сервер? Они же клиентские и должны импортироваться в браузер к клиенам. Ну и потом уже запрашиваться сервером для проверки. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217795,217945#msg-217945 From nginx-forum на nginx.us Mon Nov 7 20:15:38 2011 From: nginx-forum на nginx.us (Maximus43) Date: Mon, 07 Nov 2011 15:15:38 -0500 Subject: ssl_crl 3:unable to get certificate CRL In-Reply-To: References: Message-ID: Простите, а какой смысл от CRL со сроком действия 10 лет? :-) У меня в CRL есть еще пара расширенных полей: --- CRL extensions: X509v3 Authority Key Identifier: keyid:AC:C2:B7:C5:1B:3F:80:E9:00:0F:8B:0A:FA:33:85:D3:45:8E:17:5E X509v3 CRL Number: 16 X509v3 Issuing Distrubution Point: Full Name: URI:http://xxx.xxxxx.xxx/crl/xxx.crl ---- Может nginx делает привязку по Authority Key Identifier при проверке CRL для клиентских сертификатов? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217672,217946#msg-217946 From nginx-forum на nginx.us Tue Nov 8 03:32:50 2011 From: nginx-forum на nginx.us (Craken) Date: Mon, 07 Nov 2011 22:32:50 -0500 Subject: =?UTF-8?B?UmU6INCg0LXQs9C40YHRgtGAIGh0dHAt0LfQsNCz0L7Qu9C+0LLQutC+0LI=?= In-Reply-To: <1549684968.20111107230519@softsearch.ru> References: <1549684968.20111107230519@softsearch.ru> Message-ID: <8c2640136f785054b67d2f2bd00d2594.NginxMailingListRussian@forum.nginx.org> Судя по всему только "X-Forwarded-For" воспринимается веб-сервером как значение реального IP юзера (например ходящего ч-з прокси)! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217940,217957#msg-217957 From ru на nginx.com Tue Nov 8 07:37:10 2011 From: ru на nginx.com (Ruslan Ermilov) Date: Tue, 8 Nov 2011 07:37:10 +0000 Subject: =?UTF-8?B?UmU6INCg0LXQs9C40YHRgtGAIGh0dHAt0LfQsNCz0L7Qu9C+0LLQutC+0LI=?= In-Reply-To: <1549684968.20111107230519@softsearch.ru> References: <1549684968.20111107230519@softsearch.ru> Message-ID: <20111108073710.GA13030@lo0.su> On Mon, Nov 07, 2011 at 11:05:19PM +0400, Михаил Монашёв wrote: > Здравствуйте. > > Заметил, что прокси-сервера Оперы посылают весьма разные заголовки. > Сейчас наснифил запрос с вот таким заголовком: > x-forwarded-for: 195.189.142.176 > > Он делается при тестировании сайта через этот эмулятор: http://www.opera.com/developer/tools/mini/?ver=4 > > При работе через другие прокси Оперы выставляются вот такой заголовок: > X-Forwarded-For: 86.62.113.23 > > Т.е. заголовок такой же, но написан в другом регистре. > > Вопрос: как nginx обрабатывает одни и те же http-заголовке в запросах, > но написанные в разных регистрах? Из простого эксперимента : server { : log_format test "$http_x_forwarded_for"; : access_log test.log test; : } curl -H 'X-Forwarded-For: uppercase' -I localhost:8000 curl -H 'X-Forwarded-For: uppercase' -H 'x-forwarded-for: lowercase' -I localhost:8000 curl -H 'x-forwarded-for: lowercase' -I localhost:8000 видно, что nginx берёт первый найденный заголовок: : $ tail -3 test.log : uppercase : uppercase : lowercase Такое же значение достанется и модулю ngx_http_realip_module, в случае директивы "real_ip_header X-Forwarded-For", если о нём речь. From nginx-forum на nginx.us Tue Nov 8 07:33:29 2011 From: nginx-forum на nginx.us (amikish) Date: Tue, 08 Nov 2011 02:33:29 -0500 Subject: Several requests in one connection In-Reply-To: References: Message-ID: Спасибо, теперь заработало как надо Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217687,217961#msg-217961 From ekruglov на gmail.com Tue Nov 8 08:58:41 2011 From: ekruglov на gmail.com (Kruglov Eugenie) Date: Tue, 8 Nov 2011 11:58:41 +0300 Subject: =?UTF-8?B?UmU6INCV0LTQuNC90YvQuSBGYXN0Y2dpINC60Y3RiCDQtNC70Y8g0L3QtdGB0Lo=?= =?UTF-8?B?0L7Qu9GM0LrQuNGFINGB0LXRgNCy0LXRgNC+0LI=?= In-Reply-To: <66025b270905c6e0e298afc27de18af3.NginxMailingListRussian@forum.nginx.org> References: <66025b270905c6e0e298afc27de18af3.NginxMailingListRussian@forum.nginx.org> Message-ID: Не вижу связи с количеством серверов. Если один сервер может отвалиться из-за производительности бекенда - отвалятся и несколько. 2011/11/4 xT > Kruglov Eugenie Wrote: > ------------------------------------------------------- > > Зачем вам это? Почему не хватает > одного сервера с кешем? Во что вы в нём > упираетесь? > > Упираемся в приложение и количество > посетителей, а так же в необходимость > быстрого ответа поисковым системам(в > частности, гуглу) > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,217721,217790#msg-217790 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Faithfully yours, Eugenie ICQ #701217 GTalk ekruglov на gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum на nginx.us Tue Nov 8 10:39:52 2011 From: nginx-forum на nginx.us (Saniek) Date: Tue, 08 Nov 2011 05:39:52 -0500 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9C+0LTRgNGD0LbQuNGC0YwgcGhwTXlhZG1pbiDQuCBlQWNj?= =?UTF-8?B?ZWxlcmF0b3I=?= In-Reply-To: <1a5c3ab5c2ad8bc7fb03ea6f6a4ae5ba.NginxMailingListRussian@forum.nginx.org> References: <1a5c3ab5c2ad8bc7fb03ea6f6a4ae5ba.NginxMailingListRussian@forum.nginx.org> Message-ID: <8589044e5caf088777246ee63b88635b.NginxMailingListRussian@forum.nginx.org> Может кому-нибудь пригодится, вот правильное решение: http://serverfault.com/questions/223609/limit-apc-opcode-caching-to-specific-sites-nginx-php-fpm-apc Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217691,217978#msg-217978 From postmaster на softsearch.ru Tue Nov 8 10:53:28 2011 From: postmaster на softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Tue, 8 Nov 2011 14:53:28 +0400 Subject: =?UTF-8?B?UmVbMl06INCg0LXQs9C40YHRgtGAIGh0dHAt0LfQsNCz0L7Qu9C+0LLQutC+0LI=?= In-Reply-To: <20111108073710.GA13030@lo0.su> References: <1549684968.20111107230519@softsearch.ru> <20111108073710.GA13030@lo0.su> Message-ID: <79631891.20111108145328@softsearch.ru> Здравствуйте, Ruslan. >> Заметил, что прокси-сервера Оперы посылают весьма разные заголовки. >> Сейчас наснифил запрос с вот таким заголовком: >> x-forwarded-for: 195.189.142.176 >> >> Он делается при тестировании сайта через этот эмулятор: >> http://www.opera.com/developer/tools/mini/?ver=4 >> >> При работе через другие прокси Оперы выставляются вот такой заголовок: >> X-Forwarded-For: 86.62.113.23 >> >> Т.е. заголовок такой же, но написан в другом регистре. >> >> Вопрос: как nginx обрабатывает одни и те же http-заголовке в запросах, >> но написанные в разных регистрах? > Из простого эксперимента > : server { > : log_format test "$http_x_forwarded_for"; > : access_log test.log test; > : } > curl -H 'X-Forwarded-For: uppercase' -I localhost:8000 > curl -H 'X-Forwarded-For: uppercase' -H 'x-forwarded-for: lowercase' -I localhost:8000 > curl -H 'x-forwarded-for: lowercase' -I localhost:8000 > видно, что nginx берёт первый найденный заголовок: > : $ tail -3 test.log > : uppercase > : uppercase > : lowercase > Такое же значение достанется и модулю ngx_http_realip_module, > в случае директивы "real_ip_header X-Forwarded-For", если о > нём речь. Этот эксперимент я уже проделал до написания письма. Интересовала линия партии, а не частный случай. -- С уважением, Михаил mailto:postmaster на softsearch.ru From igor на sysoev.ru Tue Nov 8 10:55:38 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Tue, 8 Nov 2011 14:55:38 +0400 Subject: =?UTF-8?B?UmU6INCg0LXQs9C40YHRgtGAIGh0dHAt0LfQsNCz0L7Qu9C+0LLQutC+0LI=?= In-Reply-To: <79631891.20111108145328@softsearch.ru> References: <1549684968.20111107230519@softsearch.ru> <20111108073710.GA13030@lo0.su> <79631891.20111108145328@softsearch.ru> Message-ID: <20111108105538.GF9232@nginx.com> On Tue, Nov 08, 2011 at 02:53:28PM +0400, Михаил Монашёв wrote: > Здравствуйте, Ruslan. > > >> Заметил, что прокси-сервера Оперы посылают весьма разные заголовки. > >> Сейчас наснифил запрос с вот таким заголовком: > >> x-forwarded-for: 195.189.142.176 > >> > >> Он делается при тестировании сайта через этот эмулятор: > >> http://www.opera.com/developer/tools/mini/?ver=4 > >> > >> При работе через другие прокси Оперы выставляются вот такой заголовок: > >> X-Forwarded-For: 86.62.113.23 > >> > >> Т.е. заголовок такой же, но написан в другом регистре. > >> > >> Вопрос: как nginx обрабатывает одни и те же http-заголовке в запросах, > >> но написанные в разных регистрах? > > > Из простого эксперимента > > > : server { > > : log_format test "$http_x_forwarded_for"; > > : access_log test.log test; > > : } > > > curl -H 'X-Forwarded-For: uppercase' -I localhost:8000 > > curl -H 'X-Forwarded-For: uppercase' -H 'x-forwarded-for: lowercase' -I localhost:8000 > > curl -H 'x-forwarded-for: lowercase' -I localhost:8000 > > > видно, что nginx берёт первый найденный заголовок: > > > : $ tail -3 test.log > > : uppercase > > : uppercase > > : lowercase > > > Такое же значение достанется и модулю ngx_http_realip_module, > > в случае директивы "real_ip_header X-Forwarded-For", если о > > нём речь. > > Этот эксперимент я уже проделал до написания письма. Интересовала > линия партии, а не частный случай. Линия партии подтвержает, что заголовки регистронезависимые. -- Игорь Сысоев http://sysoev.ru From nginx-forum на nginx.us Tue Nov 8 12:45:00 2011 From: nginx-forum на nginx.us (tazik) Date: Tue, 08 Nov 2011 07:45:00 -0500 Subject: proxy_set_header Host Message-ID: Добрый день! Осваиваю переход на nginx и столкнулся с непрогуглевыемым (для меня) случаем: Как выставить proxy_set_header Host backend?.my.lan; что бы он автоматически подставлялся для каждого backend свой? upstream back { server backend1.my.lan; server backend2.my.lan; } server{ servername frontend.my.lan; proxy_set_header Host backend1.my.lan; proxy_pass http://back; } Существует возможность такая вообще? Переконфигурировать backend - нет возможности.. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217992,217992#msg-217992 From mdounin на mdounin.ru Tue Nov 8 12:53:57 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 8 Nov 2011 16:53:57 +0400 Subject: proxy_set_header Host In-Reply-To: References: Message-ID: <20111108125357.GC95664@mdounin.ru> Hello! On Tue, Nov 08, 2011 at 07:45:00AM -0500, tazik wrote: > Добрый день! > > Осваиваю переход на nginx и столкнулся с > непрогуглевыемым (для меня) случаем: > > Как выставить > proxy_set_header Host backend?.my.lan; > что бы он автоматически подставлялся > для каждого backend свой? > > upstream back { > server backend1.my.lan; > server backend2.my.lan; > } > server{ > servername frontend.my.lan; > proxy_set_header Host backend1.my.lan; > proxy_pass http://back; > } > > Существует возможность такая вообще? Нет. Запрос создаётся один раз, и не зависит от того, какой именно сервер в блоке upstream будет в дальнейшем выбран (а равно не меняется, если e.g. после ошибки nginx пойдёт на другой бекенд). С точки зрения конфигурирования бекендов - блок upstream{} аналогичен балансировке через DNS. > Переконфигурировать backend - нет > возможности.. Если общего имени, на которые бы откликались все бекенды в блоке upstream, не существует, и переконфигурировать бекенды возможности нет, то придётся отказать от использования балансировки с помощью upstream'а. Maxim Dounin From s0527705277 на gmail.com Tue Nov 8 13:27:03 2011 From: s0527705277 на gmail.com (Stephan Miyalik) Date: Tue, 8 Nov 2011 15:27:03 +0200 Subject: unknown directive "if" in /usr/local/nginx/conf/nginx.conf:44 Message-ID: Здравствуйте Сегодня встолкнулся с такой ощибкой после инсталяции unknown directive "if" in /usr/local/nginx/conf/nginx.conf:44 44 это location ~ \.(jpe?g|png|gif|flv|mp4|mp3|css|txt|swf)$ { valid_referers none blocked website.com *.website.com; if ($invalid_referer) { return 403; } } в чем проблема? ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на nginx.us Tue Nov 8 13:35:41 2011 From: nginx-forum на nginx.us (tazik) Date: Tue, 08 Nov 2011 08:35:41 -0500 Subject: proxy_set_header Host In-Reply-To: References: Message-ID: понятно. спасибо. придется переключение c backend1 на backend2 (у меня схема active/passive) строить сторонним приложением, и в случае fail менять config и рестартовать сервер. это конечно не оч гуд. жаль что нет возможности на каждый из backend ходить со своим header host. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,200436,218000#msg-218000 From mdounin на mdounin.ru Tue Nov 8 13:40:49 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 8 Nov 2011 17:40:49 +0400 Subject: unknown directive "if" in /usr/local/nginx/conf/nginx.conf:44 In-Reply-To: References: Message-ID: <20111108134048.GG95664@mdounin.ru> Hello! On Tue, Nov 08, 2011 at 03:27:03PM +0200, Stephan Miyalik wrote: > Здравствуйте > > Сегодня встолкнулся с такой ощибкой после инсталяции > unknown directive "if" in /usr/local/nginx/conf/nginx.conf:44 > > 44 это > > location ~ \.(jpe?g|png|gif|flv|mp4|mp3|css|txt|swf)$ { > valid_referers none blocked website.com *.website.com; > if ($invalid_referer) { > return 403; > } > } > > в чем проблема? Скорее всего nginx собран без модуля rewrite. Ну либо ошибка в синтаксисе конфига выше приведённого фрагмента, но я как-то затрудняюсь придумать ошибку, которая привела бы к ругани на "if", а не раньше. Maxim Dounin From alexey.bobok на gmail.com Tue Nov 8 13:42:57 2011 From: alexey.bobok на gmail.com (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0JHQvtCx0L7Qug==?=) Date: Tue, 8 Nov 2011 15:42:57 +0200 Subject: ssl_crl 3:unable to get certificate CRL In-Reply-To: References: Message-ID: в общем решилось тем, что при включенной опции crl - в сертификатах корневого ЦС и юзера должна быть указано точка распределения CRL X509v3 CRL Distribution Points: URI:http://ca.srv.biz/crl.pem 2011/11/2 Алексей Бобок > Корневой сертификат, который подписан юзерский сертификат, да - > самоподписанный. > > 2011/11/1 Алексей Бобок : > > Приветствую. > > Имею аналогичную проблему как здесь > > http://forum.nginx.org/read.php?21,6417,175050 > > > > server { > > ... > > ssl on; > > ssl_certificate /usr/local/etc/nginx/certs/api.srv.biz.crt; > > ssl_certificate_key /usr/local/etc/nginx/certs/api.srv.biz.key; > > > > ssl_session_timeout 5m; > > ssl_session_cache shared:SSL:10m; > > ssl_protocols TLSv1; > > ssl_ciphers > ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; > > ssl_prefer_server_ciphers on; > > ssl_verify_client on; > > ssl_client_certificate /usr/local/etc/nginx/certs/capem.crt; > > > > ... > > } > > > > все работало. > > > > После того, как включил в секции http{ > > ssl_crl /usr/local/etc/nginx/certs/crl.pem; > > } > > > > стало выдавать: > > > > 400 Bad Request > > The SSL certificate error > > nginx/1.0.3 > > > > а в логе: > > 2011/11/01 21:27:02 [info] 1287#0: *1741 client SSL certificate verify > > error: (3:unable to get certificate CRL) while reading client request > > headers, client: 89.*.*.99, server: api.srv.biz, request: "GET / > > HTTP/1.1", host: "api.srv.biz" > > > > CRL список, указанный в пользовательском сертификате - доступен. Он же > > подгружается самой опцией ssl_crl. > > внутри файла такое: > > st1# openssl crl -text -in /usr/local/etc/nginx/certs/crl.pem > > Certificate Revocation List (CRL): > > Version 2 (0x1) > > Signature Algorithm: sha256WithRSAEncryption > > Issuer: /C=UA/CN=ca.srv.biz > > Last Update: Nov 1 18:46:07 2011 GMT > > Next Update: Oct 29 18:46:07 2021 GMT > > CRL extensions: > > X509v3 CRL Number: > > 5 > > Revoked Certificates: > > Serial Number: 0A > > Revocation Date: Nov 1 18:42:17 2011 GMT > > Serial Number: 2E > > Revocation Date: Nov 1 18:45:20 2011 GMT > > Serial Number: 38 > > Revocation Date: Nov 1 18:40:49 2011 GMT > > Signature Algorithm: sha256WithRSAEncryption > > ce:03:8c:b3:a9:f1:b3:4d:55:38:d0:17:bd:36:b4:5c:2c:7f: > > 10:a2:c6:10:d6:2f:09:59:68:f5:7b:82:32:46:2c:50:a9:9a: > > 10:75:f6:81:b1:29:6b:89:1c:36:88:3d:ff:c4:5e:cb:be:5f: > > df:1a:0c:74:2c:b0:63:c7:9d:f6:37:13:45:40:a7:12:32:c4: > > 82:c2:78:50:f0:a8:8e:ff:fe:61:56:1b:0a:1d:1c:e0:ed:4e: > > 86:2c:4b:75:cf:35:b5:78:7b:72:48:f7:32:40:60:78:fb:ec: > > 89:a8:7a:27:8a:95:56:ad:9e:a6:12:de:c7:17:9f:93:38:81: > > 73:3d:93:2c:63:ce:b4:3b:4f:30:3d:53:19:ae:5f:3e:98:92: > > cc:a9:e9:a7:93:8f:a9:61:bc:39:44:67:4b:e6:3b:4e:32:c3: > > 19:de:01:90:e9:5e:15:63:ae:38:9c:4d:30:9f:06:a1:20:60: > > 59:d7:21:23:c9:18:49:e1:8c:ae:23:8a:ca:c1:dc:6a:41:cb: > > b4:83:23:c0:b5:62:2e:96:cb:9a:ba:04:02:1e:62:ab:ff:9d: > > b5:d4:c9:37:8a:cf:23:9a:93:54:bb:ad:04:23:43:90:cb:2d: > > 78:b6:58:64:8c:4a:74:7d:f9:cc:41:45:98:12:39:a7:88:35: > > 73:2f:28:f8 > > -----BEGIN X509 CRL----- > > MIIBvTCBpgIBATANBgkqhkiG9w0BAQsFADAmMQswCQYDVQQGEwJVQTEXMBUGA1UE > > AwwOY2EuZmluc29mdC5iaXoXDTExMTEwMTE4NDYwN1oXDTIxMTAyOTE4NDYwN1ow > > PDASAgEKFw0xMTExMDExODQyMTdaMBICAS4XDTExMTEwMTE4NDUyMFowEgIBOBcN > > MTExMTAxMTg0MDQ5WqAOMAwwCgYDVR0UBAMCAQUwDQYJKoZIhvcNAQELBQADggEB > > AM4DjLOp8bNNVTjQF702tFwsfxCixhDWLwlZaPV7gjJGLFCpmhB19oGxKWuJHDaI > > Pf/EXsu+X98aDHQssGPHnfY3E0VApxIyxILCeFDwqI7//mFWGwodHODtToYsS3XP > > NbV4e3JI9zJAYHj77ImoeieKlVatnqYS3scXn5M4gXM9kyxjzrQ7TzA9UxmuXz6Y > > ksyp6aeTj6lhvDlEZ0vmO04ywxneAZDpXhVjrjicTTCfBqEgYFnXISPJGEnhjK4j > > isrB3GpBy7SDI8C1Yi6Wy5q6BAIeYqv/nbXUyTeKzyOak1S7rQQjQ5DLLXi2WGSM > > SnR9+cxBRZgSOaeINXMvKPg= > > -----END X509 CRL----- > > > > > > > > Объясните плз, что не так. > > Благодарю. > > > > -- > > Think before you print. > > Best regards, Alexey Bobok. > > > > > > -- > Think before you print. > Best regards, Alexey Bobok. > -- Think before you print. Best regards, Alexey Bobok. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From zzz на zzz.org.ua Tue Nov 8 13:43:37 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Tue, 8 Nov 2011 15:43:37 +0200 Subject: unknown directive "if" in /usr/local/nginx/conf/nginx.conf:44 In-Reply-To: <20111108134048.GG95664@mdounin.ru> References: <20111108134048.GG95664@mdounin.ru> Message-ID: On Tue, Nov 8, 2011 at 3:40 PM, Maxim Dounin wrote: > Скорее всего nginx собран без модуля rewrite.  Ну либо ошибка в > синтаксисе конфига выше приведённого фрагмента, но я как-то > затрудняюсь придумать ошибку, которая привела бы к ругани на "if", > а не раньше. Если i -- украинская. From alexey.bobok на gmail.com Tue Nov 8 13:51:25 2011 From: alexey.bobok на gmail.com (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0JHQvtCx0L7Qug==?=) Date: Tue, 8 Nov 2011 15:51:25 +0200 Subject: ssl_crl 3:unable to get certificate CRL In-Reply-To: References: Message-ID: Счас тестирование потому срок непринципиален. В работе будет естественно меньше) > Простите, а какой смысл от CRL со сроком действия 10 лет? :-) > У меня в CRL есть еще пара расширенных полей: > --- > CRL extensions: > X509v3 Authority Key Identifier: > keyid:AC:C2:B7:C5:1B:3F:80:E9:00:0F:8B:0A:FA:33:85:D3:45:8E:17:5E > X509v3 CRL Number: > 16 > X509v3 Issuing Distrubution Point: > Full Name: > URI:http://xxx.xxxxx.xxx/crl/xxx.crl -- Think before you print. Best regards, Alexey Bobok. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From s0527705277 на gmail.com Tue Nov 8 14:15:29 2011 From: s0527705277 на gmail.com (Stephan Miyalik) Date: Tue, 8 Nov 2011 16:15:29 +0200 Subject: unknown directive "if" in /usr/local/nginx/conf/nginx.conf:44 In-Reply-To: References: <20111108134048.GG95664@mdounin.ru> Message-ID: Все верно, rewrite нужен был 2011/11/8 Alexandr Gomoliako > On Tue, Nov 8, 2011 at 3:40 PM, Maxim Dounin wrote: > > Скорее всего nginx собран без модуля rewrite. Ну либо ошибка в > > синтаксисе конфига выше приведённого фрагмента, но я как-то > > затрудняюсь придумать ошибку, которая привела бы к ругани на "if", > > а не раньше. > > Если i -- украинская. > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From pavel2000 на ngs.ru Tue Nov 8 15:00:08 2011 From: pavel2000 на ngs.ru (Pavel V.) Date: Tue, 8 Nov 2011 22:00:08 +0700 Subject: proxy_set_header Host In-Reply-To: <20111108125357.GC95664@mdounin.ru> References: <20111108125357.GC95664@mdounin.ru> Message-ID: <1422724426.20111108220008@ngs.ru> Здравствуйте. Вы писали 8 ноября 2011 г., 19:53:57: > Hello! > On Tue, Nov 08, 2011 at 07:45:00AM -0500, tazik wrote: >> Добрый день! >> >> Осваиваю переход на nginx и столкнулся с >> непрогуглевыемым (для меня) случаем: >> >> Как выставить >> proxy_set_header Host backend?.my.lan; >> что бы он автоматически подставлялся >> для каждого backend свой? >> >> upstream back { >> server backend1.my.lan; >> server backend2.my.lan; >> } >> server{ >> servername frontend.my.lan; >> proxy_set_header Host backend1.my.lan; >> proxy_pass http://back; >> } >> >> Существует возможность такая вообще? Наверное можно пропустить трафик к каждому из бэкендов еще раз, через этот же Nginx, через server {} на отдельных портах, описывая в них всё что нужно (Host, хосты/проты и т д). (server.example.com читать как 127.0.0.1) upstream backends { server server.example.com:6000; server server.example.com:6001; server server.example.com:6002; ... } #Frontend description server{ servername frontend.my.lan; proxy_pass http://backends; ##Заворачиваем запрос на этот же Nginx еще раз, на "прокси" бэкэндов ... } #Proxy-servers for backends server { listen server.example.com:6000; proxy_set_header Host backend1.my.lan; proxy_pass http://backend1.my.lan; proxy_buffering off; # ??? ... } server { listen server.example.com:6001; proxy_set_header Host backend2.my.lan; proxy_pass http://backend2.my.lan; proxy_buffering off; # ??? ... } server { listen server.example.com:6002; proxy_set_header Host backend3.my.lan; proxy_pass http://backend3.my.lan; proxy_buffering off; # ??? ... } -- С уважением, Pavel mailto:pavel2000 на ngs.ru From nginx-forum на nginx.us Tue Nov 8 15:07:39 2011 From: nginx-forum на nginx.us (hg_04) Date: Tue, 08 Nov 2011 10:07:39 -0500 Subject: nginx - nginx - fpm Message-ID: <01db27d0cc24aa7c79a950138416a60c.NginxMailingListRussian@forum.nginx.org> извеняюсь за крос постинг, но я в отчаянии, убил день но не вижу решения. nginx/1.1.6 PHP 5.3.8 (fpm-fcgi) (built: Oct 21 2011 12:22:04) Проблема в следующим в пхп передается сервер нейм "_", как это исправить? в конфиге fastcgi_params прописано fastcgi_param SERVER_NAME $server_name; есть конфиг location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } на ноде server { listen 80; server_name _; index index.php index.php5 index.html; root /var/www; location / { try_files $uri $uri/ @php; } error_page 404 /404.html; location = /404.html { root /usr/share/nginx/html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { try_files $uri $uri/ @php; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name; include fastcgi_params; } location @php { fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_NAME /index.php; fastcgi_param SCRIPT_FILENAME /var/www/index.php; fastcgi_param QUERY_STRING url=$uri&$args; } } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218010,218010#msg-218010 From igor на sysoev.ru Tue Nov 8 15:13:29 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Tue, 8 Nov 2011 19:13:29 +0400 Subject: nginx - nginx - fpm In-Reply-To: <01db27d0cc24aa7c79a950138416a60c.NginxMailingListRussian@forum.nginx.org> References: <01db27d0cc24aa7c79a950138416a60c.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111108151329.GB16543@nginx.com> On Tue, Nov 08, 2011 at 10:07:39AM -0500, hg_04 wrote: > извеняюсь за крос постинг, но я в > отчаянии, убил день но не вижу решения. > > nginx/1.1.6 PHP 5.3.8 (fpm-fcgi) (built: Oct 21 2011 12:22:04) > Проблема в следующим в пхп передается > сервер нейм "_", как это исправить? А что должно передаваться-то ? > в конфиге fastcgi_params прописано > fastcgi_param SERVER_NAME $server_name; $server_name - это первый параметр в директиве server_name, то есть, для "server_name _;" будет натурально передаваться "_" ! > server { > listen 80; > server_name _; -- Igor Sysoev From nginx-forum на nginx.us Tue Nov 8 15:14:06 2011 From: nginx-forum на nginx.us (hg_04) Date: Tue, 08 Nov 2011 10:14:06 -0500 Subject: nginx - nginx - fpm In-Reply-To: <01db27d0cc24aa7c79a950138416a60c.NginxMailingListRussian@forum.nginx.org> References: <01db27d0cc24aa7c79a950138416a60c.NginxMailingListRussian@forum.nginx.org> Message-ID: <8018cc3c261f02d6ffd8afb589d98b29.NginxMailingListRussian@forum.nginx.org> или это верное поведение? и _ не парсится в реальное имя? и если писать * она тоже должна передаться? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218010,218012#msg-218012 From nginx-forum на nginx.us Tue Nov 8 15:15:56 2011 From: nginx-forum на nginx.us (hg_04) Date: Tue, 08 Nov 2011 10:15:56 -0500 Subject: nginx - nginx - fpm In-Reply-To: <8018cc3c261f02d6ffd8afb589d98b29.NginxMailingListRussian@forum.nginx.org> References: <01db27d0cc24aa7c79a950138416a60c.NginxMailingListRussian@forum.nginx.org> <8018cc3c261f02d6ffd8afb589d98b29.NginxMailingListRussian@forum.nginx.org> Message-ID: <99f4216fc92a3bae43029eaf539da6d2.NginxMailingListRussian@forum.nginx.org> > А что должно передаваться-то ? я считал что "_" используется как патерн регулярки и передаст реальное имя. То есть нужно в наглую задавать $host? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218010,218013#msg-218013 From igor на sysoev.ru Tue Nov 8 15:17:11 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Tue, 8 Nov 2011 19:17:11 +0400 Subject: nginx - nginx - fpm In-Reply-To: <99f4216fc92a3bae43029eaf539da6d2.NginxMailingListRussian@forum.nginx.org> References: <01db27d0cc24aa7c79a950138416a60c.NginxMailingListRussian@forum.nginx.org> <8018cc3c261f02d6ffd8afb589d98b29.NginxMailingListRussian@forum.nginx.org> <99f4216fc92a3bae43029eaf539da6d2.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111108151711.GC16543@nginx.com> On Tue, Nov 08, 2011 at 10:15:56AM -0500, hg_04 wrote: > > А что должно передаваться-то ? > я считал что "_" используется как патерн > регулярки и передаст реальное имя. http://nginx.org/en/docs/http/server_names.html#miscellaneous_names > То есть нужно в наглую задавать $host? Да. -- Igor Sysoev From nginx-forum на nginx.us Tue Nov 8 15:23:50 2011 From: nginx-forum на nginx.us (hg_04) Date: Tue, 08 Nov 2011 10:23:50 -0500 Subject: nginx - nginx - fpm In-Reply-To: <99f4216fc92a3bae43029eaf539da6d2.NginxMailingListRussian@forum.nginx.org> References: <01db27d0cc24aa7c79a950138416a60c.NginxMailingListRussian@forum.nginx.org> <8018cc3c261f02d6ffd8afb589d98b29.NginxMailingListRussian@forum.nginx.org> <99f4216fc92a3bae43029eaf539da6d2.NginxMailingListRussian@forum.nginx.org> Message-ID: > http://nginx.org/en/docs/http/server_names.html#miscellaneous_names о этого раньше не было, а есть возможность подписаться на rss или email для получения нотификейшенов об изменении документации? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218010,218015#msg-218015 From s0527705277 на gmail.com Tue Nov 8 15:26:38 2011 From: s0527705277 на gmail.com (Stephan Miyalik) Date: Tue, 8 Nov 2011 17:26:38 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: References: <4EB6B540.8000400@amhost.net> <4EB6CA48.4010609@kpi.ua> <4EB6CCEC.4080207@kpi.ua> <4EB6D7A4.2040005@kpi.ua> <4EB6D9C9.9090208@kpi.ua> <4EB6DE5A.2070801@kpi.ua> <4EB6E28A.5020006@kpi.ua> <4EB6E69B.3060202@kpi.ua> Message-ID: Снова эта проблема нагрузки совсем нет Active connections: 724 а скорость 330 Mbps и все тормозит... PRC | sys 0.20s | user 0.05s | #proc 378 | #zombie 0 | #exit 0 | CPU | sys 22% | user 6% | irq 32% | idle 523% | wait 20% | cpu | sys 9% | user 2% | irq 31% | idle 41% | cpu000 w 17% | cpu | sys 2% | user 0% | irq 0% | idle 98% | cpu003 w 0% | cpu | sys 1% | user 0% | irq 0% | idle 99% | cpu004 w 0% | cpu | sys 7% | user 4% | irq 0% | idle 86% | cpu001 w 3% | cpu | sys 2% | user 0% | irq 0% | idle 98% | cpu002 w 0% | CPL | avg1 0.54 | avg5 0.38 | avg15 0.33 | csw 1847 | intr 27567 | MEM | tot 15.5G | free 86.0M | cache 12.9G | buff 0.0M | slab 1.4G | SWP | tot 8.0G | free 7.9G | | vmcom 1.4G | vmlim 15.7G | PAG | scan 5894 | stall 0 | | swin 7 | swout 0 | DSK | sda | busy 28% | read 46 | write 0 | avio 6 ms | DSK | sdc | busy 18% | read 109 | write 0 | avio 1 ms | DSK | sdd | busy 16% | read 21 | write 0 | avio 7 ms | DSK | sdb | busy 7% | read 8 | write 0 | avio 9 ms | NET | transport | tcpi 16896 | tcpo 26656 | udpi 0 | udpo 0 | NET | network | ipi 16882 | ipo 27842 | ipfrw 0 | deliv 16883 | NET | eth0 33% | pcki 16885 | pcko 27843 | si 8494 Kbps | so 330 Mbps | 2011/11/6 Stephan Miyalik > Возможно! сейчас скачать файл с сервера в том же шкафу, качало 200к, с > домашнего всего 30-70 > > > 2011/11/6 Андрей Василишин > >> 06.11.2011 21:52, Stephan Miyalik пишет: >> >> У меня у самого тормозит... скорость скачивание где-то 50-70кб >>> он почему-то не дает >>> >> >> >> А как далеко Вы от сервера? Не надо исключать узкий канал где-либо между >> Вами и сервером. >> >> >> >> -- >> WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE >> >> ______________________________**_________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/**mailman/listinfo/nginx-ru >> > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From igor на sysoev.ru Tue Nov 8 15:34:13 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Tue, 8 Nov 2011 19:34:13 +0400 Subject: nginx - nginx - fpm In-Reply-To: References: <01db27d0cc24aa7c79a950138416a60c.NginxMailingListRussian@forum.nginx.org> <8018cc3c261f02d6ffd8afb589d98b29.NginxMailingListRussian@forum.nginx.org> <99f4216fc92a3bae43029eaf539da6d2.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111108153412.GD16543@nginx.com> On Tue, Nov 08, 2011 at 10:23:50AM -0500, hg_04 wrote: > > http://nginx.org/en/docs/http/server_names.html#miscellaneous_names > о этого раньше не было, Вообще-то этим статьям уже почти два года: http://nginx.org/2009.html > а есть возможность подписаться на rss или email > для получения нотификейшенов об > изменении документации? Как-то так: feed://trac.nginx.org/nginx/timeline?milestone=on&ticket=on&repo-nginx_org=on&wiki=on&max=50&authors=&daysback=90&format=rss -- Igor Sysoev From a.vasilishin на kpi.ua Tue Nov 8 16:57:40 2011 From: a.vasilishin на kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Tue, 08 Nov 2011 18:57:40 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: References: <4EB6CA48.4010609@kpi.ua> <4EB6CCEC.4080207@kpi.ua> <4EB6D7A4.2040005@kpi.ua> <4EB6D9C9.9090208@kpi.ua> <4EB6DE5A.2070801@kpi.ua> <4EB6E28A.5020006@kpi.ua> <4EB6E69B.3060202@kpi.ua> Message-ID: <4EB95F84.5050906@kpi.ua> 08.11.2011 17:26, Stephan Miyalik пишет: > Снова эта проблема > > нагрузки совсем нет > > Active connections: 724 > > а скорость 330 Mbps и все тормозит... > Видео открывается моментально и потом долго грузится или долго открывается? avg1 0.54 - меньше 1, значит ресурсов хватает. У Вас есть какой-нибудт мониторинг: мунин, какти? не упирается ли это в канал дата-центра? -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From s0527705277 на gmail.com Tue Nov 8 17:03:18 2011 From: s0527705277 на gmail.com (Stephan Miyalik) Date: Tue, 8 Nov 2011 19:03:18 +0200 Subject: =?UTF-8?B?UmU6IEZ3ZDogQWN0aXZlIGNvbm5lY3Rpb25zOiAxMDAwINC4INGB0LrQvtGA0L4=?= =?UTF-8?B?0YHRgtGMINC/0LDQtNCw0LXRgg==?= In-Reply-To: <4EB95F84.5050906@kpi.ua> References: <4EB6CA48.4010609@kpi.ua> <4EB6CCEC.4080207@kpi.ua> <4EB6D7A4.2040005@kpi.ua> <4EB6D9C9.9090208@kpi.ua> <4EB6DE5A.2070801@kpi.ua> <4EB6E28A.5020006@kpi.ua> <4EB6E69B.3060202@kpi.ua> <4EB95F84.5050906@kpi.ua> Message-ID: Оказалось проблема с провайдером у дата центра, сказали что исправят в течении несколких часов. фуух сейчас хоть ясно что проблема не с настройками 2011/11/8 Андрей Василишин > 08.11.2011 17:26, Stephan Miyalik пишет: > > Снова эта проблема >> >> нагрузки совсем нет >> >> Active connections: 724 >> >> а скорость 330 Mbps и все тормозит... >> >> > > Видео открывается моментально и потом долго грузится или долго > открывается? avg1 0.54 - меньше 1, значит ресурсов хватает. > У Вас есть какой-нибудт мониторинг: мунин, какти? > не упирается ли это в канал дата-центра? > > > -- > WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE > > ______________________________**_________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/**mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на nginx.us Tue Nov 8 20:42:02 2011 From: nginx-forum на nginx.us (Maximus43) Date: Tue, 08 Nov 2011 15:42:02 -0500 Subject: ssl_crl 3:unable to get certificate CRL In-Reply-To: References: Message-ID: <6d2ada84b432d986d8f5316ecbfcc8b4.NginxMailingListRussian@forum.nginx.org> Расширение CDP для коневого сертификата смысла не имеет. Уберите его оттуда. CDP должно присутствовать во всех сертификатах промежуточных ЦС и в клиентских сертификатах. Так же рекомендую прописать расширение AIA caIssuer для всех сертификатов, кроме корневого. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217672,218035#msg-218035 From nginx-forum на nginx.us Wed Nov 9 03:35:10 2011 From: nginx-forum на nginx.us (valet) Date: Tue, 08 Nov 2011 22:35:10 -0500 Subject: =?UTF-8?B?0JfQsNC/0YDQtdGC0LjRgtGMINCy0YvQv9C+0LvQvdC10L3QuNC1IHBocCDQsiA=?= =?UTF-8?B?0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= Message-ID: <1e7764ffb5730f50f7aaccbd0af0752d.NginxMailingListRussian@forum.nginx.org> Есть каталог /uploads/ куда пользователи загружают картинки. Чтобы предупредить использование шеллов, нужно запретить выполнение php-файлов в этом и во всех вложенных каталогах. Как это сделать, помогите разобраться... Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218046,218046#msg-218046 From nginx-forum на nginx.us Wed Nov 9 06:26:03 2011 From: nginx-forum на nginx.us (tazik) Date: Wed, 09 Nov 2011 01:26:03 -0500 Subject: proxy_set_header Host In-Reply-To: <1422724426.20111108220008@ngs.ru> References: <1422724426.20111108220008@ngs.ru> Message-ID: Pavel V. Wrote: ------------------------------------------------------- > Наверное можно пропустить > трафик к каждому из > бэкендов еще раз, через > этот же Nginx, через server > {} на отдельных портах, > описывая в них всё что > нужно (Host, хосты/проты и т д). > (server.example.com читать как 127.0.0.1) > > upstream backends { > server server.example.com:6000; > server server.example.com:6001; > server server.example.com:6002; > > ... > } > > #Frontend description > server{ > servername frontend.my.lan; > proxy_pass http://backends; > ##Заворачиваем запрос на > этот же Nginx еще раз, на > "прокси" бэкэндов > ... > } > > #Proxy-servers for backends > server { > listen server.example.com:6000; > > proxy_set_header Host backend1.my.lan; > proxy_pass http://backend1.my.lan; > proxy_buffering off; # ??? > ... > } > server { > listen server.example.com:6001; > > proxy_set_header Host backend2.my.lan; > proxy_pass http://backend2.my.lan; > proxy_buffering off; # ??? > ... > } > server { > listen server.example.com:6002; > > proxy_set_header Host backend3.my.lan; > proxy_pass http://backend3.my.lan; > proxy_buffering off; # ??? > ... > } > Кстати - да! вариант. Спасибо! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,200436,218052#msg-218052 From nginx-forum на nginx.us Wed Nov 9 08:52:12 2011 From: nginx-forum на nginx.us (Maximus43) Date: Wed, 09 Nov 2011 03:52:12 -0500 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSBwaHAg?= =?UTF-8?B?0LIg0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= In-Reply-To: <1e7764ffb5730f50f7aaccbd0af0752d.NginxMailingListRussian@forum.nginx.org> References: <1e7764ffb5730f50f7aaccbd0af0752d.NginxMailingListRussian@forum.nginx.org> Message-ID: <7133afd5aa5b0885f212d3b5be466992.NginxMailingListRussian@forum.nginx.org> http://nginx.org/ru/docs/http/ngx_http_core_module.html#internal Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218046,218058#msg-218058 From igor на sysoev.ru Wed Nov 9 09:08:39 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 9 Nov 2011 13:08:39 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSBwaHAg?= =?UTF-8?B?0LIg0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= In-Reply-To: <1e7764ffb5730f50f7aaccbd0af0752d.NginxMailingListRussian@forum.nginx.org> References: <1e7764ffb5730f50f7aaccbd0af0752d.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111109090839.GA36753@nginx.com> On Tue, Nov 08, 2011 at 10:35:10PM -0500, valet wrote: > Есть каталог /uploads/ куда пользователи > загружают картинки. > Чтобы предупредить использование > шеллов, нужно запретить выполнение > php-файлов в этом и во всех вложенных > каталогах. > > Как это сделать, помогите разобраться... Зависит от того, как указано выполнять php. Если так: location \.php$ { fastcgi ... } то так: location ^~ /uploads/ { ... } location \.php$ { fastcgi ... } А если так: location /uploads/ { ... } location /scripts/ { fastcgi ... } то вообще ничего делать не надо. -- Игорь Сысоев http://sysoev.ru From nginx-forum на nginx.us Wed Nov 9 10:52:32 2011 From: nginx-forum на nginx.us (valet) Date: Wed, 09 Nov 2011 05:52:32 -0500 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSBwaHAg?= =?UTF-8?B?0LIg0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= In-Reply-To: <1e7764ffb5730f50f7aaccbd0af0752d.NginxMailingListRussian@forum.nginx.org> References: <1e7764ffb5730f50f7aaccbd0af0752d.NginxMailingListRussian@forum.nginx.org> Message-ID: У меня вообще так location ~ .php$ { fastcgi... } Как поступить в этом случае? Делать точно что-то надо, потому что скрипты в папке uploads выполняются. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218046,218064#msg-218064 From vsjcfm на gmail.com Wed Nov 9 10:59:43 2011 From: vsjcfm на gmail.com (Sayetsky Anton) Date: Wed, 9 Nov 2011 12:59:43 +0200 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSBwaHAg?= =?UTF-8?B?0LIg0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= In-Reply-To: References: <1e7764ffb5730f50f7aaccbd0af0752d.NginxMailingListRussian@forum.nginx.org> Message-ID: 9 ноября 2011 г. 12:52 пользователь valet написал: > У меня вообще так >   location ~ .php$ { >        fastcgi... > } > > Как поступить в этом случае? Например, location ~ ^/uploads/.*\.php$ { ... } location ~ .php$ { fastcgi ... } From igor на sysoev.ru Wed Nov 9 11:07:49 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 9 Nov 2011 15:07:49 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSBwaHAg?= =?UTF-8?B?0LIg0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= In-Reply-To: References: <1e7764ffb5730f50f7aaccbd0af0752d.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111109110749.GD36753@nginx.com> On Wed, Nov 09, 2011 at 05:52:32AM -0500, valet wrote: > У меня вообще так > location ~ .php$ { > fastcgi... > } \.php$ - правильнее. > Как поступить в этом случае? > > Делать точно что-то надо, потому что > скрипты в папке uploads выполняются. А как uploads сконфигруровано ? -- Igor Sysoev From nginx-forum на nginx.us Wed Nov 9 11:11:18 2011 From: nginx-forum на nginx.us (valet) Date: Wed, 09 Nov 2011 06:11:18 -0500 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSBwaHAg?= =?UTF-8?B?0LIg0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= In-Reply-To: References: <1e7764ffb5730f50f7aaccbd0af0752d.NginxMailingListRussian@forum.nginx.org> Message-ID: >А как uploads сконфигруровано ? Пока что никак, нет в конфиге такого location Пробовал так: location ^~ /uploads/ { deny all; } Но это неправильно, так как в таком варианте картинки даже не грузятся. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218046,218068#msg-218068 From igor на sysoev.ru Wed Nov 9 11:16:29 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 9 Nov 2011 15:16:29 +0400 Subject: =?UTF-8?B?UmU6INCe0YjQuNCx0LrQuCDQvdCwIFNvbGFyaXMgMTAgeDg2?= In-Reply-To: <4d29bdf2bdb000a8e229c136f4fc47ca.NginxMailingListRussian@forum.nginx.org> References: <4d29bdf2bdb000a8e229c136f4fc47ca.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111109111629.GE36753@nginx.com> On Fri, Oct 21, 2011 at 02:09:18PM -0400, drook wrote: > Привет. > > Solaris 10 x86 > nginx-1.1.5 nginx -V > Некий веб-сервер, раздающий > статический контент. Статический > контент состоит как из маленьких > файлов (картинки), так и из больших > дистрибутивов. 10-15 запросов в секунду, > 200-700 установленных соединений, траффик > 200-600 Мбит. > > Чем больше число коннектов, тем больше > время, проходящее между началом > установления сессии и отправкой > первого HTTP-запроса. Собственно, это и > хотелось бы затюнить. Сейчас оно в > районе 2-5 с. Хотелось бы его уменьшить > настолько, насколько это возможно. > > В данный момент испольуется /dev/poll: > > events { > worker_connections 1024; > > use /dev/poll; > devpoll_events 4096; > devpoll_changes 4096; > multi_accept on; > } > > Пробовал poll/select. Большой разницы между > poll и /dev/poll не заметил, на select все как-то > менее позитивно (хотя и не сильно, но > заметно). > > Я читал архивы, и видел упоминания, что > в солярке должно быть почему-то 32. Не > понял и не нашел почему, разницы между 32 > и другими значениями субъективно не > заметил. 32 по дефолту, потому что Solaris 10 стал проверять, чтобы это значение не было больше лимита на открытые файлы, а лимит по умолчанию 256. Раньше вместо 32 было 512. Но в приниципе, 32 должно хватать. > Я бы хотел воспользоваться > eventport, так как читал, что это модная и > эффективная схема работы. Но когда я > его включаю, то тут же получаю в логах > мегатонны > > 2011/10/06 15:02:53 [alert] 9936#0: port_dissociate() failed (2: No such > file or directory) > 2011/10/06 15:02:53 [alert] 9936#0: port_dissociate() failed (2: No such > file or directory) > (просто буквально мегабайты в секунду > лога) > > Все ссылки из гугла на эту тему ведут > сюда же, в топик: > http://forum.nginx.org/read.php?21,16750 > > Топик я читал. Насколько я понимаю, там > дело кончилось тем, что автор стал > пробовать не-eventport по совету Игоря. > Проблем с ulimit у меня нет, все остальное > объективное из топика я постарался > применить. > Хотелось бы все-таки прояснить, почему > не получается с eventport ? > > Второе. Для оптимизации работы с > большими файлами я бы хотел включить > directio. Когда я его включаю, то первые > несколько минут все просто взлетает. > Однако, по прошествии некоторого > времени, все опять скатывается к этим 2-5 > с, с тенденцией к увеличению этого > времени по мере увеличения числа > сессий. А в логах тем временем > появляются подобные записи: > > 2011/10/21 21:07:44 [alert] 29308#0: *26142 directio(DIRECTIO_ON) > "/usr/local/public/backups/files/files2/ea_games/fifa_12/fifa12_pc.zip" > failed (25: Inappropriate ioctl for device), client: 42.113.6.222, > server: www.files2.enaza.ru, request: "GET > /ea_games/fifa_12/fifa12_pc.zip HTTP/1.1", host: "files2.enaza.ru", > referrer: > "http://blog.vnnclub.com/2011/09/download-fifa-12-full-crack-100-1-link.html" > > (если у кого-то возникает вопрос по > поводу легальности контента - все в > порядке и ничего противоправного, > просто реферрер видимо с какого-то > модного молодежного дорвэя). > > Записей не то что бы очень много по > сравнению с предыдущей проблемой, но > порядком, и они появляются постоянно. > > Я полагаю, что "(25: Inappropriate ioctl for device)" > означает, что все плохо, и поэтому directio > отключил. Какая файловая система ? > Таким образом, всем тем, что, по мнению > документации и многочисленных обзоров > является быстрым и правильным, > воспользоваться не удалось. > Можно ли как-то исправить эту ситуацию ? > Со своей стороны готов предоставить > детальные логи/трэйсы и т.д. Да, нужен отладочный лог для одного своего соединения после появления ошибок на всех остальных соединениях:: http://nginx.org/en/docs/debugging_log.html -- Игорь Сысоев http://sysoev.ru From igor на sysoev.ru Wed Nov 9 11:17:52 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 9 Nov 2011 15:17:52 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSBwaHAg?= =?UTF-8?B?0LIg0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= In-Reply-To: References: <1e7764ffb5730f50f7aaccbd0af0752d.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111109111752.GF36753@nginx.com> On Wed, Nov 09, 2011 at 06:11:18AM -0500, valet wrote: > >А как uploads сконфигруровано ? > Пока что никак, нет в конфиге такого > location > Пробовал так: > location ^~ /uploads/ { > deny all; > } > Но это неправильно, так как в таком > варианте картинки даже не грузятся. А так не надо. Нужно location ^~ /uploads/ { root /path/to/uploads; } -- Игорь Сысоев http://sysoev.ru From nginx-forum на nginx.us Wed Nov 9 11:27:12 2011 From: nginx-forum на nginx.us (valet) Date: Wed, 09 Nov 2011 06:27:12 -0500 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSBwaHAg?= =?UTF-8?B?0LIg0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= In-Reply-To: <20111109111752.GF36753@nginx.com> References: <20111109111752.GF36753@nginx.com> Message-ID: >>>А так не надо. Нужно location ^~ /uploads/ { root /path/to/uploads; } Попробовал так, не получилось - в таком варианте картинки тоже не отрываются. Может это связано с тем, что у меня есть еще такой локейшен: location ~* ^.+.(jpg|jpeg|gif|png|js|ico)$ { access_log off; expires max; root /var/www/site.ru; } Или может связано с этим, что установить вместо location ~ .php$ { такой вариант location \.php$ { не удалось. Не обрабатывается даже index.php - браузер предлагает сохранить страницу. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218046,218072#msg-218072 From igor на sysoev.ru Wed Nov 9 12:35:20 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 9 Nov 2011 16:35:20 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSBwaHAg?= =?UTF-8?B?0LIg0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= In-Reply-To: References: <20111109111752.GF36753@nginx.com> Message-ID: <20111109123520.GA42247@nginx.com> On Wed, Nov 09, 2011 at 06:27:12AM -0500, valet wrote: > >>>А так не надо. Нужно > > location ^~ /uploads/ { > root /path/to/uploads; > } > > Попробовал так, не получилось - в таком > варианте картинки тоже не отрываются. > Может это связано с тем, что у меня есть > еще такой локейшен: > location ~* ^.+.(jpg|jpeg|gif|png|js|ico)$ { > access_log off; > expires max; > root /var/www/site.ru; > } > Или может связано с этим, что > установить вместо > location ~ .php$ { > такой вариант > location \.php$ { > не удалось. Не обрабатывается даже > index.php - браузер предлагает сохранить > страницу. root /var/www/site.ru; location ^~ /uploads/ { access_log off; expires max; } location ~* ^.+.(jpg|jpeg|gif|png|js|ico)$ { access_log off; expires max; } location ~ \.php$ { fastcgi ... } -- Игорь Сысоев http://sysoev.ru From nginx-forum на nginx.us Wed Nov 9 13:23:29 2011 From: nginx-forum на nginx.us (valet) Date: Wed, 09 Nov 2011 08:23:29 -0500 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSBwaHAg?= =?UTF-8?B?0LIg0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= In-Reply-To: References: <20111109111752.GF36753@nginx.com> Message-ID: Спасибо, так работает. Видимо не работало из-за того, что у меня в location ~* ^.+.(jpg|jpeg|gif|png|js|ico)$ { был прописан root. Конфиг хоста приобрел такой вид: server { listen 80; server_name site.ru; access_log /var/log/nginx/site.ru.access.log; error_log /var/log/nginx/site.ru.error.log; gzip_static on; if ($http_user_agent ~ ZmEu) { return 503; } ##не принимать от клиентов запросы длиной более 1 Мб client_max_body_size 1m; root /var/www/site.ru; ## Default location location / { index index.php index.html index.htm; include /var/www/site.ru/.htaccess; } location ^~ /uploads/ { access_log off; expires max; } location ~* \.tpl$ { deny all; } location /click/ { rewrite ^ http://site.ru? permanent; } location /robots.txt { alias /var/www/site.ru/robots_$host.txt; } location /sitemap.xml { alias /var/www/site.ru/uploads/sitemap_$host.xml; } ## Images and static content is treated different location ~* ^.+.(jpg|jpeg|gif|png|js|ico)$ { access_log off; expires max; } ## Parse all .php file in the /var/www/site.ru directory location ~ .php$ { if ($request_uri = /index.php) { rewrite ^ http://$host? permanent;#301 redirect } fastcgi_split_path_info ^(.+\.php)(.*)$; #fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/tmp/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/site.ru$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; fastcgi_temp_file_write_size 256k; #кеширование FastCGI-запросов fastcgi_pass_header "Set-Cookie"; # Необходимо для передачи cookie в соответствующие переменные, например cookie с именем phpsessid будет находится в переменной $cookie_phpsessid #fastcgi_ignore_headers Cache-Control Expires Set-Cookie; # Игнорируем заголовки, относящиеся к кешированию, полученные от FastCGI-сервера fastcgi_cache_key "$server_addr:$server_port$request_uri|$cookie_phpsessid"; # Формируем уникальный ключ; в данном случае различаем пользователей с помощью $cookie_phpsessid fastcgi_cache fastcgi_cache; # Говорим о том, что использовать надо вышеобъявленную кеш-зону fastcgi_cache fastcgi_temp_path /tmp/nginx/temp 1 2; # Указываем папку для хранения временных файлов fastcgi_cache_use_stale updating error timeout invalid_header http_500; # Используем вариант из кеша (даже если он устарел) в случае ошибки fastcgi_cache_valid 200 302 10m; fastcgi_cache_valid 301 1h; fastcgi_cache_valid any 1m; } ## Disable viewing .htaccess & .htpassword location ~ /\.ht { deny all; } } server { listen 80; server_name www.site.ru; rewrite ^ http://site.ru$request_uri?; } Здесь кажется уже все правильно. П.С. Очень приятно получить ответ от самого Игоря Сысоева. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218046,218085#msg-218085 From igor на sysoev.ru Wed Nov 9 13:40:12 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 9 Nov 2011 17:40:12 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSBwaHAg?= =?UTF-8?B?0LIg0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= In-Reply-To: References: <20111109111752.GF36753@nginx.com> Message-ID: <20111109134012.GC42247@nginx.com> On Wed, Nov 09, 2011 at 08:23:29AM -0500, valet wrote: > Спасибо, так работает. Видимо не > работало из-за того, что у меня в location ~* > ^.+.(jpg|jpeg|gif|png|js|ico)$ { был прописан root. Нет, не поэтому. А скорее всего, потому что неправильный root был для "^~ /uploads/". > ## Parse all .php file in the /var/www/site.ru directory > location ~ .php$ { Вот этот кошмар > if ($request_uri = /index.php) { > rewrite ^ http://$host? permanent;#301 redirect > } нужно заменить на отдельностоящий location = /index.php { return 301 /; } > Здесь кажется уже все правильно. > > П.С. Очень приятно получить ответ от > самого Игоря Сысоева. Всегда пожалуйста! -- Igor Sysoev From kasatkinnv на gmail.com Wed Nov 9 13:40:48 2011 From: kasatkinnv на gmail.com (kasatkinnv на gmail.com) Date: Wed, 9 Nov 2011 17:40:48 +0400 Subject: =?UTF-8?Q?Nginx_=D0=B8_httpfs2?= Message-ID: Здравствуйте! Помогите, пожалуйста, настроить nginx так, чтобы он работал с httpfs2. Я пытаюсь подключить файловую систему по HTTP: sudo httpfs2 -f http://192.168.10.42/filesystem.squashfs /mnt/temp Проблема в том, что файловая система подключается, но при попытке что-либо прочитать из неё появляется ошибка: sudo httpfs2 -f http://192.168.10.42/filesystem.squashfs /mnt/temp sudo mount -o loop /mnt/temp/filesystem.squashfs /mnt/loop mount: /dev/loop0: can't read superblock Та же ошибка если пытаюсь прочитать с помощью dd: sudo httpfs2 -f http://192.168.10.42/filesystem.squashfs /mnt/temp sudo dd bs=512 count=1 if=/mnt/temp/filesystem.squashfs of=/tmp/fs.bin dd: reading `/mnt/temp/filesystem.squashfs': Input/output error 0+0 records in 0+0 records out 0 bytes (0 B) copied, 0.00118997 s, 0.0 kB/s А если пытаюсь то же самое сделать с помощью Apache или Lighttpd, то задача выполняется успешно: sudo httpfs2 -f http://192.168.10.42/filesystem.squashfs /mnt/temp sudo mount -o loop /mnt/temp/filesystem.squashfs /mnt/loop sudo ls /mnt/loop/ bin dev home lib mnt proc sbin srv tmp var boot etc initrd.img media opt root selinux sys usr vmlinuz На сервере установлен Debian Squeeze, все программы установлены из стандартных репозиториев с помощью apt-get. Версия nginx 0.7.67-3. Подключаюсь с помощью httpfs2 версии 0.1.4-1. В error.log пусто, в access.log строки: 192.168.10.50 - - [09/Nov/2011:17:22:06 +0400] "GET /filesystem.squashfs HTTP/1.1" 206 4096 "-" "httpfs2.c 0.1.4 \x22Monolith\x22" 192.168.10.50 - - [09/Nov/2011:17:22:06 +0400] "GET /filesystem.squashfs HTTP/1.1" 206 4096 "-" "httpfs2.c 0.1.4 \x22Monolith\x22" 192.168.10.50 - - [09/Nov/2011:17:22:06 +0400] "GET /filesystem.squashfs HTTP/1.1" 206 4096 "-" "httpfs2.c 0.1.4 \x22Monolith\x22" 192.168.10.50 - - [09/Nov/2011:17:23:06 +0400] "GET /filesystem.squashfs HTTP/1.1" 206 2601 "-" "httpfs2.c 0.1.4 \x22Monolith\x22" В access.log у Apache немного другие сообщения (размер переданных данных больше): 192.168.10.50 - - [09/Nov/2011:17:25:47 +0400] "GET /filesystem.squashfs HTTP/1.1" 206 4403 "-" "httpfs2.c 0.1.4 \"Monolith\"" 192.168.10.50 - - [09/Nov/2011:17:25:50 +0400] "GET /filesystem.squashfs HTTP/1.1" 206 4403 "-" "httpfs2.c 0.1.4 \"Monolith\"" 192.168.10.50 - - [09/Nov/2011:17:25:50 +0400] "GET /filesystem.squashfs HTTP/1.1" 206 16692 "-" "httpfs2.c 0.1.4 \"Monolith\"" 192.168.10.50 - - [09/Nov/2011:17:25:50 +0400] "GET /filesystem.squashfs HTTP/1.1" 206 33076 "-" "httpfs2.c 0.1.4 \"Monolith\"" 192.168.10.50 - - [09/Nov/2011:17:25:50 +0400] "GET /filesystem.squashfs HTTP/1.1" 206 4403 "-" "httpfs2.c 0.1.4 \"Monolith\"" Конфигурационные файлы: /etc/nginx/nginx.conf user www-data; worker_processes 1; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include mime.types; access_log /var/log/nginx/access.log; keepalive_timeout 65; tcp_nodelay on; index index.html; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } /etc/nginx/sites-enabled/* server { listen 80 default; server_name test; index index.html; root /var/www; } Что я пытался сделать: поиск в google по ключевым словам nginx + httpfs, а также поиск httpfs по архивам рассылки не дали результатов. Пожалуйста, в письме ставьте мой адрес в поле "Cc:", т.к. я не подписан на рассылку. -- С уважением, Касаткин Николай From nginx-forum на nginx.us Wed Nov 9 14:02:16 2011 From: nginx-forum на nginx.us (valet) Date: Wed, 09 Nov 2011 09:02:16 -0500 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSBwaHAg?= =?UTF-8?B?0LIg0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= In-Reply-To: References: <20111109111752.GF36753@nginx.com> Message-ID: <8d04f8dd092c9456f9188e2ab0a4fd25.NginxMailingListRussian@forum.nginx.org> >>>location = /index.php { return 301 /; } Большое спасибо подправил. Правда записал так: location /index.php { return 301 /; } то есть без = Возможно это связано с версией nginx, у меня nginx/1.0.1 Я правильно понимаю, это нужно для ускорения, так как локейшены обрабатываются быстрее, чем условия. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218046,218090#msg-218090 From igor на sysoev.ru Wed Nov 9 14:19:37 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 9 Nov 2011 18:19:37 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSBwaHAg?= =?UTF-8?B?0LIg0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= In-Reply-To: <8d04f8dd092c9456f9188e2ab0a4fd25.NginxMailingListRussian@forum.nginx.org> References: <20111109111752.GF36753@nginx.com> <8d04f8dd092c9456f9188e2ab0a4fd25.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111109141937.GE42247@nginx.com> On Wed, Nov 09, 2011 at 09:02:16AM -0500, valet wrote: > >>>location = /index.php { > return 301 /; > } > > Большое спасибо подправил. > > Правда записал так: > location /index.php { > return 301 /; > } > то есть без = > > Возможно это связано с версией nginx, у > меня nginx/1.0.1 Не работает корневая страница "www.site.ru/" ? Тогда так: location = /index.php { internal; error_page 404 =301 http://$host/; fastcgi ... } -- Igor Sysoev From nginx-forum на nginx.us Wed Nov 9 15:00:35 2011 From: nginx-forum на nginx.us (Fixid) Date: Wed, 09 Nov 2011 10:00:35 -0500 Subject: =?UTF-8?B?0JLRgNC10LzRjyDQvtGC0LrQu9C40LrQsA==?= Message-ID: Есть фронтенд с NGINX. При заходе на сайт до начала загрузки (т.е. время соединения ) около 30 секунд, потом все нормально, контент загружается быстро. Как можно уменьшить время отклика? user nginx; worker_processes 2; worker_rlimit_nofile 100000; error_log /var/log/nginx/error.log; #error_log /var/log/nginx/error.log notice; #error_log /var/log/nginx/error.log info; pid /var/run/nginx.pid; events { worker_connections 5024; use epoll; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; server_tokens off; gzip on; gzip_static on; gzip_comp_level 5; gzip_min_length 1024; keepalive_timeout 65; limit_zone myzone $binary_remote_addr 10m; # Load config files from the /etc/nginx/conf.d directory include /etc/nginx/conf.d/*.conf; server { listen 80 default; rewrite ^ https://www.test.com/; } } SSL: server { listen 443 default; server_name www.test.com ; ssl on; ssl_certificate /etc/nginx/conf.d/certificate.cer; ssl_certificate_key /etc/nginx/conf.d/rsa.key; ssl_session_timeout 10m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on; if ($host = "test.com" ) { rewrite ^ https://www.test.com/; } location / { proxy_pass https://IIS:500/; proxy_redirect off; proxy_ignore_client_abort off; proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; proxy_ignore_headers Expires Cache-Control; proxy_hide_header Vary; } } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218102,218102#msg-218102 From mva на mva.name Wed Nov 9 15:14:59 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Wed, 09 Nov 2011 22:14:59 +0700 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSBwaHAg?= =?UTF-8?B?0LIg0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= In-Reply-To: <8d04f8dd092c9456f9188e2ab0a4fd25.NginxMailingListRussian@forum.nginx.org> References: <20111109111752.GF36753@nginx.com> <8d04f8dd092c9456f9188e2ab0a4fd25.NginxMailingListRussian@forum.nginx.org> Message-ID: <1320851699.3368.9.camel@N900> кстати, хотелось бы сделать автору замечание, что location ~ .php$ {} всё же лучше писать с экранированием точки. Потому что при наличии директории с названием "php", как, например, у rutorrent, директория будет передаваться php-fpm. И это может вызвать проблемы ;) Лучше прислушиваться к Игорю ;) From mva на mva.name Wed Nov 9 15:48:55 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Wed, 09 Nov 2011 22:48:55 +0700 Subject: =?UTF-8?B?0KDQsNC30LzQtdGAINCx0YPRhGXRgNCwIE1BWF9FUlJPUl9TVFI=?= In-Reply-To: <1320851699.3368.9.camel@N900> References: <20111109111752.GF36753@nginx.com> <8d04f8dd092c9456f9188e2ab0a4fd25.NginxMailingListRussian@forum.nginx.org> <1320851699.3368.9.camel@N900> Message-ID: <1320853735.3368.12.camel@N900> Хотелось бы узнать у игоря, как он относится к увеличению значения NGX_MAX_ERROR_STR хотя бы до 4096? ;) Дело в том, что когда NginX собирается с большим количеством модулей (или просто с длинными путями до их исходников, что важнее) все модули не умещаются в эти 2 килобайта и даже обрезаются на "полпути" в итоге трудно получить полный список, с какими модулями собран NgX из NginX -V ;) -- С уважением, mva From nginx-forum на nginx.us Wed Nov 9 15:57:10 2011 From: nginx-forum на nginx.us (valet) Date: Wed, 09 Nov 2011 10:57:10 -0500 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSBwaHAg?= =?UTF-8?B?0LIg0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= In-Reply-To: <8d04f8dd092c9456f9188e2ab0a4fd25.NginxMailingListRussian@forum.nginx.org> References: <20111109111752.GF36753@nginx.com> <8d04f8dd092c9456f9188e2ab0a4fd25.NginxMailingListRussian@forum.nginx.org> Message-ID: <53e124c67573c5a79d016938355c2b86.NginxMailingListRussian@forum.nginx.org> Вот так location /index.php { return 301 /; } вроде бы все работает. Там "=" обязательно задавать? >>>Не работает корневая страница "www.site.ru/" ? Если задавал с "=", то не работал как site.ru так и site.ru/index.php - не отдавался php-интерпретатору, обрабатывался как обычный файл - браузер предлагал сохранить. Так location = /index.php { internal; error_page 404 =301 http://$host/; } location ~ .php$ { fastcgi... } тоже не работает. Или я неправильно понял и надо делать вложенные location? >>>Лучше прислушиваться к Игорю ;) Да, спасибо, если так location ~ \.php$ { - то все работает, переписываю конфиги хостов. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218046,218106#msg-218106 From igor на sysoev.ru Wed Nov 9 15:58:04 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 9 Nov 2011 19:58:04 +0400 Subject: =?UTF-8?B?UmU6INCg0LDQt9C80LXRgCDQsdGD0YRl0YDQsCBNQVhfRVJST1JfU1RS?= In-Reply-To: <1320853735.3368.12.camel@N900> References: <20111109111752.GF36753@nginx.com> <8d04f8dd092c9456f9188e2ab0a4fd25.NginxMailingListRussian@forum.nginx.org> <1320851699.3368.9.camel@N900> <1320853735.3368.12.camel@N900> Message-ID: <20111109155804.GI42247@nginx.com> On Wed, Nov 09, 2011 at 10:48:55PM +0700, Мисбах-Соловь?в Вадим wrote: > Хотелось бы узнать у игоря, как он относится к увеличению значения NGX_MAX_ERROR_STR хотя бы до 4096? ;) > Дело в том, что когда NginX собирается с большим количеством модулей (или просто с длинными путями до их исходников, что важнее) все модули не умещаются в эти 2 килобайта и даже обрезаются на "полпути" в итоге трудно получить полный список, с какими модулями собран NgX из NginX -V ;) По идее, nginx -V нужнор выводить по-другому. -- Игорь Сысоев http://sysoev.ru From nginx-forum на nginx.us Wed Nov 9 16:51:16 2011 From: nginx-forum на nginx.us (www) Date: Wed, 09 Nov 2011 11:51:16 -0500 Subject: =?UTF-8?B?0KHRgtCw0YLQuNGB0YLQuNC60LAg0L/QviBmYXN0Y2dpIGNhY2hl?= Message-ID: <788c3fa0514206f11d51d024bbc6d551.NginxMailingListRussian@forum.nginx.org> Подскажите, nginx собирает статистику по fastcgi_cache - сколько выдано из кэша, сколько от fastcgi и т.д.? По аналогии memcache-овских get_misses, get_hits, bytes_written и т.д. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218109,218109#msg-218109 From nginx-forum на nginx.us Wed Nov 9 18:01:46 2011 From: nginx-forum на nginx.us (www) Date: Wed, 09 Nov 2011 13:01:46 -0500 Subject: =?UTF-8?B?UmU6INCS0YDQtdC80Y8g0L7RgtC60LvQuNC60LA=?= In-Reply-To: References: Message-ID: Попробуйте открыть какой-нибудь статичный файл. Если загрузится без задержек, то тупит бэкэнед (IIS там у вас?), его ковыряйте. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218102,218112#msg-218112 From nginx-forum на nginx.us Wed Nov 9 18:13:49 2011 From: nginx-forum на nginx.us (Fixid) Date: Wed, 09 Nov 2011 13:13:49 -0500 Subject: =?UTF-8?B?UmU6INCS0YDQtdC80Y8g0L7RgtC60LvQuNC60LA=?= In-Reply-To: References: Message-ID: <5a1b815cf0be0a69277447d425153ed2.NginxMailingListRussian@forum.nginx.org> Проверял, бэкэнед отрабатывает за 10мс, там 18 ядерный агрегат :) Проблема именно в большом интервале между первым GET запросом на Nginx и его ответом, потом все нормально Nginx висит на 2х ядерном VPS Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218102,218113#msg-218113 From dedukhin на mail.ru Wed Nov 9 18:21:15 2011 From: dedukhin на mail.ru (=?UTF-8?B?0JTQvNC40YLRgNC40Lkg0JTQtdC00Y7RhdC40L0=?=) Date: Wed, 09 Nov 2011 22:21:15 +0400 Subject: =?UTF-8?B?UmVbMl06INCS0YDQtdC80Y8g0L7RgtC60LvQuNC60LA=?= In-Reply-To: <5a1b815cf0be0a69277447d425153ed2.NginxMailingListRussian@forum.nginx.org> References: <5a1b815cf0be0a69277447d425153ed2.NginxMailingListRussian@forum.nginx.org> Message-ID: 09 ноября 2011, 22:13 от "Fixid" : > Проверял, бэкэнед отрабатывает за 10мс, > там 18 ядерный агрегат :) Проблема именно > в большом интервале между первым GET > запросом на Nginx и его ответом, потом все > нормально > > Nginx висит на 2х ядерном VPS Посмотрите тайминги запроса в дев. консоли хрома (вкладка Сеть), на каком этапе тратится столько времени. При запросе напрямую на бэкенд (минуя nginx) задержек нет? У вас случайно не установлен Касперский или нечто подобное? From a.vasilishin на kpi.ua Wed Nov 9 18:28:31 2011 From: a.vasilishin на kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Wed, 09 Nov 2011 20:28:31 +0200 Subject: =?UTF-8?B?UmU6INCS0YDQtdC80Y8g0L7RgtC60LvQuNC60LA=?= In-Reply-To: References: Message-ID: <4EBAC64F.8030408@kpi.ua> 09.11.2011 17:00, Fixid пишет: > Есть фронтенд с NGINX. При заходе на сайт > до начала загрузки (т.е. время > соединения ) около 30 секунд, потом все > нормально, контент загружается быстро. > Как можно уменьшить время отклика? такая картина всегда или только в пики посещаемости? > worker_connections 5024; не маловато ли? -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From alvelcom на khpnets.info Wed Nov 9 19:19:27 2011 From: alvelcom на khpnets.info (Paul Khusainov) Date: Wed, 09 Nov 2011 23:19:27 +0400 Subject: =?UTF-8?B?UmU6INCS0YDQtdC80Y8g0L7RgtC60LvQuNC60LA=?= In-Reply-To: References: Message-ID: <4EBAD23F.8080507@khpnets.info> У меня немного побочный вопрос 09.11.2011 19:00, Fixid пишет: > ... > ssl on; > ... > location / { > proxy_pass https://IIS:500/; > ... Насколько это вообще резонно --- проксировать https в https? -- Best wishes, Paul A. Khusainov mailto:alvelcom на khpnets.info From mva на mva.name Wed Nov 9 19:29:37 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Thu, 10 Nov 2011 02:29:37 +0700 Subject: =?UTF-8?B?UmU6INCS0YDQtdC80Y8g0L7RgtC60LvQuNC60LA=?= In-Reply-To: <4EBAD23F.8080507@khpnets.info> References: <4EBAD23F.8080507@khpnets.info> Message-ID: <1320866977.3368.15.camel@N900> С точки зрения ресурсов - хоть и мизерный, но оверхед. Который в определенных ситуациях может огорчать. С точки зрения паранойи - гарантия, что по пути от фронтенда до бекенда никто не прослушает трафик. On чт 10 ноя 2011 02:19:27 KRAT, Paul Khusainov wrote: > У меня немного побочный вопрос > > 09.11.2011 19:00, Fixid пишет: > > ... > > ssl                                  on; > > ... > > location / { > > proxy_pass https://IIS:500/; > > ... > > Насколько это вообще резонно --- проксировать https в https? > > -- > Best wishes, > Paul A. Khusainov mailto:alvelcom на khpnets.info > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, mva From latypoff на yandex.ru Wed Nov 9 20:19:51 2011 From: latypoff на yandex.ru (Denis F. Latypoff) Date: Thu, 10 Nov 2011 03:19:51 +0700 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSBwaHAg?= =?UTF-8?B?0LIg0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= In-Reply-To: <53e124c67573c5a79d016938355c2b86.NginxMailingListRussian@forum.nginx.org> References: <20111109111752.GF36753@nginx.com> <8d04f8dd092c9456f9188e2ab0a4fd25.NginxMailingListRussian@forum.nginx.org> <53e124c67573c5a79d016938355c2b86.NginxMailingListRussian@forum.nginx.org> Message-ID: <106341320869992@web9.yandex.ru> 09.11.2011, 22:57, "valet" : > Вот так > location /index.php { >         return 301 /; > } > вроде бы все работает. Там "=" > обязательно задавать? > >>>> Не работает корневая страница > > "www.site.ru/" ? > Если задавал с "=", то не работал как site.ru > так и site.ru/index.php - не отдавался > php-интерпретатору, обрабатывался как > обычный файл - браузер предлагал > сохранить. > > Так > location = /index.php { > internal; > error_page 404 =301 http://$host/; + fastcgi ... > } > location ~ .php$ { > fastcgi... > } > тоже не работает. Или я неправильно > понял и надо делать вложенные location? > >>>> Лучше прислушиваться к Игорю ;) > > Да, спасибо, если так location ~ \.php$ { - то все > работает, переписываю конфиги хостов. > -- br, Denis F. Latypoff. From nginx-forum на nginx.us Wed Nov 9 20:32:35 2011 From: nginx-forum на nginx.us (valet) Date: Wed, 09 Nov 2011 15:32:35 -0500 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSBwaHAg?= =?UTF-8?B?0LIg0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= In-Reply-To: <53e124c67573c5a79d016938355c2b86.NginxMailingListRussian@forum.nginx.org> References: <20111109111752.GF36753@nginx.com> <8d04f8dd092c9456f9188e2ab0a4fd25.NginxMailingListRussian@forum.nginx.org> <53e124c67573c5a79d016938355c2b86.NginxMailingListRussian@forum.nginx.org> Message-ID: <2e110091013c34af15559b3001ca4476.NginxMailingListRussian@forum.nginx.org> Denis F. Latypoff, при всем уважении, несколько раз перечитал то, что вы написали - ничего не понял. Заметил только + fastcgi ... - что это означает? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218046,218122#msg-218122 From latypoff на yandex.ru Wed Nov 9 20:39:39 2011 From: latypoff на yandex.ru (Denis F. Latypoff) Date: Thu, 10 Nov 2011 03:39:39 +0700 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSBwaHAg?= =?UTF-8?B?0LIg0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= In-Reply-To: <2e110091013c34af15559b3001ca4476.NginxMailingListRussian@forum.nginx.org> References: <20111109111752.GF36753@nginx.com> <8d04f8dd092c9456f9188e2ab0a4fd25.NginxMailingListRussian@forum.nginx.org> <53e124c67573c5a79d016938355c2b86.NginxMailingListRussian@forum.nginx.org> <2e110091013c34af15559b3001ca4476.NginxMailingListRussian@forum.nginx.org> Message-ID: <158621320871179@web79.yandex.ru> 10.11.2011, 03:32, "valet" : > Denis F. Latypoff, при всем уважении, несколько > раз перечитал то, что вы написали - > ничего не понял. Заметил только + fastcgi ... > - что это означает? Что надо добавить fastcgi_pass и прочая -- br, Denis F. Latypoff. From nginx-forum на nginx.us Wed Nov 9 21:12:05 2011 From: nginx-forum на nginx.us (valet) Date: Wed, 09 Nov 2011 16:12:05 -0500 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSBwaHAg?= =?UTF-8?B?0LIg0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= In-Reply-To: <2e110091013c34af15559b3001ca4476.NginxMailingListRussian@forum.nginx.org> References: <20111109111752.GF36753@nginx.com> <8d04f8dd092c9456f9188e2ab0a4fd25.NginxMailingListRussian@forum.nginx.org> <53e124c67573c5a79d016938355c2b86.NginxMailingListRussian@forum.nginx.org> <2e110091013c34af15559b3001ca4476.NginxMailingListRussian@forum.nginx.org> Message-ID: <867fe86f86cf9552b89b545ed49b7374.NginxMailingListRussian@forum.nginx.org> То есть повторить кусок с location ~ \.php$ { в другом локейшене: Это у меня такой немалый кусок :), будет ли это правильно? То есть сделать так: location = /index.php { internal; error_page 404 =301 http://$host/; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_pass unix:/tmp/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/site.ru$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; fastcgi_temp_file_write_size 256k; #кеширование FastCGI-запросов fastcgi_pass_header "Set-Cookie"; # Необходимо для передачи cookie в соответствующие переменные, например cookie с именем phpsessid будет находится в переменной $cookie_phpsessid #fastcgi_ignore_headers Cache-Control Expires Set-Cookie; # Игнорируем заголовки, относящиеся к кешированию, полученные от FastCGI-сервера fastcgi_cache_key "$server_addr:$server_port$request_uri|$cookie_phpsessid"; # Формируем уникальный ключ; в данном случае различаем пользователей с помощью $cookie_phpsessid fastcgi_cache fastcgi_cache; # Говорим о том, что использовать надо вышеобъявленную кеш-зону fastcgi_cache fastcgi_temp_path /tmp/nginx/temp 1 2; # Указываем папку для хранения временных файлов fastcgi_cache_use_stale updating error timeout invalid_header http_500; # Используем вариант из кеша (даже если он устарел) в случае ошибки fastcgi_cache_valid 200 302 10m; fastcgi_cache_valid 301 1h; fastcgi_cache_valid any 1m; } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218046,218124#msg-218124 From latypoff на yandex.ru Wed Nov 9 21:20:49 2011 From: latypoff на yandex.ru (Denis F. Latypoff) Date: Thu, 10 Nov 2011 04:20:49 +0700 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSBwaHAg?= =?UTF-8?B?0LIg0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= In-Reply-To: <867fe86f86cf9552b89b545ed49b7374.NginxMailingListRussian@forum.nginx.org> References: <20111109111752.GF36753@nginx.com> <8d04f8dd092c9456f9188e2ab0a4fd25.NginxMailingListRussian@forum.nginx.org> <53e124c67573c5a79d016938355c2b86.NginxMailingListRussian@forum.nginx.org> <2e110091013c34af15559b3001ca4476.NginxMailingListRussian@forum.nginx.org> <867fe86f86cf9552b89b545ed49b7374.NginxMailingListRussian@forum.nginx.org> Message-ID: <168461320873649@web131.yandex.ru> 10.11.2011, 04:12, "valet" : > То есть повторить кусок с location ~ \.php$ { в > другом локейшене: > Это у меня такой немалый кусок :), будет > ли это правильно? > То есть сделать так: > location = /index.php { > internal; > error_page 404 =301 http://$host/; - fastcgi_split_path_info ^(.+\.php)(.*)$; > fastcgi_pass unix:/tmp/php-fpm.sock; - fastcgi_index index.php; - fastcgi_param SCRIPT_FILENAME /var/www/site.ru$fastcgi_script_name; + fastcgi_param SCRIPT_FILENAME /var/www/site.ru/index.php; > include fastcgi_params; следующие 4 строчки есть в 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; > fastcgi_temp_file_write_size 256k; > #кеширование FastCGI-запросов > fastcgi_pass_header "Set-Cookie"; # Необходимо для > передачи cookie в соответствующие > переменные, например cookie с именем phpsessid > будет находится в переменной $cookie_phpsessid > > #fastcgi_ignore_headers Cache-Control Expires Set-Cookie; # > Игнорируем заголовки, относящиеся к > кешированию, полученные от > FastCGI-сервера > fastcgi_cache_key > "$server_addr:$server_port$request_uri|$cookie_phpsessid"; # > Формируем уникальный ключ; в данном > случае различаем пользователей с > помощью $cookie_phpsessid > fastcgi_cache fastcgi_cache; # Говорим о том, что > использовать надо вышеобъявленную > кеш-зону fastcgi_cache > fastcgi_temp_path /tmp/nginx/temp 1 2; # Указываем папку > для хранения временных файлов > fastcgi_cache_use_stale updating error timeout invalid_header http_500; > # Используем вариант из кеша (даже если > он устарел) в случае ошибки > fastcgi_cache_valid 200 302 10m; > fastcgi_cache_valid 301 1h; > fastcgi_cache_valid any 1m; > } > -- br, Denis F. Latypoff. From nginx-forum на nginx.us Wed Nov 9 21:56:59 2011 From: nginx-forum на nginx.us (Maximus43) Date: Wed, 09 Nov 2011 16:56:59 -0500 Subject: =?UTF-8?B?UmU6INCS0YDQtdC80Y8g0L7RgtC60LvQuNC60LA=?= In-Reply-To: References: Message-ID: Очень похоже на проблему с резолвингом DNS имен. Сначала какой-то компонент системы пробует найти DNS имя, потом резолвинг отваливается по таймауту и дальше все идет по IP. База данных есть? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218102,218126#msg-218126 From n.g.i.n.x.e.r на gmail.com Wed Nov 9 23:11:36 2011 From: n.g.i.n.x.e.r на gmail.com (=?UTF-8?B?0KDQvtC80LDQvQ==?=) Date: Thu, 10 Nov 2011 02:11:36 +0300 Subject: =?UTF-8?B?0JfQsNC/0YPRgtCw0LvRgdGPINGBIFNFUlZFUl9BRERS?= Message-ID: есть 1 сервер балансировщик и 2 сервера обработчика на балансировщике прописано upstream backend1 { server 127.0.0.1:81; } upstream backend2 { server 127.0.0.2:81; } и в location соответственно proxy_pass http://backend1/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Server-IP $server_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; в апаче прописано RPAFenable On RPAFsethostname On RPAFheader X-Forwarded-For RPAFproxy_ips 127.0.0.1 127.0.0.2 Суть проблемы в том, что в апач отдает SERVER_ADDR 127.0.0.1 и 127.0.0.2 HTTP_X_SERVER_IP нормальный Вопрос, как отдать правильный SERVER_ADDR? From latypoff на yandex.ru Wed Nov 9 23:28:13 2011 From: latypoff на yandex.ru (Denis F. Latypoff) Date: Thu, 10 Nov 2011 06:28:13 +0700 Subject: =?UTF-8?B?UmU6INCX0LDQv9GD0YLQsNC70YHRjyDRgSBTRVJWRVJfQUREUg==?= In-Reply-To: References: Message-ID: <174301320881293@web71.yandex.ru> 10.11.2011, 06:11, "Роман" : > есть 1 сервер балансировщик и 2 сервера обработчика > > на балансировщике прописано > > upstream backend1 { >         server 127.0.0.1:81; > } > > upstream backend2 { >         server 127.0.0.2:81; > } > > и в location соответственно > > proxy_pass      http://backend1/; > proxy_redirect  off; > proxy_set_header Host $host; > proxy_set_header X-Real-IP $remote_addr; > proxy_set_header X-Server-IP $server_addr; > proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; > > в апаче прописано > > RPAFenable On > RPAFsethostname On здесь лучше X-Real-IP, потому что в $proxy_add_x_forwarded_for могут быть несколько адресов, через запятую, а адрес клиента должен быть один. - RPAFheader X-Forwarded-For + RPAFheader X-Real-IP > RPAFproxy_ips 127.0.0.1 127.0.0.2 > > Суть проблемы в том, что в апач отдает SERVER_ADDR 127.0.0.1 и 127.0.0.2 > HTTP_X_SERVER_IP нормальный > > Вопрос, как отдать правильный SERVER_ADDR? Никак. SERVER_ADDR - это адрес на который биндится апач. Его нельзя подменить в зависимости от запроса. А в чем проблема, почему не юзать HTTP_X_SERVER_IP? -- br, Denis F. Latypoff. From nginx-forum на nginx.us Thu Nov 10 01:51:01 2011 From: nginx-forum на nginx.us (locojohn) Date: Wed, 09 Nov 2011 20:51:01 -0500 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSBwaHAg?= =?UTF-8?B?0LIg0LrQvtC90LrRgNC10YLQvdC+0Lwg0LrQsNGC0LDQu9C+0LPQtQ==?= In-Reply-To: <168461320873649@web131.yandex.ru> References: <168461320873649@web131.yandex.ru> Message-ID: Denis F. Latypoff Wrote: ------------------------------------------------------- > 10.11.2011, 04:12, "valet" : > > То есть повторить кусок с > location ~ \.php$ { в > > другом локейшене: > > Это у меня такой немалый > кусок :), будет Вот и у меня наблюдается проблема c повторением блоков. Для некоторых специфических виртуальных хостов нужно повторять большие блоки fastcgi конфигураций для каждого локейшна, а выносить эти блоки в отдельный файл и потом делать include неохота, так как сайтов может быть много, а тут ещё и блоки fastcgi конфигураций в отдельных файлах -- жутко неудобно.. А конфигурации разные, к примеру для интранет сайтов и публичных сайтов.. Я пробовал уже на форуме предложить что-то наподобии define, локализируемого внутри server {} блока: define fcgi { fastcgi_read_timeout 1800; fastcgi_send_timeout 1800 include fastcgi_params; fastcgi_param ... ... fastcgi_pass ... } ... location /imagecatalogue { include fcgi; # или: include @fcgi; } location /filemanager { include fcgi; } .... Андрей Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218046,218130#msg-218130 From nginx-forum на nginx.us Thu Nov 10 04:26:51 2011 From: nginx-forum на nginx.us (Fixid) Date: Wed, 09 Nov 2011 23:26:51 -0500 Subject: =?UTF-8?B?UmU6INCS0YDQtdC80Y8g0L7RgtC60LvQuNC60LA=?= In-Reply-To: <4EBAD23F.8080507@khpnets.info> References: <4EBAD23F.8080507@khpnets.info> Message-ID: <2479a89780f39da7abdfbfeb5cb009f1.NginxMailingListRussian@forum.nginx.org> База данных есть и отвечает быстро. Если обратиться напрямую к IIS отвечает очень быстро. По IP домен нормально находится и обратно также. Замечу что VPS и IIS находятся в разных датацентрах. Между ними пинг 15мс. Если обратиться напрямую с VPS минуя NGINX скорость отклика (время до начала загрузки страницы) меньше 20мс Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218102,218131#msg-218131 From nginx-forum на nginx.us Thu Nov 10 05:04:10 2011 From: nginx-forum на nginx.us (alexnginx) Date: Thu, 10 Nov 2011 00:04:10 -0500 Subject: Nginx + Apache + ssl In-Reply-To: References: Message-ID: <3bab590fa2ffc06d636eb45136bc630c.NginxMailingListRussian@forum.nginx.org> Сделал всё что рекомендовали. Nginx не запускается, выдаёт следующую ошибку: SSL_CTX_use_certificate_chain_file("C:/ssl/certificate.crt") failed (SSL: error:0D09B0A3:asn1 encoding routines:d2i_PublicKey:unknown public key type error:0B077066:x509 certificate routines:X509_PUBKEY_get:err asn1 lib error:140BF10C:SSL routines:SSL_SET_CERT:x509 lib) Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217592,218132#msg-218132 From nginx-forum на nginx.us Thu Nov 10 06:11:52 2011 From: nginx-forum на nginx.us (Saniek) Date: Thu, 10 Nov 2011 01:11:52 -0500 Subject: aio_read failed Message-ID: <1d026224ad0b5db7077ca32ffd75bf90.NginxMailingListRussian@forum.nginx.org> В конфиге nginx включена опция: aio sendfile; Время от времени вылазит такая ошибка: *6 aio_read("/usr/local/www/file.js") failed (78: Function not implemented) while sending response to client, client: 176.32.177.98, server: foo.ru, request: "GET /file.js HTTP/1.1", host: "foo.ru", referrer: "http://www.foo1.ru/?_openstat=ZGlyZWN0LnlhbmRleC5ydTs3MDYwODY7MjM1Mzk0MTt5YW5kZXgucnU6cHJlbWl1bQ" Не могу найти причину. За исключением этих ошибок файл отдается нормально. Как ее исправить? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218135,218135#msg-218135 From igor на sysoev.ru Thu Nov 10 06:23:32 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Thu, 10 Nov 2011 10:23:32 +0400 Subject: aio_read failed In-Reply-To: <1d026224ad0b5db7077ca32ffd75bf90.NginxMailingListRussian@forum.nginx.org> References: <1d026224ad0b5db7077ca32ffd75bf90.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111110062332.GA71066@nginx.com> On Thu, Nov 10, 2011 at 01:11:52AM -0500, Saniek wrote: > В конфиге nginx включена опция: > > aio sendfile; > > Время от времени вылазит такая ошибка: > > *6 aio_read("/usr/local/www/file.js") failed (78: Function not > implemented) while sending response to client, client: 176.32.177.98, > server: foo.ru, request: "GET /file.js HTTP/1.1", host: "foo.ru", > referrer: > "http://www.foo1.ru/?_openstat=ZGlyZWN0LnlhbmRleC5ydTs3MDYwODY7MjM1Mzk0MTt5YW5kZXgucnU6cHJlbWl1bQ" > > Не могу найти причину. За исключением > этих ошибок файл отдается нормально. > Как ее исправить? Эта ошибка должна выдаваться один раз на каждый воркер. Нужно разершить aio в ядре: http://nginx.org/ru/docs/http/ngx_http_core_module.html#aio -- Игорь Сысоев http://sysoev.ru From mva на mva.name Thu Nov 10 06:37:17 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Thu, 10 Nov 2011 13:37:17 +0700 Subject: Nginx + Apache + ssl In-Reply-To: <3bab590fa2ffc06d636eb45136bc630c.NginxMailingListRussian@forum.nginx.org> References: <3bab590fa2ffc06d636eb45136bc630c.NginxMailingListRussian@forum.nginx.org> Message-ID: <1320907037.8134.2.camel@N900> что называется "какое слово не понятно?" ;) Он недвусмысленно намекает, что сертификат кривой. On чт 10 ноя 2011 12:04:10 KRAT, alexnginx wrote: > Сделал всё что рекомендовали. Nginx не > запускается, выдаёт следующую ошибку: > SSL_CTX_use_certificate_chain_file("C:/ssl/certificate.crt") failed > (SSL: error:0D09B0A3:asn1 encoding routines:d2i_PublicKey:unknown public > key type error:0B077066:x509 certificate routines:X509_PUBKEY_get:err > asn1 lib error:140BF10C:SSL routines:SSL_SET_CERT:x509 lib) > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,217592,218132#msg-218132 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, mva From n.g.i.n.x.e.r на gmail.com Thu Nov 10 07:17:06 2011 From: n.g.i.n.x.e.r на gmail.com (=?UTF-8?B?0KDQvtC80LDQvQ==?=) Date: Thu, 10 Nov 2011 11:17:06 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQv9GD0YLQsNC70YHRjyDRgSBTRVJWRVJfQUREUg==?= In-Reply-To: <174301320881293@web71.yandex.ru> References: <174301320881293@web71.yandex.ru> Message-ID: Для меня проблемы нет, она есть для пользователей и каких нибудь скриптов, заточенных именно под SERVER_ADDR. Сейчас я тестирую локально, потом хочу сделать классическую балансировку на разных машинах и не знаю как быть с этой проблемой. 10 ноября 2011 г. 3:28 пользователь Denis F. Latypoff написал: > 10.11.2011, 06:11, "Роман" : >> есть 1 сервер балансировщик и 2 сервера обработчика >> >> на балансировщике прописано >> >> upstream backend1 { >>         server 127.0.0.1:81; >> } >> >> upstream backend2 { >>         server 127.0.0.2:81; >> } >> >> и в location соответственно >> >> proxy_pass      http://backend1/; >> proxy_redirect  off; >> proxy_set_header Host $host; >> proxy_set_header X-Real-IP $remote_addr; >> proxy_set_header X-Server-IP $server_addr; >> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; >> >> в апаче прописано >> >> RPAFenable On >> RPAFsethostname On > > здесь лучше X-Real-IP, потому что в $proxy_add_x_forwarded_for могут > быть несколько адресов, через запятую, а адрес клиента должен быть > один. > > - RPAFheader X-Forwarded-For > + RPAFheader X-Real-IP > >> RPAFproxy_ips 127.0.0.1 127.0.0.2 >> >> Суть проблемы в том, что в апач отдает SERVER_ADDR 127.0.0.1 и 127.0.0.2 >> HTTP_X_SERVER_IP нормальный >> >> Вопрос, как отдать правильный SERVER_ADDR? > > Никак. SERVER_ADDR - это адрес на который биндится апач. Его нельзя подменить > в зависимости от запроса. А в чем проблема, почему не юзать HTTP_X_SERVER_IP? > > -- > br, Denis F. Latypoff. > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From latypoff на yandex.ru Thu Nov 10 07:46:54 2011 From: latypoff на yandex.ru (Denis F. Latypoff) Date: Thu, 10 Nov 2011 14:46:54 +0700 Subject: =?UTF-8?B?UmU6INCX0LDQv9GD0YLQsNC70YHRjyDRgSBTRVJWRVJfQUREUg==?= In-Reply-To: References: <174301320881293@web71.yandex.ru> Message-ID: <321801320911214@web72.yandex.ru> 10.11.2011, 14:17, "Роман" : > Для меня проблемы нет, она есть для пользователей и каких нибудь > скриптов, заточенных именно под SERVER_ADDR. > Сейчас я тестирую локально, потом хочу сделать классическую > балансировку на разных машинах и не знаю как быть с этой проблемой. Ну как-то запилить mod_rpaf. Вообще, проблема высосана из пальца. Если пользователь начинает юзать SERVER_ADDR (как-то может в реализации кластера etc), то сайт явно вырос из бесплатного хостинга. > > 10 ноября 2011 г. 3:28 пользователь Denis F. Latypoff > написал: > >>  10.11.2011, 06:11, "Роман" : >>>  есть 1 сервер балансировщик и 2 сервера обработчика >>> >>>  на балансировщике прописано >>> >>>  upstream backend1 { >>>          server 127.0.0.1:81; >>>  } >>> >>>  upstream backend2 { >>>          server 127.0.0.2:81; >>>  } >>> >>>  и в location соответственно >>> >>>  proxy_pass      http://backend1/; >>>  proxy_redirect  off; >>>  proxy_set_header Host $host; >>>  proxy_set_header X-Real-IP $remote_addr; >>>  proxy_set_header X-Server-IP $server_addr; >>>  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; >>> >>>  в апаче прописано >>> >>>  RPAFenable On >>>  RPAFsethostname On >>  здесь лучше X-Real-IP, потому что в $proxy_add_x_forwarded_for могут >>  быть несколько адресов, через запятую, а адрес клиента должен быть >>  один. >> >>  - RPAFheader X-Forwarded-For >>  + RPAFheader X-Real-IP >>>  RPAFproxy_ips 127.0.0.1 127.0.0.2 >>> >>>  Суть проблемы в том, что в апач отдает SERVER_ADDR 127.0.0.1 и 127.0.0.2 >>>  HTTP_X_SERVER_IP нормальный >>> >>>  Вопрос, как отдать правильный SERVER_ADDR? >>  Никак. SERVER_ADDR - это адрес на который биндится апач. Его нельзя подменить >>  в зависимости от запроса. А в чем проблема, почему не юзать HTTP_X_SERVER_IP? >> >>  -- >>  br, Denis F. Latypoff. >> >>  _______________________________________________ >>  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 -- br, Denis F. Latypoff. From ekruglov на gmail.com Thu Nov 10 07:47:28 2011 From: ekruglov на gmail.com (Kruglov Eugenie) Date: Thu, 10 Nov 2011 10:47:28 +0300 Subject: =?UTF-8?B?UmU6INCS0YDQtdC80Y8g0L7RgtC60LvQuNC60LA=?= In-Reply-To: <2479a89780f39da7abdfbfeb5cb009f1.NginxMailingListRussian@forum.nginx.org> References: <4EBAD23F.8080507@khpnets.info> <2479a89780f39da7abdfbfeb5cb009f1.NginxMailingListRussian@forum.nginx.org> Message-ID: А у вас апстрим заведен пож этот вызов? proxy_pass https://IIS:500/; Или вы при каждом запросе спрашиваете про такой домен? 2011/11/10 Fixid > База данных есть и отвечает быстро. > Если обратиться напрямую к IIS отвечает > очень быстро. > > По IP домен нормально находится и > обратно также. > Замечу что VPS и IIS находятся в разных > датацентрах. Между ними пинг 15мс. Если > обратиться напрямую с VPS минуя NGINX > скорость отклика (время до начала > загрузки страницы) меньше 20мс > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,218102,218131#msg-218131 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Faithfully yours, Eugenie ICQ #701217 GTalk ekruglov на gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum на nginx.us Thu Nov 10 07:58:17 2011 From: nginx-forum на nginx.us (Fixid) Date: Thu, 10 Nov 2011 02:58:17 -0500 Subject: =?UTF-8?B?UmU6INCS0YDQtdC80Y8g0L7RgtC60LvQuNC60LA=?= In-Reply-To: References: Message-ID: <84fde8fe25af1832aba5c851406e6c32.NginxMailingListRussian@forum.nginx.org> Простите, я не понял ваш вопрос. Можно его задать попроще? Kruglov Eugenie Wrote: ------------------------------------------------------- > А у вас апстрим заведен пож > этот вызов? proxy_pass > https://IIS:500/; > Или вы при каждом запросе > спрашиваете про такой > домен? > > 2011/11/10 Fixid > > > База данных есть и > отвечает быстро. > > Если обратиться напрямую > к IIS отвечает > > очень быстро. > > > > По IP домен нормально > находится и > > обратно также. > > Замечу что VPS и IIS > находятся в разных > > датацентрах. Между ними > пинг 15мс. Если > > обратиться напрямую с VPS > минуя NGINX > > скорость отклика (время до > начала > > загрузки страницы) меньше > 20мс > > > > Posted at Nginx Forum: > > > http://forum.nginx.org/read.php?21,218102,218131#m > sg-218131 > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru на nginx.org > > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > -- > Faithfully yours, Eugenie > ICQ #701217 > GTalk ekruglov на gmail.com > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218102,218144#msg-218144 From latypoff на yandex.ru Thu Nov 10 08:05:57 2011 From: latypoff на yandex.ru (Denis F. Latypoff) Date: Thu, 10 Nov 2011 15:05:57 +0700 Subject: =?UTF-8?B?UmU6INCS0YDQtdC80Y8g0L7RgtC60LvQuNC60LA=?= In-Reply-To: <84fde8fe25af1832aba5c851406e6c32.NginxMailingListRussian@forum.nginx.org> References: <84fde8fe25af1832aba5c851406e6c32.NginxMailingListRussian@forum.nginx.org> Message-ID: <336861320912357@web59.yandex.ru> 10.11.2011, 14:58, "Fixid" : > Простите, я не понял ваш вопрос. > Можно его задать попроще? Если не описать апстрим upstream iis { server 123.456.78.9:1234; } то при location / { proxy_pass http://iis; } на каждый запрос будет резолвится домен iis. > > Kruglov Eugenie Wrote: > ------------------------------------------------------- > >>  А у вас апстрим заведен пож >>  этот вызов? proxy_pass >>  https://IIS:500/; >>  Или вы при каждом запросе >>  спрашиваете про такой >>  домен? >> >>  2011/11/10 Fixid >>>  База данных есть и >>  отвечает быстро. >>>  Если обратиться напрямую >>  к IIS отвечает >>>  очень быстро. >>> >>>  По IP домен нормально >>  находится и >>>  обратно также. >>>  Замечу что VPS и IIS >>  находятся в разных >>>  датацентрах. Между ними >>  пинг 15мс. Если >>>  обратиться напрямую с VPS >>  минуя NGINX >>>  скорость отклика (время до >>  начала >>>  загрузки страницы) меньше >>  20мс >>>  Posted at Nginx Forum: >>  http://forum.nginx.org/read.php?21,218102,218131#m >>  sg-218131 >>>  _______________________________________________ >>>  nginx-ru mailing list >>>  nginx-ru на nginx.org >>  http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >>  -- >>  Faithfully yours, Eugenie >>  ICQ #701217 >>  GTalk ekruglov на gmail.com >>  _______________________________________________ >>  nginx-ru mailing list >>  nginx-ru на nginx.org >>  http://mailman.nginx.org/mailman/listinfo/nginx-ru > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218102,218144#msg-218144 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- br, Denis F. Latypoff. From nginx-forum на nginx.us Thu Nov 10 08:07:37 2011 From: nginx-forum на nginx.us (Fixid) Date: Thu, 10 Nov 2011 03:07:37 -0500 Subject: =?UTF-8?B?UmU6INCS0YDQtdC80Y8g0L7RgtC60LvQuNC60LA=?= In-Reply-To: <84fde8fe25af1832aba5c851406e6c32.NginxMailingListRussian@forum.nginx.org> References: <84fde8fe25af1832aba5c851406e6c32.NginxMailingListRussian@forum.nginx.org> Message-ID: <3edb5fe89b5cdc17088dd01bb56db1dd.NginxMailingListRussian@forum.nginx.org> В логах нашел вот такие строчки: МойIP - - [10/Nov/2011:11:04:31 +0300] "GET / HTTP/1.1" 302 154 "-" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0. 874.106 Safari/535.2" "-" МойIP - - [10/Nov/2011:11:04:43 +0300] "-" 400 0 "-" "-" "-" МойIP - - [10/Nov/2011:11:04:46 +0300] "-" 400 0 "-" "-" "-" МойIP - - [10/Nov/2011:11:04:46 +0300] "-" 400 0 "-" "-" "-" МойIP - - [10/Nov/2011:11:04:48 +0300] "GET / HTTP/1.1" 200 4139 "-" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0 .874.106 Safari/535.2" "-" Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218102,218145#msg-218145 From vladget на openfilm.com Thu Nov 10 08:25:10 2011 From: vladget на openfilm.com (Vladimir Getmanshchuk) Date: Thu, 10 Nov 2011 10:25:10 +0200 Subject: =?UTF-8?B?UmU6INCS0YDQtdC80Y8g0L7RgtC60LvQuNC60LA=?= In-Reply-To: <3edb5fe89b5cdc17088dd01bb56db1dd.NginxMailingListRussian@forum.nginx.org> References: <84fde8fe25af1832aba5c851406e6c32.NginxMailingListRussian@forum.nginx.org> <3edb5fe89b5cdc17088dd01bb56db1dd.NginxMailingListRussian@forum.nginx.org> Message-ID: http://wiki.nginx.org/HWLoadbalancerCheckErrors 2011/11/10 Fixid > В логах нашел вот такие строчки: > > МойIP - - [10/Nov/2011:11:04:31 +0300] "GET / HTTP/1.1" 302 154 "-" > "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) > Chrome/15.0. > 874.106 Safari/535.2" "-" > МойIP - - [10/Nov/2011:11:04:43 +0300] "-" 400 0 "-" "-" "-" > МойIP - - [10/Nov/2011:11:04:46 +0300] "-" 400 0 "-" "-" "-" > МойIP - - [10/Nov/2011:11:04:46 +0300] "-" 400 0 "-" "-" "-" > МойIP - - [10/Nov/2011:11:04:48 +0300] "GET / HTTP/1.1" 200 4139 "-" > "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) > Chrome/15.0 > .874.106 Safari/535.2" "-" > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,218102,218145#msg-218145 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Thank You for Your time! Yours sincerely, Vladimir Getmanshchuk UNIX System Administrator Openfilm, LLC Email: vladget на openfilm.com Skype: vladimir.getmanshchuk ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на nginx.us Thu Nov 10 08:39:21 2011 From: nginx-forum на nginx.us (hungry) Date: Thu, 10 Nov 2011 03:39:21 -0500 Subject: =?UTF-8?B?0JIg0LvQvtCz0LDRhSDQvtGH0LXQvdGMINC80L3QvtCz0L4g0YHQvtC+0LHRidC1?= =?UTF-8?B?0L3QuNC5IHVubGluaygpIGZhaWxlZA==?= Message-ID: Здравствуйте. Подскажите пожалуйста, в каком направлении смотреть, чтобы решить следующую проблему. В логах nginx в определенное время дня появляется очень много сообщений вида: 2011/10/31 10:20:51 [crit] 5568#0: unlink() "/var/www/site.ru/storage/cache/3/a6/e758a2c5b5deb09be150999d50901a63" failed (2: No such file or directory) Я обратил внимание на то, что изо дня в день это происходит в течение примерно двух часов, в разное время, в основном с утра и после обеда: 2011/10/27 с 10 до 12, с 16 до 17 2011/10/28 с 11 до 14, с 17 до 18, в 22 часа 2011/10/29 с 11 до 13 2011/10/30 с 15 до 16 2011/10/31 с 10 до 13 (и продолжают появляться на момент написания поста) Примерно на это время как раз и приходится пик посещаемости сайта. Всего в день около 10 тысяч хитов. Данные системы: Ubuntu maverick 10.10 2.6.35-30-generic #60-Ubuntu SMP Mon Sep 19 20:42:44 UTC 2011 x86_64 GNU/Linux nginx/1.0.9 из репозитория на http://ppa.launchpad.net/nginx/stable/ubuntu Конфиг (http://pastebin.com/2P4MYQTy): # ключ для кеширования fastcgi_cache_path /var/www/site.ru/storage/cache levels=1:2 keys_zone=site:16m inactive=30m max_size=1024m; # настройки сервера server { listen 80; server_name _ default; root /var/www/site.ru/html; # логи access_log off; error_log /var/www/site.ru/logs/error.log; # настройка страниц с ошибками error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx; } # location по умолчанию, с кешированием location / { try_files $uri @zend_framework_with_cache ; } # админка, не кешируем тут ничего location /admin { try_files $uri @zend_framework_without_cache ; } # Zend Framework БЕЗ кеширования вывода location @zend_framework_without_cache { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/php/index.php; fastcgi_pass 127.0.0.1:9000; } # Zend Framework с кешированием location @zend_framework_with_cache { # настройки кеширования fastcgi_ignore_headers "Expires" "Cache-Control"; fastcgi_cache site; fastcgi_cache_valid 60m; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/php/index.php; fastcgi_pass 127.0.0.1:9000; } # Обычные php файлы, без кешированя location ~\.php$ { include fastcgi_params; fastcgi_pass 127.0.0.1:9000; } } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218148,218148#msg-218148 From eugene.toropov на gmail.com Thu Nov 10 08:45:15 2011 From: eugene.toropov на gmail.com (Eugene Toropov) Date: Thu, 10 Nov 2011 12:45:15 +0400 Subject: limit_req_zone rate Message-ID: <9B200C17-2598-4D94-878B-4EEA95B81528@gmail.com> Добрый день, Можно ли задать limit_req_zone rate в запросах в час и в день? h/d судя по всему не работают. Спасибо. Евгений jt на aaanet.ru From citrin на citrin.ru Thu Nov 10 08:49:19 2011 From: citrin на citrin.ru (Anton Yuzhaninov) Date: Thu, 10 Nov 2011 12:49:19 +0400 Subject: =?UTF-8?B?UmU6INCS0YDQtdC80Y8g0L7RgtC60LvQuNC60LA=?= In-Reply-To: <1320866977.3368.15.camel@N900> References: <4EBAD23F.8080507@khpnets.info> <1320866977.3368.15.camel@N900> Message-ID: <4EBB900F.1080206@citrin.ru> On 11/09/11 23:29, Мисбах-Соловь?в Вадим wrote: > С точки зрения ресурсов - хоть и мизерный, но оверхед. Который в определенных ситуациях может огорчать. Оверхед не такой мизерный, учитывая что между backend и nginx нет keep-alive (точнее поддержка kepp-alive в этом месте недавно появилась, можете потестировать) http://www.semicomplete.com/blog/geekery/ssl-latency.html > С точки зрения паранойи - гарантия, что по пути от фронтенда до бекенда никто не прослушает трафик. Гарантии нет - nginx не проверяет сертификат сервера, поэтому схему уязвима к MITM. С точки зрения паранои надо сначала добавить проверку сертификата сервера. Поддержка https в upstream нужна главным образом для работы с бэкендами, которые умееют только https. -- Anton Yuzhaninov From dmitriy.mukhitov на gmail.com Thu Nov 10 11:19:08 2011 From: dmitriy.mukhitov на gmail.com (Dmitry Mukhitov) Date: Thu, 10 Nov 2011 14:19:08 +0300 Subject: =?UTF-8?B?0L/QvtGA0Y/QtNC+0Log0LLRi9C30L7QstC+0LIg0L7QsdGA0LDQsdC+0YLRh9C4?= =?UTF-8?B?0LrQvtCyLg==?= Message-ID: Вопрос ?1. Устанавливаю обработчик в колбеке директивы, у которой тип NGX_ANY_CONF. Не могу понять, почему этот обработчик вызывается когда директива прописана в секции location в конфиге. Вопрос ?2. Следуя Emiller's Guide To Nginx Module Developmen и исходникам модулей: memcached; fastcgi; proxy, вешаю обработчики на upstream. По отладочному выводу вижу, что первым и единственным вызвался create_request, после чего получаю: worker process 2809 exited on signal 11. Вопрос в том, в каком порядке выполняются обработчики, и не могли бы дать подсказку или наводку, почему не вызываются другие обработчики. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на nginx.us Thu Nov 10 12:48:25 2011 From: nginx-forum на nginx.us (Fixid) Date: Thu, 10 Nov 2011 07:48:25 -0500 Subject: =?UTF-8?B?UmU6INCS0YDQtdC80Y8g0L7RgtC60LvQuNC60LA=?= In-Reply-To: <3edb5fe89b5cdc17088dd01bb56db1dd.NginxMailingListRussian@forum.nginx.org> References: <84fde8fe25af1832aba5c851406e6c32.NginxMailingListRussian@forum.nginx.org> <3edb5fe89b5cdc17088dd01bb56db1dd.NginxMailingListRussian@forum.nginx.org> Message-ID: <6ad6dc442e5cc58b3edce2a5cd8914be.NginxMailingListRussian@forum.nginx.org> После описания upstream задержка уменьшилась на 2с и исчезли в логах строчки: МойIP - - [10/Nov/2011:11:04:43 +0300] "-" 400 0 "-" "-" "-" Но время всеравно неприемлимо Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218102,218162#msg-218162 From mdounin на mdounin.ru Thu Nov 10 13:55:29 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 10 Nov 2011 17:55:29 +0400 Subject: =?UTF-8?B?UmU6INCS0YDQtdC80Y8g0L7RgtC60LvQuNC60LA=?= In-Reply-To: <336861320912357@web59.yandex.ru> References: <84fde8fe25af1832aba5c851406e6c32.NginxMailingListRussian@forum.nginx.org> <336861320912357@web59.yandex.ru> Message-ID: <20111110135529.GP95664@mdounin.ru> Hello! On Thu, Nov 10, 2011 at 03:05:57PM +0700, Denis F. Latypoff wrote: > 10.11.2011, 14:58, "Fixid" : > > Простите, я не понял ваш вопрос. > > Можно его задать попроще? > > Если не описать апстрим > > upstream iis { > server 123.456.78.9:1234; > } > > то при > > location / { > proxy_pass http://iis; > } > > на каждый запрос будет резолвится домен iis. Это не так. Резолвится будет, только если использовать proxy_pass с переменными, и даже в этом случае результат резолвинга будет кешироваться. Maxim Dounin From igor на sysoev.ru Thu Nov 10 14:05:29 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Thu, 10 Nov 2011 18:05:29 +0400 Subject: limit_req_zone rate In-Reply-To: <9B200C17-2598-4D94-878B-4EEA95B81528@gmail.com> References: <9B200C17-2598-4D94-878B-4EEA95B81528@gmail.com> Message-ID: <20111110140529.GC79368@nginx.com> On Thu, Nov 10, 2011 at 12:45:15PM +0400, Eugene Toropov wrote: > Добрый день, > > Можно ли задать limit_req_zone rate в запросах в час и в день? h/d судя по всему не работают. Нет, а для кого такое нужно ? -- Игорь Сысоев http://sysoev.ru From eugene.toropov на gmail.com Thu Nov 10 14:08:05 2011 From: eugene.toropov на gmail.com (Eugene Toropov) Date: Thu, 10 Nov 2011 18:08:05 +0400 Subject: limit_req_zone rate In-Reply-To: <20111110140529.GC79368@nginx.com> References: <9B200C17-2598-4D94-878B-4EEA95B81528@gmail.com> <20111110140529.GC79368@nginx.com> Message-ID: Для нехороших людей надо ввести ограничение, в минуту им не достаточно. On Nov 10, 2011, at 6:05 PM, Igor Sysoev wrote: > On Thu, Nov 10, 2011 at 12:45:15PM +0400, Eugene Toropov wrote: >> Добрый день, >> >> Можно ли задать limit_req_zone rate в запросах в час и в день? h/d судя по всему не работают. > > Нет, а для кого такое нужно ? > > > -- > Игорь Сысоев > http://sysoev.ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum на nginx.us Thu Nov 10 15:10:19 2011 From: nginx-forum на nginx.us (akhkharu) Date: Thu, 10 Nov 2011 10:10:19 -0500 Subject: =?UTF-8?B?0JTQvtC70LPQuNC5INGB0YLQsNGA0YIgTVA0INCy0LjQtNC10L4=?= Message-ID: <56472d89f66fd8cf68905a03871e14f2.NginxMailingListRussian@forum.nginx.org> Добрый день, Использую версию 1.0.8 с нативным модулем для стриминга MP4. Имеется H264-видео размером 374Мб и длительностью 2 часа. Создано при помощи ffmpeg и обработано qt-faststart для перемещения атомов в начало файла. При проигрывании при помощи flowplayer-а, наблюдается проблема с достаточно долгим стартом этого файла - около 12-13 секунд. BufferLength в flowplayer выставлен в 3 секунды. На этом же сервере имеется куча других, более мелких видео, созданных аналогичным способом, которые стартуют довольно быстро. Конфиг nginx-а: http://pastie.org/2842007 Я не уверен, что дело именно в nginx. В таком случае, извините за беспокойство. Были ли у кого-нибудь подобные проблемы? Спасибо, Андрей. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218171,218171#msg-218171 From mdounin на mdounin.ru Thu Nov 10 15:45:20 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 10 Nov 2011 19:45:20 +0400 Subject: =?UTF-8?B?UmU6INC/0L7RgNGP0LTQvtC6INCy0YvQt9C+0LLQvtCyINC+0LHRgNCw0LHQvtGC?= =?UTF-8?B?0YfQuNC60L7Qsi4=?= In-Reply-To: References: Message-ID: <20111110154519.GT95664@mdounin.ru> Hello! On Thu, Nov 10, 2011 at 02:19:08PM +0300, Dmitry Mukhitov wrote: > Вопрос ?1. Устанавливаю обработчик в колбеке директивы, у которой тип > NGX_ANY_CONF. В общем и целом - не надо использовать NGX_ANY_CONF. Это нужно для очень специальных вещей (a la "include"), которые должны работать везде. В остальных случаях это не нужно. > Не могу понять, почему этот обработчик вызывается когда директива прописана > в секции location в конфиге. ENOPARSE. Если вы устанавливаете обработчик - то что странного в том, что он вызывается? > Вопрос ?2. > Следуя Emiller's Guide To Nginx Module Developmen и исходникам модулей: > memcached; fastcgi; proxy, > вешаю обработчики на upstream. > По отладочному выводу вижу, что первым и единственным вызвался > create_request, после чего получаю: > worker process 2809 exited on signal 11. > Вопрос в том, в каком порядке выполняются обработчики, и не могли бы дать > подсказку или наводку, почему > не вызываются другие обработчики. Видимо, ошибка в create_request, которая приводит к падению рабочего процесса (exited on signal 11). Ничего больше не вызывается - потому что рабочий процесс упал. Maxim Dounin From chipitsine на gmail.com Fri Nov 11 05:58:07 2011 From: chipitsine на gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Fri, 11 Nov 2011 10:58:07 +0500 Subject: Nginx + Apache + ssl In-Reply-To: <1320907037.8134.2.camel@N900> References: <3bab590fa2ffc06d636eb45136bc630c.NginxMailingListRussian@forum.nginx.org> <1320907037.8134.2.camel@N900> Message-ID: сертификат, вероятно, гостовый, не ? 10 ноября 2011 г. 12:37 пользователь Мисбах-Соловь?в написал: > что называется "какое слово не понятно?" ;) > Он недвусмысленно намекает, что сертификат кривой. > > On чт 10 ноя 2011 12:04:10 KRAT, alexnginx wrote: > >> Сделал всё что рекомендовали. Nginx не >> запускается, выдаёт следующую ошибку: >> SSL_CTX_use_certificate_chain_file("C:/ssl/certificate.crt") failed >> (SSL: error:0D09B0A3:asn1 encoding routines:d2i_PublicKey:unknown public >> key type error:0B077066:x509 certificate routines:X509_PUBKEY_get:err >> asn1 lib error:140BF10C:SSL routines:SSL_SET_CERT:x509 lib) >> >> Posted at Nginx Forum: >> http://forum.nginx.org/read.php?21,217592,218132#msg-218132 >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > -- > С уважением, > mva > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From sk на hlsrv.com Fri Nov 11 06:24:29 2011 From: sk на hlsrv.com (Sergej Kandyla) Date: Fri, 11 Nov 2011 09:24:29 +0300 Subject: limit_req_zone rate In-Reply-To: References: <9B200C17-2598-4D94-878B-4EEA95B81528@gmail.com> <20111110140529.GC79368@nginx.com> Message-ID: <4EBCBF9D.2060802@hlsrv.com> On 10.11.2011 17:08, Eugene Toropov wrote: > Для нехороших людей надо ввести ограничение, в минуту им не достаточно. > Вполне достаточно. Да и не проблема таких "нехороших" людей грипнуть по логу за последний час и посадить в именованный локейшин. Пусть смотрят еще меделеннее или вообще 502. > On Nov 10, 2011, at 6:05 PM, Igor Sysoev wrote: > > >> On Thu, Nov 10, 2011 at 12:45:15PM +0400, Eugene Toropov wrote: >> >>> Добрый день, >>> >>> Можно ли задать limit_req_zone rate в запросах в час и в день? h/d судя по всему не работают. >>> >> Нет, а для кого такое нужно ? >> >> >> -- >> Игорь Сысоев >> http://sysoev.ru >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From eugene.toropov на gmail.com Fri Nov 11 07:17:53 2011 From: eugene.toropov на gmail.com (Eugene Toropov) Date: Fri, 11 Nov 2011 11:17:53 +0400 Subject: limit_req_zone rate In-Reply-To: <4EBCBF9D.2060802@hlsrv.com> References: <9B200C17-2598-4D94-878B-4EEA95B81528@gmail.com> <20111110140529.GC79368@nginx.com> <4EBCBF9D.2060802@hlsrv.com> Message-ID: <93FF9A5E-3B64-45C9-A197-58FEC2C89D80@gmail.com> Не проблема, но всегда стоит проверить вариант сделать то же самое проще ;) On Nov 11, 2011, at 10:24 AM, Sergej Kandyla wrote: > On 10.11.2011 17:08, Eugene Toropov wrote: >> Для нехороших людей надо ввести ограничение, в минуту им не достаточно. >> > > Вполне достаточно. > Да и не проблема таких "нехороших" людей грипнуть по логу за последний час и посадить в именованный локейшин. > Пусть смотрят еще меделеннее или вообще 502. > > > >> On Nov 10, 2011, at 6:05 PM, Igor Sysoev wrote: >> >> >>> On Thu, Nov 10, 2011 at 12:45:15PM +0400, Eugene Toropov wrote: >>> >>>> Добрый день, >>>> >>>> Можно ли задать limit_req_zone rate в запросах в час и в день? h/d судя по всему не работают. >>>> >>> Нет, а для кого такое нужно ? >>> >>> >>> -- >>> Игорь Сысоев >>> http://sysoev.ru >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru на nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum на nginx.us Fri Nov 11 07:18:04 2011 From: nginx-forum на nginx.us (amastr) Date: Fri, 11 Nov 2011 02:18:04 -0500 Subject: =?UTF-8?B?0J7QsdGA0LDQsdC+0YLQutCwINGA0LDQt9GA0YvQstCwINGB0L7QtdC00LjQvdC1?= =?UTF-8?B?0L3QuNGP?= Message-ID: <3c59edcf5984956256cb9de1c8994277.NginxMailingListRussian@forum.nginx.org> Здравствуйте, У меня есть nginx модуль, который принимает http запрос, определенным образом его обрабатывает и отсылает ответ клиенту. Мне необходимо обрабатывать ситуацию, когда соединение между клиентом и сервером по каким-то причинам разрывается. Подскажите, пожалуста, как лучше это сделать. Заранее спасибо Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218196,218196#msg-218196 From igor на sysoev.ru Fri Nov 11 07:26:46 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Fri, 11 Nov 2011 11:26:46 +0400 Subject: limit_req_zone rate In-Reply-To: <93FF9A5E-3B64-45C9-A197-58FEC2C89D80@gmail.com> References: <9B200C17-2598-4D94-878B-4EEA95B81528@gmail.com> <20111110140529.GC79368@nginx.com> <4EBCBF9D.2060802@hlsrv.com> <93FF9A5E-3B64-45C9-A197-58FEC2C89D80@gmail.com> Message-ID: <20111111072646.GA99227@nginx.com> On Fri, Nov 11, 2011 at 11:17:53AM +0400, Eugene Toropov wrote: > Не проблема, но всегда стоит проверить вариант сделать то же самое проще ;) Проще-то оно проще, но всё упирается в память. Допустим, у нас 100 уникальных адресов в секунду. На час нужно 100 * 3600 * 64 = 22.5M, а на сутки - 540M. > On Nov 11, 2011, at 10:24 AM, Sergej Kandyla wrote: > > > On 10.11.2011 17:08, Eugene Toropov wrote: > >> Для нехороших людей надо ввести ограничение, в минуту им не достаточно. > >> > > > > Вполне достаточно. > > Да и не проблема таких "нехороших" людей грипнуть по логу за последний час и посадить в именованный локейшин. > > Пусть смотрят еще меделеннее или вообще 502. > > > > > > > >> On Nov 10, 2011, at 6:05 PM, Igor Sysoev wrote: > >> > >> > >>> On Thu, Nov 10, 2011 at 12:45:15PM +0400, Eugene Toropov wrote: > >>> > >>>> Добрый день, > >>>> > >>>> Можно ли задать limit_req_zone rate в запросах в час и в день? h/d судя по всему не работают. > >>>> > >>> Нет, а для кого такое нужно ? -- Igor Sysoev From eugene.toropov на gmail.com Fri Nov 11 07:30:24 2011 From: eugene.toropov на gmail.com (Eugene Toropov) Date: Fri, 11 Nov 2011 11:30:24 +0400 Subject: limit_req_zone rate In-Reply-To: <20111111072646.GA99227@nginx.com> References: <9B200C17-2598-4D94-878B-4EEA95B81528@gmail.com> <20111110140529.GC79368@nginx.com> <4EBCBF9D.2060802@hlsrv.com> <93FF9A5E-3B64-45C9-A197-58FEC2C89D80@gmail.com> <20111111072646.GA99227@nginx.com> Message-ID: <16AECCE5-84F0-4624-B370-11CFD5A8C70F@gmail.com> Понял, спасибо On Nov 11, 2011, at 11:26 AM, Igor Sysoev wrote: > On Fri, Nov 11, 2011 at 11:17:53AM +0400, Eugene Toropov wrote: >> Не проблема, но всегда стоит проверить вариант сделать то же самое проще ;) > > Проще-то оно проще, но всё упирается в память. > Допустим, у нас 100 уникальных адресов в секунду. > На час нужно 100 * 3600 * 64 = 22.5M, а на сутки - 540M. > >> On Nov 11, 2011, at 10:24 AM, Sergej Kandyla wrote: >> >>> On 10.11.2011 17:08, Eugene Toropov wrote: >>>> Для нехороших людей надо ввести ограничение, в минуту им не достаточно. >>>> >>> >>> Вполне достаточно. >>> Да и не проблема таких "нехороших" людей грипнуть по логу за последний час и посадить в именованный локейшин. >>> Пусть смотрят еще меделеннее или вообще 502. >>> >>> >>> >>>> On Nov 10, 2011, at 6:05 PM, Igor Sysoev wrote: >>>> >>>> >>>>> On Thu, Nov 10, 2011 at 12:45:15PM +0400, Eugene Toropov wrote: >>>>> >>>>>> Добрый день, >>>>>> >>>>>> Можно ли задать limit_req_zone rate в запросах в час и в день? h/d судя по всему не работают. >>>>>> >>>>> Нет, а для кого такое нужно ? > > > -- > Igor Sysoev > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From postmaster на softsearch.ru Fri Nov 11 08:46:14 2011 From: postmaster на softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Fri, 11 Nov 2011 12:46:14 +0400 Subject: limit_req_zone rate In-Reply-To: <20111111072646.GA99227@nginx.com> References: <9B200C17-2598-4D94-878B-4EEA95B81528@gmail.com> <20111110140529.GC79368@nginx.com> <4EBCBF9D.2060802@hlsrv.com> <93FF9A5E-3B64-45C9-A197-58FEC2C89D80@gmail.com> <20111111072646.GA99227@nginx.com> Message-ID: <533508327.20111111124614@softsearch.ru> Здравствуйте, Igor. >> Не проблема, но всегда стоит проверить вариант сделать то же самое проще ;) > Проще-то оно проще, но всё упирается в память. > Допустим, у нас 100 уникальных адресов в секунду. > На час нужно 100 * 3600 * 64 = 22.5M, а на сутки - 540M. Некорректная постановка задачи, а потому нельзя просто умножать :-) . В реальности адреса будут повторяться и стремиться к вполне определённому числу хостов, которое многие вебмастера знают по картинкам счётчиков. Почему для кэша можно задавать большие зоны, а для ограничения по количеству запросов надо память экономить и потому нельзя? Если не хватит памяти, то об этом ведь будет написано в логе. -- С уважением, Михаил mailto:postmaster на softsearch.ru From nginx-forum на nginx.us Fri Nov 11 10:39:46 2011 From: nginx-forum на nginx.us (Saniek) Date: Fri, 11 Nov 2011 05:39:46 -0500 Subject: aio_read failed In-Reply-To: <1d026224ad0b5db7077ca32ffd75bf90.NginxMailingListRussian@forum.nginx.org> References: <1d026224ad0b5db7077ca32ffd75bf90.NginxMailingListRussian@forum.nginx.org> Message-ID: <260504590cdfe4aaae2a62ae1af83773.NginxMailingListRussian@forum.nginx.org> Благодарю Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218135,218204#msg-218204 From nginx-forum на nginx.us Fri Nov 11 12:28:12 2011 From: nginx-forum на nginx.us (igor.goncharenko) Date: Fri, 11 Nov 2011 07:28:12 -0500 Subject: =?UTF-8?B?0JfQsNC/0YDQtdGC0LjRgtGMINC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC1IGlw?= =?UTF-8?B?INCw0LTRgNC10YHQsCDQsiBVUkw=?= Message-ID: Hi! Мне нужно запретить пользователям ходить по ip адресам вместо доменных имен в urlе. Я сделал так: server { listen local.com:80; {skip} if ( $host ~ "\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b" ) { return 418; } error_page 418 =403 @418; location @418 { root /usr/local/www/error_pages/access-denied/; rewrite $(.*)$ /custom_deny.html break; } теперь клиенту выдается страница custom_deny.html с ошибкой 403.В общем, это и хотелось. Вопрос по if. Правильно ли его использовать здесь или как-то можно по другому проверять $host на соответствие ip-адресу? --- Igor Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218207,218207#msg-218207 From citrin на citrin.ru Fri Nov 11 12:37:57 2011 From: citrin на citrin.ru (Anton Yuzhaninov) Date: Fri, 11 Nov 2011 16:37:57 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQuNGB0L/QvtC70YzQt9C+0LLQsNC90Lg=?= =?UTF-8?B?0LUgaXAg0LDQtNGA0LXRgdCwINCyIFVSTA==?= In-Reply-To: References: Message-ID: <4EBD1725.2000604@citrin.ru> On 11/11/11 16:28, igor.goncharenko wrote: > Мне нужно запретить пользователям > ходить по ip адресам вместо доменных > имен в urlе. server { server_name ~^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$; return 403; error_page 403 /custom_deny.html; location = /custom_deny.html { root /usr/local/www/error_pages/access-denied; } } server { server_name example.ru; ... } -- Anton Yuzhaninov From igor на sysoev.ru Fri Nov 11 12:55:07 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Fri, 11 Nov 2011 16:55:07 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQuNGB0L/QvtC70YzQt9C+0LLQsNC90Lg=?= =?UTF-8?B?0LUgaXAg0LDQtNGA0LXRgdCwINCyIFVSTA==?= In-Reply-To: References: Message-ID: <20111111125507.GB5714@nginx.com> On Fri, Nov 11, 2011 at 07:28:12AM -0500, igor.goncharenko wrote: > Hi! > Мне нужно запретить пользователям > ходить по ip адресам вместо доменных > имен в urlе. > Я сделал так: > > server > { > listen local.com:80; > {skip} > > if ( $host ~ "\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b" ) { return 418; } > error_page 418 =403 @418; > > location @418 { > root /usr/local/www/error_pages/access-denied/; > rewrite $(.*)$ /custom_deny.html break; > } > > теперь клиенту выдается страница > custom_deny.html с ошибкой 403.В общем, это и > хотелось. > Вопрос по if. Правильно ли его > использовать здесь или как-то можно по > другому проверять $host на соответствие > ip-адресу? http://nginx.org/en/docs/http/server_names.html#miscellaneous_names -- Игорь Сысоев http://sysoev.ru From lpauzner на yandex.ru Fri Nov 11 13:02:54 2011 From: lpauzner на yandex.ru (Leonid Pauzner) Date: Fri, 11 Nov 2011 17:02:54 +0400 Subject: limit_req_zone /24 Message-ID: <495231321016574@web9.yandex.ru> Вложение в формате HTML было извлечено… URL: From gmm на csdoc.com Fri Nov 11 13:21:27 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Fri, 11 Nov 2011 15:21:27 +0200 Subject: limit_req_zone /24 In-Reply-To: <495231321016574@web9.yandex.ru> References: <495231321016574@web9.yandex.ru> Message-ID: <4EBD2157.5010201@csdoc.com> On 11.11.2011 15:02, Leonid Pauzner wrote: > Иногда хочется иметь возможность придерживать запросы не для уникального > IP а по маске, например /24 или /28 есть и более простой способ: http://www.google.com/support/webmasters/bin/answer.py?answer=48620 Changing Google's crawl rate некоторые боты понимают Request-rate или Crawl-delay в robots.txt > 4163 66.249.71.52 Mozilla/5.0 (compatible; Googlebot/2.1 > 4119 66.249.71.46 Mozilla/5.0 (compatible; Googlebot/2.1 > 4118 66.249.71.54 Mozilla/5.0 (compatible; Googlebot/2.1 > Есть конечно обходные пути (отлавливать по user_agent, делать еще один > уровень проксирования 127.0.0.1:81 и придерживать там), но как-то не > очень красиво. отлавливать по user_agent - вполне красиво, он ведь не обязательно будет всегда ходить на сайт только с этой подсетки 66.249.71.0/24. -- Best regards, Gena From hell-for-yahoo на umail.ru Fri Nov 11 13:20:33 2011 From: hell-for-yahoo на umail.ru (Andrey Repin) Date: Fri, 11 Nov 2011 17:20:33 +0400 Subject: Запретить выполнение php в конкретном каталоге In-Reply-To: References: <168461320873649@web131.yandex.ru> Message-ID: <1329630946.20111111172033@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) locojohn! l> Вот и у меня наблюдается проблема c l> повторением блоков. Для некоторых l> специфических виртуальных хостов l> нужно повторять большие блоки fastcgi l> конфигураций для каждого локейшна, а l> выносить эти блоки в отдельный файл и l> потом делать include неохота, так как l> сайтов может быть много, а тут ещё и l> блоки fastcgi конфигураций в отдельных l> файлах -- жутко неудобно.. А l> конфигурации разные, к примеру для l> интранет сайтов и публичных сайтов.. На сколько я понимаю, параметры fastcgi_pass наследуются, и в интерпретатор передаётся последний. Создайте блок с самыми общими пареметрами (два блока, для интра- и внешних сайтов), и дописывайте после них коррекции, где надо. -- С уважением Andrey Repin (hell-for-yahoo на umail.ru) пятница, 11.11.2011, <17:18> From hell-for-yahoo на umail.ru Fri Nov 11 13:28:33 2011 From: hell-for-yahoo на umail.ru (Andrey Repin) Date: Fri, 11 Nov 2011 17:28:33 +0400 Subject: Запутался с SERVER_ADDR In-Reply-To: <321801320911214@web72.yandex.ru> References: <174301320881293@web71.yandex.ru> <321801320911214@web72.yandex.ru> Message-ID: <733242575.20111111172833@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) Denis F . Latypoff! DFL> Вообще, проблема высосана из пальца. DFL> Если пользователь начинает юзать SERVER_ADDR (как-то может в DFL> реализации кластера etc), то сайт явно вырос из бесплатного хостинга. Вообще не вижу _проблемы_... SERVER_ADDR, как по мне, величина справочная. SERVER_NAME - другой вопрос... Но и ответ на него тоже другой. -- С уважением Andrey Repin (hell-for-yahoo на umail.ru) пятница, 11.11.2011, <17:27> From nginx-forum на nginx.us Fri Nov 11 13:51:22 2011 From: nginx-forum на nginx.us (locojohn) Date: Fri, 11 Nov 2011 08:51:22 -0500 Subject: php In-Reply-To: <1329630946.20111111172033@mtu-net.ru> References: <1329630946.20111111172033@mtu-net.ru> Message-ID: Andrey Repin Wrote: ------------------------------------------------------- > Насколько я понимаю, > параметры fastcgi_pass > наследуются, и в > интерпретатор > передаётся последний. > Создайте блок с самыми > общими пареметрами (два > блока, для интра- и внешних > сайтов), и дописывайте > после них коррекции, где > надо. Такие параметры как PHP_VALUE, PHP_ADMIN_VALUE, SCRIPT_URL, SCRIPT_URI, fastcgi_read_timeout, fastcgi_send_timeout, а также другие весьма специфичны для каждого сайта и дублировать их для каждого локейшна не представляется возможным. Андрей Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218046,218217#msg-218217 From igor на sysoev.ru Fri Nov 11 13:56:59 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Fri, 11 Nov 2011 17:56:59 +0400 Subject: php In-Reply-To: References: <1329630946.20111111172033@mtu-net.ru> Message-ID: <20111111135659.GH5714@nginx.com> On Fri, Nov 11, 2011 at 08:51:22AM -0500, locojohn wrote: > Andrey Repin Wrote: > ------------------------------------------------------- > > Насколько я понимаю, > > параметры fastcgi_pass > > наследуются, и в > > интерпретатор > > передаётся последний. > > Создайте блок с самыми > > общими пареметрами (два > > блока, для интра- и внешних > > сайтов), и дописывайте > > после них коррекции, где > > надо. > > Такие параметры как PHP_VALUE, PHP_ADMIN_VALUE, > SCRIPT_URL, SCRIPT_URI, fastcgi_read_timeout, fastcgi_send_timeout, а > также другие весьма специфичны для > каждого сайта и дублировать их для > каждого локейшна не представляется > возможным. server { fastcgi_read_timeout 60; fastcgi_send_timeout 60; include fastcgi_common_params; fasctgi_param PHP_VALUE ... fasctgi_param PHP_ADMIN_VALUE ... fasctgi_param SCRIPT_URL ... fasctgi_param SCRIPT_URI ... location /script0/ { fastcgi_pass ... } location /script1/ { fastcgi_pass ... } -- Игорь Сысоев http://sysoev.ru From nginx-forum на nginx.us Fri Nov 11 14:10:07 2011 From: nginx-forum на nginx.us (igor.goncharenko) Date: Fri, 11 Nov 2011 09:10:07 -0500 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQuNGB0L/QvtC70YzQt9C+0LLQsNC90Lg=?= =?UTF-8?B?0LUgaXAg0LDQtNGA0LXRgdCwINCyIFVSTA==?= In-Reply-To: References: Message-ID: <81bebebc8ce5baa3febd095f166e0be9.NginxMailingListRussian@forum.nginx.org> Не отдается кастомная страница /custom_deny.html если использовать return. Через именованый локейшн получилось: server { listen local.com:80; server_name ~^ "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$"; return 403; error_page 403 @403; #named locations location @403 { root /usr/local/www/error_pages/en/access-denied/; rewrite $(.*)$ /custom_deny.html break; } } Другое дело, что тогда для https тоже отдельный server {listen local.com:443} с включенным ssl и сертификатами создавать придется. И будет ли он конфликтовать с основным local.com:443? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218207,218219#msg-218219 From igor на sysoev.ru Fri Nov 11 14:20:31 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Fri, 11 Nov 2011 18:20:31 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQuNGB0L/QvtC70YzQt9C+0LLQsNC90Lg=?= =?UTF-8?B?0LUgaXAg0LDQtNGA0LXRgdCwINCyIFVSTA==?= In-Reply-To: <81bebebc8ce5baa3febd095f166e0be9.NginxMailingListRussian@forum.nginx.org> References: <81bebebc8ce5baa3febd095f166e0be9.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111111142031.GJ5714@nginx.com> On Fri, Nov 11, 2011 at 09:10:07AM -0500, igor.goncharenko wrote: > Не отдается кастомная страница > /custom_deny.html если использовать return. > > Через именованый локейшн получилось: > > server { > listen local.com:80; > server_name ~^ "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$"; > return 403; > error_page 403 @403; > > #named locations > location @403 { > root /usr/local/www/error_pages/en/access-denied/; > rewrite $(.*)$ /custom_deny.html break; > } > > } server { location / { return 403; error_page 403 /custom_deny.html } location = /custom_deny.html { root /usr/local/www/error_pages/en/access-denied/; } } > Другое дело, что тогда для https тоже > отдельный server {listen local.com:443} с включенным > ssl и сертификатами создавать придется. > И будет ли он конфликтовать с основным > local.com:443? http://nginx.org/en/docs/http/configuring_https_servers.html#name_based_https_servers -- Игорь Сысоев http://sysoev.ru From nginx-forum на nginx.us Fri Nov 11 14:32:30 2011 From: nginx-forum на nginx.us (igor.goncharenko) Date: Fri, 11 Nov 2011 09:32:30 -0500 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCDQuNGB0L/QvtC70YzQt9C+0LLQsNC90Lg=?= =?UTF-8?B?0LUgaXAg0LDQtNGA0LXRgdCwINCyIFVSTA==?= In-Reply-To: References: Message-ID: Спасибо за помощь. Теперь работает без именованного локейшна. Но по https не годится :( SNI не подходит (freebsd 7.1, соответственно nginx без sni, и неизвестно чем ходят клиенты). --- Igor Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218207,218221#msg-218221 From nginx-forum на nginx.us Fri Nov 11 14:40:40 2011 From: nginx-forum на nginx.us (kozakd) Date: Fri, 11 Nov 2011 09:40:40 -0500 Subject: =?UTF-8?B?YmxvY2tkZXYgZGlyZWN0IElPINC/0YDQuCDQvtGC0LTQsNGH0LUg0LLQuNC00LU=?= =?UTF-8?B?0L4g0YEgWEZTIChzb2Z0IFJBSUQpINC4IGV4dDQgKHNpbmdsIEhERCk=?= Message-ID: <118c388e79717020dd458bfb3ba04122.NginxMailingListRussian@forum.nginx.org> При нагрузке порядка 1500 конектов и ближе к 2 Gbps ловлю в ps это blockdev_direct_IO Есть варианты решения? CenOS 6.0 2.6.32-71.29.1.el6.x86_64 RAM 16 GB nginx 1.0.9 user web; worker_processes 1; worker_rlimit_nofile 32000; error_log logs/error.log info; events { worker_connections 16000; } http { include mime.types; default_type application/octet-stream; server_tokens off; sendfile on; tcp_nopush on; tcp_nodelay on; aio on; directio 4m; directio_alignment 4k; output_buffers 1 1m; keepalive_timeout 10; client_header_timeout 20; client_body_timeout 20; send_timeout 20s; resolver_timeout 0; reset_timedout_connection on; proxy_buffering off; open_file_cache max=16000 inactive=10m; open_file_cache_valid 120m; open_file_cache_min_uses 10; open_file_cache_errors off; Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218222,218222#msg-218222 From nginx-forum на nginx.us Fri Nov 11 14:45:51 2011 From: nginx-forum на nginx.us (kozakd) Date: Fri, 11 Nov 2011 09:45:51 -0500 Subject: =?UTF-8?B?UmU6IGJsb2NrZGV2IGRpcmVjdCBJTyDQv9GA0Lgg0L7RgtC00LDRh9C1INCy0Lg=?= =?UTF-8?B?0LTQtdC+INGBIFhGUyAoc29mdCBSQUlEKSDQuCBleHQ0IChzaW5nbCBIREQp?= In-Reply-To: <118c388e79717020dd458bfb3ba04122.NginxMailingListRussian@forum.nginx.org> References: <118c388e79717020dd458bfb3ba04122.NginxMailingListRussian@forum.nginx.org> Message-ID: Вот что то есть. http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=5fe878ae7f82fbf0830dbfaee4c5ca18f3aee442 И что делать? :( Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218222,218223#msg-218223 From gmm на csdoc.com Fri Nov 11 17:42:59 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Fri, 11 Nov 2011 19:42:59 +0200 Subject: =?UTF-8?B?UmU6IGJsb2NrZGV2IGRpcmVjdCBJTyDQv9GA0Lgg0L7RgtC00LDRh9C1INCy0Lg=?= =?UTF-8?B?0LTQtdC+INGBIFhGUyAoc29mdCBSQUlEKSDQuCBleHQ0IChzaW5nbCBIREQp?= In-Reply-To: <118c388e79717020dd458bfb3ba04122.NginxMailingListRussian@forum.nginx.org> References: <118c388e79717020dd458bfb3ba04122.NginxMailingListRussian@forum.nginx.org> Message-ID: <4EBD5EA3.80709@csdoc.com> On 11.11.2011 16:40, kozakd wrote: > При нагрузке порядка 1500 конектов и > ближе к 2 Gbps > ловлю в ps это blockdev_direct_IO > Есть варианты решения? а в чем проблема? > CenOS 6.0 2.6.32-71.29.1.el6.x86_64 вроде бы - Fixed In Version: kernel-2.6.32-183.el6 https://bugzilla.redhat.com/show_bug.cgi?id=725444 > worker_processes 1; > worker_rlimit_nofile 32000; > events { > worker_connections 16000; > } увеличить количество воркеров и выключить aio/directio/sendfile - разве это не поможет убрать состояние blockdev_direct_IO в ps? > sendfile on; > tcp_nopush on; > tcp_nodelay on; > aio on; > directio 4m; > directio_alignment 4k; > output_buffers 1 1m; output_buffers вроде бы не используются если sendfile on; кроме того, в документации к nginx написано: http://nginx.org/ru/docs/http/ngx_http_core_module.html#aio "Для работы AIO нужно выключить sendfile". http://nginx.org/ru/docs/http/ngx_http_core_module.html#directio "Директива автоматически запрещает (0.7.15) использование sendfile'а для данного запроса." > proxy_buffering off; если надо чтобы не использовалась буферизация ответов от backend-серверов на диск, то лучше так и написать: proxy_buffering on; proxy_max_temp_file_size 0; -- Best regards, Gena From nginx-forum на nginx.us Fri Nov 11 17:52:38 2011 From: nginx-forum на nginx.us (minya) Date: Fri, 11 Nov 2011 12:52:38 -0500 Subject: =?UTF-8?B?0L7Qv9GC0LjQvNC40LfQsNGG0LjRjyDQvNC+0LTRg9C70Y86INC/0LXRgNC10L8=?= =?UTF-8?B?0L7Qu9C90LXQvdC40Y8g0Lgg0LHQu9C+0LrQuNGA0L7QstC60Lg=?= Message-ID: Доброго времени суток! Хочу хттп-сервис, который раздает blob-ы. Задача такая. Есть здоровенный файл (может даже не один). Клиент просит из него кусок. Лень писать хттп-уровень самому - решил заюзать nginx. Долго читал интернет на предмет написания модулей, но так и не понял, как мне реализовать 2 ключевые вещи. Первая: сегмент надо отдавать не целиком, а небольшими кусочками, чтоб не завалить сервер большим количеством запросов. Судя по всему, это возможно, раз в ngx_chain_t помимо buf есть next. Но как делать, чтоб вновь прочитанная порция не задерживалась в памяти, а сразу улетала в ответ на клиента - непонятно. Вторая - блокировка контекста при чтении. Тут совсем непонятно, что можно сделать Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218226,218226#msg-218226 From a.vasilishin на kpi.ua Fri Nov 11 19:01:30 2011 From: a.vasilishin на kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Fri, 11 Nov 2011 21:01:30 +0200 Subject: =?UTF-8?B?UmU6INCX0LDQv9GD0YLQsNC70YHRjyDRgSBTRVJWRVJfQUREUg==?= In-Reply-To: References: <174301320881293@web71.yandex.ru> Message-ID: <4EBD710A.4050405@kpi.ua> 10.11.2011 9:17, Роман пишет: > Для меня проблемы нет, она есть для пользователей и каких нибудь > скриптов, заточенных именно под SERVER_ADDR. > Сейчас я тестирую локально, потом хочу сделать классическую > балансировку на разных машинах и не знаю как быть с этой проблемой. Если у Вас дебиан, то там последнюю версию libapache2-mod-rpaf поломали почему-то. -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From mail на knutov.com Fri Nov 11 21:00:58 2011 From: mail на knutov.com (Nick Knutov) Date: Sat, 12 Nov 2011 03:00:58 +0600 Subject: limit_req_zone rate In-Reply-To: <20111111072646.GA99227@nginx.com> References: <9B200C17-2598-4D94-878B-4EEA95B81528@gmail.com> <20111110140529.GC79368@nginx.com> <4EBCBF9D.2060802@hlsrv.com> <93FF9A5E-3B64-45C9-A197-58FEC2C89D80@gmail.com> <20111111072646.GA99227@nginx.com> Message-ID: <4EBD8D0A.5060701@knutov.com> А на сервере 8, 16, а часто больше гигабайт памяти. Об этом, безусловно, надо упомянуть в документации, однако я тоже считаю, что такая возможность была бы полезной. Правда в моей практике возникало желание сделать ограничение в 15 минут, максимум в час, но не больше. 11.11.2011 13:26, Igor Sysoev пишет: > On Fri, Nov 11, 2011 at 11:17:53AM +0400, Eugene Toropov wrote: >> Не проблема, но всегда стоит проверить вариант сделать то же самое проще ;) > > Проще-то оно проще, но всё упирается в память. > Допустим, у нас 100 уникальных адресов в секунду. > На час нужно 100 * 3600 * 64 = 22.5M, а на сутки - 540M. > >> On Nov 11, 2011, at 10:24 AM, Sergej Kandyla wrote: >> >>> On 10.11.2011 17:08, Eugene Toropov wrote: >>>> Для нехороших людей надо ввести ограничение, в минуту им не достаточно. >>>> >>> >>> Вполне достаточно. >>> Да и не проблема таких "нехороших" людей грипнуть по логу за последний час и посадить в именованный локейшин. >>> Пусть смотрят еще меделеннее или вообще 502. >>> >>> >>> >>>> On Nov 10, 2011, at 6:05 PM, Igor Sysoev wrote: >>>> >>>> >>>>> On Thu, Nov 10, 2011 at 12:45:15PM +0400, Eugene Toropov wrote: >>>>> >>>>>> Добрый день, >>>>>> >>>>>> Можно ли задать limit_req_zone rate в запросах в час и в день? h/d судя по всему не работают. >>>>>> >>>>> Нет, а для кого такое нужно ? > > -- Best Regards, Nick Knutov http://knutov.com ICQ: 272873706 Voice: +7-904-84-23-130 From nginx-forum на nginx.us Fri Nov 11 21:48:36 2011 From: nginx-forum на nginx.us (locojohn) Date: Fri, 11 Nov 2011 16:48:36 -0500 Subject: php In-Reply-To: <20111111135659.GH5714@nginx.com> References: <20111111135659.GH5714@nginx.com> Message-ID: <1e79271cf1e10e361c343daaba697724.NginxMailingListRussian@forum.nginx.org> Уважаемый Игорь, Я устанавливаю переменную FastCGI окружения PHP_VALUE в значение "include_path=$document_root" в server {} блоке, чтобы PHP-FPM backend находил нужные файлы в include_path равном $document_root: server { listen 80; server_name test.com; root /opt/www/test.com; fastcgi_read_timeout 1800; fastcgi_send_timeout 1800; fastcgi_param PHP_VALUE "include_path=$document_root"; ... location ~ ^(?.+\.php)$ { include fastcgi_php.conf; fastcgi_param SCRIPT_URL $SCRIPT_FILENAME; fastcgi_param SCRIPT_URI $scheme://$http_host$SCRIPT_FILENAME; fastcgi_pass phpfarm; } location ~ ^(?.+\.php)(?.+)$ { include fastcgi_php.conf; fastcgi_param SCRIPT_URL $PATH_INFO; fastcgi_param SCRIPT_URI $scheme://$http_host$PATH_INFO; fastcgi_pass phpfarm; } Однако, наблюдается очень странная ситуация. При refreshe страницы с php скриптом, я распечатываю значение "include_path", и на каждый третий раз он выдаёт системное значение eg: ".:/usr/share/php", как будто PHP_VALUE "include_path=$document_root" не передаётся в php-fpm окружение. В остальные же разы печатается правильное значение, т.е.: "/opt/www/test.com". Чтобы это могло значить? Если же я ставлю fastcgi_param PHP_VALUE в вышеуказанные location {} блоки, то значение include_path всегда правильное, то есть равное $document_root, что я передаю через fastcgi_param. Я пробовал указывать вместо $document_root путь "/opt/www/test.com" напрямую без переменной, но это не изменило ситуации. Каждый третий раз при рефреше одной и той же страницы печатается неправильное значение include_path. Получается, что ваше решение не работает полностью. Есть ли у вас какие-нибудь догадки по поводу решения данной проблемы? Андрей Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218046,218229#msg-218229 From nginx-forum на nginx.us Fri Nov 11 23:21:54 2011 From: nginx-forum на nginx.us (locojohn) Date: Fri, 11 Nov 2011 18:21:54 -0500 Subject: php In-Reply-To: <20111111135659.GH5714@nginx.com> References: <20111111135659.GH5714@nginx.com> Message-ID: <1096e065404594b2fd16a6e276f43989.NginxMailingListRussian@forum.nginx.org> В дополнение, GEOIP_* параметры FastCGI также не передаются, если находятся в блоке server {}, а не в блоке location, обеспечивающим работу php скриптов. Андрей Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218046,218231#msg-218231 From hell-for-yahoo на umail.ru Sat Nov 12 00:38:12 2011 From: hell-for-yahoo на umail.ru (Andrey Repin) Date: Sat, 12 Nov 2011 04:38:12 +0400 Subject: оптимизация модуля: переполнения и блокировки In-Reply-To: References: Message-ID: <3810528157.20111112043812@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) minya! m> Вторая - блокировка m> контекста при чтении. Тут совсем m> непонятно, что можно сделать Блокировка куска файла при чтении из него? :) Сударь, вам к RDBMS надо, а не сюда. -- С уважением Andrey Repin (hell-for-yahoo на umail.ru) суббота, 12.11.2011, <04:37> From latypoff на yandex.ru Sat Nov 12 02:12:25 2011 From: latypoff на yandex.ru (Denis F. Latypoff) Date: Sat, 12 Nov 2011 09:12:25 +0700 Subject: =?UTF-8?B?UmU6INCX0LDQv9GD0YLQsNC70YHRjyDRgSBTRVJWRVJfQUREUg==?= In-Reply-To: <4EBD710A.4050405@kpi.ua> References: <174301320881293@web71.yandex.ru> <4EBD710A.4050405@kpi.ua> Message-ID: <97051321063945@web71.yandex.ru> 12.11.2011, 02:01, "Андрей Василишин" : > 10.11.2011 9:17, Роман пишет: > >>  Для меня проблемы нет, она есть для пользователей и каких нибудь >>  скриптов, заточенных именно под SERVER_ADDR. >>  Сейчас я тестирую локально, потом хочу сделать классическую >>  балансировку на разных машинах и не знаю как быть с этой проблемой. > > Если у Вас дебиан, то там последнюю версию libapache2-mod-rpaf поломали > почему-то. А в неполоманной версии SERVER_ADDR заменяется? -- br, Denis F. Latypoff. From mdounin на mdounin.ru Sat Nov 12 03:20:30 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Sat, 12 Nov 2011 07:20:30 +0400 Subject: php In-Reply-To: <1e79271cf1e10e361c343daaba697724.NginxMailingListRussian@forum.nginx.org> References: <20111111135659.GH5714@nginx.com> <1e79271cf1e10e361c343daaba697724.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111112032030.GJ95664@mdounin.ru> Hello! On Fri, Nov 11, 2011 at 04:48:36PM -0500, locojohn wrote: > Уважаемый Игорь, > > Я устанавливаю переменную FastCGI > окружения PHP_VALUE в значение > "include_path=$document_root" в server {} блоке, чтобы > PHP-FPM backend находил нужные файлы в include_path > равном $document_root: > > server { > listen 80; > server_name test.com; > > root /opt/www/test.com; > > fastcgi_read_timeout 1800; > fastcgi_send_timeout 1800; > fastcgi_param PHP_VALUE "include_path=$document_root"; > > > ... > > > location ~ ^(?.+\.php)$ { > include fastcgi_php.conf; > fastcgi_param SCRIPT_URL $SCRIPT_FILENAME; > fastcgi_param SCRIPT_URI > $scheme://$http_host$SCRIPT_FILENAME; > fastcgi_pass phpfarm; http://nginx.org/ru/docs/http/ngx_http_fastcgi_module.html#fastcgi_param Директивы наследуются с предыдущего уровня при условии, что на данном уровне не описаны свои директивы fastcgi_param. [...] > Однако, наблюдается очень странная > ситуация. При refreshe страницы с php > скриптом, я распечатываю значение > "include_path", и на каждый третий раз он > выдаёт системное значение eg: ".:/usr/share/php", > как будто PHP_VALUE "include_path=$document_root" не > передаётся в php-fpm окружение. В > остальные же разы печатается > правильное значение, т.е.: "/opt/www/test.com". > > Чтобы это могло значить? Если же я > ставлю fastcgi_param PHP_VALUE в вышеуказанные > location {} блоки, то значение include_path всегда > правильное, то есть равное $document_root, что > я передаю через fastcgi_param. Я пробовал > указывать вместо $document_root путь > "/opt/www/test.com" напрямую без переменной, но > это не изменило ситуации. Каждый > третий раз при рефреше одной и той же > страницы печатается неправильное > значение include_path. > > Получается, что ваше решение не > работает полностью. > > Есть ли у вас какие-нибудь догадки по > поводу решения данной проблемы? Все fastcgi_param нужно определять полностью на одном уровне. Если годятся "стандартные" - их можно определить хоть на уровне http, а дальше наследовать (как было в примере конфигурации, приведённым Игорем). Если под данный location нужны свои специальные fastcgi_param - нужно их все определить в данном location'е. Или переосмыслить конфигурацию и сделать так, чтобы годились стандартные, в большинстве случаев это делается легко и непринуждённо. Maxim Dounin From nginx-forum на nginx.us Sat Nov 12 06:18:33 2011 From: nginx-forum на nginx.us (Craken) Date: Sat, 12 Nov 2011 01:18:33 -0500 Subject: limit_req_zone rate In-Reply-To: <4EBD8D0A.5060701@knutov.com> References: <4EBD8D0A.5060701@knutov.com> Message-ID: Nick Knutov Пишет: ------------------------------------------------------- > А на сервере 8, 16, а часто > больше гигабайт памяти. Об > этом, безусловно, > надо упомянуть в > документации, однако я тоже > считаю, что такая > возможность была бы > полезной. Правда в моей > практике возникало желание > > сделать ограничение в 15 > минут, максимум в час, но не > больше. > > 11.11.2011 13:26, Igor Sysoev пишет: > > On Fri, Nov 11, 2011 at 11:17:53AM +0400, Eugene > Toropov wrote: > >> Не проблема, но всегда > стоит проверить вариант > сделать то же самое проще ;) > > > > Проще-то оно проще, но всё > упирается в память. > > Допустим, у нас 100 > уникальных адресов в > секунду. > > На час нужно 100 * 3600 * 64 = 22.5M, > а на сутки - 540M. > > > >> On Nov 11, 2011, at 10:24 AM, Sergej Kandyla > wrote: > >> > >>> On 10.11.2011 17:08, Eugene Toropov wrote: > >>>> Для нехороших людей надо > ввести ограничение, в > минуту им не достаточно. > >>>> > >>> > >>> Вполне достаточно. > >>> Да и не проблема таких > "нехороших" людей грипнуть > по логу за последний час и > посадить в именованный > локейшин. > >>> Пусть смотрят еще > меделеннее или вообще 502. > >>> > >>> > >>> > >>>> On Nov 10, 2011, at 6:05 PM, Igor Sysoev > wrote: > >>>> > >>>> > >>>>> On Thu, Nov 10, 2011 at 12:45:15PM +0400, > Eugene Toropov wrote: > >>>>> > >>>>>> Добрый день, > >>>>>> > >>>>>> Можно ли задать limit_req_zone > rate в запросах в час и в день? > h/d судя по всему не > работают. > >>>>>> > >>>>> Нет, а для кого такое > нужно ? > > > > > > -- > Best Regards, > Nick Knutov > http://knutov.com > ICQ: 272873706 > Voice: +7-904-84-23-130 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Не согласен! Лично занимаюсь администрированием огромного количества серверов, и в среднем - 4 гб! Написать то что Вы хотите не сложно - но это будет для сильно маленького круга людей, потому что на данный момент вроде только Вы такое спросили :) Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218149,218236#msg-218236 From me на kemko.ru Sat Nov 12 06:26:26 2011 From: me на kemko.ru (me на kemko.ru) Date: Sat, 12 Nov 2011 10:26:26 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQv9GD0YLQsNC70YHRjyDRgSBTRVJWRVJfQUREUg==?= In-Reply-To: References: Message-ID: <114281321079186@web72.yandex.ru> 10.11.2011, 03:11, "Роман" : > Вопрос, как отдать правильный SERVER_ADDR? SERVER_ADDR: The IP address of the server under which the current script is executing. Вы его точно с REMOTE_ADDR не путаете? From me на kemko.ru Sat Nov 12 06:28:51 2011 From: me на kemko.ru (me на kemko.ru) Date: Sat, 12 Nov 2011 10:28:51 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQv9GD0YLQsNC70YHRjyDRgSBTRVJWRVJfQUREUg==?= In-Reply-To: <114281321079186@web72.yandex.ru> References: <114281321079186@web72.yandex.ru> Message-ID: <119161321079331@web44.yandex.ru> 12.11.2011, 10:26, me на kemko.ru: > Вы его точно с REMOTE_ADDR не путаете? Перечитал еще раз начальное письмо. Нет, это я с утра все путаю. From nginx-forum на nginx.us Sun Nov 13 09:52:32 2011 From: nginx-forum на nginx.us (Fixid) Date: Sun, 13 Nov 2011 04:52:32 -0500 Subject: =?UTF-8?B?UmU6IFJlWzJdOiDQktGA0LXQvNGPINC+0YLQutC70LjQutCw?= In-Reply-To: References: Message-ID: на установку соединения с :80 около 300мс потом принудительный редирект на 443. на это уходит 2с а дальше 7с ожидается первая страничка. между серверами нет задержек. связь по ssl. Обращения напрямую к бекэнду отрабатывается мгновенно Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218114,218255#msg-218255 From nginx-forum на nginx.us Sun Nov 13 10:59:26 2011 From: nginx-forum на nginx.us (locojohn) Date: Sun, 13 Nov 2011 05:59:26 -0500 Subject: php In-Reply-To: <20111112032030.GJ95664@mdounin.ru> References: <20111112032030.GJ95664@mdounin.ru> Message-ID: Maxim Dounin Wrote: ------------------------------------------------------- > Если под данный location нужны > свои специальные fastcgi_param - > нужно их все определить в > данном location'е. Или > переосмыслить > конфигурацию и сделать так, > чтобы годились > стандартные, в > большинстве случаев это > делается легко и > непринуждённо. Спасибо за ответ. К сожалению, есть несколько locations, в которых нужно хотя бы прописать SCRIPT_FILENAME, чтобы PHP backend правильно вызывался: location ~ ^/combine-css=(?.+)$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/combine.php; fastcgi_param QUERY_STRING type=css&files=$files&$args; fastcgi_pass phpfarm; } location ~ ^/combine-js=(?.+)$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/combine.php; fastcgi_param QUERY_STRING type=javascript&files=$files&$args; fastcgi_pass phpfarm; } location /extrnauth { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/externalauth.php; fastcgi_pass phpfarm; } location ~ ^.+\.php(/.+|$) { fastcgi_pass phpfarm; } Однако, из-за этого, похоже, придётся создать внешний файл с параметрами для _этого_сайта и подгружать его через include в каждый локейшн. Очень жаль, что в nginx сейчас невозможно указать что-то, чтобы наследовать fastcgi_param с предыдущего уровня. Андрей Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218046,218256#msg-218256 From nginx-forum на nginx.us Sun Nov 13 16:41:45 2011 From: nginx-forum на nginx.us (Craken) Date: Sun, 13 Nov 2011 11:41:45 -0500 Subject: =?UTF-8?B?cHJveHkgY2FjaGUgcGF0aCAtINC+0YjQuNCx0LrQsA==?= Message-ID: <37a0ec8b3550c3dbefa7357374f19dcb.NginxMailingListRussian@forum.nginx.org> Здравствуйте товарищи! Возможно это вовсе и не ошибка, но во всяком случае не задокументировано! При использовании директивы proxy_cache_path вот таким образом: proxy_cache_path /usr/local/nginx/var/proxy_cache levels=1:2 keys_zone=proxy_one:2048m max_size=4096m; вываливается ошибка: nginx: [emerg] invalid keys zone size "keys_zone=proxy_one2048m" in /usr/local/nginx/conf/nginx.conf:52 Если значение 2048 сменить на 1024 - то все ок! Такая ошибка вываливается на OS: [root на server-6 ~]# uname -a Linux server-6 2.6.18-238.5.1.el5 #1 SMP Fri Apr 1 18:42:32 EDT 2011 i686 i686 i386 GNU/Linux nginx -V: nginx: nginx version: nginx/1.1.7 nginx: TLS SNI support disabled nginx: configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --http-log-path=/usr/local/nginx/logs --http-client-body-temp-path=/usr/local/nginx/var/client_body_temp --http-proxy-temp-path=/usr/local/nginx/var/proxy_temp --http-fastcgi-temp-path=/usr/local/nginx/var/fastcgi_temp --with-zlib=/usr/local/src/zlib --pid-path=/usr/local/nginx/logs --lock-path=/usr/local/nginx/logs --with-pcre=/usr/local/src/pcre --with-http_addition_module --with-http_dav_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_perl_module --with-http_realip_module --with-http_secure_link_module --with-http_ssl_module --with-http_sub_module --with-http_xslt_module Есть еще сервер: [root на server-7 ~]# uname -a Linux server-7 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux на нем все проходит гладко и без ошибок! Все сервера выполняют проксирование, и очень часто находятся под сильной нагрузкой, потому что очень много запросов! Собственно по этому и решил настроить кеширование! Конфиг прилагается (так же на всех серверах один к одному): user nobody nobody; worker_processes 2; error_log logs/errors.log; pid logs/nginx.pid; worker_rlimit_nofile 200000; events { worker_connections 1024; use epoll; } http { include /usr/local/nginx/conf/mime.types; default_type application/octet-stream; log_format common '$remote_addr - - [$time_local] "$request" $status ' '$body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"'; client_header_timeout 20; client_body_timeout 10; send_timeout 20; client_header_buffer_size 8k; large_client_header_buffers 4 8k; client_max_body_size 20m; reset_timedout_connection on; gzip on; gzip_min_length 1000; gzip_proxied expired no-cache no-store private auth; gzip_types text/plain application/xml text/css text/js; output_buffers 4 64k; postpone_output 1460; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 75 20; server_names_hash_bucket_size 512; open_file_cache max=1000 inactive=300s; open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors on; proxy_cache_path /usr/local/nginx/var/proxy_cache levels=1:2 keys_zone=proxy_one:1024m max_size=2048m; proxy_cache_valid 403 10m; proxy_temp_path var/proxy_temp 1 2; server { listen *:80; ............................................ location / { proxy_buffering on; proxy_cache proxy_one; proxy_cache_key "$remote_addr$scheme$proxy_host$request_uri"; proxy_cache_min_uses 1; proxy_cache_valid 404 60m; proxy_cache_valid 1m; proxy_connect_timeout 5; proxy_read_timeout 5; proxy_send_timeout 5; proxy_temp_path /usr/local/nginx/var/proxy_temp 1 2; proxy_pass http://mainsite.com:80; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; } .................................... } Записи из логов: 2011/11/13 18:13:27 [emerg] 23918#0: invalid keys zone size "keys_zone=proxy_one2048m" in /usr/local/nginx/conf/nginx.conf:52 Спасибо! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218267,218267#msg-218267 From ne на vbart.ru Sun Nov 13 17:05:29 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Sun, 13 Nov 2011 21:05:29 +0400 Subject: =?UTF-8?B?UmU6IHByb3h5IGNhY2hlIHBhdGggLSDQvtGI0LjQsdC60LA=?= In-Reply-To: <37a0ec8b3550c3dbefa7357374f19dcb.NginxMailingListRussian@forum.nginx.org> References: <37a0ec8b3550c3dbefa7357374f19dcb.NginxMailingListRussian@forum.nginx.org> Message-ID: <201111132105.29664.ne@vbart.ru> On Sunday 13 November 2011 20:41:45 Craken wrote: > Здравствуйте товарищи! > Возможно это вовсе и не ошибка, но во > всяком случае не задокументировано! > При использовании директивы proxy_cache_path > вот таким образом: > > proxy_cache_path /usr/local/nginx/var/proxy_cache levels=1:2 > keys_zone=proxy_one:2048m max_size=4096m; > > вываливается ошибка: > > nginx: [emerg] invalid keys zone size "keys_zone=proxy_one2048m" in > /usr/local/nginx/conf/nginx.conf:52 > > Если значение 2048 сменить на 1024 - то все 2048 Мб - это огромное число в байтах: 2147483648, оно не влезает в 4 байта отведенных под ssize_t на i686 платформе (2 147 483 647 - максимум для знакового). Для чего вам размер зоны даже в 1 Гб? Какое количество файлов вы предполагаете кэшировать? -- Валентин Бартенев From nginx-forum на nginx.us Sun Nov 13 17:58:31 2011 From: nginx-forum на nginx.us (Craken) Date: Sun, 13 Nov 2011 12:58:31 -0500 Subject: =?UTF-8?B?UmU6IHByb3h5IGNhY2hlIHBhdGggLSDQvtGI0LjQsdC60LA=?= In-Reply-To: <201111132105.29664.ne@vbart.ru> References: <201111132105.29664.ne@vbart.ru> Message-ID: <81daf568f52cd67155ef81248112eba8.NginxMailingListRussian@forum.nginx.org> Ну один сервер может обслуживать до 5000 юзеров! для загрузки страницы подгружается 6 файлов, каждый размером ~ 40-70 КБ! Для каждого юзера выводится своя статистика, поэтому я в ключ кеширования вставил $remote_addr! Ну и + еще небольшой запас сделал! Вот так оно и получается даже больше 1 Гб Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218270,218271#msg-218271 From ne на vbart.ru Sun Nov 13 18:14:59 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Sun, 13 Nov 2011 22:14:59 +0400 Subject: =?UTF-8?B?UmU6IHByb3h5IGNhY2hlIHBhdGggLSDQvtGI0LjQsdC60LA=?= In-Reply-To: <81daf568f52cd67155ef81248112eba8.NginxMailingListRussian@forum.nginx.org> References: <201111132105.29664.ne@vbart.ru> <81daf568f52cd67155ef81248112eba8.NginxMailingListRussian@forum.nginx.org> Message-ID: <201111132214.59386.ne@vbart.ru> On Sunday 13 November 2011 21:58:31 Craken wrote: > Ну один сервер может обслуживать до 5000 > юзеров! для загрузки страницы > подгружается 6 файлов, каждый размером ~ > 40-70 КБ! > Для каждого юзера выводится своя > статистика, поэтому я в ключ > кеширования вставил $remote_addr! > Ну и + еще небольшой запас сделал! > Вот так оно и получается даже больше 1 > Гб Это как вы считали? 5000 это в какой период и на какой период кэш нужен? Размер файлов значения не имеет, в зоне хранятся не сами файлы, а мета- информация. 6*5000 = 30 000, размер одной записи на i686 будет примерно 64 байта. Таким образом 30000*64 = 1 875 Кб, т.е. зоны в 2 Мб уже должно хватить. -- Валентин Бартенев From ne на vbart.ru Sun Nov 13 18:52:36 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Sun, 13 Nov 2011 22:52:36 +0400 Subject: =?UTF-8?B?UmU6IHByb3h5IGNhY2hlIHBhdGggLSDQvtGI0LjQsdC60LA=?= In-Reply-To: <81daf568f52cd67155ef81248112eba8.NginxMailingListRussian@forum.nginx.org> References: <201111132105.29664.ne@vbart.ru> <81daf568f52cd67155ef81248112eba8.NginxMailingListRussian@forum.nginx.org> Message-ID: <201111132252.37113.ne@vbart.ru> On Sunday 13 November 2011 21:58:31 Craken wrote: [...] > Для каждого юзера выводится своя > статистика, поэтому я в ключ > кеширования вставил $remote_addr! [...] Думаю лучше использовать $binary_remote_addr + я надеюсь вы предусмотрели довольно распространенную ситуацию, когда несколько юзеров сидят с одного айпи. -- Валентин Бартенев From chipitsine на gmail.com Mon Nov 14 03:38:07 2011 From: chipitsine на gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Mon, 14 Nov 2011 08:38:07 +0500 Subject: =?UTF-8?B?UmU6INCS0YDQtdC80Y8g0L7RgtC60LvQuNC60LA=?= In-Reply-To: References: Message-ID: у вас Windows 2008 ? попробуйте netsh int tcp set heuristics disabled 9 ноября 2011 г. 21:00 пользователь Fixid написал: > Есть фронтенд с NGINX. При заходе на сайт > до начала загрузки (т.е. время > соединения ) около 30 секунд, потом все > нормально, контент загружается  быстро. > Как можно уменьшить время отклика? > > user  nginx; > worker_processes  2; > worker_rlimit_nofile 100000; > > error_log   /var/log/nginx/error.log; > #error_log  /var/log/nginx/error.log  notice; > #error_log  /var/log/nginx/error.log  info; > > pid        /var/run/nginx.pid; > > > events { >    worker_connections  5024; >    use epoll; > } > > > http { >    include       /etc/nginx/mime.types; >    default_type  application/octet-stream; > >    log_format  main  '$remote_addr - $remote_user [$time_local] > "$request" ' >                      '$status $body_bytes_sent "$http_referer" ' >                      '"$http_user_agent" "$http_x_forwarded_for"'; > >    access_log  /var/log/nginx/access.log  main; > >    sendfile        on; >    tcp_nopush      on; >    tcp_nodelay     on; >    server_tokens   off; >    gzip            on; >    gzip_static     on; >    gzip_comp_level 5; >    gzip_min_length 1024; >    keepalive_timeout  65; >    limit_zone   myzone  $binary_remote_addr  10m; > >    # Load config files from the /etc/nginx/conf.d directory >    include /etc/nginx/conf.d/*.conf; > >    server { >        listen 80 default; > rewrite ^ https://www.test.com/; >    } > } > > > SSL: > > server { >    listen       443 default; >    server_name  www.test.com ; > >    ssl                  on; >    ssl_certificate      /etc/nginx/conf.d/certificate.cer; >    ssl_certificate_key  /etc/nginx/conf.d/rsa.key; > >    ssl_session_timeout  10m; > >    ssl_protocols  SSLv2 SSLv3 TLSv1; >    ssl_ciphers > ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; >    ssl_prefer_server_ciphers   on; > >    if ($host = "test.com" ) { >    rewrite ^ https://www.test.com/; > } >    location / { > proxy_pass https://IIS:500/; > proxy_redirect off; > proxy_ignore_client_abort off; > proxy_connect_timeout 600; > proxy_send_timeout 600; > proxy_read_timeout 600; > proxy_ignore_headers Expires Cache-Control; > proxy_hide_header Vary; >    } > } > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218102,218102#msg-218102 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum на nginx.us Mon Nov 14 07:14:39 2011 From: nginx-forum на nginx.us (Craken) Date: Mon, 14 Nov 2011 02:14:39 -0500 Subject: =?UTF-8?B?UmU6IHByb3h5IGNhY2hlIHBhdGggLSDQvtGI0LjQsdC60LA=?= In-Reply-To: <201111132214.59386.ne@vbart.ru> References: <201111132214.59386.ne@vbart.ru> Message-ID: <9e1b2a65b7f7e5486dc14998bda8c454.NginxMailingListRussian@forum.nginx.org> Валентин Бартенев Пишет: ------------------------------------------------------- > On Sunday 13 November 2011 21:58:31 Craken wrote: > > Ну один сервер может > обслуживать до 5000 > > юзеров! для загрузки > страницы > > подгружается 6 файлов, > каждый размером ~ > > 40-70 КБ! > > Для каждого юзера > выводится своя > > статистика, поэтому я в > ключ > > кеширования вставил > $remote_addr! > > Ну и + еще небольшой запас > сделал! > > Вот так оно и получается > даже больше 1 > > Гб > > Это как вы считали? 5000 это в > какой период и на какой > период кэш нужен? > > Размер файлов значения не > имеет, в зоне хранятся не > сами файлы, а мета- > информация. 6*5000 = 30 000, > размер одной записи на i686 > будет примерно 64 байта. > > Таким образом 30000*64 = 1 875 Кб, > т.е. зоны в 2 Мб уже должно > хватить. > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Ну в таком случае думаю будет достаточно будет выставить размер в 10-20 Мб! >+ я надеюсь вы предусмотрели довольно распространенную ситуацию, >когда несколько юзеров сидят с одного айпи. Это внутренний ресурс интернет-провайдера (а точнее страница статистики)! Поэтому каждый ходит под отдельным ИПом из подсети 192.168.0.0/16 ! > Думаю лучше использовать $binary_remote_addr Пожалуй Вы правы! Лучше использовать $binary_remote_addr, правда на сколько я понимаю, это просто поможет использовать немного меньше памяти! Валентин Бартенев, Спасибо! Ситуация по моей проблеме прояснилась! P.S. Правда если nginx НЕ кеширует допустим всю страницу на указанное время, то не совсем понятен смысл такого кеширования! В моем случае я хотел немного снять нагрузку с сервера, на который проксируются все запросы! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218270,218287#msg-218287 From amastr на mail.ru Mon Nov 14 07:23:58 2011 From: amastr на mail.ru (=?UTF-8?B?Pz8/Pz8/PyA/Pz8/Pz8/Pz8=?=) Date: Mon, 14 Nov 2011 11:23:58 +0400 Subject: =?UTF-8?B?0J7QsdGA0LDQsdC+0YLQutCwINGA0LDQt9GA0YvQstCwINGB0L7QtdC00LjQvdC1?= =?UTF-8?B?0L3QuNGP?= Message-ID: Здравствуйте, У меня есть nginx модуль, который принимает http запрос, определенным образом его обрабатывает и отсылает ответ клиенту. Мне необходимо обрабатывать ситуацию, когда соединение между клиентом и сервером по каким-то прчинам разрывается. Подскажите, как лучше это сделать. Заранее спасибо ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ne на vbart.ru Mon Nov 14 07:29:24 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Mon, 14 Nov 2011 11:29:24 +0400 Subject: =?UTF-8?B?UmU6IHByb3h5IGNhY2hlIHBhdGggLSDQvtGI0LjQsdC60LA=?= In-Reply-To: <9e1b2a65b7f7e5486dc14998bda8c454.NginxMailingListRussian@forum.nginx.org> References: <201111132214.59386.ne@vbart.ru> <9e1b2a65b7f7e5486dc14998bda8c454.NginxMailingListRussian@forum.nginx.org> Message-ID: <201111141129.24718.ne@vbart.ru> On Monday 14 November 2011 11:14:39 Craken wrote: [...] > P.S. Правда если nginx НЕ кеширует допустим > всю страницу на указанное время, то не > совсем понятен смысл такого > кеширования! В моем случае я хотел > немного снять нагрузку с сервера, на > который проксируются все запросы! Страница кэшируется на диске. Для этого в proxy_cache_path и задается путь, куда складывать файлы. http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_cache_path -- Валентин Бартенев From nginx-forum на nginx.us Mon Nov 14 07:53:15 2011 From: nginx-forum на nginx.us (alexnginx) Date: Mon, 14 Nov 2011 02:53:15 -0500 Subject: Nginx + Apache + ssl In-Reply-To: References: Message-ID: Так точно, гостовый... Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217592,218290#msg-218290 From nginx-forum на nginx.us Mon Nov 14 08:11:23 2011 From: nginx-forum на nginx.us (Craken) Date: Mon, 14 Nov 2011 03:11:23 -0500 Subject: =?UTF-8?B?UmU6IHByb3h5IGNhY2hlIHBhdGggLSDQvtGI0LjQsdC60LA=?= In-Reply-To: <201111141129.24718.ne@vbart.ru> References: <201111141129.24718.ne@vbart.ru> Message-ID: <475e3219e7acc5d587a50f81fb324bfe.NginxMailingListRussian@forum.nginx.org> Валентин Бартенев Пишет: ------------------------------------------------------- > On Monday 14 November 2011 11:14:39 Craken wrote: > [...] > > P.S. Правда если nginx НЕ > кеширует допустим > > всю страницу на указанное > время, то не > > совсем понятен смысл > такого > > кеширования! В моем случае > я хотел > > немного снять нагрузку с > сервера, на > > который проксируются все > запросы! > > Страница кэшируется на > диске. Для этого в proxy_cache_path > и задается путь, куда > складывать файлы. > > http://nginx.org/ru/docs/http/ngx_http_proxy_modul > e.html#proxy_cache_path > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Именно! Ну так а разве в keys_zone=one:10m; - указывается не размер выделяемый для этих файлов на жестком диске? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218270,218291#msg-218291 From ne на vbart.ru Mon Nov 14 09:11:48 2011 From: ne на vbart.ru (=?utf-8?b?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Mon, 14 Nov 2011 13:11:48 +0400 Subject: =?UTF-8?B?UmU6IHByb3h5IGNhY2hlIHBhdGggLSDQvtGI0LjQsdC60LA=?= In-Reply-To: <475e3219e7acc5d587a50f81fb324bfe.NginxMailingListRussian@forum.nginx.org> References: <201111141129.24718.ne@vbart.ru> <475e3219e7acc5d587a50f81fb324bfe.NginxMailingListRussian@forum.nginx.org> Message-ID: <201111141311.49165.ne@vbart.ru> On Monday 14 November 2011 12:11:23 Craken wrote: [...] > > http://nginx.org/ru/docs/http/ngx_http_proxy_modul > > e.html#proxy_cache_path [...] > Именно! Ну так а разве в keys_zone=one:10m; - > указывается не размер выделяемый для > этих файлов на жестком диске? Нет. Процитирую то, что написано по ссылке: "Кроме того, все активные ключи и информация о данных хранятся в разделяемой памяти ? зоне, имя и размер которой задаётся параметром keys_zone." http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_cache_path Иными словами, "keys_zone" задает имя и размер зоны в области разделяемой ОЗУ, где в виде красно-черного бинарного дерева хранится информация о файлах, сохраненных в кэше на жестком диске. -- Валентин Бартенев From chipitsine на gmail.com Mon Nov 14 09:37:53 2011 From: chipitsine на gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Mon, 14 Nov 2011 14:37:53 +0500 Subject: Nginx + Apache + ssl In-Reply-To: References: Message-ID: ну, во-первых, openssl должна быть скомпилирована (и настроена) с поддержкой алгоритмов GOST, например, так можно проверить (у меня в отдельной папке собрана гостовая сборка openssl) ilia на linux-urjd:~/Documents> /gost-ssl/bin/openssl ciphers | grep GOST ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:DHE-RSA-CAMELLIA256-SHA:DHE-DSS-CAMELLIA256-SHA:GOST2001-GOST89-GOST89:GOST94-GOST89-GOST89:ECDH-RSA-AES256-SHA:ECDH-ECDSA-AES256-SHA:AES256-SHA:CAMELLIA256-SHA:PSK-AES256-CBC-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:EDH-DSS-DES-CBC3-SHA:ECDH-RSA-DES-CBC3-SHA:ECDH-ECDSA-DES-CBC3-SHA:DES-CBC3-SHA:PSK-3DES-EDE-CBC-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:DHE-RSA-SEED-SHA:DHE-DSS-SEED-SHA:DHE-RSA-CAMELLIA128-SHA:DHE-DSS-CAMELLIA128-SHA:ECDH-RSA-AES128-SHA:ECDH-ECDSA-AES128-SHA:AES128-SHA:SEED-SHA:CAMELLIA128-SHA:IDEA-CBC-SHA:PSK-AES128-CBC-SHA:ECDHE-RSA-RC4-SHA:ECDHE-ECDSA-RC4-SHA:ECDH-RSA-RC4-SHA:ECDH-ECDSA-RC4-SHA:RC4-SHA:RC4-MD5:PSK-RC4-SHA:EDH-RSA-DES-CBC-SHA:EDH-DSS-DES-CBC-SHA:DES-CBC-SHA:EXP-EDH-RSA-DES-CBC-SHA:EXP-EDH-DSS-DES-CBC-SHA:EXP-DES-CBC-SHA:EXP-RC2-CBC-MD5:EXP-RC4-MD5 во-вторых, nginx только недавно научился с EC-криптографией работать, попробуйте для начала какой-нибудь более обкатанный вариант, апач, например ? 14 ноября 2011 г. 13:53 пользователь alexnginx написал: > Так точно, гостовый... > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217592,218290#msg-218290 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum на nginx.us Mon Nov 14 10:11:05 2011 From: nginx-forum на nginx.us (minya) Date: Mon, 14 Nov 2011 05:11:05 -0500 Subject: =?UTF-8?B?UmU6INC+0L/RgtC40LzQuNC30LDRhtC40Y8g0LzQvtC00YPQu9GPOiDQv9C10YA=?= =?UTF-8?B?0LXQv9C+0LvQvdC10L3QuNGPINC4INCx0LvQvtC60LjRgNC+0LLQutC4?= In-Reply-To: References: Message-ID: <3e42dddcf1d2cacd2cc133942c5d3854.NginxMailingListRussian@forum.nginx.org> Может, мне стоит задать этот вопрос в другом форуме? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218226,218297#msg-218297 From nginx-forum на nginx.us Mon Nov 14 11:05:25 2011 From: nginx-forum на nginx.us (alexnginx) Date: Mon, 14 Nov 2011 06:05:25 -0500 Subject: Nginx + Apache + ssl In-Reply-To: References: Message-ID: <7837631b7bbfb9294180a4460c174da4.NginxMailingListRussian@forum.nginx.org> 1. Команда ciphers в OpenSSL выдаёт в доступных алгоритмах GOST. Только я не уверен что Nginx настроен на работу именно с данной библиотекой, а не с какой-нибудь другой. Как это проверить в Windows? 2. На апаче всё работет! Вопрос в моих предыдущих постах (Нужно настроить Nginx таким образом, чтобы шифрование выполнялось на Apache. Т.е. чтобы в конфигурации Nginx не нужно было указывать ключей шифрования, всё это будет указываться в настройках Apache. Можно ли сделать так чтобы все пакеты которые попадали на Nginx сразу перенаправлялись на порт Apache?), на который я получил совершенно разные ответы. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217592,218299#msg-218299 From nginx-forum на nginx.us Mon Nov 14 11:11:42 2011 From: nginx-forum на nginx.us (Fixid) Date: Mon, 14 Nov 2011 06:11:42 -0500 Subject: =?UTF-8?B?UmU6INCS0YDQtdC80Y8g0L7RgtC60LvQuNC60LA=?= In-Reply-To: References: Message-ID: <60a65a16ca617ecc1b8a6829012fcecf.NginxMailingListRussian@forum.nginx.org> Илья Шипицин Wrote: ------------------------------------------------------- > у вас Windows 2008 ? > > попробуйте > > netsh int tcp set heuristics disabled К сожалению не помогло Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218102,218300#msg-218300 From nginx-forum на nginx.us Mon Nov 14 11:14:03 2011 From: nginx-forum на nginx.us (Fixid) Date: Mon, 14 Nov 2011 06:14:03 -0500 Subject: SSL NGINX + SSL IIS Update Message-ID: <2a5143e8353f692cd86136ce68c709db.NginxMailingListRussian@forum.nginx.org> Здравствуйте, в логах сново появились такие строчки: - - [14/Nov/2011:12:04:53 +0300] "GET / HTTP/1.1" 302 154 "-" "Mozilla/5.0 (Windows NT 5.1; rv:8.0) Gecko/20100101 Firefox/8.0" "-" - - [14/Nov/2011:12:04:58 +0300] "-" 400 0 "-" "-" "-" - - [14/Nov/2011:12:05:20 +0300] "GET / HTTP/1.1" 200 4142 "-" "Mozilla/5.0 (Windows NT 5.1; rv:8.0) Gecko/20100101 Firefox/8.0" "-" - - [14/Nov/2011:13:12:14 +0300] "-" 400 0 "-" "-" "-" - - [14/Nov/2011:13:12:37 +0300] "GET / HTTP/1.1" 200 4144 "-" "Mozilla/5.0 (Windows NT 5.1; rv:8.0) Gecko/20100101 Firefox/8.0" "-" - - [14/Nov/2011:12:04:53 +0300] "GET / HTTP/1.1" 302 154 "-" "Mozilla/5.0 (Windows NT 5.1; rv:8.0) Gecko/20100101 Firefox/8.0" "-" - - [14/Nov/2011:12:04:58 +0300] "-" 400 0 "-" "-" "-" - - [14/Nov/2011:12:05:20 +0300] "GET / HTTP/1.1" 200 4142 "-" "Mozilla/5.0 (Windows NT 5.1; rv:8.0) Gecko/20100101 Firefox/8.0" "-" 2011/11/14 14:02:24 [crit] 11819#0: *26 rename() "/var/www/0000000013" to "/var/www/" failed (20: Not a directory) while reading upstream, client: 111.222.333.444, server: www.test.com, request: "GET / HTTP/1.1", upstream: "https://IIS:500/", host: "www.test.com" Установка соединения с сайтом идет очень долго, потом контент отдается за пару секунд. Можете подсказать какие есть ошибки в конф файлах? И что можно еще подправить для ускорения отклика. IIS на Win2008 nginx.conf: user nginx; worker_processes 4; worker_rlimit_nofile 100000; timer_resolution 100ms; error_log /var/log/nginx/error.log; #error_log /var/log/nginx/error.log notice; #error_log /var/log/nginx/error.log info; pid /var/run/nginx.pid; events { worker_connections 5024; use epoll; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; server_tokens off; gzip on; gzip_static on; gzip_comp_level 5; gzip_min_length 1024; keepalive_timeout 25; limit_zone myzone $binary_remote_addr 10m; # Load config files from the /etc/nginx/conf.d directory include /etc/nginx/conf.d/*.conf; server { listen 80 default; rewrite ^ https://www.test.com/; } } # # HTTPS server configuration # upstream backend-secure { server www.test.com:443; } server { listen 443 default; server_name www.test.com ; server_tokens off; ########################## # GZIP ########################## gzip on; gzip_min_length 15; gzip_buffers 16 8k; gzip_proxied any; gzip_disable "msie6"; gzip_comp_level 5; ######################### # SSL ######################### keepalive_timeout 60s; sendfile on; tcp_nodelay on; expires 10s; #сколько хранить кэш ssl on; ssl_certificate /etc/nginx/conf.d/certificate.cer; ssl_certificate_key /etc/nginx/conf.d/rsa.key; ssl_session_cache shared:SSL:10m; ssl_session_timeout 20m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on; if ($host = "test.com" ) { rewrite ^ https://www.test.com/; } location / { proxy_pass https://IIS:500/; proxy_redirect off; proxy_ignore_client_abort off; proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; proxy_ignore_headers Expires Cache-Control; proxy_hide_header Vary; proxy_ssl_session_reuse on; 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_store on; proxy_store_access user:rw group:rw all:r; proxy_temp_path /var/www/; root /var/www/; ######################## # proxy ####################### #proxy_cache on; } ####################### # Statistic ####################### location = /stat { stub_status on; access_log off; allow 111.222.333.444; deny all; } } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218301,218301#msg-218301 From mva на mva.name Mon Nov 14 11:28:44 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Mon, 14 Nov 2011 18:28:44 +0700 Subject: Nginx + Apache + ssl In-Reply-To: <7837631b7bbfb9294180a4460c174da4.NginxMailingListRussian@forum.nginx.org> References: <7837631b7bbfb9294180a4460c174da4.NginxMailingListRussian@forum.nginx.org> Message-ID: <1321270124.16239.2.camel@N900> 1) Вам сразу сказали, что при схеме "все шифрование на апаче" nginx становится совершенно бесполезной прослойкой, увеличивающей оверхед. 2) Так же Вам сказали, что NginX, что не удивительно, не умеет просто тупо передавать трафик (ну, по крайней мере в стандартной поставке, и, по крайней мере, согласно тому что я знаю). Вы, конечно, можете написать соответствующий модуль, но возвращаемся к пункту 1. 3) Апач, как по мне - вообще нечто неповоротливое и в большинстве случаев не нужное. А то, что Вы не уверены, в том что очевидно (что NginX настроен на работу с OpenSSL) - это уж "без комментариев" 4) и вообще, касательно "все пакеты" - вопрос к маршрутизатору (в Linux - делается через iptables, в FreeBSD через ipfw, в других - через соответствующие утилиты). NginX же - Веб-сервер и его работа - быть веб-сервером, рассчитанным на хай-лод, а вовсе не маршрутизатором траффика. Как Вам тут замечали - то, что вы хотите - NAT. NginX этим не занимается. Вам так же предлагали более правильный с эстетической точки зрения подход в виде настройки SSL как Вам надо в NginX, но Вам что-то не нравится. Да и вообще, если уж говорить откровенно, поверьте, Windows - совсем не та платформа, на которой стоило бы разворачивать такие вещи. Но дело, конечно же, Ваше. On пн 14 ноя 2011 18:05:25 KRAT, alexnginx wrote: > 1. Команда ciphers в OpenSSL выдаёт в доступных > алгоритмах GOST. Только я не уверен что > Nginx настроен на работу именно с данной > библиотекой, а не с какой-нибудь другой. > Как это проверить в Windows? > 2. На апаче всё работет! Вопрос в моих > предыдущих постах (Нужно настроить Nginx > таким образом, чтобы шифрование > выполнялось на Apache. Т.е. чтобы в > конфигурации Nginx не нужно было > указывать ключей шифрования, всё это > будет указываться в настройках Apache. > Можно ли сделать так чтобы все пакеты > которые попадали на Nginx сразу > перенаправлялись на порт Apache?), на > который я получил совершенно разные > ответы. > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,217592,218299#msg-218299 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, mva From mva на mva.name Mon Nov 14 11:33:17 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Mon, 14 Nov 2011 18:33:17 +0700 Subject: SSL NGINX + SSL IIS Update In-Reply-To: <2a5143e8353f692cd86136ce68c709db.NginxMailingListRussian@forum.nginx.org> References: <2a5143e8353f692cd86136ce68c709db.NginxMailingListRussian@forum.nginx.org> Message-ID: <1321270397.16239.7.camel@N900> Ну, судя по всему (я не Игорь, конечно, и во внутренностях сабжа тоже не ковырялся), первый долгий ответ - заполняется кеш. Хз, почему долго. Если между серверами расстояние небольшое - я бы посоветовал чисто ради экспримента убрать кеширование ответа бекенда и всё прилегающее к нему.     On пн 14 ноя 2011 18:14:03 KRAT, Fixid wrote: > Здравствуйте, в логах сново появились > такие строчки: > > - - [14/Nov/2011:12:04:53 +0300] "GET / HTTP/1.1" 302 154 "-" > "Mozilla/5.0 (Windows NT 5.1; rv:8.0) Gecko/20100101 Firefox/8.0" "-" > - - [14/Nov/2011:12:04:58 +0300] "-" 400 0 "-" "-" "-" > - - [14/Nov/2011:12:05:20 +0300] "GET / HTTP/1.1" 200 4142 "-" > "Mozilla/5.0 (Windows NT 5.1; rv:8.0) Gecko/20100101 Firefox/8.0" "-" > > - - [14/Nov/2011:13:12:14 +0300] "-" 400 0 "-" "-" "-" > - - [14/Nov/2011:13:12:37 +0300] "GET / HTTP/1.1" 200 4144 "-" > "Mozilla/5.0 (Windows NT 5.1; rv:8.0) Gecko/20100101 Firefox/8.0" "-" > > - - [14/Nov/2011:12:04:53 +0300] "GET / HTTP/1.1" 302 154 "-" > "Mozilla/5.0 (Windows NT 5.1; rv:8.0) Gecko/20100101 Firefox/8.0" "-" > - - [14/Nov/2011:12:04:58 +0300] "-" 400 0 "-" "-" "-" > - - [14/Nov/2011:12:05:20 +0300] "GET / HTTP/1.1" 200 4142 "-" > "Mozilla/5.0 (Windows NT 5.1; rv:8.0) Gecko/20100101 Firefox/8.0" "-" > > 2011/11/14 14:02:24 [crit] 11819#0: *26 rename() "/var/www/0000000013" > to "/var/www/" failed (20: Not a directory) while reading upstream, > client: 111.222.333.444, server: www.test.com, request: "GET / > HTTP/1.1", upstream: "https://IIS:500/", host: "www.test.com" > > Установка соединения с сайтом идет > очень долго, потом контент отдается за > пару секунд. > Можете подсказать какие есть ошибки в > конф файлах? И что можно еще подправить > для ускорения отклика. > IIS на Win2008 > > nginx.conf: > > user   nginx; > worker_processes   4; > worker_rlimit_nofile 100000; > timer_resolution 100ms; > > > error_log     /var/log/nginx/error.log; > #error_log   /var/log/nginx/error.log   notice; > #error_log   /var/log/nginx/error.log   info; > > pid               /var/run/nginx.pid; > > > events { >         worker_connections   5024; >         use epoll; > } > > > http { >         include             /etc/nginx/mime.types; >         default_type   application/octet-stream; > >         log_format   main   '$remote_addr - $remote_user [$time_local] > "$request" ' >                                             '$status $body_bytes_sent "$http_referer" ' >                                             '"$http_user_agent" "$http_x_forwarded_for"'; > >         access_log   /var/log/nginx/access.log   main; > >         sendfile               on; >         tcp_nopush           on; >         tcp_nodelay         on; >         server_tokens     off; >         gzip                       on; >         gzip_static         on; >         gzip_comp_level 5; >         gzip_min_length 1024; >         keepalive_timeout   25; >         limit_zone     myzone   $binary_remote_addr   10m; > >         # Load config files from the /etc/nginx/conf.d directory >         include /etc/nginx/conf.d/*.conf; > >         server { >                 listen 80 default; >                 rewrite ^ https://www.test.com/; >         } > } > > # > # HTTPS server configuration > # > upstream backend-secure { >     server www.test.com:443; >     } > > server { >         listen             443 default; >         server_name   www.test.com ; >         server_tokens off; >         ########################## >         #   GZIP >         ########################## >         gzip                         on; >         gzip_min_length   15; >         gzip_buffers 16 8k; >         gzip_proxied         any; >         gzip_disable         "msie6"; >         gzip_comp_level   5; >         ######################### >         #   SSL >         ######################### >         keepalive_timeout 60s; >         sendfile               on; >         tcp_nodelay on; >         expires 10s; #сколько хранить кэш >         ssl                                   on; >         ssl_certificate           /etc/nginx/conf.d/certificate.cer; >         ssl_certificate_key   /etc/nginx/conf.d/rsa.key; > >         ssl_session_cache       shared:SSL:10m; >         ssl_session_timeout   20m; > >         ssl_protocols   SSLv2 SSLv3 TLSv1; >         ssl_ciphers > ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; >         ssl_prefer_server_ciphers     on; > >         if ($host = "test.com" ) { >         rewrite ^ https://www.test.com/; > } >         location / { >                 proxy_pass https://IIS:500/; >                 proxy_redirect off; >                 proxy_ignore_client_abort off; >                 proxy_connect_timeout 600; >                 proxy_send_timeout 600; >                 proxy_read_timeout 600; >                 proxy_ignore_headers Expires Cache-Control; >                 proxy_hide_header Vary; >                 proxy_ssl_session_reuse on; >                 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_store on; >                 proxy_store_access user:rw group:rw all:r; >                 proxy_temp_path /var/www/; >                 root /var/www/; >                 ######################## >                 # proxy >                 ####################### >                 #proxy_cache on; >         } > >         ####################### >         #   Statistic >         ####################### >         location = /stat { >                 stub_status on; >                 access_log   off; >                 allow 111.222.333.444; >                 deny all; >         } > } > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,218301,218301#msg-218301 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, mva From nginx-forum на nginx.us Mon Nov 14 11:37:27 2011 From: nginx-forum на nginx.us (Fixid) Date: Mon, 14 Nov 2011 06:37:27 -0500 Subject: SSL NGINX + SSL IIS Update In-Reply-To: <2a5143e8353f692cd86136ce68c709db.NginxMailingListRussian@forum.nginx.org> References: <2a5143e8353f692cd86136ce68c709db.NginxMailingListRussian@forum.nginx.org> Message-ID: <2772d3a30f47ff804752c2b9a44dd999.NginxMailingListRussian@forum.nginx.org> Физически они далековаты, пинг около 130мс. + необходимо разгрузить IIS, главная страница на 80% статичная, а от сервера приходит часто одно и тоже. Нехочется отключать кэш. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218301,218304#msg-218304 From igor на sysoev.ru Mon Nov 14 15:43:31 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Mon, 14 Nov 2011 19:43:31 +0400 Subject: nginx-1.1.8 Message-ID: <20111114154331.GD33940@nginx.com> Изменения в nginx 1.1.8 14.11.2011 *) Изменение: модуль ngx_http_limit_zone_module переименован в ngx_http_limit_conn_module. *) Изменение: директива limit_zone заменена директивой limit_conn_zone с новым синтаксисом. *) Добавление: поддержка ограничения по нескольким limit_conn на одном уровне. *) Добавление: директива image_filter_sharpen. *) Исправление: в рабочем процессе мог произойти segmentation fault, если resolver получил большой DNS-ответ. Спасибо Ben Hawkes. *) Исправление: в вычислении ключа для кэширования, если использовалась внутренняя реализация MD5; ошибка появилась в 1.0.4. *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в заголовке запроса клиента могли передаваться бэкенду при кэшировании; или не передаваться при выключенном кэшировании, если кэширование было включено в другой части конфигурации. *) Исправление: модуль ngx_http_mp4_module выдавал неверную строку "Content-Length" в заголовке ответа, использовался аргумент start. Спасибо Piotr Sikora. -- Игорь Сысоев http://sysoev.ru From roman.vasilyev на yousendit.com Mon Nov 14 17:09:59 2011 From: roman.vasilyev на yousendit.com (Roman Vasilyev) Date: Mon, 14 Nov 2011 09:09:59 -0800 Subject: SSL NGINX + SSL IIS Update In-Reply-To: <2772d3a30f47ff804752c2b9a44dd999.NginxMailingListRussian@forum.nginx.org> References: <2a5143e8353f692cd86136ce68c709db.NginxMailingListRussian@forum.nginx.org> <2772d3a30f47ff804752c2b9a44dd999.NginxMailingListRussian@forum.nginx.org> Message-ID: <4EC14B67.70603@yousendit.com> IIS must die apache туда же. извиняюсь за оффтопик, просто вообще непонятно зачем что то делать не на NGINX?! On 11/14/2011 03:37 AM, Fixid wrote: > Физически они далековаты, пинг около > 130мс. > + необходимо разгрузить IIS, главная > страница на 80% статичная, а от сервера > приходит часто одно и тоже. Нехочется > отключать кэш. > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218301,218304#msg-218304 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum на nginx.us Mon Nov 14 17:28:35 2011 From: nginx-forum на nginx.us (Fixid) Date: Mon, 14 Nov 2011 12:28:35 -0500 Subject: SSL NGINX + SSL IIS Update In-Reply-To: <4EC14B67.70603@yousendit.com> References: <4EC14B67.70603@yousendit.com> Message-ID: <70e770b1db51497c76e83da6465830d3.NginxMailingListRussian@forum.nginx.org> Roman Vasilyev Пишет: ------------------------------------------------------- > IIS must die > apache туда же. > > извиняюсь за оффтопик, > просто вообще непонятно > зачем что то делать не на > NGINX?! > К сожалению Nginx неумеет работать с .Net Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218301,218333#msg-218333 From nginx-forum на nginx.us Mon Nov 14 17:29:45 2011 From: nginx-forum на nginx.us (Fixid) Date: Mon, 14 Nov 2011 12:29:45 -0500 Subject: SSL NGINX + SSL IIS Update In-Reply-To: <2a5143e8353f692cd86136ce68c709db.NginxMailingListRussian@forum.nginx.org> References: <2a5143e8353f692cd86136ce68c709db.NginxMailingListRussian@forum.nginx.org> Message-ID: <63368a96e979d2c892cb99925a0d4cff.NginxMailingListRussian@forum.nginx.org> После того как к сайту не обращались более часа, в логе: - - [14/Nov/2011:20:23:04 +0300] "-" 400 0 "-" "-" "-" - - [14/Nov/2011:20:23:26 +0300] "GET / HTTP/1.1" 200 4138 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0" "-" Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218301,218334#msg-218334 From roman.vasilyev на yousendit.com Mon Nov 14 17:21:27 2011 From: roman.vasilyev на yousendit.com (Roman Vasilyev) Date: Mon, 14 Nov 2011 09:21:27 -0800 Subject: SSL NGINX + SSL IIS Update In-Reply-To: <70e770b1db51497c76e83da6465830d3.NginxMailingListRussian@forum.nginx.org> References: <4EC14B67.70603@yousendit.com> <70e770b1db51497c76e83da6465830d3.NginxMailingListRussian@forum.nginx.org> Message-ID: <4EC14E17.9030805@yousendit.com> http://projects.unbit.it/uwsgi/ MONO рулит, пока к сожалению оно там unstable :( On 11/14/2011 09:28 AM, Fixid wrote: > Roman Vasilyev Пишет: > ------------------------------------------------------- > >> IIS must die >> apache туда же. >> >> извиняюсь за оффтопик, >> просто вообще непонятно >> зачем что то делать не на >> NGINX?! >> >> > К сожалению Nginx неумеет работать с .Net > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218301,218333#msg-218333 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From chipitsine на gmail.com Mon Nov 14 18:22:01 2011 From: chipitsine на gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Tue, 15 Nov 2011 00:22:01 +0600 Subject: Nginx + Apache + ssl In-Reply-To: <7837631b7bbfb9294180a4460c174da4.NginxMailingListRussian@forum.nginx.org> References: <7837631b7bbfb9294180a4460c174da4.NginxMailingListRussian@forum.nginx.org> Message-ID: > 2. На апаче всё работет! Вопрос в моих > предыдущих постах (Нужно настроить Nginx > таким образом, чтобы шифрование > выполнялось на Apache. Т.е. чтобы в > конфигурации Nginx не нужно было > указывать ключей шифрования, всё это > будет указываться в настройках Apache. > Можно ли сделать так чтобы все пакеты > которые попадали на Nginx сразу > перенаправлялись на порт Apache?), на > который я получил совершенно разные > ответы. это похоже на эффект Даннига-Крюгера (уровень компетентности спрашивающего не позволяет адекватно оценивать ответы). но спасибо за изрядную долю позитива! > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217592,218299#msg-218299 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From onokonem на gmail.com Mon Nov 14 20:09:51 2011 From: onokonem на gmail.com (Daniel Podolsky) Date: Mon, 14 Nov 2011 23:09:51 +0300 Subject: proxy_redirect & $vars In-Reply-To: <20101109114228.GA17847@tahiti.vinf.ru> References: <20101109114228.GA17847@tahiti.vinf.ru> Message-ID: День добрый! > proxy_redirect не понимает > переменные в первом параметре Прямо сегодня наткнулся, что как не понимал - так и не понимает :) В той связи вопросы: 1) Насколько сложно сделать, чтобы понимал? Это я размышляю, не попробовать ли мне самому сделать патч. 2) Можно ли не пробовать, а прямо вот заказать фичу за деньги? Если да, то за какие? 3) Существуют ли пути обхода? В этом же некротреде Максим Дунин писал: > Можно ещё попробовать через proxy_hide_header + > proxy_intercept_errors + error_page 302 + add_header. Может - есть у кого пример конфига? Спасибо. С уважением, Даниил Подольский PS народную подписку на busy_locks еще не объявляли? :) From nginx-forum на nginx.us Tue Nov 15 03:30:22 2011 From: nginx-forum на nginx.us (alexnginx) Date: Mon, 14 Nov 2011 22:30:22 -0500 Subject: Nginx + Apache + ssl In-Reply-To: References: Message-ID: <8e98962ea312cabfd860eae73052687b.NginxMailingListRussian@forum.nginx.org> 1) Вам сразу сказали, что при схеме "все шифрование на апаче" nginx становится совершенно бесполезной прослойкой, увеличивающей оверхед. 2) Так же Вам сказали, что NginX, что не удивительно, не умеет просто тупо передавать трафик (ну, по крайней мере в стандартной поставке, и, по крайней мере, согласно тому что я знаю). Вы, конечно, можете написать соответствующий модуль, но возвращаемся к пункту 1. 3) Апач, как по мне - вообще нечто неповоротливое и в большинстве случаев не нужное. А то, что Вы не уверены, в том что очевидно (что NginX настроен на работу с OpenSSL) - это уж "без комментариев" 4) и вообще, касательно "все пакеты" - вопрос к маршрутизатору (в Linux - делается через iptables, в FreeBSD через ipfw, в других - через соответствующие утилиты). NginX же - Веб-сервер и его работа - быть веб-сервером, рассчитанным на хай-лод, а вовсе не маршрутизатором траффика. Как Вам тут замечали - то, что вы хотите - NAT. NginX этим не занимается. Вам так же предлагали более правильный с эстетической точки зрения подход в виде настройки SSL как Вам надо в NginX, но Вам что-то не нравится. По поводу эффект Даннига-Крюгера. Ну не все знают Nginx от и до. Для этого и существуют форумы, на которых задаются вопросы. Да и вообще, если уж говорить откровенно, поверьте, Windows - совсем не та платформа, на которой стоило бы разворачивать такие вещи. Но дело, конечно же, Ваше. 1) Nginx используется ещё для много чего, перечислять не вижу смысла здесь, т.е. полностью от отказа Nginx никак не уйти. 2) С этим понятно. 3) Я имел ввиду, что есть подозрение что Nginx настроен на работу с OpenSSL НЕ поддерживающим GOST (т.к. на сервере несколько библиотек OpenSSL) По поводу Windows. Есть уже существующая структура, которая довольно давно и стабильно работает именно в связке, переделывать которую ради одной задачи никто не будет... Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217592,218346#msg-218346 From chipitsine на gmail.com Tue Nov 15 05:07:51 2011 From: chipitsine на gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Tue, 15 Nov 2011 10:07:51 +0500 Subject: Nginx + Apache + ssl In-Reply-To: <8e98962ea312cabfd860eae73052687b.NginxMailingListRussian@forum.nginx.org> References: <8e98962ea312cabfd860eae73052687b.NginxMailingListRussian@forum.nginx.org> Message-ID: расскажете, как настроили ? любопытно, чем закончится дело. > 1) Вам сразу сказали, что при схеме "все > шифрование на апаче" nginx становится > совершенно бесполезной прослойкой, > увеличивающей оверхед. > 2) Так же Вам сказали, что NginX, что не > удивительно, не умеет просто тупо > передавать трафик (ну, по крайней мере в > стандартной поставке, и, по крайней > мере, согласно тому что я знаю). Вы, > конечно, можете написать > соответствующий модуль, но > возвращаемся к пункту 1. > 3) Апач, как по мне - вообще нечто > неповоротливое и в большинстве случаев > не нужное. > А то, что Вы не уверены, в том что > очевидно (что NginX настроен на работу с > OpenSSL) - это уж "без комментариев" > 4) и вообще, касательно "все пакеты" - > вопрос к маршрутизатору (в Linux - > делается через iptables, в FreeBSD через ipfw, в > других - через соответствующие > утилиты). NginX же - Веб-сервер и его работа > - быть веб-сервером, рассчитанным на > хай-лод, а вовсе не маршрутизатором > траффика. > > Как Вам тут замечали - то, что вы хотите - > NAT. NginX этим не занимается. > Вам так же предлагали более правильный > с эстетической точки зрения подход в > виде настройки SSL как Вам надо в NginX, но > Вам что-то не нравится. > > По поводу эффект Даннига-Крюгера. Ну не > все знают Nginx от и до. Для этого и > существуют форумы, на которых задаются > вопросы. > > Да и вообще, если уж говорить > откровенно, поверьте, Windows - совсем не та > платформа, на которой стоило бы > разворачивать такие вещи. Но дело, > конечно же, Ваше. > > 1) Nginx используется ещё для много чего, > перечислять не вижу смысла здесь, т.е. > полностью от отказа Nginx никак не уйти. > 2) С этим понятно. > 3) Я имел ввиду, что есть подозрение что > Nginx настроен на работу с OpenSSL НЕ > поддерживающим GOST (т.к. на сервере > несколько библиотек OpenSSL) > > По поводу Windows. Есть уже существующая > структура, которая довольно давно и > стабильно работает именно в связке, > переделывать которую ради одной задачи > никто не будет... > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217592,218346#msg-218346 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From mva на mva.name Tue Nov 15 05:13:34 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Tue, 15 Nov 2011 12:13:34 +0700 Subject: Nginx + Apache + ssl In-Reply-To: <8e98962ea312cabfd860eae73052687b.NginxMailingListRussian@forum.nginx.org> References: <8e98962ea312cabfd860eae73052687b.NginxMailingListRussian@forum.nginx.org> Message-ID: <1321334014.19243.2.camel@N900> On вт 15 ноя 2011 10:30:22 KRAT, alexnginx wrote: > 1) Nginx используется ещё для много чего, > перечислять не вижу смысла здесь, т.е. > полностью от отказа Nginx никак не уйти. А никто и не говорит, что надо уйти от использования NgX. Вам же только SSL покоя не дает. > 3) Я имел ввиду, что есть подозрение что > Nginx настроен на работу с OpenSSL НЕ > поддерживающим GOST (т.к. на сервере > несколько библиотек OpenSSL) Так кто мешает проверить-то? Да и, собственно, зачем Вам несколько дублирующих библиотек? Кстати, это не форум, а почтовая рассылка, если что ;) > По поводу Windows. Есть уже существующая > структура, которая довольно давно и > стабильно работает именно в связке, > переделывать которую ради одной задачи > никто не будет... Так никто и не заставляет переделывать. Это была критика в сторону изначальной проектировки проекта. -- С уважением, mva From chipitsine на gmail.com Tue Nov 15 05:36:56 2011 From: chipitsine на gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Tue, 15 Nov 2011 10:36:56 +0500 Subject: Nginx + Apache + ssl In-Reply-To: <1321334014.19243.2.camel@N900> References: <8e98962ea312cabfd860eae73052687b.NginxMailingListRussian@forum.nginx.org> <1321334014.19243.2.camel@N900> Message-ID: 15 ноября 2011 г. 11:13 пользователь Мисбах-Соловь?в написал: > On вт 15 ноя 2011 10:30:22 KRAT, alexnginx wrote: > >> 1) Nginx используется ещё для много чего, >> перечислять не вижу смысла здесь, т.е. >> полностью от отказа Nginx никак не уйти. > > А никто и не говорит, что надо уйти от использования NgX. Вам же только SSL покоя не дает. концепция, кажется, поменялась. "полностью от ОТКАЗА Nginx никак не уйти" запасаемся попкорном )) From public-mail на alekciy.ru Tue Nov 15 09:34:18 2011 From: public-mail на alekciy.ru (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0KHRg9C90LTRg9C60L7Qsg==?=) Date: Tue, 15 Nov 2011 13:34:18 +0400 Subject: Nginx + Apache + ssl In-Reply-To: <1321334014.19243.2.camel@N900> References: <8e98962ea312cabfd860eae73052687b.NginxMailingListRussian@forum.nginx.org> <1321334014.19243.2.camel@N900> Message-ID: 15 ноября 2011 г. 9:13 пользователь Мисбах-Соловь?в написал: > On вт 15 ноя 2011 10:30:22 KRAT, alexnginx wrote: > Кстати, это не форум, а почтовая рассылка, если что ;) Строка "Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217592,218346#msg-218346" намекает, что человек то как раз пишет на форум. From mva на mva.name Tue Nov 15 09:38:22 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Tue, 15 Nov 2011 16:38:22 +0700 Subject: Nginx + Apache + ssl In-Reply-To: References: <8e98962ea312cabfd860eae73052687b.NginxMailingListRussian@forum.nginx.org> <1321334014.19243.2.camel@N900> Message-ID: <1321349902.20113.2.camel@N900> тем не менее, человеку не стоит питать иллюзий, что это на самом деле форум, а не рассылка ;))) On вт 15 ноя 2011 16:34:18 KRAT, Алексей Сундуков wrote: > 15 ноября 2011 г. 9:13 пользователь Мисбах-Соловь?в > написал: > > On вт 15 ноя 2011 10:30:22 KRAT, alexnginx > > wrote: > > > Кстати, это не форум, а почтовая рассылка, если что ;) > > Строка "Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,217592,218346#msg-218346" намекает, > что человек то как раз пишет на форум. > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, mva From igor на sysoev.ru Tue Nov 15 09:43:30 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Tue, 15 Nov 2011 13:43:30 +0400 Subject: nginx-1.0.10 Message-ID: <20111115094330.GD58136@nginx.com> Изменения в nginx 1.0.10 15.11.2011 *) Исправление: в рабочем процессе мог произойти segmentation fault, если resolver получил большой DNS-ответ. Спасибо Ben Hawkes. *) Исправление: в вычислении ключа для кэширования, если использовалась внутренняя реализация MD5; ошибка появилась в 1.0.4. *) Исправление: модуль ngx_http_mp4_module выдавал неверную строку "Content-Length" в заголовке ответа, использовался аргумент start. Спасибо Piotr Sikora. -- Игорь Сысоев http://sysoev.ru From xinu на list.ru Tue Nov 15 12:18:27 2011 From: xinu на list.ru (=?UTF-8?B?eGludQ==?=) Date: Tue, 15 Nov 2011 16:18:27 +0400 Subject: =?UTF-8?B?UmU6INC+0L/RgtC40LzQuNC30LDRhtC40Y8g0LzQvtC00YPQu9GPOiDQv9C10YA=?= =?UTF-8?B?0LXQv9C+0LvQvdC10L3QuNGPINC4INCx0LvQvtC60LjRgNC+0LLQutC4?= In-Reply-To: References: Message-ID: 11 ноября 2011, 21:52 от "minya" : > Доброго времени суток! > > Хочу хттп-сервис, который раздает blob-ы. > Задача такая. Есть здоровенный файл > (может даже не один). Клиент просит из > него кусок. Лень писать хттп-уровень > самому - решил заюзать nginx. Долго читал > интернет на предмет написания модулей, > но так и не понял, как мне реализовать 2 > ключевые вещи. Первая: сегмент надо > отдавать не целиком, а небольшими > кусочками, чтоб не завалить сервер > большим количеством запросов. Судя по вроде Вы описываете Range Request, погуглите на тему "HTTP/1.1 206 Partial Content" > всему, это возможно, раз в ngx_chain_t помимо > buf есть next. Но как делать, чтоб вновь > прочитанная порция не задерживалась в > памяти, а сразу улетала в ответ на > клиента - непонятно. Вторая - блокировка > контекста при чтении. Тут совсем > непонятно, что можно сделать > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218226,218226#msg-218226 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum на nginx.us Tue Nov 15 12:49:52 2011 From: nginx-forum на nginx.us (minya) Date: Tue, 15 Nov 2011 07:49:52 -0500 Subject: =?UTF-8?B?UmU6INC+0L/RgtC40LzQuNC30LDRhtC40Y8g0LzQvtC00YPQu9GPOiDQv9C10YA=?= =?UTF-8?B?0LXQv9C+0LvQvdC10L3QuNGPINC4INCx0LvQvtC60LjRgNC+0LLQutC4?= In-Reply-To: References: Message-ID: <53c495d9bb5b631a6584d4ab5e8fd75e.NginxMailingListRussian@forum.nginx.org> Да, такое решение спасет от переполнения памяти на сервере. И может быть даже поможет избежать затрат на ожидание завершения I/O операций. Но тогда размер ответа должен быть очень мал. Следовательно, количество запросов увеличится на несколько порядков. Вот тут-то и схема и просядет. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218226,218378#msg-218378 From valery+nginxru на grid.net.ru Tue Nov 15 12:59:11 2011 From: valery+nginxru на grid.net.ru (Valery Kholodkov) Date: Tue, 15 Nov 2011 12:59:11 +0000 (GMT) Subject: =?UTF-8?B?UmU6INC+0L/RgtC40LzQuNC30LDRhtC40Y8g0LzQvtC00YPQu9GPOiDQv9C10YA=?= =?UTF-8?B?0LXQv9C+0LvQvdC10L3QuNGPINC4INCx0LvQvtC60LjRgNC+0LLQutC4?= In-Reply-To: <3e42dddcf1d2cacd2cc133942c5d3854.NginxMailingListRussian@forum.nginx.org> Message-ID: <12996924.3412.1321361951222.JavaMail.root@zone.mtgsy.net> Лично я не понял что Вы спросили. Пример: > Но как делать, чтоб вновь > прочитанная порция не задерживалась в > памяти, а сразу улетала в ответ на > клиента - непонятно. Она вроде-бы по-умолчанию и не задерживается, а сразу "улетает" в ответ клиента, дальше что? > Вторая - блокировка контекста при чтении. Какого контекста? При чтении чего? > Тут совсем непонятно, что можно сделать Похоже что так. ----- minya wrote: > Может, мне стоит задать этот вопрос в > другом форуме? -- Regards, Valery Kholodkov From nginx-forum на nginx.us Tue Nov 15 13:20:59 2011 From: nginx-forum на nginx.us (minya) Date: Tue, 15 Nov 2011 08:20:59 -0500 Subject: =?UTF-8?B?UmU6INC+0L/RgtC40LzQuNC30LDRhtC40Y8g0LzQvtC00YPQu9GPOiDQv9C10YA=?= =?UTF-8?B?0LXQv9C+0LvQvdC10L3QuNGPINC4INCx0LvQvtC60LjRgNC+0LLQutC4?= In-Reply-To: <12996924.3412.1321361951222.JavaMail.root@zone.mtgsy.net> References: <12996924.3412.1321361951222.JavaMail.root@zone.mtgsy.net> Message-ID: Начиная с того момента, как управление перешло в мой модуль, мне надо выполнять цикл вида while (не отослали все) { i = file_from_disk.read(buf, buf_size) (1) write_to_response(buf, i) (2) } Строка (1) блокирует выполнение потока, поскольку диск не обязан быть готов к чтению. Этих чтений много (целый цикл). Следоваельно, поток заблокируется надолго. Как реализовать строку (2) (а следовательно и весь цикл) - я не знаю. Все примеры по написанию модулей, что я видел, - тривиальны: выделяется буффер b, цепочка для вывода out b->pos = some_bytes; /* first position in memory of the data */ b->last = some_bytes + some_bytes_length; /* last position */ b->last_buf = 1; /* Это ведь просто пример. Ограничимся тривиальным сценарием */ out.buf = b; out.next = NULL; /* Это ведь просто пример. Ограничимся тривиальным сценарием */ и все это хозяйство отдается дальше return ngx_http_output_filter(r, &out); Как из этого тривиального примера получить реальный - непонятно. Может я туплю - тогда уж сильно не пинайте :) Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218226,218382#msg-218382 From mdounin на mdounin.ru Tue Nov 15 13:25:54 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 15 Nov 2011 17:25:54 +0400 Subject: =?UTF-8?B?UmU6INC+0L/RgtC40LzQuNC30LDRhtC40Y8g0LzQvtC00YPQu9GPOiDQv9C10YA=?= =?UTF-8?B?0LXQv9C+0LvQvdC10L3QuNGPINC4INCx0LvQvtC60LjRgNC+0LLQutC4?= In-Reply-To: References: <12996924.3412.1321361951222.JavaMail.root@zone.mtgsy.net> Message-ID: <20111115132553.GC95664@mdounin.ru> Hello! On Tue, Nov 15, 2011 at 08:20:59AM -0500, minya wrote: > Начиная с того момента, как управление > перешло в мой модуль, мне надо > выполнять цикл вида > > while (не отослали все) { > i = file_from_disk.read(buf, buf_size) (1) > write_to_response(buf, i) (2) > } Не надо делать так. Нужно просто отдать файловый буфер nginx'у, и предоставить ему самому разбираться с дальнейшим чтением и отдачей клиенту в соответствии с настройками output_buffers/directio/aio/sendfile/whatever. Maxim Dounin From nginx-forum на nginx.us Tue Nov 15 13:30:50 2011 From: nginx-forum на nginx.us (minya) Date: Tue, 15 Nov 2011 08:30:50 -0500 Subject: =?UTF-8?B?UmU6INC+0L/RgtC40LzQuNC30LDRhtC40Y8g0LzQvtC00YPQu9GPOiDQv9C10YA=?= =?UTF-8?B?0LXQv9C+0LvQvdC10L3QuNGPINC4INCx0LvQvtC60LjRgNC+0LLQutC4?= In-Reply-To: <20111115132553.GC95664@mdounin.ru> References: <20111115132553.GC95664@mdounin.ru> Message-ID: <3c2e1355a6f4a7a2e8ad0320a460ec35.NginxMailingListRussian@forum.nginx.org> Окей. Я немного соврал. Для простоты объяснения. На самом деле, у меня не файл, а база данных (berkeley db). То есть, читаю я не куски из файла, а диапазоны записей: спозиционировал курсор и вычитываю по одной записи и отдаю их на клиента. Как быть в такой ситуации? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218226,218385#msg-218385 From valery+nginxru на grid.net.ru Tue Nov 15 13:40:39 2011 From: valery+nginxru на grid.net.ru (Valery Kholodkov) Date: Tue, 15 Nov 2011 13:40:39 +0000 (GMT) Subject: =?UTF-8?B?UmU6INC+0L/RgtC40LzQuNC30LDRhtC40Y8g0LzQvtC00YPQu9GPOiDQv9C10YA=?= =?UTF-8?B?0LXQv9C+0LvQvdC10L3QuNGPINC4INCx0LvQvtC60LjRgNC+0LLQutC4?= In-Reply-To: <3c2e1355a6f4a7a2e8ad0320a460ec35.NginxMailingListRussian@forum.nginx.org> Message-ID: <25001654.3449.1321364439198.JavaMail.root@zone.mtgsy.net> Сделать длинную цепь из ngx_chain_t. Каждое звено будет содержать буфер, указывающий на соответствующий диапазон. ----- minya wrote: > Окей. Я немного соврал. Для простоты > объяснения. На самом деле, у меня не > файл, а база данных (berkeley db). То есть, > читаю я не куски из файла, а диапазоны > записей: спозиционировал курсор и > вычитываю по одной записи и отдаю их на > клиента. Как быть в такой ситуации? -- Regards, Valery Kholodkov From nginx-forum на nginx.us Tue Nov 15 13:46:40 2011 From: nginx-forum на nginx.us (minya) Date: Tue, 15 Nov 2011 08:46:40 -0500 Subject: =?UTF-8?B?UmU6INC+0L/RgtC40LzQuNC30LDRhtC40Y8g0LzQvtC00YPQu9GPOiDQv9C10YA=?= =?UTF-8?B?0LXQv9C+0LvQvdC10L3QuNGPINC4INCx0LvQvtC60LjRgNC+0LLQutC4?= In-Reply-To: <25001654.3449.1321364439198.JavaMail.root@zone.mtgsy.net> References: <25001654.3449.1321364439198.JavaMail.root@zone.mtgsy.net> Message-ID: <66a7417c34f5280eca54d38a04af22d6.NginxMailingListRussian@forum.nginx.org> Valery Kholodkov Wrote: ------------------------------------------------------- > Сделать длинную цепь из > ngx_chain_t. Каждое звено будет > содержать буфер, > указывающий на > соответствующий диапазон. В какой момент память будет освобождаться? Я ведь не могу просто выделить кучу буферов и объединить их в цепь. Надо, чтоб по мере чтения предыдущие порции (звенья) отправлялись на клиента и память, отведенная под них, помечалась, как свободная. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218226,218387#msg-218387 From valery+nginxru на grid.net.ru Tue Nov 15 13:49:00 2011 From: valery+nginxru на grid.net.ru (Valery Kholodkov) Date: Tue, 15 Nov 2011 13:49:00 +0000 (GMT) Subject: =?UTF-8?B?UmU6INC+0L/RgtC40LzQuNC30LDRhtC40Y8g0LzQvtC00YPQu9GPOiDQv9C10YA=?= =?UTF-8?B?0LXQv9C+0LvQvdC10L3QuNGPINC4INCx0LvQvtC60LjRgNC+0LLQutC4?= In-Reply-To: <66a7417c34f5280eca54d38a04af22d6.NginxMailingListRussian@forum.nginx.org> Message-ID: <26840733.3451.1321364940368.JavaMail.root@zone.mtgsy.net> Память из-под ngx_chain_t и ngx_buf_t освободиться по завершению запроса. Память под чтение данных освободиться по завершению отправки, а если используется sendfile, то она даже и не выделиться. ----- minya wrote: > Valery Kholodkov Wrote: > ------------------------------------------------------- > > Сделать длинную цепь из > > ngx_chain_t. Каждое звено будет > > содержать буфер, > > указывающий на > > соответствующий диапазон. > > В какой момент память будет > освобождаться? Я ведь не могу просто > выделить кучу буферов и объединить их в > цепь. Надо, чтоб по мере чтения > предыдущие порции (звенья) > отправлялись на клиента и память, > отведенная под них, помечалась, как > свободная. -- Regards, Valery Kholodkov From nginx-forum на nginx.us Tue Nov 15 14:07:01 2011 From: nginx-forum на nginx.us (minya) Date: Tue, 15 Nov 2011 09:07:01 -0500 Subject: =?UTF-8?B?UmU6INC+0L/RgtC40LzQuNC30LDRhtC40Y8g0LzQvtC00YPQu9GPOiDQv9C10YA=?= =?UTF-8?B?0LXQv9C+0LvQvdC10L3QuNGPINC4INCx0LvQvtC60LjRgNC+0LLQutC4?= In-Reply-To: <26840733.3451.1321364940368.JavaMail.root@zone.mtgsy.net> References: <26840733.3451.1321364940368.JavaMail.root@zone.mtgsy.net> Message-ID: <73fd03b1c03e123193ddca80d7dbd071.NginxMailingListRussian@forum.nginx.org> Valery Kholodkov Wrote: ------------------------------------------------------- > Память из-под ngx_chain_t и ngx_buf_t > освободиться по завершению > запроса. > Память под чтение данных > освободиться по завершению > отправки, Какое из событий когда наступает? Ответ может быть достаточно большим. Если он целиком живет в памяти и запросов много, то можно пережрать память и загнать процесс в своп. С другой стороны, то запрос может выполняться достаточно долго. Количество запросов, обрабатываемых одновременно - не такое большое. Это количество ядер. Если количество подключений достаточно велико, и мы используем блокирующее чтение, то с хорошей вероятностью все ядра будут заняты ожиданием ввода-вывода, и большинство запросов будут ждать, пока они освободятся. Таким образом, мы сильно деградируем по времени ответа. > а если > используется sendfile, то она > даже и не выделиться. не совсем понял, как это реализовать Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218226,218389#msg-218389 From nginx-forum на nginx.us Tue Nov 15 14:09:14 2011 From: nginx-forum на nginx.us (minya) Date: Tue, 15 Nov 2011 09:09:14 -0500 Subject: =?UTF-8?B?UmU6INC+0L/RgtC40LzQuNC30LDRhtC40Y8g0LzQvtC00YPQu9GPOiDQv9C10YA=?= =?UTF-8?B?0LXQv9C+0LvQvdC10L3QuNGPINC4INCx0LvQvtC60LjRgNC+0LLQutC4?= In-Reply-To: <73fd03b1c03e123193ddca80d7dbd071.NginxMailingListRussian@forum.nginx.org> References: <26840733.3451.1321364940368.JavaMail.root@zone.mtgsy.net> <73fd03b1c03e123193ddca80d7dbd071.NginxMailingListRussian@forum.nginx.org> Message-ID: И еще нюанс. Пока мы просто накапливаем цепь буфферов, клиент ожидает бездействует. А веть мы бы могли ему отсылать данные кусками сразу, как только они доступны. И клиент бы их обрабатывал. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218226,218390#msg-218390 From mdounin на mdounin.ru Tue Nov 15 14:18:44 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 15 Nov 2011 18:18:44 +0400 Subject: =?UTF-8?B?UmU6INC+0L/RgtC40LzQuNC30LDRhtC40Y8g0LzQvtC00YPQu9GPOiDQv9C10YA=?= =?UTF-8?B?0LXQv9C+0LvQvdC10L3QuNGPINC4INCx0LvQvtC60LjRgNC+0LLQutC4?= In-Reply-To: <3c2e1355a6f4a7a2e8ad0320a460ec35.NginxMailingListRussian@forum.nginx.org> References: <20111115132553.GC95664@mdounin.ru> <3c2e1355a6f4a7a2e8ad0320a460ec35.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111115141844.GE95664@mdounin.ru> Hello! On Tue, Nov 15, 2011 at 08:30:50AM -0500, minya wrote: > Окей. Я немного соврал. Для простоты > объяснения. На самом деле, у меня не > файл, а база данных (berkeley db). То есть, > читаю я не куски из файла, а диапазоны > записей: спозиционировал курсор и > вычитываю по одной записи и отдаю их на > клиента. Как быть в такой ситуации? Ставить собственный обработчик на событие записи клиенту, и следить за отправкой буферов самостоятельно. Из обработчика запроса возвращать NGX_DONE. Пример, как это делается, можно посмотреть в модулях работы с бекендами + в инфраструктуре upstream, которую они используют. Там, правда, много и не совсем тривиально, ну да и задача не совсем тривиальная. Maxim Dounin From valery+nginxru на grid.net.ru Tue Nov 15 14:25:13 2011 From: valery+nginxru на grid.net.ru (Valery Kholodkov) Date: Tue, 15 Nov 2011 14:25:13 +0000 (GMT) Subject: =?UTF-8?B?UmU6INC+0L/RgtC40LzQuNC30LDRhtC40Y8g0LzQvtC00YPQu9GPOiDQv9C10YA=?= =?UTF-8?B?0LXQv9C+0LvQvdC10L3QuNGPINC4INCx0LvQvtC60LjRgNC+0LLQutC4?= In-Reply-To: <73fd03b1c03e123193ddca80d7dbd071.NginxMailingListRussian@forum.nginx.org> Message-ID: <14446987.3459.1321367113927.JavaMail.root@zone.mtgsy.net> ----- minya wrote: > Valery Kholodkov Wrote: > ------------------------------------------------------- > > Память из-под ngx_chain_t и ngx_buf_t > > освободиться по завершению > > запроса. > > Память под чтение данных > > освободиться по завершению > > отправки, > Какое из событий когда наступает? Ну так скажем, любая память выделенная из пула запроса будет освобождена по окончанию запроса (после записи в лог и т.д.). Если из пула выделена память под чтение, то она обычно не освобождается, а повторно используется (будем считать, что она таким образом освобождается). Это делается в частности, чтобы не пережрать память. > Ответ > может быть достаточно большим. Если он > целиком живет в памяти и запросов > много, то можно пережрать память и > загнать процесс в своп. С другой > стороны, то запрос может выполняться > достаточно долго. Количество запросов, > обрабатываемых одновременно - не такое > большое. Это количество ядер. Если > количество подключений достаточно > велико, и мы используем блокирующее > чтение, то с хорошей вероятностью все > ядра будут заняты ожиданием > ввода-вывода, и большинство запросов > будут ждать, пока они освободятся. > Таким образом, мы сильно деградируем по > времени ответа. Было бы неплохо, если бы Вы объясняли более конкретно. Я опять ничего не понял. > > а если > > используется sendfile, то она > > даже и не выделиться. > не совсем понял, как это реализовать Для этого достаточно засубмитить в nginx буферы с флагом is_file и инициализированным начальным и конечным смещением а файле. nginx сам разберется какой метод отправки использовать. -- Regards, Valery Kholodkov From nginx-forum на nginx.us Tue Nov 15 14:45:21 2011 From: nginx-forum на nginx.us (minya) Date: Tue, 15 Nov 2011 09:45:21 -0500 Subject: =?UTF-8?B?UmU6INC+0L/RgtC40LzQuNC30LDRhtC40Y8g0LzQvtC00YPQu9GPOiDQv9C10YA=?= =?UTF-8?B?0LXQv9C+0LvQvdC10L3QuNGPINC4INCx0LvQvtC60LjRgNC+0LLQutC4?= In-Reply-To: <20111115141844.GE95664@mdounin.ru> References: <20111115141844.GE95664@mdounin.ru> Message-ID: <651133c189e7ba3dc21a8d26e2935592.NginxMailingListRussian@forum.nginx.org> Maxim Dounin Wrote: ------------------------------------------------------- > Ставить собственный > обработчик на событие > записи клиенту, и > следить за отправкой > буферов самостоятельно. Из > обработчика > запроса возвращать NGX_DONE. Да. Кажется, это то, что надо. > Пример, как это делается, > можно посмотреть в модулях > работы с > бекендами + в > инфраструктуре upstream, > которую они используют. > Там, правда, много и не > совсем тривиально, ну да и > задача не > совсем тривиальная. Эти модули, как я понял, сначала собирают http-запрос к бэкэнду, а потом nginx отдает им то, что бекенд возвращает. Как инициировать не хттп запрос, а циклическое чтение из базы - неочевидно. Или Вы имеете ввиду более низкоуровневые модули? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218226,218393#msg-218393 From hell-for-yahoo на umail.ru Tue Nov 15 16:25:02 2011 From: hell-for-yahoo на umail.ru (Andrey Repin) Date: Tue, 15 Nov 2011 20:25:02 +0400 Subject: оптимизация модуля: переполнения и блокировки In-Reply-To: <53c495d9bb5b631a6584d4ab5e8fd75e.NginxMailingListRussian@forum.nginx.org> References: <53c495d9bb5b631a6584d4ab5e8fd75e.NginxMailingListRussian@forum.nginx.org> Message-ID: <26164236.20111115202502@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) minya! m> Да, такое решение спасет от m> переполнения памяти на сервере. И может m> быть даже поможет избежать затрат на m> ожидание завершения I/O операций. Но m> тогда размер ответа должен быть очень m> мал. Следовательно, количество m> запросов увеличится на несколько m> порядков. Вот тут-то и схема и просядет. А это уже зависит от размера буфера, отдаваемого клиенту в каждом случае. Даже не от самого размера, а от отношения его к общему размеру результата. -- С уважением Andrey Repin (hell-for-yahoo на umail.ru) вторник, 15.11.2011, <20:24> From nginx-forum на nginx.us Tue Nov 15 18:11:14 2011 From: nginx-forum на nginx.us (npocToNIK) Date: Tue, 15 Nov 2011 13:11:14 -0500 Subject: =?UTF-8?B?0JzQvtC00YPQu9GMIG5neCBodHRwIGxpbWl0IHJlcSBtb2R1bGU=?= Message-ID: Доброго времени суток всем! Проблема в том что на windows server 2008 r2 nginx не запускаеться если в конфиг прописать значения модуля ngx_http_limit_req_module limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; limit_req zone=one burst=5; то в error.log пишет ошибку 2011/11/15 22:05:23 [emerg] 11576#11876: shared zone "one" has no equal addresses: 02360000 vs 02210000 а с тем же конфигом на windows xp отлично запускаеться. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218404,218404#msg-218404 From gmm на csdoc.com Tue Nov 15 18:17:33 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Tue, 15 Nov 2011 20:17:33 +0200 Subject: =?UTF-8?B?UmU6INCc0L7QtNGD0LvRjCBuZ3ggaHR0cCBsaW1pdCByZXEgbW9kdWxl?= In-Reply-To: References: Message-ID: <4EC2ACBD.6000405@csdoc.com> On 15.11.2011 20:11, npocToNIK wrote: > Проблема в том что на windows server 2008 r2 nginx не > запускаеться если в конфиг прописать > значения модуля ngx_http_limit_req_module > limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; > limit_req zone=one burst=5; > > то в error.log пишет ошибку > 2011/11/15 22:05:23 [emerg] 11576#11876: shared zone "one" has no equal > addresses: 02360000 vs 02210000 > > а с тем же конфигом на windows xp отлично > запускаеться. об этом написано в документации. http://nginx.org/en/docs/windows.html The cache and other modules which require shared memory support do not work in Windows Vista and later due to address space layout randomization being enabled in these Windows versions. -- Best regards, Gena From nginx-forum на nginx.us Tue Nov 15 19:16:30 2011 From: nginx-forum на nginx.us (npocToNIK) Date: Tue, 15 Nov 2011 14:16:30 -0500 Subject: =?UTF-8?B?UmU6INCc0L7QtNGD0LvRjCBuZ3ggaHR0cCBsaW1pdCByZXEgbW9kdWxl?= In-Reply-To: <4EC2ACBD.6000405@csdoc.com> References: <4EC2ACBD.6000405@csdoc.com> Message-ID: <0eeb0256a5d408a8e2625b51ac807d01.NginxMailingListRussian@forum.nginx.org> Gena Makhomed Wrote: ------------------------------------------------------- > On 15.11.2011 20:11, npocToNIK wrote: > > > Проблема в том что на windows > server 2008 r2 nginx не > > запускаеться если в > конфиг прописать > > значения модуля > ngx_http_limit_req_module > > limit_req_zone $binary_remote_addr zone=one:10m > rate=1r/s; > > limit_req zone=one burst=5; > > > > то в error.log пишет ошибку > > 2011/11/15 22:05:23 [emerg] 11576#11876: shared > zone "one" has no equal > > addresses: 02360000 vs 02210000 > > > > а с тем же конфигом на windows > xp отлично > > запускаеться. > > об этом написано в > документации. > > http://nginx.org/en/docs/windows.html > > The cache and other modules which require shared > memory support do not > work in Windows Vista and later due to address > space layout > randomization being enabled in these Windows > versions. а есть ли выход с этой ситуации? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218405,218407#msg-218407 From hell-for-yahoo на umail.ru Wed Nov 16 00:43:26 2011 From: hell-for-yahoo на umail.ru (Andrey Repin) Date: Wed, 16 Nov 2011 04:43:26 +0400 Subject: Модуль ngx http limit req module In-Reply-To: <0eeb0256a5d408a8e2625b51ac807d01.NginxMailingListRussian@forum.nginx.org> References: <4EC2ACBD.6000405@csdoc.com> <0eeb0256a5d408a8e2625b51ac807d01.NginxMailingListRussian@forum.nginx.org> Message-ID: <155187791.20111116044326@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) npocToNIK! >> http://nginx.org/en/docs/windows.html >> >> The cache and other modules which require shared >> memory support do not >> work in Windows Vista and later due to address >> space layout >> randomization being enabled in these Windows >> versions. n> а есть ли выход с этой ситуации? Конечно. Используйте *NIX. -- С уважением Andrey Repin (hell-for-yahoo на umail.ru) среда, 16.11.2011, <04:43> From mdounin на mdounin.ru Wed Nov 16 00:51:15 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 16 Nov 2011 04:51:15 +0400 Subject: proxy_redirect & $vars In-Reply-To: References: <20101109114228.GA17847@tahiti.vinf.ru> Message-ID: <20111116005115.GI95664@mdounin.ru> Hello! On Mon, Nov 14, 2011 at 11:09:51PM +0300, Daniel Podolsky wrote: > День добрый! > > > proxy_redirect не понимает > > переменные в первом параметре > > Прямо сегодня наткнулся, что как не понимал - так и не понимает :) > > В той связи вопросы: > 1) Насколько сложно сделать, чтобы понимал? Это я размышляю, не > попробовать ли мне самому сделать патч. В принципе не сложно, но немного муторно. > 2) Можно ли не пробовать, а прямо вот заказать фичу за деньги? Если > да, то за какие? Можно написать на nginx-inquiries на nginx.com, там подскажут. > 3) Существуют ли пути обхода? В этом же некротреде Максим Дунин писал: > > Можно ещё попробовать через proxy_hide_header + > > proxy_intercept_errors + error_page 302 + add_header. > Может - есть у кого пример конфига? Подобные извращения в конфигах - вещь сугубо интимная. Приличные люди такое публично не демонстрируют. ;) > PS > народную подписку на busy_locks еще не объявляли? :) Я ими занимаюсь. Maxim Dounin From postmaster на softsearch.ru Wed Nov 16 07:42:54 2011 From: postmaster на softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Wed, 16 Nov 2011 11:42:54 +0400 Subject: nginx-1.1.8 In-Reply-To: <20111114154331.GD33940@nginx.com> References: <20111114154331.GD33940@nginx.com> Message-ID: <1923771106.20111116114254@softsearch.ru> Здравствуйте, Igor. > *) Исправление: в вычислении ключа для кэширования, если использовалась > внутренняя реализация MD5; ошибка появилась в 1.0.4. А большой процент ключей теперь изменится? > *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в > заголовке запроса клиента могли передаваться бэкенду при кэшировании; > или не передаваться при выключенном кэшировании, если кэширование > было включено в другой части конфигурации. И мог закэшироваться кусок файла, вместо всего файла? -- С уважением, Михаил mailto:postmaster на softsearch.ru From mdounin на mdounin.ru Wed Nov 16 08:19:50 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 16 Nov 2011 12:19:50 +0400 Subject: nginx-1.1.8 In-Reply-To: <1923771106.20111116114254@softsearch.ru> References: <20111114154331.GD33940@nginx.com> <1923771106.20111116114254@softsearch.ru> Message-ID: <20111116081950.GJ95664@mdounin.ru> Hello! On Wed, Nov 16, 2011 at 11:42:54AM +0400, Михаил Монашёв wrote: > Здравствуйте, Igor. > > > *) Исправление: в вычислении ключа для кэширования, если использовалась > > внутренняя реализация MD5; ошибка появилась в 1.0.4. > > А большой процент ключей теперь изменится? Поедут ключи длинее 64 байт. Но тебе это не грозит, на FreeBSD внутенняя реализация MD5 не используется никогда, ибо всегда есть openssl и libmd. > > *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в > > заголовке запроса клиента могли передаваться бэкенду при кэшировании; > > или не передаваться при выключенном кэшировании, если кэширование > > было включено в другой части конфигурации. > > И мог закэшироваться кусок файла, вместо всего файла? Мог, но это другая проблема. Maxim Dounin From nginx-forum на nginx.us Wed Nov 16 08:51:33 2011 From: nginx-forum на nginx.us (minya) Date: Wed, 16 Nov 2011 03:51:33 -0500 Subject: =?UTF-8?B?UmU6INC+0L/RgtC40LzQuNC30LDRhtC40Y8g0LzQvtC00YPQu9GPOiDQv9C10YA=?= =?UTF-8?B?0LXQv9C+0LvQvdC10L3QuNGPINC4INCx0LvQvtC60LjRgNC+0LLQutC4?= In-Reply-To: <14446987.3459.1321367113927.JavaMail.root@zone.mtgsy.net> References: <14446987.3459.1321367113927.JavaMail.root@zone.mtgsy.net> Message-ID: <43a80d340482c76d19a4c31359795825.NginxMailingListRussian@forum.nginx.org> Valery Kholodkov Wrote: ------------------------------------------------------- > > Ответ > > может быть достаточно > большим. Если он > > целиком живет в памяти и > запросов > > много, то можно пережрать > память и > > загнать процесс в своп. С > другой > > стороны, то запрос может > выполняться > > достаточно долго. > Количество запросов, > > обрабатываемых > одновременно - не такое > > большое. Это количество > ядер. Если > > количество подключений > достаточно > > велико, и мы используем > блокирующее > > чтение, то с хорошей > вероятностью все > > ядра будут заняты > ожиданием > > ввода-вывода, и > большинство запросов > > будут ждать, пока они > освободятся. > > Таким образом, мы сильно > деградируем по > > времени ответа. > > Было бы неплохо, если бы Вы > объясняли более конкретно. > Я опять ничего не понял. Я имел в виду ситуацию, когда формируемый ответ большой. И его формирование занимает какое-то время. Если он втечение всего этого времени живет в памяти, то можно исчерпать всю память, т.к. сервер обслуживает большое количество запросов одновременно. Для того, чтоб этого избежать, надо не буферизовать ответ, а сразу отсылать в сокет то, что доступно и читать дальше. Maxim Dounin говорит, что можно это сделать повешав свой обработчик на событие записи клиенту и там освобождать буффера, которые уже отправлены. Буду ковырять в этом направлении. Что касается моих предположений по поводу блокировки при чтении из бд - тут я погорячился. Здесь ничего не поделать - ибо интерфейс работы с базой данных такой возможности не предлоставляет. Если в случае с файлом я могу сакзать nginx'у "на тебе дескриптор, и читай от сих до сих" и он закинет этот дескриптор в очередь на poll/epoll (если сочтет нужным), то в случае с каким-то другим "чтением" я этого сделать не могу. Andrey Repin Wrote: ------------------------------------------------------- > А это уже зависит от > размера буфера, > отдаваемого клиенту в > каждом случае. > Даже не от самого размера, а > от отношения его к общему > размеру результата. Все верно. Тут нужно гонять тесты и подбирать параметры. Проблема лишь в том, что ответы бывают разные по размеру. И разброс достаточно большой. Кажется, что в такой ситуации трудно будет найти баланс. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218226,218426#msg-218426 From onokonem на gmail.com Wed Nov 16 11:02:21 2011 From: onokonem на gmail.com (Daniel Podolsky) Date: Wed, 16 Nov 2011 14:02:21 +0300 Subject: proxy_redirect & $vars In-Reply-To: <20111116005115.GI95664@mdounin.ru> References: <20101109114228.GA17847@tahiti.vinf.ru> <20111116005115.GI95664@mdounin.ru> Message-ID: > Можно написать на nginx-inquiries на nginx.com, там подскажут. Спасибо, написал > Подобные извращения в конфигах - вещь сугубо интимная.  Приличные > люди такое публично не демонстрируют.  ;) Ну - времена сейчас раскованные... > Я ими занимаюсь. Круто! На самом деле - ждем с нетерпением. From nginx-forum на nginx.us Wed Nov 16 12:03:34 2011 From: nginx-forum на nginx.us (SoulReaver) Date: Wed, 16 Nov 2011 07:03:34 -0500 Subject: nginx-1.1.8 In-Reply-To: <20111114154331.GD33940@nginx.com> References: <20111114154331.GD33940@nginx.com> Message-ID: Здравствуйте. > *) Добавление: поддержка ограничения по нескольким limit_conn на одном > уровне. А планируется ли добавить поддержку ограничения по нескольким limit_req так же на одном уровне? Если да, то была бы востребована возможность указания в конфиге код ответа, который будет отдаваться при переполнении запросами определенного limit_req. Примерно как то так: http { limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s error=590; limit_req_zone $binary_remote_addr zone=two:10m rate=10r/m error=591; ... server { ... location / { limit_req zone=one burst=10 (либо тут error=592); } location /search/ { limit_req zone=two burst=5; } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218321,218430#msg-218430 From miksir на maker.ru Wed Nov 16 12:50:12 2011 From: miksir на maker.ru (Dmitriy MiksIr) Date: Wed, 16 Nov 2011 16:50:12 +0400 Subject: =?UTF-8?B?0L7RhNGE0YLQvtC/INC/0YDQviBuZ2lueCDRhNC+0YDRg9C8?= Message-ID: А можно как-то настроить длину строки приходящих в рассылку писем побольше, или вообще ее не разбивать? Ибо читать эти столбцы в рассылке тяжко, а если там цитаты, то вообще беда. Хотя такое ощущение, что там даже не в длине дело, а длина utf-8 строк считается побайтово? From gmm на csdoc.com Wed Nov 16 13:40:57 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Wed, 16 Nov 2011 15:40:57 +0200 Subject: =?UTF-8?B?UmU6INC+0L/RgtC40LzQuNC30LDRhtC40Y8g0LzQvtC00YPQu9GPOiDQv9C10YA=?= =?UTF-8?B?0LXQv9C+0LvQvdC10L3QuNGPINC4INCx0LvQvtC60LjRgNC+0LLQutC4?= In-Reply-To: <43a80d340482c76d19a4c31359795825.NginxMailingListRussian@forum.nginx.org> References: <14446987.3459.1321367113927.JavaMail.root@zone.mtgsy.net> <43a80d340482c76d19a4c31359795825.NginxMailingListRussian@forum.nginx.org> Message-ID: <4EC3BD69.3000203@csdoc.com> On 16.11.2011 10:51, minya wrote: > Что касается моих предположений по > поводу блокировки при чтении из бд - тут > я погорячился. Здесь ничего не поделать > - ибо интерфейс работы с базой данных > такой возможности не предлоставляет. > Если в случае с файлом я могу сакзать > nginx'у "на тебе дескриптор, и читай от сих > до сих" и он закинет этот дескриптор в > очередь на poll/epoll (если сочтет нужным), > то в случае с каким-то другим "чтением" я > этого сделать не могу. в связи с этим вопрос - зачем в таком случае эту функциональность реализовывать в виде модуля к nginx? разве это будет быстрее / проще / надежнее по сравнению с "внешним" демоном, который общается с nginx, например, по протоколу uwsgi / fastcgi и т.п. ? учитывая, что внешний демон будет гораздо меньше по размеру и в нем можно будет применить модель prefork или worker, как в apache - всеравно ведь процесс/тред будет блокироваться при обращении к базе данных, и таких внешних демонов можно будет запустить больше при том же объеме использованной памяти в компе. да и программировать однопоточный/многотредовый демон будет проще. -- Best regards, Gena From mdounin на mdounin.ru Wed Nov 16 13:44:39 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 16 Nov 2011 17:44:39 +0400 Subject: nginx-1.1.8 In-Reply-To: References: <20111114154331.GD33940@nginx.com> Message-ID: <20111116134439.GM95664@mdounin.ru> Hello! On Wed, Nov 16, 2011 at 07:03:34AM -0500, SoulReaver wrote: > Здравствуйте. > > > *) Добавление: поддержка ограничения > по нескольким limit_conn на одном > > уровне. > > А планируется ли добавить поддержку > ограничения по нескольким limit_req так же > на одном уровне? Да. > Если да, то была бы востребована > возможность указания в конфиге код > ответа, который будет отдаваться при > переполнении запросами определенного > limit_req. Примерно как то так: > > http { > limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s > error=590; > limit_req_zone $binary_remote_addr zone=two:10m rate=10r/m > error=591; > ... > > server { > > ... > location / { > limit_req zone=one burst=10 (либо тут error=592); > } > location /search/ { > limit_req zone=two burst=5; > } Вот конкретно для приведённого примера - всё прекрасно делается без использования каких-либо дополнительных кодов ошибок. Достаточно в нужных location'ах прописать соответствующие error_page. Maxim Dounin From nginx-forum на nginx.us Wed Nov 16 18:10:00 2011 From: nginx-forum на nginx.us (SoulReaver) Date: Wed, 16 Nov 2011 13:10:00 -0500 Subject: nginx-1.1.8 In-Reply-To: References: <20111114154331.GD33940@nginx.com> Message-ID: <98fe6b50b4581961f18ddc14acd7b226.NginxMailingListRussian@forum.nginx.org> > > http { > > limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s > > error=590; > > limit_req_zone $binary_remote_addr zone=two:10m rate=10r/m > > error=591; > > ... > > > > server { > > > > ... > > location / { > > limit_req zone=one burst=10 (либо тут error=592); > > } > > location /search/ { > > limit_req zone=two burst=5; > > } > > Вот конкретно для приведённого примера - всё прекрасно делается > без использования каких-либо дополнительных кодов ошибок. > Достаточно в нужных location'ах прописать соответствующие > error_page. А если необходимо в рамках одного location'а? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218321,218442#msg-218442 From postmaster на softsearch.ru Wed Nov 16 18:38:57 2011 From: postmaster на softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Wed, 16 Nov 2011 22:38:57 +0400 Subject: =?UTF-8?B?0L/RgNC+IHByb3h5X2NhY2hlX3VzZV9zdGFsZQ==?= Message-ID: <658108287.20111116223857@softsearch.ru> Здравствуйте. Есть proxy_cache_use_stale timeout. Если бэкенд тормозит, то возвращаем старый ответ из кэша. При этом ответ бэкенда, который может ожил и что-то ответил, теряется. Было бы здорово иметь возможность реализовать отдачу устаревшего ответа из кэша, если таймаут с бэкендом превышает какой-то лимит. А ответ бэкенда потом записать в кэш, если он пришёл. -- С уважением, Михаил mailto:postmaster на softsearch.ru From rush.zlo на gmail.com Thu Nov 17 06:12:13 2011 From: rush.zlo на gmail.com (=?UTF-8?B?0JXQstCz0LXQvdC40LkgJ1J1c2gnINCd0LXQv9C+0LzQvdGP0YnQuNC5?=) Date: Thu, 17 Nov 2011 10:12:13 +0400 Subject: =?UTF-8?B?UmU6INC+0YTRhNGC0L7QvyDQv9GA0L4gbmdpbngg0YTQvtGA0YPQvA==?= In-Reply-To: References: Message-ID: Ну сообщения с форума обычно вообще читать тяжело, и дело не в столбцах, а в "писателе" :) 2011/11/16 Dmitriy MiksIr : > А можно как-то настроить длину строки приходящих в рассылку писем побольше, > или вообще ее не разбивать? Ибо читать эти столбцы в рассылке тяжко, а если > там цитаты, то вообще беда. Хотя такое ощущение, что там даже не в длине > дело, а длина utf-8 строк считается побайтово? > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Cogito ergo sum From nginx-forum на nginx.us Thu Nov 17 08:26:14 2011 From: nginx-forum на nginx.us (estless) Date: Thu, 17 Nov 2011 03:26:14 -0500 Subject: =?UTF-8?B?Zm9yYmlkZGVuINCy0LzQtdGB0YLQviA0MDQg0L7RiNC40LHQutC4?= Message-ID: Привет, прошу помощи, ибо не могу для себя объяснить некоторое nginx-поведение ;( в основном nginx.conf написал: index index.xml index.html; есть виртуальный хост, следующего содержания: server { ... server_name ~^(some.some.example.com|some.some.[a-z0-9]+.example.com); root /usr/local/www/ololo/; ... } при попытке гет-запроса в логах вижу сдедующее: 638#0: *1 directory index of "/usr/local/www/ololo/" is forbidden, server: ~^(some.some.example.com|some.some.[a-z0-9]+.example.com), request: "GET / HTTP/1.1", host: "some.some.host.example.com" ==> /var/log/nginx/access.log <== [17/Nov/2011:12:13:11 +0400] "GET / HTTP/1.1" 403 140 "-" [17/Nov/2011:12:13:11 +0400] some.some.host.example.com "GET / HTTP/1.1" 403 "-" Это уже странно, файлов индексов в этой директории нет, все права проставлены правильно - это перепроверено несколько раз (не отсылайте пожалуйста к выставлению chmod), почему forbidden? 404-я ошибка определена через отдельный include и отлично работает на других виртуальных хостах, а этот вот forbidden не понимаю что с ним делать. Если определить error 404 403 = 404, то конечно все нормально и вместо 403 будет нормально отдаваться 404, но мне это кажется костылем, а с непонятным forbidden хочется разобраться, посоветуйте пожалуйста что не так. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218455,218455#msg-218455 From mva на mva.name Thu Nov 17 08:32:45 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Thu, 17 Nov 2011 15:32:45 +0700 Subject: =?UTF-8?B?UmU6IGZvcmJpZGRlbiDQstC80LXRgdGC0L4gNDA0INC+0YjQuNCx0LrQuA==?= In-Reply-To: References: Message-ID: <1321518765.4451.2.camel@N900> так потому и форбидден, что индексов нету, а листинг не разрешен :) On чт 17 ноя 2011 15:26:14 KRAT, estless wrote: > Привет, > прошу помощи, ибо не могу для себя > объяснить некоторое nginx-поведение ;( > в основном nginx.conf  написал: > index       index.xml index.html; > > есть виртуальный хост, следующего > содержания: > server { >      ... >      server_name > ~^(some.some.example.com|some.some.[a-z0-9]+.example.com); >      root /usr/local/www/ololo/; >      ... > } > при попытке гет-запроса в логах вижу > сдедующее: > 638#0: *1 directory index of "/usr/local/www/ololo/" is forbidden, > server: ~^(some.some.example.com|some.some.[a-z0-9]+.example.com), > request: "GET / HTTP/1.1", host: "some.some.host.example.com" > > ==> /var/log/nginx/access.log <== > [17/Nov/2011:12:13:11 +0400] "GET / HTTP/1.1" 403 140 "-" > [17/Nov/2011:12:13:11 +0400] some.some.host.example.com  "GET / > HTTP/1.1" 403 "-" > > > Это уже странно, файлов индексов в этой > директории нет, все права проставлены > правильно - это перепроверено > несколько раз (не отсылайте пожалуйста > к выставлению chmod), почему forbidden? > 404-я ошибка определена через отдельный > include и отлично работает на других > виртуальных хостах, а этот вот forbidden не > понимаю что с ним делать. Если > определить error 404 403 = 404, то конечно все > нормально и вместо 403 будет нормально > отдаваться 404, но мне это кажется > костылем, а с непонятным forbidden хочется > разобраться, посоветуйте пожалуйста > что не так. > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,218455,218455#msg-218455 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, mva From nginx-forum на nginx.us Thu Nov 17 08:38:12 2011 From: nginx-forum на nginx.us (estless) Date: Thu, 17 Nov 2011 03:38:12 -0500 Subject: =?UTF-8?B?UmU6IGZvcmJpZGRlbiDQstC80LXRgdGC0L4gNDA0INC+0YjQuNCx0LrQuA==?= In-Reply-To: References: Message-ID: в том-то и дело, что листинг - разрешен ;( , а т.к. index.html нет, то разве не должно быть что-то вроде такого? index.xml is not found и 404 на GET ? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218455,218457#msg-218457 From nginx-forum на nginx.us Thu Nov 17 08:40:59 2011 From: nginx-forum на nginx.us (estless) Date: Thu, 17 Nov 2011 03:40:59 -0500 Subject: =?UTF-8?B?UmU6IGZvcmJpZGRlbiDQstC80LXRgdGC0L4gNDA0INC+0YjQuNCx0LrQuA==?= In-Reply-To: References: Message-ID: если например GET будет some.some.host.example.com/yarrr (yarrr не существует в директории) - то будет нормальная 404 Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218455,218458#msg-218458 From nginx-forum на nginx.us Thu Nov 17 09:01:41 2011 From: nginx-forum на nginx.us (estless) Date: Thu, 17 Nov 2011 04:01:41 -0500 Subject: =?UTF-8?B?UmU6IGZvcmJpZGRlbiDQstC80LXRgdGC0L4gNDA0INC+0YjQuNCx0LrQuA==?= In-Reply-To: References: Message-ID: <77653c2066ccc4ccb585f0c128861b4d.NginxMailingListRussian@forum.nginx.org> забыл написать версию nginx -v nginx: nginx version: nginx/1.0.4 и да, если autoindex on написать в конфе вирт хоста - то листинг директории увидеть можно Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218455,218460#msg-218460 From ne на vbart.ru Thu Nov 17 09:16:15 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Thu, 17 Nov 2011 13:16:15 +0400 Subject: =?UTF-8?B?UmU6IGZvcmJpZGRlbiDQstC80LXRgdGC0L4gNDA0INC+0YjQuNCx0LrQuA==?= In-Reply-To: <77653c2066ccc4ccb585f0c128861b4d.NginxMailingListRussian@forum.nginx.org> References: <77653c2066ccc4ccb585f0c128861b4d.NginxMailingListRussian@forum.nginx.org> Message-ID: <201111171316.16051.ne@vbart.ru> On Thursday 17 November 2011 13:01:41 estless wrote: > забыл написать версию nginx -v > nginx: nginx version: nginx/1.0.4 > > и да, если autoindex on написать в конфе вирт > хоста - то листинг директории увидеть > можно > [...] А так он у вас в http секции указан, так? Можно конфиг целиком? -- Валентин Бартенев From nginx-forum на nginx.us Thu Nov 17 09:23:59 2011 From: nginx-forum на nginx.us (estless) Date: Thu, 17 Nov 2011 04:23:59 -0500 Subject: =?UTF-8?B?UmU6IGZvcmJpZGRlbiDQstC80LXRgdGC0L4gNDA0INC+0YjQuNCx0LrQuA==?= In-Reply-To: References: Message-ID: index указан в http секции да, пробовал и в вирт хосте писать - не помогло конфиг: cat nginx.conf user www www; worker_processes 2; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { use epoll; worker_connections 1024; multi_accept on; } http { index index.xml index.html; include /etc/nginx/include/fastcgi_params; access_log /var/log/nginx/access.log; userid on; log_format custom '[$time_local] $http_host $remote_addr "$request" $http_referer $http_cookie $bytes_sent $upstream_response_time'; access_log /var/log/nginx/access.log custom; server_names_hash_bucket_size 128; sendfile on; tcp_nopush on; tcp_nodelay on; gzip on; gzip_buffers 64 16k; gzip_comp_level 1; gzip_disable msie6; include /etc/nginx/sites-enabled/*; fastcgi_intercept_errors on; } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218455,218462#msg-218462 From igor на sysoev.ru Thu Nov 17 09:49:17 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Thu, 17 Nov 2011 13:49:17 +0400 Subject: =?UTF-8?B?UmU6IGZvcmJpZGRlbiDQstC80LXRgdGC0L4gNDA0INC+0YjQuNCx0LrQuA==?= In-Reply-To: References: Message-ID: <20111117094917.GA15840@nginx.com> On Thu, Nov 17, 2011 at 03:26:14AM -0500, estless wrote: > Привет, > прошу помощи, ибо не могу для себя > объяснить некоторое nginx-поведение ;( > в основном nginx.conf написал: > index index.xml index.html; > > есть виртуальный хост, следующего > содержания: > server { > ... > server_name > ~^(some.some.example.com|some.some.[a-z0-9]+.example.com); > root /usr/local/www/ololo/; > ... > } > при попытке гет-запроса в логах вижу > сдедующее: > 638#0: *1 directory index of "/usr/local/www/ololo/" is forbidden, > server: ~^(some.some.example.com|some.some.[a-z0-9]+.example.com), > request: "GET / HTTP/1.1", host: "some.some.host.example.com" > > ==> /var/log/nginx/access.log <== > [17/Nov/2011:12:13:11 +0400] "GET / HTTP/1.1" 403 140 "-" > [17/Nov/2011:12:13:11 +0400] some.some.host.example.com "GET / > HTTP/1.1" 403 "-" > > > Это уже странно, файлов индексов в этой > директории нет, все права проставлены > правильно - это перепроверено > несколько раз (не отсылайте пожалуйста > к выставлению chmod), почему forbidden? > 404-я ошибка определена через отдельный > include и отлично работает на других > виртуальных хостах, а этот вот forbidden не > понимаю что с ним делать. Если > определить error 404 403 = 404, то конечно все > нормально и вместо 403 будет нормально > отдаваться 404, но мне это кажется > костылем, а с непонятным forbidden хочется > разобраться, посоветуйте пожалуйста > что не так. Это стандартное поведение со времён Апача. Если на запрос "/dir/" нет индексного файла и автолистинг запрещён, то выдаётся 403. -- Игорь Сысоев http://sysoev.ru From nginx-forum на nginx.us Thu Nov 17 09:53:24 2011 From: nginx-forum на nginx.us (estless) Date: Thu, 17 Nov 2011 04:53:24 -0500 Subject: =?UTF-8?B?UmU6IGZvcmJpZGRlbiDQstC80LXRgdGC0L4gNDA0INC+0YjQuNCx0LrQuA==?= In-Reply-To: References: Message-ID: <02f4d31057a13228a9a7c282234c24cb.NginxMailingListRussian@forum.nginx.org> Понял, спасибо, значит буду 403 приравнивать к 404 скорее всего Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218455,218464#msg-218464 From mva на mva.name Thu Nov 17 10:03:30 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Thu, 17 Nov 2011 17:03:30 +0700 Subject: =?UTF-8?B?UmU6IGZvcmJpZGRlbiDQstC80LXRgdGC0L4gNDA0INC+0YjQuNCx0LrQuA==?= In-Reply-To: <02f4d31057a13228a9a7c282234c24cb.NginxMailingListRussian@forum.nginx.org> References: <02f4d31057a13228a9a7c282234c24cb.NginxMailingListRussian@forum.nginx.org> Message-ID: <1321524210.4451.6.camel@N900> но зачем? Директория на месте, так что это не 404. А 403 в такой ситуации означает что "запрещен листинг". Листинг в свою очередь проверяется т.к. нет указанных индексов. Всё логично. On чт 17 ноя 2011 16:53:24 KRAT, estless wrote: > Понял, спасибо, значит буду 403 > приравнивать к 404 скорее всего > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,218455,218464#msg-218464 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, mva From nginx-forum на nginx.us Thu Nov 17 10:16:57 2011 From: nginx-forum на nginx.us (Tiberiy) Date: Thu, 17 Nov 2011 05:16:57 -0500 Subject: =?UTF-8?B?RnJlZUJTRCArIG5naW54ICsgcGhwLWZwbSAtINC30LDQtNC10YDQttC60LAg0L4=?= =?UTF-8?B?0YLQtNCw0YfQuCDQutC+0L3RgtC10L3RgtCwIDEuMi0xLjcg0YHQtdC6?= Message-ID: Привет, Алл. Взываю за помощью к вселенскому разуму. Имеется высоконагруженная система 5 фронтов nginx (Round-Robin) и 20 бэков nginx+php-fpm (в среднем 70-100 млн запросов в сутки). Тюнинг ОС произведен, настройки nginx тоже старался сделать оптимальными. Проблема возникает как на входе кластера так и при обращении напрямую на бэкэнд. Проблема не зависит от логики php срипта. Суть проблемы: Создаем простой файл пхп с одной строкой echo и оберткой в микротайм. Скорость обработки срипта php-fpm 0.002 сек. Скорость отдачи контента 1.2-1.7 сек. От нагрузки данная величина только увеличивается. Помогите... OS: FreeBSD 8.2 named запущен как кеширующий сервер с параметром '-n 2' в resolv.conf первой строкой идет nameserver 127.0.0.1 Для PHP 5.3.8 стоит акселератор APC. Ядро: amd64 GENERIC + включен POLLING и мелкая оптимизация: maxusers 512 options DEVICE_POLLING options HZ=1000 options NBUF=2048 options MAXDSIZ=(512*1024*1024) options DFLDSIZ=(128*1024*1024) options SOFTUPDATES Файлы: loader.conf: ahci_load="YES" aio_load="YES" geom_mirror_load="yes" geom_stripe_load="yes" geom_cache_load="yes" geom_label_load="yes" accf_http_load="yes" accf_data_load="yes" accf_dns_load="yes" coretemp_load="yes" if_em_load="yes" verbose_loading="yes" boot_verbose="yes" net.inet.ip.fw.default_to_accept=1 vm.kmem_size=4G kern.maxfiles=204800 kern.maxfilesperproc=200000 kern.ipc.maxsockets=204800 kern.ipc.nmbclusters=204800 kern.ipc.nmbjumbop=192000 kern.ipc.somaxconn=8192 kern.ipc.shmmax=2147483648 kern.ipc.maxsockbuf=10485760 kern.ipc.nsfbufs=10240 kern.maxvnodes=200000 kern.ps_arg_cache_limit=4096 vm.pmap.shpgperproc=2048 vm.pmap.pg_ps_enabled=1 hw.bge.allow_asf=1 loader_logo="beastie" net.inet.tcp.syncache.hashsize=1024 net.inet.tcp.syncache.bucketlimit=100 net.inet.tcp.tcbhashsize=32768 net.inet.tcp.syncache.cachelimit=65536 net.inet.tcp.hostcache.cachelimit=1966080 sysctl.conf net.inet.tcp.delayed_ack=0 net.inet.tcp.msl=30000 net.inet.tcp.fast_finwait2_recycle=1 net.inet.ip.intr_queue_maxlen=4096 net.inet.tcp.blackhole=2 net.inet.udp.blackhole=1 net.inet.tcp.recvspace=8192 net.inet.tcp.recvbuf_auto=0 net.inet.icmp.icmplim=100 net.inet.tcp.sendspace=16384 net.inet.tcp.sendbuf_auto=1 net.inet.tcp.sendbuf_inc=8192 net.inet.tcp.sendbuf_max=131072 net.inet.tcp.maxtcptw=102400 net.inet.tcp.nolocaltimewait=1 net.inet.tcp.syncookies=1 net.isr.direct=0 kern.polling.enable=1 net.inet.tcp.rfc3465=0 nginx.conf: user www; worker_processes 4; worker_rlimit_nofile 200000; worker_priority -1; timer_resolution 100ms; pid /var/run/nginx.pid; error_log /var/log/nginx-error.log error; events { worker_connections 50000; use kqueue; } http { log_format upstream '$upstream_addr | $request $status "$http_user_agent" [ $upstream_response_time ] $bytes_sent'; proxy_buffering off; resolver 127.0.0.1; aio sendfile; output_buffers 32 512k; sendfile_max_chunk 128k; postpone_output 1460; server_names_hash_bucket_size 64; reset_timedout_connection on; include mime.types; default_type application/octet-stream; proxy_read_timeout 20; proxy_send_timeout 10; proxy_connect_timeout 5; # log options log_format main '$remote_addr - $remote_user [$time_local] ' '"$request" $status $bytes_sent ' '"$http_referer" "$http_user_agent" ' '"$gzip_ratio" "$request_time"'; # nginx options sendfile on; tcp_nopush on; tcp_nodelay off; gzip_http_version 1.0; gzip off; gzip_min_length 1000; gzip_proxied any; gzip_types text/plain application/xhtml+xml text/xml application/xml application/xml+rss text/json; gzip_comp_level 5; # fastcgi fastcgi_intercept_errors on; fastcgi_max_temp_file_size 0; fastcgi_connect_timeout 3; fastcgi_read_timeout 15; fastcgi_send_timeout 10; ################################################################################ server { listen 199.216.115.123:80 accept_filter=httpready; server_name 199.216.115.123; access_log off; location ~ index\.php$ { fastcgi_pass unix:/tmp/fastcgi_sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /home/domain.com/public_html$fastcgi_script_name; include fastcgi_params; } location / { root /home/domain.com/public_html; index index.php index.html index.htm; } } ################################################################################ ################################################################################ ################################################################################ ################################################################################ } php-fpm: [global] pid = /var/run/php-fpm.pid log_level = warning emergency_restart_interval = 10m [www] listen = /tmp/fastcgi_sock user = www group = www pm = static pm.max_children = 1000 ;pm.start_servers = 40 pm.min_spare_servers = 5 pm.max_spare_servers = 1000 pm.max_requests = 1000 request_slowlog_timeout = 30s slowlog = /var/log/php-fpm.log.slow rlimit_files = 200000 ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www на my.domain.com ;php_flag[display_errors] = off ;php_admin_value[error_log] = /var/log/fpm-php.www.log ;php_admin_flag[log_errors] = on ;php_admin_value[memory_limit] = 32M php.ini: output_buffering = 131072 engine = On zend.ze1_compatibility_mode = Off asp_tags = Off precision = 14 y2k_compliance = On zlib.output_compression = Off unserialize_callback_func= serialize_precision = 100 allow_call_time_pass_reference = Off safe_mode = On safe_mode_gid = Off safe_mode_include_dir = safe_mode_exec_dir = safe_mode_allowed_env_vars = PHP_ safe_mode_protected_env_vars = LD_LIBRARY_PATH expose_php = On max_execution_time = 300 ; Maximum execution time of each script, in seconds max_input_time = 300 ; Maximum amount of time each script may spend parsing request data ;max_input_nesting_level = 64 ; Maximum input variable nesting level memory_limit = 32M ; Maximum amount of memory a script may consume (128MB) error_reporting = E_ERROR display_errors = Off display_startup_errors = Off log_errors = On log_errors_max_len = 1024 ignore_repeated_errors = Off ignore_repeated_source = Off track_errors = Off variables_order = "GPCS" register_globals = Off register_long_arrays = Off register_argc_argv = Off auto_globals_jit = On post_max_size = 8M magic_quotes_gpc = Off magic_quotes_runtime = Off magic_quotes_sybase = Off auto_prepend_file = auto_append_file = default_mimetype = "text/html" doc_root = user_dir = enable_dl = On cgi.fix_pathinfo=0 file_uploads = Off upload_max_filesize = 50M allow_url_fopen = On allow_url_include = Off default_socket_timeout = 120 define_syslog_variables = Off [SQL] sql.safe_mode = Off [MySQL] mysql.allow_persistent = On mysql.connect_timeout = 120 mysql.trace_mode = Off [MySQLi] mysqli.max_links = -1 mysqli.default_port = 3306 mysqli.reconnect = Off [Session] session.save_handler = files session.save_path = "/tmp" session.use_cookies = 1 session.name = PHPSESSID session.auto_start = 0 session.cookie_lifetime = 0 session.cookie_path = / session.cookie_domain = session.cookie_httponly = session.serialize_handler = php session.gc_probability = 0 session.gc_divisor = 1000 session.bug_compat_42 = 0 session.bug_compat_warn = 1 session.referer_check = session.entropy_length = 0 session.entropy_file = session.cache_limiter = nocache session.cache_expire = 180 session.use_trans_sid = 0 session.hash_function = 0 session.hash_bits_per_character = 5 [soap] soap.wsdl_cache_enabled=1 soap.wsdl_cache_dir="/tmp" soap.wsdl_cache_ttl=86400 disable_functions = symlink,shell_exec,exec,proc_close,proc_open,popen,system,dl,passthru,escapeshellarg,escapeshellcmd,shell_exec,myshellexec,c99_buff_prepare,c99_sess_ put,fpassthru Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218467,218467#msg-218467 From mdounin на mdounin.ru Thu Nov 17 10:20:29 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 17 Nov 2011 14:20:29 +0400 Subject: =?UTF-8?B?UmU6INC/0YDQviBwcm94eV9jYWNoZV91c2Vfc3RhbGU=?= In-Reply-To: <658108287.20111116223857@softsearch.ru> References: <658108287.20111116223857@softsearch.ru> Message-ID: <20111117102029.GN95664@mdounin.ru> Hello! On Wed, Nov 16, 2011 at 10:38:57PM +0400, Михаил Монашёв wrote: > Здравствуйте. > > Есть proxy_cache_use_stale timeout. Если бэкенд тормозит, то > возвращаем старый ответ из кэша. При этом ответ бэкенда, который может > ожил и что-то ответил, теряется. Было бы здорово иметь возможность > реализовать отдачу устаревшего ответа из кэша, если таймаут с бэкендом > превышает какой-то лимит. А ответ бэкенда потом записать в кэш, если > он пришёл. Сейчас такое поведение реализовать очень проблематично. Maxim Dounin From nginx-forum на nginx.us Thu Nov 17 10:22:19 2011 From: nginx-forum на nginx.us (Tiberiy) Date: Thu, 17 Nov 2011 05:22:19 -0500 Subject: =?UTF-8?B?UmU6IEZyZWVCU0QgKyBuZ2lueCArIHBocC1mcG0gLSDQt9Cw0LTQtdGA0LbQutCw?= =?UTF-8?B?INC+0YLQtNCw0YfQuCDQutC+0L3RgtC10L3RgtCwIDEuMi0xLjcg0YHQtdC6?= In-Reply-To: References: Message-ID: <8978a8176278960305c6015df3e00391.NginxMailingListRussian@forum.nginx.org> В догонку еще 1 тест. Мультикурлом дергаем в 20 потокв вход в кластер: Столбци: Поток; Сервер; Время получения результата на клиенте; Время выполнения php-скрипта на сервере 0 S:11 T:5.163631 ST:2.8530650138855 1 S:7 T:4.949292 ST:1.5861721038818 2 S:6 T:5.46344 ST:2.9643619060516 3 S:5 T:4.020186 ST:1.0468339920044 4 S:6 T:4.220308 ST:1.5997159481049 5 S:10 T:5.784765 ST:2.9568908214569 6 S:5 T:4.179218 ST:1.1576218605042 7 S:4 T:3.912981 ST:1.2010059356689 8 S:2 T:4.075031 ST:1.1015429496765 9 S:17 T:3.342459 ST:0.75841021537781 10 S:7 T:3.475291 ST:1.3679649829865 11 S:11 T:3.684844 ST:0.88114881515503 12 S:16 T:4.036618 ST:1.1452240943909 13 S:2 T:5.371412 ST:2.6710629463196 14 S:4 T:3.360258 ST:0.78744196891785 15 S:17 T:3.642439 ST:1.0576341152191 16 S:16 T:4.022763 ST:1.2747719287872 17 S:6 T:3.006451 ST:0.52034306526184 18 S:5 T:5.126349 ST:2.9623980522156 19 S:8 T:3.696887 ST:0.90220284461975 Картина мягко говоря удручающая... :( Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218467,218469#msg-218469 From ruslan.usifov на gmail.com Thu Nov 17 11:49:46 2011 From: ruslan.usifov на gmail.com (ruslan usifov) Date: Thu, 17 Nov 2011 15:49:46 +0400 Subject: =?UTF-8?B?cmV3cml0ZSDQuCDQuNCz0L3QvtGA0LjRgNC+0LLQsNC90LjQtSDQt9Cw0LPQvtC7?= =?UTF-8?B?0L7QstC60L7Qsg==?= Message-ID: Приветсвую! Столкнулся с такой проблемой В конфиге сервера описываю вродебы простойт rewrite: server { ......... rewrite ^/rest/([^\\\/\.]+)/*$ /rest/$1.php last; rewrite ^/rest/([^\\\/\.]+)/([^\\\/\.]+)/*$ /rest/$1_process.php?fid=$2 last; ......... location ~ \.php$ { fastcgi_pass unix:/tmp/php-fcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; include fastcgi_params; } } Все вообщем то прекрасно работает, кроме того момента что любые заголовки переадные скриптом наружу не передаються. Т.е предположим хочу php скриптом выдать Content-type: image/jpeg, а клиенту такой заголовок не выдается. Аналогичное касается X-Accel-Redirect, nginx не обрабатывает этот заголовок если происходит rewrite. Если же выдавать заколоки обычным скриптом без реврайтов то заголовки передаются PS: nginx 1.0.10 ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на nginx.us Thu Nov 17 12:12:13 2011 From: nginx-forum на nginx.us (anon) Date: Thu, 17 Nov 2011 07:12:13 -0500 Subject: upstream module + backup servers Message-ID: <3505fcbd729ebd78971669ea31155630.NginxMailingListRussian@forum.nginx.org> Здравствуйте уважаемые. Заметил одну вещь, и не могу пока понять? Есть один nginx и несколько 5-7 бекендов, некоторые из них самостоятельно "опускаются" в случае отсутвия нагрузки. Так вот я свято верил, что когда nginx получает от опущенного бекенда 50X или вообще его не видит, то он даже не пытается пускать туда трафик\людей. На практике оказалось что: request_time 21.142-->10.46.237.50:8081, 10.108.198.171:8081 Как видно мы пытаемся сначала пойти на бекенд, который давно в опущен и потом только на рабочий. Это баг или фича, и чего то недопонял? Используется nginx/1.0.9, upstream_module, метод ip_hash Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218478,218478#msg-218478 From nginx-forum на nginx.us Thu Nov 17 13:19:13 2011 From: nginx-forum на nginx.us (nadim) Date: Thu, 17 Nov 2011 08:19:13 -0500 Subject: =?UTF-8?B?0J/RgNC+0LHQu9C10LzQvNCwINGBIGd6aXA=?= Message-ID: <4f1a3438840843902867a594cbb75095.NginxMailingListRussian@forum.nginx.org> Поставил последний ngnix из репа dotdeb, Настроил на сервере семь сайтов, прописал директиву поначалу в http {}: gzip on; gzip_disable "MSIE [1-6]\.(?!.*SV1)"; gzip_comp_level 5; gzip_min_length 1000; gzip_buffers 8 16k; gzip_types text/plain application/xhtml+xml text/css application/xml application/xml+rss text/javascript; gzip_proxied any; Потом только обнаружил что ничего не сжимается с помощью гуглоспида. Переместил эти строчки в server {}, вроде заработало. Это раз. Для идеальности не хватало только gzip_static модуля, который я потом скомпилировал вместе со стабильной сборкой 1.1.10. После этого простой gzip вообще перестал работать, не говоря о статике. Скомпилировал 1.1.16, то же самое. Не работает до сих пор. Все конфиги здесь: http://dav.dpkg.info/nginx/ Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218481,218481#msg-218481 From mdounin на mdounin.ru Thu Nov 17 14:15:31 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 17 Nov 2011 18:15:31 +0400 Subject: upstream module + backup servers In-Reply-To: <3505fcbd729ebd78971669ea31155630.NginxMailingListRussian@forum.nginx.org> References: <3505fcbd729ebd78971669ea31155630.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111117141531.GR95664@mdounin.ru> Hello! On Thu, Nov 17, 2011 at 07:12:13AM -0500, anon wrote: > Здравствуйте уважаемые. Заметил одну > вещь, и не могу пока понять? > Есть один nginx и несколько 5-7 бекендов, > некоторые из них самостоятельно > "опускаются" в случае отсутвия > нагрузки. > > Так вот я свято верил, что когда nginx > получает от опущенного бекенда 50X или > вообще его не видит, то он даже не > пытается пускать туда трафик\людей. На > практике оказалось что: > > request_time 21.142-->10.46.237.50:8081, 10.108.198.171:8081 > > Как видно мы пытаемся сначала пойти на > бекенд, который давно в опущен и потом > только на рабочий. > > Это баг или фича, и чего то недопонял? > > Используется nginx/1.0.9, upstream_module, метод > ip_hash О том, что бекенд выключен, nginx узнает, только отправив на этот бекенд какой-то из запросов клиентов, и получив ошибку (точнее, заданное количество ошибок). Пока этого не произошло - бекенд считается работающим, и нагрузку на него отправляют в обычном порядке. (После того как произошло - бекенд будет считаться неработающим в течении времени fail_timeout для данного бекенда, по умолчанию 10 секунд. Подробнее см. [1].) [1] http://nginx.org/ru/docs/http/ngx_http_upstream_module.html#server Maxim Dounin From nginx-forum на nginx.us Thu Nov 17 14:20:44 2011 From: nginx-forum на nginx.us (Fixid) Date: Thu, 17 Nov 2011 09:20:44 -0500 Subject: =?UTF-8?B?MTAwMCDQuCAxINGB0L7QtdC00LjQvdC10L3QuNC1INGBINCx0LXQutGN0L3QtA==?= Message-ID: Сейчас Nginx устанавливет с бекэнд по одному соединению на каждый файл. Т.е. одно открытие страницы открывает более 50 соединений. Связь между ними по https. Если заходить мимо Nginx то открывается только одно соединение. Как это можно исправить? Или как можно сделать постоянный канал связи между серверами? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218485,218485#msg-218485 From mva на mva.name Thu Nov 17 14:26:12 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Thu, 17 Nov 2011 21:26:12 +0700 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LzQsCDRgSBnemlw?= In-Reply-To: <4f1a3438840843902867a594cbb75095.NginxMailingListRussian@forum.nginx.org> References: <4f1a3438840843902867a594cbb75095.NginxMailingListRussian@forum.nginx.org> Message-ID: <1321539972.4451.9.camel@N900> > 1.1.10 > 1.1.16 А не поделишься, где угнал машину времени? ;) -- С уважением, mva From mva на mva.name Thu Nov 17 14:28:37 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Thu, 17 Nov 2011 21:28:37 +0700 Subject: =?UTF-8?B?UmU6IDEwMDAg0LggMSDRgdC+0LXQtNC40L3QtdC90LjQtSDRgSDQsdC10LrRjdC9?= =?UTF-8?B?0LQ=?= In-Reply-To: References: Message-ID: <1321540117.4451.12.camel@N900> поставить более новый NginX (>=1.1.4). Там как раз добавили HTTP/1.1 для общения с бекендами. On чт 17 ноя 2011 21:20:44 KRAT, Fixid wrote: > Сейчас Nginx устанавливет с бекэнд по > одному соединению на каждый файл. > Т.е. одно открытие страницы открывает > более 50 соединений. Связь между ними по > https. > > Если заходить мимо Nginx то открывается > только одно соединение. > > Как это можно исправить? Или как можно > сделать постоянный канал связи между > серверами? > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,218485,218485#msg-218485 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, mva From citrin на citrin.ru Thu Nov 17 14:30:32 2011 From: citrin на citrin.ru (Anton Yuzhaninov) Date: Thu, 17 Nov 2011 18:30:32 +0400 Subject: =?UTF-8?B?UmU6IDEwMDAg0LggMSDRgdC+0LXQtNC40L3QtdC90LjQtSDRgSDQsdC10LrRjdC9?= =?UTF-8?B?0LQ=?= In-Reply-To: References: Message-ID: <4EC51A88.8020508@citrin.ru> On 11/17/11 18:20, Fixid wrote: > Сейчас Nginx устанавливет с бекэнд по > одному соединению на каждый файл. > Т.е. одно открытие страницы открывает > более 50 соединений. Связь между ними по > https. 1. Зачем так много запросов на одно открытие страницы? Если это картинки дизайна, то их лучше отдавать непосредственно nginx-ом, и с expires чтобы запрашивались только один раз. 2. Зачем между фронтендом и бэкендом https? Серверный сертификат nginx все равно не проверяет, так что безопасность в этом месте https не добавляет. -- Anton Yuzhaninov From nginx-forum на nginx.us Thu Nov 17 14:34:31 2011 From: nginx-forum на nginx.us (Fixid) Date: Thu, 17 Nov 2011 09:34:31 -0500 Subject: =?UTF-8?B?UmU6IDEwMDAg0LggMSDRgdC+0LXQtNC40L3QtdC90LjQtSDRgSDQsdC10LrRjdC9?= =?UTF-8?B?0LQ=?= In-Reply-To: References: Message-ID: Используется nginx/1.0.8 1. Зачем так много запросов на одно открытие страницы? Если это картинки дизайна, то их лучше отдавать непосредственно nginx-ом, и с expires чтобы запрашивались только один раз. Около 50% это картинки которые меняются раз в минуту 2. Они находятся в разных датацентрах + требование заказчика Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218485,218489#msg-218489 From nginx-forum на nginx.us Thu Nov 17 14:35:24 2011 From: nginx-forum на nginx.us (anon) Date: Thu, 17 Nov 2011 09:35:24 -0500 Subject: upstream module + backup servers In-Reply-To: <20111117141531.GR95664@mdounin.ru> References: <20111117141531.GR95664@mdounin.ru> Message-ID: <47d3e28e0ee0c2542eaca875d8438cd4.NginxMailingListRussian@forum.nginx.org> Maxim Dounin Wrote: ------------------------------------------------------- > Hello! > > On Thu, Nov 17, 2011 at 07:12:13AM -0500, anon > wrote: > > > Здравствуйте уважаемые. > Заметил одну > > вещь, и не могу пока > понять? > > Есть один nginx и несколько > 5-7 бекендов, > > некоторые из них > самостоятельно > > "опускаются" в случае > отсутвия > > нагрузки. > > > > Так вот я свято верил, что > когда nginx > > получает от опущенного > бекенда 50X или > > вообще его не видит, то он > даже не > > пытается пускать туда > трафик\людей. На > > практике оказалось что: > > > > request_time 21.142-->10.46.237.50:8081, > 10.108.198.171:8081 > > > > Как видно мы пытаемся > сначала пойти на > > бекенд, который давно в > опущен и потом > > только на рабочий. > > > > Это баг или фича, и чего то > недопонял? > > > > Используется nginx/1.0.9, > upstream_module, метод > > ip_hash > > О том, что бекенд выключен, > nginx узнает, только отправив > на этот > бекенд какой-то из запросов > клиентов, и получив ошибку > (точнее, > заданное количество > ошибок). Пока этого не > произошло - бекенд > считается работающим, и > нагрузку на него > отправляют в обычном > порядке. > > (После того как произошло - > бекенд будет считаться > неработающим > в течении времени fail_timeout > для данного бекенда, по > умолчанию > 10 секунд. Подробнее см. [1].) > > [1] > http://nginx.org/ru/docs/http/ngx_http_upstream_mo > dule.html#server > > Maxim Dounin > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Т.е. правильно ли я понимаю, что если планируется выключать бекенд на долго, то лучше менять в конфиге эти сервера на down, т.к. в любом случае после времени заданном в fail_timeout nginx будет снова пытаться отправить туда пакеты, что бы проверить состояние сервера? Что будет создавать нежелательную задержку некоторых пакетов например раз в 30 сек, если задана директива fail_timeout=30s. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218478,218490#msg-218490 From mdounin на mdounin.ru Thu Nov 17 14:37:40 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 17 Nov 2011 18:37:40 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LzQsCDRgSBnemlw?= In-Reply-To: <4f1a3438840843902867a594cbb75095.NginxMailingListRussian@forum.nginx.org> References: <4f1a3438840843902867a594cbb75095.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111117143740.GS95664@mdounin.ru> Hello! On Thu, Nov 17, 2011 at 08:19:13AM -0500, nadim wrote: > Поставил последний ngnix из репа dotdeb, > Настроил на сервере семь сайтов, > прописал директиву поначалу в http {}: > gzip on; > gzip_disable "MSIE [1-6]\.(?!.*SV1)"; > gzip_comp_level 5; > gzip_min_length 1000; > gzip_buffers 8 16k; > gzip_types text/plain application/xhtml+xml text/css > application/xml application/xml+rss text/javascript; > gzip_proxied any; > > > Потом только обнаружил что ничего не > сжимается с помощью гуглоспида. > Переместил эти строчки в server {}, вроде > заработало. Это раз. > > Для идеальности не хватало только > gzip_static модуля, который я потом > скомпилировал вместе со стабильной > сборкой 1.1.10. После этого простой gzip > вообще перестал работать, не говоря о > статике. Скомпилировал 1.1.16, то же самое. > Не работает до сих пор. > > Все конфиги здесь: http://dav.dpkg.info/nginx/ Под "ничего не сжимается", вероятно, имеются ввиду ресурсы с типом "application/x-javascript", который у вас в gzip_types не упомянут? Maxim Dounin From kaa на zvuki.ru Thu Nov 17 14:42:32 2011 From: kaa на zvuki.ru (Andrey Kopeyko) Date: Thu, 17 Nov 2011 18:42:32 +0400 Subject: upstream module + backup servers In-Reply-To: <47d3e28e0ee0c2542eaca875d8438cd4.NginxMailingListRussian@forum.nginx.org> References: <20111117141531.GR95664@mdounin.ru> <47d3e28e0ee0c2542eaca875d8438cd4.NginxMailingListRussian@forum.nginx.org> Message-ID: <4EC51D58.4030102@zvuki.ru> 17.11.2011 18:35, anon пишет: > Maxim Dounin Wrote: > >> О том, что бекенд выключен, >> nginx узнает, только отправив >> на этот >> бекенд какой-то из запросов >> клиентов, и получив ошибку >> (точнее, >> заданное количество >> ошибок). Пока этого не >> произошло - бекенд >> считается работающим, и >> нагрузку на него >> отправляют в обычном >> порядке. >> >> (После того как произошло - >> бекенд будет считаться >> неработающим >> в течении времени fail_timeout >> для данного бекенда, по >> умолчанию >> 10 секунд. Подробнее см. [1].) >> >> [1] >> http://nginx.org/ru/docs/http/ngx_http_upstream_mo >> dule.html#server >> > > Т.е. правильно ли я понимаю, что если > планируется выключать бекенд на долго, > то лучше менять в конфиге эти сервера > на down, Обязательно, ибо это не падение бэкенда, а ваш умысел. И нет другого способа оповестить nginx об этом. > т.к. в любом случае после времени > заданном в fail_timeout nginx будет снова > пытаться отправить туда пакеты, что бы > проверить состояние сервера? Что будет > создавать нежелательную задержку > некоторых пакетов например раз в 30 сек, > если задана директива fail_timeout=30s. Задержка будет на время proxy_connect_timeout + время ответа другого бэкенда. -- Best regards, Andrey Kopeyko From mdounin на mdounin.ru Thu Nov 17 14:47:30 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 17 Nov 2011 18:47:30 +0400 Subject: upstream module + backup servers In-Reply-To: <47d3e28e0ee0c2542eaca875d8438cd4.NginxMailingListRussian@forum.nginx.org> References: <20111117141531.GR95664@mdounin.ru> <47d3e28e0ee0c2542eaca875d8438cd4.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111117144730.GT95664@mdounin.ru> Hello! On Thu, Nov 17, 2011 at 09:35:24AM -0500, anon wrote: > Maxim Dounin Wrote: [...] > > О том, что бекенд выключен, > > nginx узнает, только отправив > > на этот > > бекенд какой-то из запросов > > клиентов, и получив ошибку > > (точнее, > > заданное количество > > ошибок). Пока этого не > > произошло - бекенд > > считается работающим, и > > нагрузку на него > > отправляют в обычном > > порядке. > > > > (После того как произошло - > > бекенд будет считаться > > неработающим > > в течении времени fail_timeout > > для данного бекенда, по > > умолчанию > > 10 секунд. Подробнее см. [1].) > > > > [1] > > http://nginx.org/ru/docs/http/ngx_http_upstream_mo > > dule.html#server > > Т.е. правильно ли я понимаю, что если > планируется выключать бекенд на долго, > то лучше менять в конфиге эти сервера > на down, т.к. в любом случае после времени > заданном в fail_timeout nginx будет снова > пытаться отправить туда пакеты, что бы > проверить состояние сервера? Что будет > создавать нежелательную задержку > некоторых пакетов например раз в 30 сек, > если задана директива fail_timeout=30s. Да. В 1.1.6 логика проверки после fail_timeout несколько улучшена (после fail_timeout на бекенд отправляется только один запрос, и в работу он включается только если этот запрос успешно отработает), но в любом случае при штатном выключении бекендов - лучше об этом nginx'у явно сообщать. Maxim Dounin From mva на mva.name Thu Nov 17 14:53:16 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Thu, 17 Nov 2011 21:53:16 +0700 Subject: =?UTF-8?B?UmU6IDEwMDAg0LggMSDRgdC+0LXQtNC40L3QtdC90LjQtSDRgSDQsdC10LrRjdC9?= =?UTF-8?B?0LQ=?= In-Reply-To: References: Message-ID: <1321541596.4451.15.camel@N900> > Используется nginx/1.0.8 Я, конечно, прошу прощения, но я не понимаю, каким образом данная фраза может быть ответом на явное указание поставить >=1.1.4... -- С уважением, mva From nginx-forum на nginx.us Thu Nov 17 15:07:24 2011 From: nginx-forum на nginx.us (nadim) Date: Thu, 17 Nov 2011 10:07:24 -0500 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LzQsCDRgSBnemlw?= In-Reply-To: <1321539972.4451.9.camel@N900> References: <1321539972.4451.9.camel@N900> Message-ID: <487ff673f5e6746293e6793c2d9804ef.NginxMailingListRussian@forum.nginx.org> Хм, напутал. 1.1.8 Извинити. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218481,218495#msg-218495 From nginx-forum на nginx.us Thu Nov 17 15:09:04 2011 From: nginx-forum на nginx.us (Fixid) Date: Thu, 17 Nov 2011 10:09:04 -0500 Subject: =?UTF-8?B?UmU6IDEwMDAg0LggMSDRgdC+0LXQtNC40L3QtdC90LjQtSDRgSDQsdC10LrRjdC9?= =?UTF-8?B?0LQ=?= In-Reply-To: References: Message-ID: <49c947e4e876d36fc378221662e3fc11.NginxMailingListRussian@forum.nginx.org> Обновил до версии nginx/1.1.7, колличество соединений осталось прежним. Перестал работать Gzip Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218485,218496#msg-218496 From nginx-forum на nginx.us Thu Nov 17 15:11:57 2011 From: nginx-forum на nginx.us (nadim) Date: Thu, 17 Nov 2011 10:11:57 -0500 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LzQsCDRgSBnemlw?= In-Reply-To: <20111117143740.GS95664@mdounin.ru> References: <20111117143740.GS95664@mdounin.ru> Message-ID: <5e374e89da0028e4d789dc535ba7d09c.NginxMailingListRussian@forum.nginx.org> https://developers.google.com/pagespeed/#url=http_3A_2F_2Fdigitup.se_2F&mobile=false Хм, да. В основном жаваскрипт не сжимается судя по всему, упомянутый выше тип добавил, то же самое. Статик тоже не работает. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218481,218497#msg-218497 From ne на vbart.ru Thu Nov 17 15:21:46 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Thu, 17 Nov 2011 19:21:46 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LzQsCDRgSBnemlw?= In-Reply-To: <5e374e89da0028e4d789dc535ba7d09c.NginxMailingListRussian@forum.nginx.org> References: <20111117143740.GS95664@mdounin.ru> <5e374e89da0028e4d789dc535ba7d09c.NginxMailingListRussian@forum.nginx.org> Message-ID: <201111171921.46420.ne@vbart.ru> On Thursday 17 November 2011 19:11:57 nadim wrote: > https://developers.google.com/pagespeed/#url=http_3A_2F_2Fdigitup.se_2F&mob > ile=false Хм, да. В основном жаваскрипт не > сжимается судя по всему, упомянутый > выше тип добавил, то же самое. Статик > тоже не работает. Гугл вас обманывает. Пользуйтесь более простыми инструментами. GET /wp-content/themes/digitup/lib/jquery-1.3.2.min.js HTTP/1.1 Host: digitup.se Accept-Encoding: gzip HTTP/1.1 200 OK Server: nginx/1.1.8 Date: Thu, 17 Nov 2011 15:19:53 GMT Content-Type: application/x-javascript Last-Modified: Sun, 25 Apr 2010 19:19:49 GMT Transfer-Encoding: chunked Connection: keep-alive Vary: Accept-Encoding Expires: Thu, 31 Dec 2037 23:55:55 GMT Cache-Control: max-age=315360000 Content-Encoding: gzip -- Валентин Бартенев From drug на qwarta.ru Thu Nov 17 17:06:27 2011 From: drug на qwarta.ru (=?koi8-r?B?5NXHyc4g88XSx8XK?=) Date: Thu, 17 Nov 2011 21:06:27 +0400 Subject: =?UTF-8?B?bG9jYXRpb24g0Lgg0YDRg9GB0YHQutC40LUg0LHRg9C60LLRiw==?= In-Reply-To: <201111171921.46420.ne@vbart.ru> References: <20111117143740.GS95664@mdounin.ru> <5e374e89da0028e4d789dc535ba7d09c.NginxMailingListRussian@forum.nginx.org> <201111171921.46420.ne@vbart.ru> Message-ID: <473176076.20111117210627@qwarta.ru> Здравствуйте. В логе есть такие строки 188.32.21.102 - - [17/Nov/2011:21:03:50 +0400] "GET /published/publicdata/LEGOBOX/attachments/SC/products_pictures/LEGO-Belville-%D0%BE%D0%B1%D0%B7%D0%BE%D1%80-vPoiskePodarka.ru_1wg.jpg HTTP/1.0" 200 404 "" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0" 91.76.161.101 - - [17/Nov/2011:21:03:58 +0400] "GET /published/publicdata/LEGOBOX/attachments/SC/products_pictures/LEGO-Belville-%D0%BE%D0%B1%D0%B7%D0%BE%D1%80-vPoiskePodarka.ru_1wg.jpg HTTP/1.0" 200 404 "" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; MAAU)" в nginx.conf есть такое правило location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|ico|otf)$ { root /home/mit/data/www/; access_log /home/httpd-logs/access.log ; } у файла LEGO-Belville-%D0%BE%D0%B1%D0%B7%D0%BE%D1%80-vPoiskePodarka.ru_1wg.jpg расширение .jpg однако оно этим правилом не отрабатывается, в чем подвох не подскажите? -- С уважением, Дугин Сергей mailto:drug на qwarta.ru QWARTA From ne на vbart.ru Thu Nov 17 17:21:01 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Thu, 17 Nov 2011 21:21:01 +0400 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINC4INGA0YPRgdGB0LrQuNC1INCx0YPQutCy0Ys=?= In-Reply-To: <473176076.20111117210627@qwarta.ru> References: <20111117143740.GS95664@mdounin.ru> <201111171921.46420.ne@vbart.ru> <473176076.20111117210627@qwarta.ru> Message-ID: <201111172121.01590.ne@vbart.ru> On Thursday 17 November 2011 21:06:27 Дугин Сергей wrote: [...] > однако оно этим правилом не отрабатывается, в чем подвох не > подскажите? Попробуйте это: location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|ico|otf)$ { заменить на: location ~* \.(jpe?g|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|ico|otf)$ { -- Валентин Бартенев From drug на qwarta.ru Thu Nov 17 17:30:33 2011 From: drug на qwarta.ru (=?koi8-r?B?5NXHyc4g88XSx8XK?=) Date: Thu, 17 Nov 2011 21:30:33 +0400 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINC4INGA0YPRgdGB0LrQuNC1INCx0YPQutCy0Ys=?= In-Reply-To: <201111172121.01590.ne@vbart.ru> References: <20111117143740.GS95664@mdounin.ru> <201111171921.46420.ne@vbart.ru> <473176076.20111117210627@qwarta.ru> <201111172121.01590.ne@vbart.ru> Message-ID: <535369292.20111117213033@qwarta.ru> Здравствуйте, Валентин. пробовал тоже самое не срабатывает nginx: nginx version: nginx/1.0.10 uname -a Linux mitjas.qwarta.ru 2.6.32-5-xen-amd64 #1 SMP Fri Sep 9 22:23:19 UTC 2011 x86_64 GNU/Linux Вы писали 17 ноября 2011 г., 21:21:01: > On Thursday 17 November 2011 21:06:27 Дугин Сергей wrote: > [...] >> однако оно этим правилом не отрабатывается, в чем подвох не >> подскажите? > Попробуйте это: > location ~* > ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|ico|otf)$ > заменить на: > location ~* > \.(jpe?g|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|ico|otf)$ > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, Дугин Сергей mailto:drug на qwarta.ru QWARTA From nginx-forum на nginx.us Thu Nov 17 17:39:45 2011 From: nginx-forum на nginx.us (nadim) Date: Thu, 17 Nov 2011 12:39:45 -0500 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LzQsCDRgSBnemlw?= In-Reply-To: <201111171921.46420.ne@vbart.ru> References: <201111171921.46420.ne@vbart.ru> Message-ID: <9790804486660c700a0e9b91fb90c2a6.NginxMailingListRussian@forum.nginx.org> А как мне угодить гуглу?:) Хочу чтобы он был доволен. Олсо, проверьте пожалуйста, статика тоже сжимается? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218481,218504#msg-218504 From ne на vbart.ru Thu Nov 17 18:45:20 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Thu, 17 Nov 2011 22:45:20 +0400 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINC4INGA0YPRgdGB0LrQuNC1INCx0YPQutCy0Ys=?= In-Reply-To: <535369292.20111117213033@qwarta.ru> References: <20111117143740.GS95664@mdounin.ru> <201111172121.01590.ne@vbart.ru> <535369292.20111117213033@qwarta.ru> Message-ID: <201111172245.20929.ne@vbart.ru> On Thursday 17 November 2011 21:30:33 Дугин Сергей wrote: > Здравствуйте, Валентин. > > пробовал тоже самое не срабатывает > > nginx: nginx version: nginx/1.0.10 > > uname -a > Linux mitjas.qwarta.ru 2.6.32-5-xen-amd64 #1 SMP Fri Sep 9 22:23:19 UTC > 2011 x86_64 GNU/Linux > > Вы писали 17 ноября 2011 г., 21:21:01: > > On Thursday 17 November 2011 21:06:27 Дугин Сергей wrote: > > [...] > > > >> однако оно этим правилом не отрабатывается, в чем подвох не > >> подскажите? А почему вы решили, что оно не попадает в данный локейшн? Вы смотрели error log? Я думаю, что оно попадает, просто указанного файла не находит, запрос декодируется и он ищет файл: "LEGO-Belville-обзор-vPoiskePodarka.ru_1wg.jpg", а у вас, я так понял: LEGO-Belville-%D0%BE%D0%B1%D0%B7%D0%BE%D1%80-vPoiskePodarka.ru_1wg.jpg А если все-таки не попадает, то нужен полный конфиг, чтобы понять, куда оно тогда попадает. Ещё debug log можно посмотреть. -- Валентин Бартенев From igor на sysoev.ru Thu Nov 17 18:48:38 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Thu, 17 Nov 2011 22:48:38 +0400 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINC4INGA0YPRgdGB0LrQuNC1INCx0YPQutCy0Ys=?= In-Reply-To: <473176076.20111117210627@qwarta.ru> References: <20111117143740.GS95664@mdounin.ru> <5e374e89da0028e4d789dc535ba7d09c.NginxMailingListRussian@forum.nginx.org> <201111171921.46420.ne@vbart.ru> <473176076.20111117210627@qwarta.ru> Message-ID: <20111117184837.GC25868@nginx.com> On Thu, Nov 17, 2011 at 09:06:27PM +0400, Дугин Сергей wrote: > Здравствуйте. > > В логе есть такие строки > 188.32.21.102 - - [17/Nov/2011:21:03:50 +0400] "GET /published/publicdata/LEGOBOX/attachments/SC/products_pictures/LEGO-Belville-%D0%BE%D0%B1%D0%B7%D0%BE%D1%80-vPoiskePodarka.ru_1wg.jpg HTTP/1.0" 200 404 "" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0" > 91.76.161.101 - - [17/Nov/2011:21:03:58 +0400] "GET /published/publicdata/LEGOBOX/attachments/SC/products_pictures/LEGO-Belville-%D0%BE%D0%B1%D0%B7%D0%BE%D1%80-vPoiskePodarka.ru_1wg.jpg HTTP/1.0" 200 404 "" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; MAAU)" > > в nginx.conf есть такое правило > > location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|ico|otf)$ { > root /home/mit/data/www/; > access_log /home/httpd-logs/access.log ; > } > > у файла > LEGO-Belville-%D0%BE%D0%B1%D0%B7%D0%BE%D1%80-vPoiskePodarka.ru_1wg.jpg > расширение .jpg > однако оно этим правилом не отрабатывается, в чем подвох не > подскажите? Имя "LEGO-Belville-обзор-vPoiskePodarka.ru_1wg.jpg" на файловой системе должно быть в UTF-8. -- Игорь Сысоев http://sysoev.ru From hell-for-yahoo на umail.ru Thu Nov 17 18:41:59 2011 From: hell-for-yahoo на umail.ru (Andrey Repin) Date: Thu, 17 Nov 2011 22:41:59 +0400 Subject: Проблемма с gzip In-Reply-To: <9790804486660c700a0e9b91fb90c2a6.NginxMailingListRussian@forum.nginx.org> References: <201111171921.46420.ne@vbart.ru> <9790804486660c700a0e9b91fb90c2a6.NginxMailingListRussian@forum.nginx.org> Message-ID: <109902277.20111117224159@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) nadim! n> А как мне угодить гуглу?:) n> Хочу чтобы он был доволен. Олсо, n> проверьте пожалуйста, статика тоже n> сжимается? Сами проверьте. curl -iIH "Accept-Encoding: deflate, gzip" http://вашсайт/вашресурс -- С уважением Andrey Repin (hell-for-yahoo на umail.ru) четверг, 17.11.2011, <22:39> From drug на qwarta.ru Thu Nov 17 19:14:25 2011 From: drug на qwarta.ru (=?koi8-r?B?5NXHyc4g88XSx8XK?=) Date: Thu, 17 Nov 2011 23:14:25 +0400 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINC4INGA0YPRgdGB0LrQuNC1INCx0YPQutCy0Ys=?= In-Reply-To: <20111117184837.GC25868@nginx.com> References: <20111117143740.GS95664@mdounin.ru> <5e374e89da0028e4d789dc535ba7d09c.NginxMailingListRussian@forum.nginx.org> <201111171921.46420.ne@vbart.ru> <473176076.20111117210627@qwarta.ru> <20111117184837.GC25868@nginx.com> Message-ID: <63000270.20111117231425@qwarta.ru> Здравствуйте, Igor. Да, вы были правы, я в истории видел ваши ответы про UTF-8, но не проверил как файл выглядит, видимо сотрудник залил в кодировке cp1251 на utf8 Вы писали 17 ноября 2011 г., 22:48:38: > On Thu, Nov 17, 2011 at 09:06:27PM +0400, Дугин Сергей wrote: >> Здравствуйте. >> >> В логе есть такие строки >> 188.32.21.102 - - [17/Nov/2011:21:03:50 +0400] "GET /published/publicdata/LEGOBOX/attachments/SC/products_pictures/LEGO-Belville-%D0%BE%D0%B1%D0%B7%D0%BE%D1%80-vPoiskePodarka.ru_1wg.jpg HTTP/1.0" 200 404 "" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0" >> 91.76.161.101 - - [17/Nov/2011:21:03:58 +0400] "GET /published/publicdata/LEGOBOX/attachments/SC/products_pictures/LEGO-Belville-%D0%BE%D0%B1%D0%B7%D0%BE%D1%80-vPoiskePodarka.ru_1wg.jpg HTTP/1.0" 200 404 "" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; MAAU)" >> >> в nginx.conf есть такое правило >> >> location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|ico|otf)$ { >> root /home/mit/data/www/; >> access_log /home/httpd-logs/access.log ; >> } >> >> у файла >> LEGO-Belville-%D0%BE%D0%B1%D0%B7%D0%BE%D1%80-vPoiskePodarka.ru_1wg.jpg >> расширение .jpg >> однако оно этим правилом не отрабатывается, в чем подвох не >> подскажите? > Имя "LEGO-Belville-обзор-vPoiskePodarka.ru_1wg.jpg" на файловой > системе должно быть в UTF-8. -- С уважением, Дугин Сергей mailto:drug на qwarta.ru QWARTA From nginx-forum на nginx.us Thu Nov 17 21:43:18 2011 From: nginx-forum на nginx.us (nadim) Date: Thu, 17 Nov 2011 16:43:18 -0500 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LzQsCDRgSBnemlw?= In-Reply-To: <4f1a3438840843902867a594cbb75095.NginxMailingListRussian@forum.nginx.org> References: <4f1a3438840843902867a594cbb75095.NginxMailingListRussian@forum.nginx.org> Message-ID: gzip static не работает, в папках с картинками нет файлов .gz ЧЯДНТ? И всё же, как мне сделать так, чтобы гугл похвалил мою работу? https://developers.google.com/pagespeed/#url=http_3A_2F_2Fdigitup.se_2F&mobile=false Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218481,218516#msg-218516 From roman.vasilyev на yousendit.com Thu Nov 17 23:05:47 2011 From: roman.vasilyev на yousendit.com (Roman Vasilyev) Date: Thu, 17 Nov 2011 15:05:47 -0800 Subject: =?UTF-8?B?0L/RgNC10L7QsdGA0LDQt9C+0LLQsNC90LjQtSBHRVQg0LIgU09BUCDQuCDQvtCx?= =?UTF-8?B?0YDQsNGC0L3Qvg==?= Message-ID: <4EC5934B.4010200@yousendit.com> Возникла мысль воткнуть такой фильтр что бы упростить себе жизнь с преобразованием Java штук в моих проэктах. Собственно чего бы хотелось: получаешь запрос типа http://host/blah?id=1&user=123&e.t.c. оно его конвертит в POST SOAP и отправляет на backend, получив ответ преобразовываешь его обратно с помощью xslt фильтра встренного в NGINX. Тоесть потенциальная конфигурация была бы. location = /blah { soap_pass 1.2.3.4; set_soap_param id $arg_id; .... xslt_stylesheet /site/xslt/one.xslt $arg_xslt_params param1='$value1': param2=value2 param3=value3; } Понимая, что скорее всего уже как обычно написано или имеет потенциально близкую реализацию перед тем как изобретать велосипед хочу спросить знающих людей. * Сделано ли такое уже? * Если да то куда смотреть? * Если нет то что наиболее близкое можно было бы использовать? Как вариант наверное embedded_perl но у меня он кушает память на допотопных CentOS которые мне никто не даст снести к чертям собачим из аменить фрей :(. * Если писать самому, может ли это быть комунибудь интересно еще, что бы выложить модуль и пошарить с людьми? From roman.vasilyev на yousendit.com Thu Nov 17 23:07:52 2011 From: roman.vasilyev на yousendit.com (Roman Vasilyev) Date: Thu, 17 Nov 2011 15:07:52 -0800 Subject: =?UTF-8?B?UmU6INC/0YDQtdC+0LHRgNCw0LfQvtCy0LDQvdC40LUgR0VUINCyIFNPQVAg0Lgg?= =?UTF-8?B?0L7QsdGA0LDRgtC90L4=?= In-Reply-To: <4EC5934B.4010200@yousendit.com> References: <4EC5934B.4010200@yousendit.com> Message-ID: <4EC593C8.8080203@yousendit.com> On 11/17/2011 03:05 PM, Roman Vasilyev wrote: > Возникла мысль воткнуть такой фильтр что бы упростить себе жизнь с > преобразованием Java штук в моих проэктах. > > Собственно чего бы хотелось: > получаешь запрос типа http://host/blah?id=1&user=123&e.t.c. > оно его конвертит в POST SOAP и отправляет на backend, получив ответ > преобразовываешь его обратно с помощью xslt фильтра встренного в NGINX. > Тоесть потенциальная конфигурация была бы. > > location = /blah { > soap_pass 1.2.3.4; Тут наверное даже ненужен soap_pass а достаточно proxy_pass и его обвязки, хотя если можно сформировать POST руками в конфиге, то тогда и писать ничего ненадо. > set_soap_param id $arg_id; > .... > xslt_stylesheet /site/xslt/one.xslt > $arg_xslt_params > param1='$value1': param2=value2 > param3=value3; > } > > Понимая, что скорее всего уже как обычно написано или имеет > потенциально близкую реализацию перед тем как изобретать велосипед > хочу спросить знающих людей. > * Сделано ли такое уже? > * Если да то куда смотреть? > * Если нет то что наиболее близкое можно было бы использовать? Как > вариант наверное embedded_perl но у меня он кушает память на > допотопных CentOS которые мне никто не даст снести к чертям собачим из > аменить фрей :(. > * Если писать самому, может ли это быть комунибудь интересно еще, что > бы выложить модуль и пошарить с людьми? > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From roman.vasilyev на yousendit.com Thu Nov 17 23:09:45 2011 From: roman.vasilyev на yousendit.com (Roman Vasilyev) Date: Thu, 17 Nov 2011 15:09:45 -0800 Subject: =?UTF-8?B?UmU6INC/0YDQtdC+0LHRgNCw0LfQvtCy0LDQvdC40LUgR0VUINCyIFNPQVAg0Lgg?= =?UTF-8?B?0L7QsdGA0LDRgtC90L4=?= In-Reply-To: <4EC5934B.4010200@yousendit.com> References: <4EC5934B.4010200@yousendit.com> Message-ID: <4EC59439.7080405@yousendit.com> Так и есть, proxy_set_body спасибо за внимание, сам спросил сам себе ответил :) Правильно заданный вопрос содержит в себе ответ :) On 11/17/2011 03:05 PM, Roman Vasilyev wrote: > Возникла мысль воткнуть такой фильтр что бы упростить себе жизнь с > преобразованием Java штук в моих проэктах. > > Собственно чего бы хотелось: > получаешь запрос типа http://host/blah?id=1&user=123&e.t.c. > оно его конвертит в POST SOAP и отправляет на backend, получив ответ > преобразовываешь его обратно с помощью xslt фильтра встренного в NGINX. > Тоесть потенциальная конфигурация была бы. > > location = /blah { > soap_pass 1.2.3.4; > set_soap_param id $arg_id; > .... > xslt_stylesheet /site/xslt/one.xslt > $arg_xslt_params > param1='$value1': param2=value2 > param3=value3; > } > > Понимая, что скорее всего уже как обычно написано или имеет > потенциально близкую реализацию перед тем как изобретать велосипед > хочу спросить знающих людей. > * Сделано ли такое уже? > * Если да то куда смотреть? > * Если нет то что наиболее близкое можно было бы использовать? Как > вариант наверное embedded_perl но у меня он кушает память на > допотопных CentOS которые мне никто не даст снести к чертям собачим из > аменить фрей :(. > * Если писать самому, может ли это быть комунибудь интересно еще, что > бы выложить модуль и пошарить с людьми? > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From zzz на zzz.org.ua Thu Nov 17 23:20:22 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Fri, 18 Nov 2011 01:20:22 +0200 Subject: =?UTF-8?B?UmU6INC/0YDQtdC+0LHRgNCw0LfQvtCy0LDQvdC40LUgR0VUINCyIFNPQVAg0Lgg?= =?UTF-8?B?0L7QsdGA0LDRgtC90L4=?= In-Reply-To: <4EC59439.7080405@yousendit.com> References: <4EC5934B.4010200@yousendit.com> <4EC59439.7080405@yousendit.com> Message-ID: On Fri, Nov 18, 2011 at 1:09 AM, Roman Vasilyev wrote: > Так и есть, proxy_set_body > спасибо за внимание, сам спросил сам себе ответил :) А разве для SOAP не надо эскейпить? >> Собственно чего бы хотелось: >>  получаешь запрос типа http://host/blah?id=1&user=123&e.t.c. >> оно его конвертит в POST SOAP и отправляет на backend, получив ответ >> преобразовываешь его обратно с помощью xslt фильтра встренного в NGINX. >> Тоесть потенциальная конфигурация была бы. From roman.vasilyev на yousendit.com Thu Nov 17 23:26:44 2011 From: roman.vasilyev на yousendit.com (Roman Vasilyev) Date: Thu, 17 Nov 2011 15:26:44 -0800 Subject: =?UTF-8?B?UmU6INC/0YDQtdC+0LHRgNCw0LfQvtCy0LDQvdC40LUgR0VUINCyIFNPQVAg0Lgg?= =?UTF-8?B?0L7QsdGA0LDRgtC90L4=?= In-Reply-To: References: <4EC5934B.4010200@yousendit.com> <4EC59439.7080405@yousendit.com> Message-ID: <4EC59834.3000709@yousendit.com> Наверное надо, но по крайней мере тут уже будет идти речь о модуле ескейпинга, который уверен уже есть, опять же это можно сделать на embedded PERL, а может в новой версии отца создатели могут добавить какуюнибудь опцию для mod_rewrite или еще куда что бы поескейпить или дописать чтонибудь типа mod_json. On 11/17/2011 03:20 PM, Alexandr Gomoliako wrote: > On Fri, Nov 18, 2011 at 1:09 AM, Roman Vasilyev > wrote: > >> Так и есть, proxy_set_body >> спасибо за внимание, сам спросил сам себе ответил :) >> > А разве для SOAP не надо эскейпить? > > >>> Собственно чего бы хотелось: >>> получаешь запрос типа http://host/blah?id=1&user=123&e.t.c. >>> оно его конвертит в POST SOAP и отправляет на backend, получив ответ >>> преобразовываешь его обратно с помощью xslt фильтра встренного в NGINX. >>> Тоесть потенциальная конфигурация была бы. >>> > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From zzz на zzz.org.ua Thu Nov 17 23:37:32 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Fri, 18 Nov 2011 01:37:32 +0200 Subject: =?UTF-8?B?UmU6INC/0YDQtdC+0LHRgNCw0LfQvtCy0LDQvdC40LUgR0VUINCyIFNPQVAg0Lgg?= =?UTF-8?B?0L7QsdGA0LDRgtC90L4=?= In-Reply-To: <4EC59834.3000709@yousendit.com> References: <4EC5934B.4010200@yousendit.com> <4EC59439.7080405@yousendit.com> <4EC59834.3000709@yousendit.com> Message-ID: On Fri, Nov 18, 2011 at 1:26 AM, Roman Vasilyev wrote: > Наверное надо, но по крайней мере тут уже будет идти речь о модуле > ескейпинга, который уверен уже есть, опять же это можно сделать на embedded > PERL, а может в новой версии отца создатели могут добавить какуюнибудь опцию > для mod_rewrite или еще куда что бы поескейпить или дописать чтонибудь типа > mod_json. Кстати, с json'ом все хорошо, в openresty с ним очень много всего можно делать: openresty.org From mdounin на mdounin.ru Thu Nov 17 23:39:25 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 18 Nov 2011 03:39:25 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LzQsCDRgSBnemlw?= In-Reply-To: References: <4f1a3438840843902867a594cbb75095.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111117233925.GV95664@mdounin.ru> Hello! On Thu, Nov 17, 2011 at 04:43:18PM -0500, nadim wrote: > gzip static не работает, в папках с > картинками нет файлов .gz > ЧЯДНТ? Вы его туда не положили? JFYI: gzip static ничего не жмёт сам, он лишь смотрит на наличие файла .gz - и отдаёт его, если такой файл есть. http://nginx.org/ru/docs/http/ngx_http_gzip_static_module.html Maxim Dounin From public-mail на alekciy.ru Fri Nov 18 01:07:17 2011 From: public-mail на alekciy.ru (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0KHRg9C90LTRg9C60L7Qsg==?=) Date: Fri, 18 Nov 2011 05:07:17 +0400 Subject: =?UTF-8?B?0JrQsNC6INGA0LDRgdGB0YfQuNGC0YvQstCw0LXRgtGB0Y8gZmFzdGNnaV9jb25u?= =?UTF-8?B?ZWN0X3RpbWVvdXQ/?= Message-ID: Доброй ночи. nginx/1.0.6 может кто либо прояснить такой момент. Если с fastcgi_send_timeout и fastcgi_read_timeout логика расчета интервалов времени понятна, то для fastcgi_connect_timeout не очень ясно, с какого момента по какой идет отсчет. Как расчитывается fastcgi_connect_timeout? Если выход за fastcgi_connect_timeout произошел, то какой по идее http status должен отдаваться при условии, что бэкэнд (php-fpm через unix socket) успел послать некоторое количество данных? У меня так получается, что 200 (в firebug видно, что ответ 200, но в error log nginx пишет сообщение об ошибке "110: Connection timed out"). Почему так, если для fastcgi_send_timeout и fastcgi_read_timeout генерируется 504-ая? From nginx-forum на nginx.us Fri Nov 18 06:12:45 2011 From: nginx-forum на nginx.us (Dr.Virus) Date: Fri, 18 Nov 2011 01:12:45 -0500 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdC+0YHRgtC4INGBIHByb3h5IGJ1ZmZlcmluZyDQuCA=?= =?UTF-8?B?0YLRgNCw0L3RgdGE0LXRgNC+0Lwg0YTQsNC50LvQvtCyINCx0L7Qu9GM0Yg=?= =?UTF-8?B?0LUgMdCT0JE=?= In-Reply-To: <268ff762198f8cb24c6a136bbd10718d.NginxMailingListRussian@forum.nginx.org> References: <268ff762198f8cb24c6a136bbd10718d.NginxMailingListRussian@forum.nginx.org> Message-ID: <4997afcf0338a77ac158aa1c85d49f17.NginxMailingListRussian@forum.nginx.org> Присоединяюсь к вопросу. Аналогичная ситуация, но proxy_buffering не включен. FreeBSD 8.2, nginx 1.0.5, apache-itk 2.2.17 Конфиг: user www www; worker_processes 8; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; events { worker_connections 1024; use kqueue; } http { include mime.types; default_type application/octet-stream; access_log off; sendfile on; tcp_nopush on; gzip on; gzip_min_length 1000; gzip_proxied any; gzip_types text/plain text/xml application/xml application/x-javascript text/javascript text/css text/json; gzip_disable "msie6"; gzip_comp_level 6; proxy_cache_path /var/db/nginx levels=1:2 keys_zone=one:5000m inactive=30d max_size=5G; proxy_cache_min_uses 1; proxy_cache_valid 30m; proxy_connect_timeout 75; proxy_max_temp_file_size 16096m; client_max_body_size 10240m; limit_zone three $binary_remote_addr 10m; server { listen 80; server_name fs.domain.ru; location / { proxy_pass http://127.0.0.1:8181; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_cache off; access_log off; allow all; } } } } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,216011,218542#msg-218542 From nginx-forum на nginx.us Fri Nov 18 06:18:44 2011 From: nginx-forum на nginx.us (minya) Date: Fri, 18 Nov 2011 01:18:44 -0500 Subject: =?UTF-8?B?UmU6INC+0L/RgtC40LzQuNC30LDRhtC40Y8g0LzQvtC00YPQu9GPOiDQv9C10YA=?= =?UTF-8?B?0LXQv9C+0LvQvdC10L3QuNGPINC4INCx0LvQvtC60LjRgNC+0LLQutC4?= In-Reply-To: <4EC3BD69.3000203@csdoc.com> References: <4EC3BD69.3000203@csdoc.com> Message-ID: <5f3ba2c13f8452e908471f05f9288525.NginxMailingListRussian@forum.nginx.org> Gena Makhomed, > таких внешних демонов можно будет запустить больше > однопоточный/многотредовый демон Я пробовал fast-cgi, но мне показалось, что там нельзя работать в много потоков в пределах 1 процесса. А если делать много процессов, то база будет жить на диске. Это недопустимо в моей задаче. Вообще, я задумался о модуле лишь потому, что лень писать самому http-сервер. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218226,218543#msg-218543 From bas на it-core.org Fri Nov 18 07:27:30 2011 From: bas на it-core.org (bas) Date: Fri, 18 Nov 2011 13:27:30 +0600 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdC+0YHRgtC4INGBIHByb3h5IGJ1ZmZlcmluZyDQuCA=?= =?UTF-8?B?0YLRgNCw0L3RgdGE0LXRgNC+0Lwg0YTQsNC50LvQvtCyINCx0L7Qu9GM0Yg=?= =?UTF-8?B?0LUgMdCT0JE=?= In-Reply-To: <4997afcf0338a77ac158aa1c85d49f17.NginxMailingListRussian@forum.nginx.org> References: <268ff762198f8cb24c6a136bbd10718d.NginxMailingListRussian@forum.nginx.org> <4997afcf0338a77ac158aa1c85d49f17.NginxMailingListRussian@forum.nginx.org> Message-ID: Он по умолчанию включен. 18 ноября 2011 г. 12:12 пользователь Dr.Virus написал: > Присоединяюсь к вопросу. Аналогичная > ситуация, но proxy_buffering не включен. > FreeBSD 8.2, nginx 1.0.5, apache-itk 2.2.17 > > Конфиг: > > user www www; > worker_processes 8; > > error_log /var/log/nginx/error.log notice; > > pid /var/run/nginx.pid; > > events { > worker_connections 1024; > use kqueue; > } > > > http { > include mime.types; > default_type application/octet-stream; > > access_log off; > > sendfile on; > tcp_nopush on; > > gzip on; > gzip_min_length 1000; > gzip_proxied any; > gzip_types text/plain text/xml application/xml > application/x-javascript text/javascript text/css text/json; > gzip_disable "msie6"; > gzip_comp_level 6; > > proxy_cache_path /var/db/nginx levels=1:2 keys_zone=one:5000m > inactive=30d max_size=5G; > proxy_cache_min_uses 1; > proxy_cache_valid 30m; > proxy_connect_timeout 75; > proxy_max_temp_file_size 16096m; > > client_max_body_size 10240m; > > limit_zone three $binary_remote_addr 10m; > > server { > > listen 80; > server_name fs.domain.ru; > > location / { > proxy_pass http://127.0.0.1:8181; > proxy_set_header Host $host; > proxy_set_header X-Real-IP $remote_addr; > proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; > proxy_cache off; > access_log off; > allow all; > } > } > > } > } > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,216011,218542#msg-218542 > > _______________________________________________ > 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 mdounin на mdounin.ru Fri Nov 18 08:07:57 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 18 Nov 2011 12:07:57 +0400 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdC+0YHRgtC4INGBIHByb3h5IGJ1ZmZlcmluZyDQuCA=?= =?UTF-8?B?0YLRgNCw0L3RgdGE0LXRgNC+0Lwg0YTQsNC50LvQvtCyINCx0L7Qu9GM0Yg=?= =?UTF-8?B?0LUgMdCT0JE=?= In-Reply-To: <4997afcf0338a77ac158aa1c85d49f17.NginxMailingListRussian@forum.nginx.org> References: <268ff762198f8cb24c6a136bbd10718d.NginxMailingListRussian@forum.nginx.org> <4997afcf0338a77ac158aa1c85d49f17.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111118080757.GX95664@mdounin.ru> Hello! On Fri, Nov 18, 2011 at 01:12:45AM -0500, Dr.Virus wrote: > Присоединяюсь к вопросу. Аналогичная > ситуация, но proxy_buffering не включен. > FreeBSD 8.2, nginx 1.0.5, apache-itk 2.2.17 Как уже было сказано, proxy_buffering включён по умолчанию. Тот факт, что nginx буферизирует на диск не более 1G - объясняется значением по умолчанию для proxy_max_temp_file_size. То, что "nginx перестаёт отдавать контент" - скорее всего связано с тем, что после того, как nginx "упирается" в proxy_max_temp_file_size - он долго ничего не читает от бекенда (пока не отдаст весь тот гигабайт, скопившийся во временном файле). А бекенд за это время успевает решить, что клиент (nginx) слишком медленный, и закрывает соединение по таймауту. Варианты решения: 1. Увеличить proxy_max_temp_file_size, чтобы ответ влезал полностью. 2. Уменьшить proxy_max_temp_file_size, чтобы задержка с точки зрения бекенда была меньше. 3. Увеличить таймаут на бекенде. Maxim Dounin From nginx-forum на nginx.us Fri Nov 18 09:02:01 2011 From: nginx-forum на nginx.us (vsharun) Date: Fri, 18 Nov 2011 04:02:01 -0500 Subject: =?UTF-8?B?bmdpbnggMS4xLjgg0L3QtSDRgdC+0LHQuNGA0LDQtdGC0YHRjyBjbGFuZyDQvdCw?= =?UTF-8?B?IC1DVVJSRU5U?= Message-ID: <4f6976f7db6c90a83fc3e346b1648fd2.NginxMailingListRussian@forum.nginx.org> FreeBSD 10.0-CURRENT #2: Tue Nov 8 09:30:37 EET 2011 src/os/unix/ngx_files.c:470:1: error: expected parameter declarator ngx_read_ahead(ngx_fd_t fd, size_t n) ^ src/os/unix/ngx_files.h:280:44: note: expanded from: #define ngx_read_ahead(fd, n) fcntl(fd, F_READAHEAD, (int) n) ^ /usr/include/fcntl.h:226:21: note: expanded from: #define F_READAHEAD 15 /* read ahead */ ^ src/os/unix/ngx_files.c:470:1: error: expected ')' src/os/unix/ngx_files.c:470:1: note: to match this '(' ngx_read_ahead(ngx_fd_t fd, size_t n) ^ src/os/unix/ngx_files.h:280:39: note: expanded from: #define ngx_read_ahead(fd, n) fcntl(fd, F_READAHEAD, (int) n) ^ src/os/unix/ngx_files.c:470:1: error: conflicting types for 'fcntl' ngx_read_ahead(ngx_fd_t fd, size_t n) ^ src/os/unix/ngx_files.h:280:34: note: expanded from: #define ngx_read_ahead(fd, n) fcntl(fd, F_READAHEAD, (int) n) ^ /usr/include/fcntl.h:296:5: note: previous declaration is here int fcntl(int, int, ...); ^ 3 errors generated. *** Error code 1 Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218549,218549#msg-218549 From igor на sysoev.ru Fri Nov 18 09:22:51 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Fri, 18 Nov 2011 13:22:51 +0400 Subject: =?UTF-8?B?UmU6IG5naW54IDEuMS44INC90LUg0YHQvtCx0LjRgNCw0LXRgtGB0Y8gY2xhbmcg?= =?UTF-8?B?0L3QsCAtQ1VSUkVOVA==?= In-Reply-To: <4f6976f7db6c90a83fc3e346b1648fd2.NginxMailingListRussian@forum.nginx.org> References: <4f6976f7db6c90a83fc3e346b1648fd2.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111118092250.GA46199@nginx.com> On Fri, Nov 18, 2011 at 04:02:01AM -0500, vsharun wrote: > FreeBSD 10.0-CURRENT #2: Tue Nov 8 09:30:37 EET 2011 > > src/os/unix/ngx_files.c:470:1: error: expected parameter declarator > ngx_read_ahead(ngx_fd_t fd, size_t n) > ^ > src/os/unix/ngx_files.h:280:44: note: expanded from: > #define ngx_read_ahead(fd, n) fcntl(fd, F_READAHEAD, (int) n) > ^ > /usr/include/fcntl.h:226:21: note: expanded from: > #define F_READAHEAD 15 /* read ahead */ > ^ > src/os/unix/ngx_files.c:470:1: error: expected ')' > src/os/unix/ngx_files.c:470:1: note: to match this '(' > ngx_read_ahead(ngx_fd_t fd, size_t n) > ^ > src/os/unix/ngx_files.h:280:39: note: expanded from: > #define ngx_read_ahead(fd, n) fcntl(fd, F_READAHEAD, (int) n) > ^ > src/os/unix/ngx_files.c:470:1: error: conflicting types for 'fcntl' > ngx_read_ahead(ngx_fd_t fd, size_t n) > ^ > src/os/unix/ngx_files.h:280:34: note: expanded from: > #define ngx_read_ahead(fd, n) fcntl(fd, F_READAHEAD, (int) n) > ^ > /usr/include/fcntl.h:296:5: note: previous declaration is here > int fcntl(int, int, ...); > ^ > 3 errors generated. > *** Error code 1 Патч. -- Igor Sysoev -------------- next part -------------- Index: src/os/unix/ngx_files.c =================================================================== --- src/os/unix/ngx_files.c (revision 4286) +++ src/os/unix/ngx_files.c (working copy) @@ -464,7 +464,7 @@ } -#if (NGX_HAVE_POSIX_FADVISE) +#if (NGX_HAVE_POSIX_FADVISE) && !(NGX_HAVE_F_READAHEAD) ngx_int_t ngx_read_ahead(ngx_fd_t fd, size_t n) From mdounin на mdounin.ru Fri Nov 18 10:27:05 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 18 Nov 2011 14:27:05 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRgNCw0YHRgdGH0LjRgtGL0LLQsNC10YLRgdGPIGZhc3RjZ2lf?= =?UTF-8?B?Y29ubmVjdF90aW1lb3V0Pw==?= In-Reply-To: References: Message-ID: <20111118102705.GY95664@mdounin.ru> Hello! On Fri, Nov 18, 2011 at 05:07:17AM +0400, Алексей Сундуков wrote: > Доброй ночи. nginx/1.0.6 может кто либо прояснить такой момент. > > Если с fastcgi_send_timeout и fastcgi_read_timeout логика расчета > интервалов времени понятна, то для fastcgi_connect_timeout не очень > ясно, с какого момента по какой идет отсчет. Как расчитывается > fastcgi_connect_timeout? *_connect_timeout считается от начала попытки установить соединение с бекендом. Если за заданное время соединение установлено не было - будет возвращена ошибка 504. > Если выход за fastcgi_connect_timeout произошел, то какой по идее http > status должен отдаваться при условии, что бэкэнд (php-fpm через unix > socket) успел послать некоторое количество данных? У меня так Если бекенд успел что-то вернуть - значит соединение было установлено, и соответственн _connect_timeout тут не при чём. > получается, что 200 (в firebug видно, что ответ 200, но в error log > nginx пишет сообщение об ошибке "110: Connection timed out"). Почему "Connection" != connect, почувствуйте разницу. Скорее всего сработал как раз упоминающийся fastcgi_read_timeout. > так, если для fastcgi_send_timeout и fastcgi_read_timeout генерируется > 504-ая? Если мы уже начали отдавать ответ клиенту - заголовки ответа уже ушли. И даже если мы в дальнейшем обнаруживаем, что бекенд не может вернуть нам ответ - мы не можем "отозвать" эти заголовки (а равно уже отправленную часть тела ответа) и вернуть 504-ю ошибку. Maxim Dounin From maxim на nginx.com Fri Nov 18 11:48:36 2011 From: maxim на nginx.com (Maxim Konovalov) Date: Fri, 18 Nov 2011 15:48:36 +0400 Subject: =?UTF-8?B?UmU6IG5naW54IDEuMS44INC90LUg0YHQvtCx0LjRgNCw0LXRgtGB0Y8gY2xhbmcg?= =?UTF-8?B?0L3QsCAtQ1VSUkVOVA==?= In-Reply-To: <20111118092250.GA46199@nginx.com> References: <4f6976f7db6c90a83fc3e346b1648fd2.NginxMailingListRussian@forum.nginx.org> <20111118092250.GA46199@nginx.com> Message-ID: <4EC64614.3000606@nginx.com> On 11/18/11 1:22 PM, Igor Sysoev wrote: > On Fri, Nov 18, 2011 at 04:02:01AM -0500, vsharun wrote: >> FreeBSD 10.0-CURRENT #2: Tue Nov 8 09:30:37 EET 2011 >> >> src/os/unix/ngx_files.c:470:1: error: expected parameter declarator >> ngx_read_ahead(ngx_fd_t fd, size_t n) >> ^ >> src/os/unix/ngx_files.h:280:44: note: expanded from: >> #define ngx_read_ahead(fd, n) fcntl(fd, F_READAHEAD, (int) n) >> ^ >> /usr/include/fcntl.h:226:21: note: expanded from: >> #define F_READAHEAD 15 /* read ahead */ >> ^ >> src/os/unix/ngx_files.c:470:1: error: expected ')' >> src/os/unix/ngx_files.c:470:1: note: to match this '(' >> ngx_read_ahead(ngx_fd_t fd, size_t n) >> ^ >> src/os/unix/ngx_files.h:280:39: note: expanded from: >> #define ngx_read_ahead(fd, n) fcntl(fd, F_READAHEAD, (int) n) >> ^ >> src/os/unix/ngx_files.c:470:1: error: conflicting types for 'fcntl' >> ngx_read_ahead(ngx_fd_t fd, size_t n) >> ^ >> src/os/unix/ngx_files.h:280:34: note: expanded from: >> #define ngx_read_ahead(fd, n) fcntl(fd, F_READAHEAD, (int) n) >> ^ >> /usr/include/fcntl.h:296:5: note: previous declaration is here >> int fcntl(int, int, ...); >> ^ >> 3 errors generated. >> *** Error code 1 > > Патч. > It works. -- Maxim Konovalov +7 (910) 4293178 http://nginx.com/ From nginx-forum на nginx.us Fri Nov 18 20:05:00 2011 From: nginx-forum на nginx.us (Tiberiy) Date: Fri, 18 Nov 2011 15:05:00 -0500 Subject: =?UTF-8?B?0J/RgNCw0LLQuNC70YzQvdC+0LUg0YDQsNGB0L/RgNC10LTQtdC70LXQvdC40LUg?= =?UTF-8?B?0L3QsNCz0YDRg9C30LrQuA==?= Message-ID: Привет. Как правильно организовать распределение нагрузки. 1. Несколько фронтов работают с несколькими бэкэндами - много ко многим. 2. Несколько фронтов, но они работают каждый со своим отдельным пулом бэкэндов - один ко многим. Спасибо! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218581,218581#msg-218581 From zzz на zzz.org.ua Fri Nov 18 20:22:30 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Fri, 18 Nov 2011 22:22:30 +0200 Subject: =?UTF-8?B?UmU6INCf0YDQsNCy0LjQu9GM0L3QvtC1INGA0LDRgdC/0YDQtdC00LXQu9C10L0=?= =?UTF-8?B?0LjQtSDQvdCw0LPRgNGD0LfQutC4?= In-Reply-To: References: Message-ID: On Fri, Nov 18, 2011 at 10:05 PM, Tiberiy wrote: > Привет. > > Как правильно организовать > распределение нагрузки. > > 1. Несколько фронтов работают с > несколькими бэкэндами - много ко > многим. > 2. Несколько фронтов, но они работают > каждый со своим отдельным пулом > бэкэндов - один ко многим. Зависит от ваших access patterns конечно же. Если это какие-то ресурсы, с уникальными URL, то лучше всего распределять по его хэшу, чтобы не засорять кэши всех бэкендов одним и тем же, как в случае с раунд-робином. Вот какой-то такой модуль может помочь: http://wiki.nginx.org/HttpUpstreamConsistentHash From nginx-forum на nginx.us Fri Nov 18 20:50:40 2011 From: nginx-forum на nginx.us (Tiberiy) Date: Fri, 18 Nov 2011 15:50:40 -0500 Subject: =?UTF-8?B?UmU6INCf0YDQsNCy0LjQu9GM0L3QvtC1INGA0LDRgdC/0YDQtdC00LXQu9C10L0=?= =?UTF-8?B?0LjQtSDQvdCw0LPRgNGD0LfQutC4?= In-Reply-To: References: Message-ID: Нет. Все бэкэнды отдают один и тот же динамически генерируемый контент. Задача просто построить оптимально нагрузочную систему. Никаки хешей, кук. Фронты (раунд робин) принимают запрос, отдают их бэкам и ждут результата запроса. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218581,218583#msg-218583 From zzz на zzz.org.ua Fri Nov 18 21:04:32 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Fri, 18 Nov 2011 23:04:32 +0200 Subject: =?UTF-8?B?UmU6INCf0YDQsNCy0LjQu9GM0L3QvtC1INGA0LDRgdC/0YDQtdC00LXQu9C10L0=?= =?UTF-8?B?0LjQtSDQvdCw0LPRgNGD0LfQutC4?= In-Reply-To: References: Message-ID: On Fri, Nov 18, 2011 at 10:50 PM, Tiberiy wrote: > Нет. Все бэкэнды отдают один и тот же > динамически генерируемый контент. Ну он же откуда-то берется и если хоть часть контента зависит от URL, то уже есть смысл в хэш ринге, вместо раунд робина к бэкендам. А особенно, если у вас там базы данных с репликацией, их кэши тоже будут распределяться. From nginx-forum на nginx.us Fri Nov 18 21:48:20 2011 From: nginx-forum на nginx.us (Tiberiy) Date: Fri, 18 Nov 2011 16:48:20 -0500 Subject: =?UTF-8?B?UmU6INCf0YDQsNCy0LjQu9GM0L3QvtC1INGA0LDRgdC/0YDQtdC00LXQu9C10L0=?= =?UTF-8?B?0LjQtSDQvdCw0LPRgNGD0LfQutC4?= In-Reply-To: References: Message-ID: Обьясню иначе. Контент генерится уникальный при каждом запросе даже для того же клиента с тем же урлом. Поэтому распределение по хешам не актуально. По основному вопросу посоветуйте.... Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218581,218585#msg-218585 From zzz на zzz.org.ua Fri Nov 18 22:03:05 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Sat, 19 Nov 2011 00:03:05 +0200 Subject: =?UTF-8?B?UmU6INCf0YDQsNCy0LjQu9GM0L3QvtC1INGA0LDRgdC/0YDQtdC00LXQu9C10L0=?= =?UTF-8?B?0LjQtSDQvdCw0LPRgNGD0LfQutC4?= In-Reply-To: References: Message-ID: On Fri, Nov 18, 2011 at 11:48 PM, Tiberiy wrote: > Контент генерится уникальный при каждом запросе даже для > того же клиента с тем же урлом. Ну тогда нет разницы, оба варианта сойдут. From nginx-forum на nginx.us Fri Nov 18 22:24:47 2011 From: nginx-forum на nginx.us (Tiberiy) Date: Fri, 18 Nov 2011 17:24:47 -0500 Subject: =?UTF-8?B?UmU6INCf0YDQsNCy0LjQu9GM0L3QvtC1INGA0LDRgdC/0YDQtdC00LXQu9C10L0=?= =?UTF-8?B?0LjQtSDQvdCw0LPRgNGD0LfQutC4?= In-Reply-To: References: Message-ID: <91022cf0a1015cf905f7a0d6bb6f2d5a.NginxMailingListRussian@forum.nginx.org> Спасибо Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218581,218587#msg-218587 From unlexx на gmail.com Sat Nov 19 05:55:31 2011 From: unlexx на gmail.com (Un Lexx) Date: Sat, 19 Nov 2011 08:55:31 +0300 Subject: =?UTF-8?B?UmU6INC+0L/RgtC40LzQuNC30LDRhtC40Y8g0LzQvtC00YPQu9GPOiDQv9C10YA=?= =?UTF-8?B?0LXQv9C+0LvQvdC10L3QuNGPINC4INCx0LvQvtC60LjRgNC+0LLQutC4?= In-Reply-To: <5f3ba2c13f8452e908471f05f9288525.NginxMailingListRussian@forum.nginx.org> References: <4EC3BD69.3000203@csdoc.com> <5f3ba2c13f8452e908471f05f9288525.NginxMailingListRussian@forum.nginx.org> Message-ID: я конечно понимаю что возможно говорю как в анекдоте про смените страну смените пол итд. но а не рассматривали какой нибудь http сервер на Erlang ? модуль (порт) для ерланга написать довольно просто а учитывая что по описанию ваша задача идеально вписывается в модель сообщений Erlanga все это должно дать эффект 18 ноября 2011 г. 9:18 пользователь minya написал: > Gena Makhomed, > > > таких внешних демонов можно будет > запустить больше > > однопоточный/многотредовый демон > > Я пробовал fast-cgi, но мне показалось, что > там нельзя работать в много потоков в > пределах 1 процесса. А если делать много > процессов, то база будет жить на диске. > Это недопустимо в моей задаче. Вообще, я > задумался о модуле лишь потому, что > лень писать самому http-сервер. > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,218226,218543#msg-218543 > > _______________________________________________ > 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 nginx-forum на nginx.us Sat Nov 19 08:49:10 2011 From: nginx-forum на nginx.us (www) Date: Sat, 19 Nov 2011 03:49:10 -0500 Subject: =?UTF-8?B?0J/QvtC00LzQtdC90LAgSVA=?= Message-ID: <26346129edf6ee52576d766e43a323cd.NginxMailingListRussian@forum.nginx.org> nginx/0.8.53, php-fpm Столкнулся с интересной штукой - какой-то кулцхакер передает в HTTP_X_FORWARDED_FOR (или REMOTE_ADDR, но это маловероятно) sql-инъекции (например, 1; waitfor delay '0:0:4' --). Как у него это получается? Это какой-то известный баг в старой версии nginx? Или вообще не баг? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218596,218596#msg-218596 From unlexx на gmail.com Sat Nov 19 08:59:25 2011 From: unlexx на gmail.com (Un Lexx) Date: Sat, 19 Nov 2011 11:59:25 +0300 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdCwIElQ?= In-Reply-To: <26346129edf6ee52576d766e43a323cd.NginxMailingListRussian@forum.nginx.org> References: <26346129edf6ee52576d766e43a323cd.NginxMailingListRussian@forum.nginx.org> Message-ID: не могу понять причем тут nginx, nginx все что пришло от клиента отдал php-fpm а куда заголовки потом затолкает и отфильтрует решает скрипт на php php может не фильтрую затолкать параметр в запрос в базу и будет sql-inj 19 ноября 2011 г. 11:49 пользователь www написал: > nginx/0.8.53, php-fpm > > Столкнулся с интересной штукой - > какой-то кулцхакер передает в > HTTP_X_FORWARDED_FOR (или REMOTE_ADDR, но это > маловероятно) sql-инъекции (например, 1; > waitfor delay '0:0:4' --). Как у него это > получается? Это какой-то известный баг > в старой версии nginx? Или вообще не баг? > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,218596,218596#msg-218596 > > _______________________________________________ > 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 unlexx на gmail.com Sat Nov 19 09:01:37 2011 From: unlexx на gmail.com (Un Lexx) Date: Sat, 19 Nov 2011 12:01:37 +0300 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdCwIElQ?= In-Reply-To: References: <26346129edf6ee52576d766e43a323cd.NginxMailingListRussian@forum.nginx.org> Message-ID: selfix: а куда заголовки потом затолкает и отфильтрует ли некорректные данные решает скрипт на php php может не фильтруя затолкать параметр в запрос в базу что и будет sql-inj 19 ноября 2011 г. 11:59 пользователь Un Lexx написал: > не могу понять причем тут nginx, > nginx все что пришло от клиента отдал php-fpm > а куда заголовки потом затолкает и отфильтрует решает скрипт на php > php может не фильтрую затолкать параметр в запрос в базу и будет sql-inj > > > 19 ноября 2011 г. 11:49 пользователь www написал: > > nginx/0.8.53, php-fpm >> >> Столкнулся с интересной штукой - >> какой-то кулцхакер передает в >> HTTP_X_FORWARDED_FOR (или REMOTE_ADDR, но это >> маловероятно) sql-инъекции (например, 1; >> waitfor delay '0:0:4' --). Как у него это >> получается? Это какой-то известный баг >> в старой версии nginx? Или вообще не баг? >> >> Posted at Nginx Forum: >> http://forum.nginx.org/read.php?21,218596,218596#msg-218596 >> >> _______________________________________________ >> 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 drobly на gmail.com Sat Nov 19 09:03:47 2011 From: drobly на gmail.com (Alexander Usov) Date: Sat, 19 Nov 2011 15:03:47 +0600 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdCwIElQ?= In-Reply-To: <26346129edf6ee52576d766e43a323cd.NginxMailingListRussian@forum.nginx.org> References: <26346129edf6ee52576d766e43a323cd.NginxMailingListRussian@forum.nginx.org> Message-ID: ngx_http_proxy_module при наличии X-Forwarded-For, добавляет свой адрес через ", ". Лучше использовать X-Real-IP. 19 ноября 2011 г. 14:49 пользователь www написал: > nginx/0.8.53, php-fpm > > Столкнулся с интересной штукой - > какой-то кулцхакер передает в > HTTP_X_FORWARDED_FOR (или REMOTE_ADDR, но это > маловероятно) sql-инъекции (например, 1; > waitfor delay '0:0:4' --). Как у него это > получается? Это какой-то известный баг > в старой версии nginx? Или вообще не баг? > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,218596,218596#msg-218596 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From drobly на gmail.com Sat Nov 19 09:15:12 2011 From: drobly на gmail.com (Alexander Usov) Date: Sat, 19 Nov 2011 15:15:12 +0600 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdCwIElQ?= In-Reply-To: References: <26346129edf6ee52576d766e43a323cd.NginxMailingListRussian@forum.nginx.org> Message-ID: Не заметил, что у вас nginx и php-fpm без проксирования. Тогда вам нужно проверить FastCGI параметры. Возможно вы выставляете HTTP_X_FORWARDED_FOR равным $proxy_add_x_forwarded_for. Удалите этот fastcgi_param. 19 ноября 2011 г. 15:03 пользователь Alexander Usov написал: > ngx_http_proxy_module при наличии X-Forwarded-For, добавляет свой адрес > через ", ". Лучше использовать X-Real-IP. > > 19 ноября 2011 г. 14:49 пользователь www написал: > >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From valery+nginxru на grid.net.ru Sat Nov 19 10:44:19 2011 From: valery+nginxru на grid.net.ru (Valery Kholodkov) Date: Sat, 19 Nov 2011 11:44:19 +0100 Subject: =?UTF-8?B?UmU6INC+0L/RgtC40LzQuNC30LDRhtC40Y8g0LzQvtC00YPQu9GPOiDQv9C10YA=?= =?UTF-8?B?0LXQv9C+0LvQvdC10L3QuNGPINC4INCx0LvQvtC60LjRgNC+0LLQutC4?= In-Reply-To: <5f3ba2c13f8452e908471f05f9288525.NginxMailingListRussian@forum.nginx.org> References: <4EC3BD69.3000203@csdoc.com> <5f3ba2c13f8452e908471f05f9288525.NginxMailingListRussian@forum.nginx.org> Message-ID: <8797C2B9-13DE-46CD-A945-F4C8665B189D@grid.net.ru> И тем не менее fastcgi может работать со многими потоками в пределах одного процесса. -- Best regards, Valery Kholodkov On 18 Nov 2011, at 07:18, "minya" wrote: > Gena Makhomed, > >> таких внешних демонов можно будет > запустить больше >> однопоточный/многотредовый демон > > Я пробовал fast-cgi, но мне показалось, что > там нельзя работать в много потоков в > пределах 1 процесса. А если делать много > процессов, то база будет жить на диске. > Это недопустимо в моей задаче. Вообще, я > задумался о модуле лишь потому, что > лень писать самому http-сервер. > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218226,218543#msg-218543 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From gmm на csdoc.com Sat Nov 19 11:06:09 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Sat, 19 Nov 2011 13:06:09 +0200 Subject: =?UTF-8?B?UmU6INC+0L/RgtC40LzQuNC30LDRhtC40Y8g0LzQvtC00YPQu9GPOiDQv9C10YA=?= =?UTF-8?B?0LXQv9C+0LvQvdC10L3QuNGPINC4INCx0LvQvtC60LjRgNC+0LLQutC4?= In-Reply-To: <5f3ba2c13f8452e908471f05f9288525.NginxMailingListRussian@forum.nginx.org> References: <4EC3BD69.3000203@csdoc.com> <5f3ba2c13f8452e908471f05f9288525.NginxMailingListRussian@forum.nginx.org> Message-ID: <4EC78DA1.3060608@csdoc.com> On 18.11.2011 8:18, minya wrote: >> таких внешних демонов можно будет запустить больше >> однопоточный/многотредовый демон > Я пробовал fast-cgi, но мне показалось, что > там нельзя работать в много потоков в > пределах 1 процесса. можно. google: multithreaded fastcgi > А если делать много > процессов, то база будет жить на диске. > Это недопустимо в моей задаче. база и так живет на диске (persistent storage). >Вообще, я задумался о модуле лишь потому, > что лень писать самому http-сервер. кстати, - внутри nginx нельзя сделать много потоков, и во время запроса к базе данных будет блокироваться весь worker process - он будет просто стоять и ждать ответа от базы данных - performance будет невысокой. смысл так делать? -- Best regards, Gena From postmaster на softsearch.ru Sat Nov 19 14:37:26 2011 From: postmaster на softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Sat, 19 Nov 2011 18:37:26 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQsNCy0LjQu9GM0L3QvtC1INGA0LDRgdC/0YDQtdC00LXQu9C10L0=?= =?UTF-8?B?0LjQtSDQvdCw0LPRgNGD0LfQutC4?= In-Reply-To: References: Message-ID: <187367691.20111119183726@softsearch.ru> Здравствуйте, Tiberiy. > Как правильно организовать распределение нагрузки. > 1. Несколько фронтов работают с несколькими бэкэндами - много ко > многим. > 2. Несколько фронтов, но они работают каждый со своим отдельным > пулом бэкэндов - один ко многим. Распределять очень просто. У Вас есть 5 ресурса: Нагрузка на проц, свободная память, свободное место на диске, нагрузка на диск и нагрузка на сеть. Смотрите, какой процесс какой ресурс потребляет и компонуйте процессы так, чтобы они не конкурировали. Так, например, на одном сервере отлично могут жить nginx (обычно ничего не потребляет), memcached (обычно только память потребляет), apache (обычно только проц потребляет) и mysql (обычно потребляет нагрузку на диск и немного места на нём). -- С уважением, Михаил mailto:postmaster на softsearch.ru From nginx-forum на nginx.us Sat Nov 19 17:18:27 2011 From: nginx-forum на nginx.us (winsov) Date: Sat, 19 Nov 2011 12:18:27 -0500 Subject: =?UTF-8?B?UmU6IEZyZWVCU0QgKyBuZ2lueCArIHBocC1mcG0gLSDQt9Cw0LTQtdGA0LbQutCw?= =?UTF-8?B?INC+0YLQtNCw0YfQuCDQutC+0L3RgtC10L3RgtCwIDEuMi0xLjcg0YHQtdC6?= In-Reply-To: References: Message-ID: <68df4060a901a3a248151003d8765190.NginxMailingListRussian@forum.nginx.org> Похожая проблема и у нас nginx+php-fpm+EAxelerator 30 млн хитов в сутки на 1 сервере. Проблему еще не решили? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218467,218609#msg-218609 From boda2004 на gmail.com Sat Nov 19 18:58:09 2011 From: boda2004 на gmail.com (Oleksandr Bodnarashyk) Date: Sat, 19 Nov 2011 20:58:09 +0200 Subject: =?UTF-8?B?UmU6INCf0YDQsNCy0LjQu9GM0L3QvtC1INGA0LDRgdC/0YDQtdC00LXQu9C10L0=?= =?UTF-8?B?0LjQtSDQvdCw0LPRgNGD0LfQutC4?= In-Reply-To: <187367691.20111119183726@softsearch.ru> References: <187367691.20111119183726@softsearch.ru> Message-ID: К сожалению моя практика показывает, что мускуль под сколько-нибудь ощутимой нагрузкой не уживается ни с чем. Он любит "все". 19 ноября 2011 г. 16:37 пользователь Михаил Монашёв написал: > Здравствуйте, Tiberiy. > >> Как правильно организовать распределение нагрузки. > >> 1.  Несколько  фронтов  работают  с несколькими бэкэндами - много ко >> многим. >> 2.  Несколько  фронтов,  но  они  работают каждый со своим отдельным >> пулом бэкэндов - один ко многим. > > Распределять  очень  просто.  У  Вас есть 5 ресурса: Нагрузка на проц, > свободная  память,  свободное  место  на  диске,  нагрузка  на  диск и > нагрузка  на  сеть.  Смотрите, какой процесс какой ресурс потребляет и > компонуйте процессы так, чтобы они не конкурировали. Так, например, на > одном  сервере отлично могут жить nginx (обычно ничего не потребляет), > memcached  (обычно  только  память  потребляет), apache (обычно только > проц потребляет) и mysql (обычно потребляет нагрузку на диск и немного > места на нём). > > -- > С уважением, >  Михаил                          mailto:postmaster на softsearch.ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From scukonick на gmail.com Sat Nov 19 19:31:35 2011 From: scukonick на gmail.com (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0JzQsNC70L7Qsg==?=) Date: Sat, 19 Nov 2011 23:31:35 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQsNCy0LjQu9GM0L3QvtC1INGA0LDRgdC/0YDQtdC00LXQu9C10L0=?= =?UTF-8?B?0LjQtSDQvdCw0LPRgNGD0LfQutC4?= In-Reply-To: References: <187367691.20111119183726@softsearch.ru> Message-ID: А апач, особенно в случае с mod_php, потребляет память намного больше, чем проц. 19 ноября 2011 г. 22:58 пользователь Oleksandr Bodnarashyk написал: > К сожалению моя практика показывает, что мускуль под сколько-нибудь > ощутимой нагрузкой не уживается ни с чем. Он любит "все". > > 19 ноября 2011 г. 16:37 пользователь Михаил Монашёв > написал: >> Здравствуйте, Tiberiy. >> >>> Как правильно организовать распределение нагрузки. >> >>> 1.  Несколько  фронтов  работают  с несколькими бэкэндами - много ко >>> многим. >>> 2.  Несколько  фронтов,  но  они  работают каждый со своим отдельным >>> пулом бэкэндов - один ко многим. >> >> Распределять  очень  просто.  У  Вас есть 5 ресурса: Нагрузка на проц, >> свободная  память,  свободное  место  на  диске,  нагрузка  на  диск и >> нагрузка  на  сеть.  Смотрите, какой процесс какой ресурс потребляет и >> компонуйте процессы так, чтобы они не конкурировали. Так, например, на >> одном  сервере отлично могут жить nginx (обычно ничего не потребляет), >> memcached  (обычно  только  память  потребляет), apache (обычно только >> проц потребляет) и mysql (обычно потребляет нагрузку на диск и немного >> места на нём). >> >> -- >> С уважением, >>  Михаил                          mailto:postmaster на softsearch.ru >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Alexey Malov From wangsamp на gmail.com Sat Nov 19 19:42:38 2011 From: wangsamp на gmail.com (Oleksandr V. Typlyns'kyi) Date: Sat, 19 Nov 2011 21:42:38 +0200 (EET) Subject: =?UTF-8?B?UmU6INCf0YDQsNCy0LjQu9GM0L3QvtC1INGA0LDRgdC/0YDQtdC00LXQu9C10L0=?= =?UTF-8?B?0LjQtSDQvdCw0LPRgNGD0LfQutC4?= In-Reply-To: References: <187367691.20111119183726@softsearch.ru> Message-ID: Today Nov 19, 2011 at 23:31 Алексей Малов wrote: > А апач, особенно в случае с mod_php, потребляет память намного больше, > чем проц. Он потребляет и то, и другое и можно без хлеба :) > 19 ноября 2011 г. 22:58 пользователь Oleksandr Bodnarashyk > написал: > > К сожалению моя практика показывает, что мускуль под сколько-нибудь > > ощутимой нагрузкой не уживается ни с чем. Он любит "все". С большими базами и кривыми запросами он съедает всё дисковое IO. А с небольшими базами(влазят в память) и запросами не покрытыми ключами может съесть CPU. Ну, и памяти немало ему тоже всегда нужно. -- WNGS-RIPE From nginx-forum на nginx.us Sat Nov 19 22:13:26 2011 From: nginx-forum на nginx.us (Craken) Date: Sat, 19 Nov 2011 17:13:26 -0500 Subject: =?UTF-8?B?UmU6IEZyZWVCU0QgKyBuZ2lueCArIHBocC1mcG0gLSDQt9Cw0LTQtdGA0LbQutCw?= =?UTF-8?B?INC+0YLQtNCw0YfQuCDQutC+0L3RgtC10L3RgtCwIDEuMi0xLjcg0YHQtdC6?= In-Reply-To: References: Message-ID: <17c4698d0e2caf6d81fd4c30320397fb.NginxMailingListRussian@forum.nginx.org> 2 Tiberiy: А дело не может быть например в пропускной способности канала? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218467,218615#msg-218615 From nginx-forum на nginx.us Sat Nov 19 22:15:37 2011 From: nginx-forum на nginx.us (Craken) Date: Sat, 19 Nov 2011 17:15:37 -0500 Subject: =?UTF-8?B?UmU6IEZyZWVCU0QgKyBuZ2lueCArIHBocC1mcG0gLSDQt9Cw0LTQtdGA0LbQutCw?= =?UTF-8?B?INC+0YLQtNCw0YfQuCDQutC+0L3RgtC10L3RgtCwIDEuMi0xLjcg0YHQtdC6?= In-Reply-To: References: Message-ID: <24be8fa6991c6dc74779cf85fdde58f4.NginxMailingListRussian@forum.nginx.org> Еще вопрос к Tiberiy: А какое время отдачи статики? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218467,218616#msg-218616 From nginx-forum на nginx.us Sun Nov 20 07:02:04 2011 From: nginx-forum на nginx.us (darmen) Date: Sun, 20 Nov 2011 02:02:04 -0500 Subject: =?UTF-8?B?0KDQtdGB0LDQudC3INCyINC80L7QtNGD0LvQtSBpbWFnZSBmaWx0ZXIg0L/QviA=?= =?UTF-8?B?0L7QtNC90L7QvNGDINC40Lcg0YDQsNC30LzQtdGA0L7Qsg==?= Message-ID: <1aec1814be5e92ba79b47658a5428f16.NginxMailingListRussian@forum.nginx.org> Привет, Необходимо ресайзить картинки только по ширине, при этом высота вычисляется автоматически пропорционально. Есть такая возможнсоть в модуле HttpImageFIlter? Спасибо Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218625,218625#msg-218625 From igor на sysoev.ru Sun Nov 20 08:31:36 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Sun, 20 Nov 2011 12:31:36 +0400 Subject: =?UTF-8?B?UmU6INCg0LXRgdCw0LnQtyDQsiDQvNC+0LTRg9C70LUgaW1hZ2UgZmlsdGVyINC/?= =?UTF-8?B?0L4g0L7QtNC90L7QvNGDINC40Lcg0YDQsNC30LzQtdGA0L7Qsg==?= In-Reply-To: <1aec1814be5e92ba79b47658a5428f16.NginxMailingListRussian@forum.nginx.org> References: <1aec1814be5e92ba79b47658a5428f16.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111120083136.GB99580@nginx.com> On Sun, Nov 20, 2011 at 02:02:04AM -0500, darmen wrote: > Привет, > > Необходимо ресайзить картинки только > по ширине, при этом высота вычисляется > автоматически пропорционально. Есть > такая возможнсоть в модуле HttpImageFIlter? http://nginx.org/ru/docs/http/ngx_http_image_filter_module.html#image_filter image_filter resize 100 -; -- Игорь Сысоев http://sysoev.ru From nginx-forum на nginx.us Sun Nov 20 10:40:30 2011 From: nginx-forum на nginx.us (Tiberiy) Date: Sun, 20 Nov 2011 05:40:30 -0500 Subject: =?UTF-8?B?UmU6IEZyZWVCU0QgKyBuZ2lueCArIHBocC1mcG0gLSDQt9Cw0LTQtdGA0LbQutCw?= =?UTF-8?B?INC+0YLQtNCw0YfQuCDQutC+0L3RgtC10L3RgtCwIDEuMi0xLjcg0YHQtdC6?= In-Reply-To: References: Message-ID: <70ff2fe63466c2705067fac9933447cc.NginxMailingListRussian@forum.nginx.org> Попорядку. 1. Проблему опустили до 0.5 сек - тюнили фрибсд. 2. Проблема по п.1 уже в канале. 3. Время отдачи статики такое же 0.5 сек. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218467,218635#msg-218635 From nginx-forum на nginx.us Sun Nov 20 10:41:59 2011 From: nginx-forum на nginx.us (Tiberiy) Date: Sun, 20 Nov 2011 05:41:59 -0500 Subject: =?UTF-8?B?UmU6IEZyZWVCU0QgKyBuZ2lueCArIHBocC1mcG0gLSDQt9Cw0LTQtdGA0LbQutCw?= =?UTF-8?B?INC+0YLQtNCw0YfQuCDQutC+0L3RgtC10L3RgtCwIDEuMi0xLjcg0YHQtdC6?= In-Reply-To: <68df4060a901a3a248151003d8765190.NginxMailingListRussian@forum.nginx.org> References: <68df4060a901a3a248151003d8765190.NginxMailingListRussian@forum.nginx.org> Message-ID: Вместо eaccelerator поставь APC с шаред мемори. При таких нагрузкам eaccelerator часто загонял php-fpm в LA > 60% Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218467,218636#msg-218636 From postmaster на softsearch.ru Sun Nov 20 14:53:49 2011 From: postmaster на softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Sun, 20 Nov 2011 18:53:49 +0400 Subject: =?UTF-8?B?UmVbMl06INCf0YDQsNCy0LjQu9GM0L3QvtC1INGA0LDRgdC/0YDQtdC00LXQu9C1?= =?UTF-8?B?0L3QuNC1INC90LDQs9GA0YPQt9C60Lg=?= In-Reply-To: References: <187367691.20111119183726@softsearch.ru> Message-ID: <7010286126.20111120185349@softsearch.ru> Здравствуйте, Oleksandr. У каждого свои БД и свои апачи. У кого-то много кривых запросов, с которыми ничего нельзя поделать, а других CMS-ка всё старается в оперативку засосать. Дело не в этом. Просто смотришь, какие процессы какие ресурсы потребляют и стараешься совмещать на одном сервере то, что не конкурирует за ресурсы. Список ресурсов я привёл ранее. >> А апач, особенно в случае с mod_php, потребляет память намного >> больше, чем проц. > Он потребляет и то, и другое и можно без хлеба :) >> > К сожалению моя практика показывает, что мускуль под сколько-нибудь >> > ощутимой нагрузкой не уживается ни с чем. Он любит "все". > С большими базами и кривыми запросами он съедает всё дисковое IO. А > с небольшими базами(влазят в память) и запросами не покрытыми > ключами может съесть CPU. Ну, и памяти немало ему тоже всегда нужно. -- С уважением, Михаил mailto:postmaster на softsearch.ru From nginx-forum на nginx.us Sun Nov 20 19:13:39 2011 From: nginx-forum на nginx.us (adiunov) Date: Sun, 20 Nov 2011 14:13:39 -0500 Subject: =?UTF-8?B?0JrQsNC6INC70YPRh9GI0LUg0YDQtdCw0LvQuNC30L7QstCw0YLRjCDRgdGC0LA=?= =?UTF-8?B?0YLQuNC60YMg0L3QsCDQvtGC0LTQtdC70YzQvdC+0Lwg0YHQtdGA0LLQtdGA?= =?UTF-8?B?0LU/?= Message-ID: Есть сайт, вся статика в папке /files и доступна по адресу example.com/files Очень хочется перенести ее на другой сервер. Например, нужно сделать, что бы пользователь запросивший файл example.com/files/img.jpg получил его уже с нового сервера с другим ip. Т.к. я не сталкивался с такой задачей, прошу помощи, как это лучше реализовать с точки зрения конфигурации nginx для сайта. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218643,218643#msg-218643 From vsjcfm на gmail.com Sun Nov 20 19:16:06 2011 From: vsjcfm на gmail.com (Sayetsky Anton) Date: Sun, 20 Nov 2011 21:16:06 +0200 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQu9GD0YfRiNC1INGA0LXQsNC70LjQt9C+0LLQsNGC0Ywg0YE=?= =?UTF-8?B?0YLQsNGC0LjQutGDINC90LAg0L7RgtC00LXQu9GM0L3QvtC8INGB0LXRgNCy?= =?UTF-8?B?0LXRgNC1Pw==?= In-Reply-To: References: Message-ID: 20 ноября 2011 г. 21:13 пользователь adiunov написал: > Есть сайт, вся статика в папке /files и > доступна по адресу example.com/files > Очень хочется перенести ее на другой > сервер. > Например, нужно сделать, что бы > пользователь запросивший файл > example.com/files/img.jpg получил его уже с нового > сервера с другим ip. Т.к. я не сталкивался > с такой задачей, прошу помощи, как это > лучше реализовать с точки зрения > конфигурации nginx для сайта. location /files { proxy_pass http://server; } From nginx-forum на nginx.us Sun Nov 20 19:24:46 2011 From: nginx-forum на nginx.us (adiunov) Date: Sun, 20 Nov 2011 14:24:46 -0500 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQu9GD0YfRiNC1INGA0LXQsNC70LjQt9C+0LLQsNGC0Ywg0YE=?= =?UTF-8?B?0YLQsNGC0LjQutGDINC90LAg0L7RgtC00LXQu9GM0L3QvtC8INGB0LXRgNCy?= =?UTF-8?B?0LXRgNC1Pw==?= In-Reply-To: References: Message-ID: <94979b13a838a7d71a0baa7a7834d3ee.NginxMailingListRussian@forum.nginx.org> Sayetsky Anton Wrote: ------------------------------------------------------- > location /files { > proxy_pass http://server; > } В таком случае сервер с сайта будет загружать ответ статик-сервера себе и только после этого отдавать посетителю или посетитель будет получать статику напрямую с статик-сервера? Я к тому, снизится ли при таких раскладах нагрузка на основной сервер? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218643,218645#msg-218645 From vsjcfm на gmail.com Sun Nov 20 19:27:18 2011 From: vsjcfm на gmail.com (Sayetsky Anton) Date: Sun, 20 Nov 2011 21:27:18 +0200 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQu9GD0YfRiNC1INGA0LXQsNC70LjQt9C+0LLQsNGC0Ywg0YE=?= =?UTF-8?B?0YLQsNGC0LjQutGDINC90LAg0L7RgtC00LXQu9GM0L3QvtC8INGB0LXRgNCy?= =?UTF-8?B?0LXRgNC1Pw==?= In-Reply-To: <94979b13a838a7d71a0baa7a7834d3ee.NginxMailingListRussian@forum.nginx.org> References: <94979b13a838a7d71a0baa7a7834d3ee.NginxMailingListRussian@forum.nginx.org> Message-ID: 20 ноября 2011 г. 21:24 пользователь adiunov написал: > В таком случае сервер с сайта будет > загружать ответ статик-сервера себе и > только после этого отдавать посетителю > или посетитель будет получать статику > напрямую с статик-сервера? Я к тому, > снизится ли при таких раскладах > нагрузка на основной сервер? Это будет проксирование. Следовательно, трафик всё равно пойдёт через основной сервер. Но снизится нагрузка на диски. Если Вы не хотите, дабы траф шёл через основной сервер - нужно пользовать 302. From nginx-forum на nginx.us Sun Nov 20 19:37:20 2011 From: nginx-forum на nginx.us (adiunov) Date: Sun, 20 Nov 2011 14:37:20 -0500 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQu9GD0YfRiNC1INGA0LXQsNC70LjQt9C+0LLQsNGC0Ywg0YE=?= =?UTF-8?B?0YLQsNGC0LjQutGDINC90LAg0L7RgtC00LXQu9GM0L3QvtC8INGB0LXRgNCy?= =?UTF-8?B?0LXRgNC1Pw==?= In-Reply-To: References: Message-ID: <03108afd0ef36436fadc084844f277b7.NginxMailingListRussian@forum.nginx.org> Sayetsky Anton Wrote: ------------------------------------------------------- > > Это будет проксирование. > Следовательно, трафик всё > равно пойдёт через > основной сервер. Но > снизится нагрузка на диски. > Если Вы не хотите, дабы траф > шёл через основной сервер - > нужно пользовать 302. Я решаю между проксированием и созданием субдомена для файлов что бы открывалось по адресу files.examle.com/img.jpg. Вариант с субдоменом, видимо, лучше, т.к. работает на уровне dns и не затрагивает основной сервер, но не знаю, как к этому относятся поисковые системы, получается, вроде как картинки с другого сайта. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218643,218647#msg-218647 From gmm на csdoc.com Sun Nov 20 19:45:49 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Sun, 20 Nov 2011 21:45:49 +0200 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQu9GD0YfRiNC1INGA0LXQsNC70LjQt9C+0LLQsNGC0Ywg0YE=?= =?UTF-8?B?0YLQsNGC0LjQutGDINC90LAg0L7RgtC00LXQu9GM0L3QvtC8INGB0LXRgNCy?= =?UTF-8?B?0LXRgNC1Pw==?= In-Reply-To: References: Message-ID: <4EC958ED.1050903@csdoc.com> On 20.11.2011 21:13, adiunov wrote: > Есть сайт, вся статика в папке /files и > доступна по адресу example.com/files > Очень хочется перенести ее на другой > сервер. > Например, нужно сделать, что бы > пользователь запросивший файл > example.com/files/img.jpg получил его уже с нового > сервера с другим ip. Т.к. я не сталкивался > с такой задачей, прошу помощи, как это > лучше реализовать с точки зрения > конфигурации nginx для сайта. лучше всего - на новом сервере поднять отдельный веб-сервер files.example.com а на старом сервере - переписать сайт, чтобы вместо урлов example.com/files/img.jpg генерировались урлы files.example.com/img.jpg и с адреса example.com/files/* на сервере делать 301 редирект на files.example.com/* для тех, кто будет запрашивать старый адрес. -- Best regards, Gena From nginx-forum на nginx.us Sun Nov 20 19:58:43 2011 From: nginx-forum на nginx.us (adiunov) Date: Sun, 20 Nov 2011 14:58:43 -0500 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQu9GD0YfRiNC1INGA0LXQsNC70LjQt9C+0LLQsNGC0Ywg0YE=?= =?UTF-8?B?0YLQsNGC0LjQutGDINC90LAg0L7RgtC00LXQu9GM0L3QvtC8INGB0LXRgNCy?= =?UTF-8?B?0LXRgNC1Pw==?= In-Reply-To: <4EC958ED.1050903@csdoc.com> References: <4EC958ED.1050903@csdoc.com> Message-ID: <13c07f05276df879b43d0c05b45f115e.NginxMailingListRussian@forum.nginx.org> А можно сделать для папки перенаправление на новый ip с кодом 301 и тем же url? Если да, то как? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218643,218649#msg-218649 From gmm на csdoc.com Sun Nov 20 20:17:34 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Sun, 20 Nov 2011 22:17:34 +0200 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQu9GD0YfRiNC1INGA0LXQsNC70LjQt9C+0LLQsNGC0Ywg0YE=?= =?UTF-8?B?0YLQsNGC0LjQutGDINC90LAg0L7RgtC00LXQu9GM0L3QvtC8INGB0LXRgNCy?= =?UTF-8?B?0LXRgNC1Pw==?= In-Reply-To: <13c07f05276df879b43d0c05b45f115e.NginxMailingListRussian@forum.nginx.org> References: <4EC958ED.1050903@csdoc.com> <13c07f05276df879b43d0c05b45f115e.NginxMailingListRussian@forum.nginx.org> Message-ID: <4EC9605E.2030409@csdoc.com> On 20.11.2011 21:58, adiunov wrote: > А можно сделать для папки > перенаправление на новый ip с кодом 301 и > тем же url? Если да, то как? с тем же урлом, редирект на http://files.example.com/files/... location /files/ { rewrite ^ http://files.example.com$request_uri? redirect; } убирая из урла лишнюю часть "/files" и делая его короче: location /files/ { rewrite ^/files(.*) http://files.example.com$1 redirect; } документация может быть и не очень понятная, но тем не менее, она есть, да еще и на русском: http://nginx.org/ru/docs/http/ngx_http_rewrite_module.html#rewrite -- Best regards, Gena From nginx-forum на nginx.us Sun Nov 20 20:22:24 2011 From: nginx-forum на nginx.us (adiunov) Date: Sun, 20 Nov 2011 15:22:24 -0500 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQu9GD0YfRiNC1INGA0LXQsNC70LjQt9C+0LLQsNGC0Ywg0YE=?= =?UTF-8?B?0YLQsNGC0LjQutGDINC90LAg0L7RgtC00LXQu9GM0L3QvtC8INGB0LXRgNCy?= =?UTF-8?B?0LXRgNC1Pw==?= In-Reply-To: <4EC9605E.2030409@csdoc.com> References: <4EC9605E.2030409@csdoc.com> Message-ID: <2767511110be1fd3691457f1e0de3163.NginxMailingListRussian@forum.nginx.org> Gena Makhomed Wrote: ------------------------------------------------------- > документация может быть и > не очень понятная, > но тем не менее, она есть, да > еще и на русском: > > http://nginx.org/ru/docs/http/ngx_http_rewrite_mod > ule.html#rewrite Как раз прочитал. Так и сделаю. Всем большое спасибо. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218643,218651#msg-218651 From nginx-forum на nginx.us Mon Nov 21 01:04:36 2011 From: nginx-forum на nginx.us (locojohn) Date: Sun, 20 Nov 2011 20:04:36 -0500 Subject: keepalive disable msie6; Message-ID: Поставил nginx/1.1.8. http { ... keepalive_disable msie6; ... } перезапускаю nginx: /etc/init.d/nginx restart * Checking nginx' configuration ... nginx: [warn] duplicate value "msie6" in /etc/nginx/nginx.conf:63 [ ok ] * Stopping nginx ... [ ok ] * Starting nginx ... nginx: [warn] duplicate value "msie6" in /etc/nginx/nginx.conf:63 [ ok ] убираю эту строку с keepalive_disable вообще - при перезапуске nginx больше не выдаёт предостережений. Вопрос: как мне сделать keepalive_disable только для msie6, но разрешить его для safari? В http://wiki.nginx.org/HttpCoreModule#keepalive_disable сказано, что по умолчанию установка: keepalive_disable msie6 safari; Но до ngnx/1.1.8 не было никаких cообщений о дуплицировании значения msie6... Или я чего-то недопонимаю? Спасибо. Андрей Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218659,218659#msg-218659 From nginx-forum на nginx.us Mon Nov 21 01:51:24 2011 From: nginx-forum на nginx.us (Craken) Date: Sun, 20 Nov 2011 20:51:24 -0500 Subject: keepalive disable msie6; In-Reply-To: References: Message-ID: А можно весь конфиг глянуть? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218659,218661#msg-218661 From nginx-forum на nginx.us Mon Nov 21 02:04:48 2011 From: nginx-forum на nginx.us (locojohn) Date: Sun, 20 Nov 2011 21:04:48 -0500 Subject: keepalive disable msie6; In-Reply-To: References: Message-ID: <87edaa4802ee13e0417e5ce45eed18fb.NginxMailingListRussian@forum.nginx.org> Конечно, ну за исключением виртуальных хостов и подключаемых конф. файлов - уверяю вас, там нет директивы keepalive_disable и нет никаких ссылок на значение "msie6". #user nginx nginx; user www www; worker_processes 4; worker_rlimit_nofile 131072; worker_cpu_affinity 0001 0010 0100 1000; error_log /var/log/nginx/error_log warn; events { worker_connections 65536; use epoll; # debug_connection 217.24.65.183; } http { include /etc/nginx/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" $request_time'; client_header_timeout 10m; client_body_timeout 10m; send_timeout 10m; client_max_body_size 700m; connection_pool_size 256; client_body_buffer_size 1024k; client_header_buffer_size 8k; large_client_header_buffers 4 8k; request_pool_size 4k; proxy_buffering on; proxy_buffer_size 4k; proxy_buffers 4096 4k; open_file_cache max=2000 inactive=60s; open_file_cache_valid 60; open_log_file_cache max=1000 inactive=60s valid=1m; geoip_country /usr/share/GeoIP/GeoIP.dat; # the country IP database geoip_city    /usr/share/GeoIP/GeoLiteCity.dat; # the city IP database gzip on; gzip_min_length 1100; gzip_buffers 4 8k; gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript; output_buffers 1 128k; postpone_output 1460; aio on; directio 512; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 75 20; # keepalive_disable msie6; ignore_invalid_headers on; server_name_in_redirect on; fastcgi_pass_request_headers on; fastcgi_intercept_errors on; fastcgi_buffer_size 32k; fastcgi_buffers 8 16k; fastcgi_read_timeout 300; fastcgi_send_timeout 300; # use the map module to correctly set $script_url variable map $uri $script_url {          ~^(?.+\.(php|html))(?.+)$ $path_info;          ~^(?.+\.(php|html))$ $script_filename; } index index.html; upstream phpfarm {  server unix:/var/run/fastcgi/php-fpm-1.sock weight=100 max_fails=3 fail_timeout=5;  server unix:/var/run/fastcgi/php-fpm-2.sock weight=100 max_fails=3 fail_timeout=5;  server unix:/var/run/fastcgi/php-fpm-3.sock weight=100 max_fails=3 fail_timeout=5;        }        # upload progress        upload_progress uploads 1m;        upload_progress_content_type "application/json";        upload_progress_json_output; ### virtual host configuration [...] } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218659,218662#msg-218662 From drobly на gmail.com Mon Nov 21 03:28:23 2011 From: drobly на gmail.com (Alexander Usov) Date: Mon, 21 Nov 2011 09:28:23 +0600 Subject: keepalive disable msie6; In-Reply-To: <87edaa4802ee13e0417e5ce45eed18fb.NginxMailingListRussian@forum.nginx.org> References: <87edaa4802ee13e0417e5ce45eed18fb.NginxMailingListRussian@forum.nginx.org> Message-ID: патч 21 ноября 2011 г. 8:04 пользователь locojohn написал: > Конечно, ну за исключением виртуальных > хостов и подключаемых конф. файлов - > уверяю вас, там нет директивы keepalive_disable > и нет никаких ссылок на значение "msie6". > > #user nginx nginx; > user www www; > worker_processes 4; > worker_rlimit_nofile 131072; > worker_cpu_affinity 0001 0010 0100 1000; > > error_log /var/log/nginx/error_log warn; > > events { > worker_connections 65536; > use epoll; > # debug_connection 217.24.65.183; > } > > http { > include /etc/nginx/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" $request_time'; > > client_header_timeout 10m; > client_body_timeout 10m; > send_timeout 10m; > > client_max_body_size 700m; > connection_pool_size 256; > client_body_buffer_size 1024k; > client_header_buffer_size 8k; > large_client_header_buffers 4 8k; > request_pool_size 4k; > > proxy_buffering on; > proxy_buffer_size 4k; > proxy_buffers 4096 4k; > > open_file_cache max=2000 inactive=60s; > open_file_cache_valid 60; > open_log_file_cache max=1000 inactive=60s valid=1m; > > geoip_country /usr/share/GeoIP/GeoIP.dat; # the country IP database > geoip_city /usr/share/GeoIP/GeoLiteCity.dat; # the city IP > database > > gzip on; > gzip_min_length 1100; > gzip_buffers 4 8k; > gzip_types text/plain text/css application/x-javascript text/xml > application/xml application/xml+rss text/javascript; > > output_buffers 1 128k; > postpone_output 1460; > > aio on; > directio 512; > sendfile on; > tcp_nopush on; > tcp_nodelay on; > > keepalive_timeout 75 20; > # keepalive_disable msie6; > > ignore_invalid_headers on; > server_name_in_redirect on; > > fastcgi_pass_request_headers on; > fastcgi_intercept_errors on; > fastcgi_buffer_size 32k; > fastcgi_buffers 8 16k; > fastcgi_read_timeout 300; > fastcgi_send_timeout 300; > > # use the map module to correctly set $script_url variable > map $uri $script_url { > ~^(?.+\.(php|html))(?.+)$ > $path_info; > ~^(?.+\.(php|html))$ > $script_filename; > } > > index index.html; > > upstream phpfarm { > server unix:/var/run/fastcgi/php-fpm-1.sock weight=100 max_fails=3 > fail_timeout=5; > server unix:/var/run/fastcgi/php-fpm-2.sock weight=100 max_fails=3 > fail_timeout=5; > server unix:/var/run/fastcgi/php-fpm-3.sock weight=100 max_fails=3 > fail_timeout=5; > } > > # upload progress > upload_progress uploads 1m; > upload_progress_content_type "application/json"; > upload_progress_json_output; > > > ### virtual host configuration > > [...] > > } > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,218659,218662#msg-218662 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: path.diff Type: text/x-patch Size: 660 bytes Desc: отсутствует URL: From drobly на gmail.com Mon Nov 21 03:30:42 2011 From: drobly на gmail.com (Alexander Usov) Date: Mon, 21 Nov 2011 09:30:42 +0600 Subject: keepalive disable msie6; In-Reply-To: References: <87edaa4802ee13e0417e5ce45eed18fb.NginxMailingListRussian@forum.nginx.org> Message-ID: криво сделал, так лучше 21 ноября 2011 г. 9:28 пользователь Alexander Usov написал: > патч > > 21 ноября 2011 г. 8:04 пользователь locojohn написал: > > Конечно, ну за исключением виртуальных >> хостов и подключаемых конф. файлов - >> уверяю вас, там нет директивы keepalive_disable >> и нет никаких ссылок на значение "msie6". >> >> #user nginx nginx; >> user www www; >> worker_processes 4; >> worker_rlimit_nofile 131072; >> worker_cpu_affinity 0001 0010 0100 1000; >> >> error_log /var/log/nginx/error_log warn; >> >> events { >> worker_connections 65536; >> use epoll; >> # debug_connection 217.24.65.183; >> } >> >> http { >> include /etc/nginx/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" $request_time'; >> >> client_header_timeout 10m; >> client_body_timeout 10m; >> send_timeout 10m; >> >> client_max_body_size 700m; >> connection_pool_size 256; >> client_body_buffer_size 1024k; >> client_header_buffer_size 8k; >> large_client_header_buffers 4 8k; >> request_pool_size 4k; >> >> proxy_buffering on; >> proxy_buffer_size 4k; >> proxy_buffers 4096 4k; >> >> open_file_cache max=2000 inactive=60s; >> open_file_cache_valid 60; >> open_log_file_cache max=1000 inactive=60s valid=1m; >> >> geoip_country /usr/share/GeoIP/GeoIP.dat; # the country IP database >> geoip_city /usr/share/GeoIP/GeoLiteCity.dat; # the city IP >> database >> >> gzip on; >> gzip_min_length 1100; >> gzip_buffers 4 8k; >> gzip_types text/plain text/css application/x-javascript text/xml >> application/xml application/xml+rss text/javascript; >> >> output_buffers 1 128k; >> postpone_output 1460; >> >> aio on; >> directio 512; >> sendfile on; >> tcp_nopush on; >> tcp_nodelay on; >> >> keepalive_timeout 75 20; >> # keepalive_disable msie6; >> >> ignore_invalid_headers on; >> server_name_in_redirect on; >> >> fastcgi_pass_request_headers on; >> fastcgi_intercept_errors on; >> fastcgi_buffer_size 32k; >> fastcgi_buffers 8 16k; >> fastcgi_read_timeout 300; >> fastcgi_send_timeout 300; >> >> # use the map module to correctly set $script_url variable >> map $uri $script_url { >> ~^(?.+\.(php|html))(?.+)$ >> $path_info; >> ~^(?.+\.(php|html))$ >> $script_filename; >> } >> >> index index.html; >> >> upstream phpfarm { >> server unix:/var/run/fastcgi/php-fpm-1.sock weight=100 max_fails=3 >> fail_timeout=5; >> server unix:/var/run/fastcgi/php-fpm-2.sock weight=100 max_fails=3 >> fail_timeout=5; >> server unix:/var/run/fastcgi/php-fpm-3.sock weight=100 max_fails=3 >> fail_timeout=5; >> } >> >> # upload progress >> upload_progress uploads 1m; >> upload_progress_content_type "application/json"; >> upload_progress_json_output; >> >> >> ### virtual host configuration >> >> [...] >> >> } >> >> Posted at Nginx Forum: >> http://forum.nginx.org/read.php?21,218659,218662#msg-218662 >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: keepalive_disable.diff Type: text/x-patch Size: 678 bytes Desc: отсутствует URL: From igor.vavrjin на gmail.com Mon Nov 21 04:45:19 2011 From: igor.vavrjin на gmail.com (Igor Vavrjin) Date: Mon, 21 Nov 2011 11:45:19 +0700 Subject: URL decode variable Message-ID: <4EC9D75F.8070509@gmail.com> Здравствуйте, не подскажите как можно средствами nginx url декодировать значение переменной? Поясню на примере: location = /mirror.html { add_header Refresh "0; url=$arg_url"; return 200; } На адрес /mirror.html приходят запросы с гет параметром url - на этот урл надо перенаправить пользователя. Обычный redirect не подходит, так как нужно реферрер подменить на тот откуда загрузился mirror.html, переменная url - urlencoded - вот как бы все работает если научиться декодировать значение переменной. Возможно ли это сделать? From rauan на maemirov.com Mon Nov 21 05:45:20 2011 From: rauan на maemirov.com (Rauan Maemirov) Date: Mon, 21 Nov 2011 11:45:20 +0600 Subject: =?UTF-8?B?0J3QtdC60L7RgNGA0LXQutGC0L3QsNGPINC30LDQv9C40YHRjCDQsiDQu9C+0LM=?= Message-ID: Здравствуйте. Есть формат лога log_format view_stats '$query_string,$remote_addr,$time_iso8601'; Есть локейшн: location /count/views { limit_req zone=stats burst=5; if ($query_string ~* "\d+,\d+,\d+$") { access_log 'logs/statlogs/viewstats.log' view_stats; } empty_gif; } То есть в лог складываются запросы определенного типа, и выглядят строки примерно так: 153900,109307,0,66.249.72.69,2011-11-19T04:03:00+06:00 191757,116837,0,93.80.58.158,2011-11-19T04:03:19+06:00 Так вот иногда случается такое, что строки накладываются друг на друга, то есть получается: 153900,109307,0,66.249.72.69,20191757,116837,0,93.80.58.158,2011-11-19T04:03:19+06:00 Раз в день-два случается стабильно. В чем может быть причина? -------------- next part -------------- An HTML attachment was scrubbed... URL: From igor на sysoev.ru Mon Nov 21 06:43:09 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Mon, 21 Nov 2011 10:43:09 +0400 Subject: =?UTF-8?B?UmU6INCd0LXQutC+0YDRgNC10LrRgtC90LDRjyDQt9Cw0L/QuNGB0Ywg0LIg0Ls=?= =?UTF-8?B?0L7Qsw==?= In-Reply-To: References: Message-ID: <20111121064309.GA66362@nginx.com> On Mon, Nov 21, 2011 at 11:45:20AM +0600, Rauan Maemirov wrote: > Здравствуйте. Есть формат лога > > log_format view_stats '$query_string,$remote_addr,$time_iso8601'; > > Есть локейшн: > > location /count/views { > > limit_req zone=stats burst=5; > > if ($query_string ~* "\d+,\d+,\d+$") { > access_log 'logs/statlogs/viewstats.log' view_stats; > } > > empty_gif; > } > > То есть в лог складываются запросы определенного типа, и выглядят строки > примерно так: > > 153900,109307,0,66.249.72.69,2011-11-19T04:03:00+06:00 > 191757,116837,0,93.80.58.158,2011-11-19T04:03:19+06:00 > > Так вот иногда случается такое, что строки накладываются друг на друга, то > есть получается: > > 153900,109307,0,66.249.72.69,20191757,116837,0,93.80.58.158,2011-11-19T04:03:19+06:00 > > Раз в день-два случается стабильно. В чем может быть причина? Какая OS ? Сколько воркеров ? Используется ли buffer для access_log ? -- Igor Sysoev From rauan на maemirov.com Mon Nov 21 06:59:41 2011 From: rauan на maemirov.com (Rauan Maemirov) Date: Mon, 21 Nov 2011 12:59:41 +0600 Subject: =?UTF-8?B?UmU6INCd0LXQutC+0YDRgNC10LrRgtC90LDRjyDQt9Cw0L/QuNGB0Ywg0LIg0Ls=?= =?UTF-8?B?0L7Qsw==?= In-Reply-To: <20111121064309.GA66362@nginx.com> References: <20111121064309.GA66362@nginx.com> Message-ID: Простите, забыл указать. centos 2.6.18-238.12.1.el5, nginx 1.0.4 worker_processes 2; настройки логов по умолчанию. 2011/11/21 Igor Sysoev > On Mon, Nov 21, 2011 at 11:45:20AM +0600, Rauan Maemirov wrote: > > Здравствуйте. Есть формат лога > > > > log_format view_stats '$query_string,$remote_addr,$time_iso8601'; > > > > Есть локейшн: > > > > location /count/views { > > > > limit_req zone=stats burst=5; > > > > if ($query_string ~* "\d+,\d+,\d+$") { > > access_log 'logs/statlogs/viewstats.log' view_stats; > > } > > > > empty_gif; > > } > > > > То есть в лог складываются запросы определенного типа, и выглядят строки > > примерно так: > > > > 153900,109307,0,66.249.72.69,2011-11-19T04:03:00+06:00 > > 191757,116837,0,93.80.58.158,2011-11-19T04:03:19+06:00 > > > > Так вот иногда случается такое, что строки накладываются друг на друга, > то > > есть получается: > > > > > 153900,109307,0,66.249.72.69,20191757,116837,0,93.80.58.158,2011-11-19T04:03:19+06:00 > > > > Раз в день-два случается стабильно. В чем может быть причина? > > Какая OS ? > Сколько воркеров ? > Используется ли buffer для access_log ? > > > -- > Igor Sysoev > > _______________________________________________ > 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 ru на nginx.com Mon Nov 21 07:17:23 2011 From: ru на nginx.com (Ruslan Ermilov) Date: Mon, 21 Nov 2011 11:17:23 +0400 Subject: keepalive disable msie6; In-Reply-To: References: <87edaa4802ee13e0417e5ce45eed18fb.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111121071723.GA49776@lo0.su> On Mon, Nov 21, 2011 at 09:30:42AM +0600, Alexander Usov wrote: > криво сделал, так лучше Спасибо! Сегодня исправим. > 21 ноября 2011 г. 9:28 пользователь Alexander Usov > <[1]drobly на gmail.com> написал: > > патч > > 21 ноября 2011 г. 8:04 пользователь locojohn > <[2]nginx-forum на nginx.us> написал: > > Конечно, ну за исключением > виртуальных > хостов и подключаемых конф. файлов - > уверяю вас, там нет директивы > keepalive_disable > и нет никаких ссылок на значение "msie6". > > #user nginx nginx; > user www www; > worker_processes 4; > worker_rlimit_nofile 131072; > worker_cpu_affinity 0001 0010 0100 1000; > > error_log /var/log/nginx/error_log warn; > > events { >        worker_connections 65536; >        use epoll; > #       debug_connection 217.24.65.183; > } > > http { >        include /etc/nginx/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" $request_time'; > >        client_header_timeout 10m; >        client_body_timeout 10m; >        send_timeout 10m; > >        client_max_body_size 700m; >        connection_pool_size 256; >        client_body_buffer_size 1024k; >        client_header_buffer_size 8k; >        large_client_header_buffers 4 8k; >        request_pool_size 4k; > >        proxy_buffering on; >        proxy_buffer_size 4k; >        proxy_buffers 4096 4k; > >        open_file_cache max=2000 inactive=60s; >        open_file_cache_valid 60; >        open_log_file_cache max=1000 inactive=60s valid=1m; > >        geoip_country /usr/share/GeoIP/GeoIP.dat; # the country IP > database >        geoip_city    /usr/share/GeoIP/GeoLiteCity.dat; # the > city IP > database > >        gzip on; >        gzip_min_length 1100; >        gzip_buffers 4 8k; >        gzip_types text/plain text/css application/x-javascript > text/xml > application/xml application/xml+rss text/javascript; > >        output_buffers 1 128k; >        postpone_output 1460; > >        aio on; >        directio 512; >        sendfile on; >        tcp_nopush on; >        tcp_nodelay on; > >        keepalive_timeout 75 20; > #       keepalive_disable msie6; > >        ignore_invalid_headers on; >        server_name_in_redirect on; > >        fastcgi_pass_request_headers on; >        fastcgi_intercept_errors on; >        fastcgi_buffer_size 32k; >        fastcgi_buffers 8 16k; >        fastcgi_read_timeout 300; >        fastcgi_send_timeout 300; > >        # use the map module to correctly set $script_url variable >        map $uri $script_url { >          ~^(?.+\.(php|html))(?.+)$ > $path_info; >          ~^(?.+\.(php|html))$ > $script_filename; >        } > >        index index.html; > >        upstream phpfarm { >         server unix:/var/run/fastcgi/php-fpm-1.sock weight=100 > max_fails=3 > fail_timeout=5; >         server unix:/var/run/fastcgi/php-fpm-2.sock weight=100 > max_fails=3 > fail_timeout=5; >         server unix:/var/run/fastcgi/php-fpm-3.sock weight=100 > max_fails=3 > fail_timeout=5; >        } > >        # upload progress >        upload_progress uploads 1m; >        upload_progress_content_type "application/json"; >        upload_progress_json_output; > > ### virtual host configuration > >  [...] > > } > > Posted at Nginx Forum: > [3]http://forum.nginx.org/read.php?21,218659,218662#msg-218662 > _______________________________________________ > nginx-ru mailing list > [4]nginx-ru на nginx.org > [5]http://mailman.nginx.org/mailman/listinfo/nginx-ru > > References > > Visible links > 1. mailto:drobly на gmail.com > 2. mailto:nginx-forum на nginx.us > 3. http://forum.nginx.org/read.php?21,218659,218662#msg-218662 > 4. mailto:nginx-ru на nginx.org > 5. http://mailman.nginx.org/mailman/listinfo/nginx-ru > --- src/http/ngx_http_core_module.c.old 2011-11-21 09:26:36.860810513 +0600 > +++ src/http/ngx_http_core_module.c 2011-11-21 09:27:23.624809491 +0600 > @@ -3267,12 +3267,12 @@ > * clcf->auto_redirect = 0; > * clcf->alias = 0; > * clcf->gzip_proxied = 0; > + * clcf->keepalive_disable = 0; > */ > > clcf->client_max_body_size = NGX_CONF_UNSET; > clcf->client_body_buffer_size = NGX_CONF_UNSET_SIZE; > clcf->client_body_timeout = NGX_CONF_UNSET_MSEC; > - clcf->keepalive_disable = NGX_CONF_UNSET_UINT; > clcf->satisfy = NGX_CONF_UNSET_UINT; > clcf->if_modified_since = NGX_CONF_UNSET_UINT; > clcf->max_ranges = NGX_CONF_UNSET_UINT; > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Ruslan Ermilov From nginx-forum на nginx.us Mon Nov 21 08:06:05 2011 From: nginx-forum на nginx.us (Tiberiy) Date: Mon, 21 Nov 2011 03:06:05 -0500 Subject: =?UTF-8?B?UmU6INCf0YDQsNCy0LjQu9GM0L3QvtC1INGA0LDRgdC/0YDQtdC00LXQu9C10L0=?= =?UTF-8?B?0LjQtSDQvdCw0LPRgNGD0LfQutC4?= In-Reply-To: References: Message-ID: <9bb02833ca3e1bd83094406035d0ace8.NginxMailingListRussian@forum.nginx.org> Спасибо за советы. Еще вопрос. На фронтах можно держать нагрузочные вещи или лучше фронты не нагружать дополнительной логикой? Например сейчас у меня фронты еще и выполняют роль backup серверов при падении апстримов. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218581,218683#msg-218683 From voron на amhost.net Mon Nov 21 08:57:17 2011 From: voron на amhost.net (Alex Vorona) Date: Mon, 21 Nov 2011 10:57:17 +0200 Subject: =?UTF-8?B?UmU6INCd0LXQutC+0YDRgNC10LrRgtC90LDRjyDQt9Cw0L/QuNGB0Ywg0LIg0Ls=?= =?UTF-8?B?0L7Qsw==?= In-Reply-To: References: <20111121064309.GA66362@nginx.com> Message-ID: <4ECA126D.9070007@amhost.net> А время, когда это происходит, случайно не совпадает со временем ротации логов для nginx? From rauan на maemirov.com Mon Nov 21 09:12:35 2011 From: rauan на maemirov.com (Rauan Maemirov) Date: Mon, 21 Nov 2011 15:12:35 +0600 Subject: =?UTF-8?B?UmU6INCd0LXQutC+0YDRgNC10LrRgtC90LDRjyDQt9Cw0L/QuNGB0Ywg0LIg0Ls=?= =?UTF-8?B?0L7Qsw==?= In-Reply-To: <4ECA126D.9070007@amhost.net> References: <20111121064309.GA66362@nginx.com> <4ECA126D.9070007@amhost.net> Message-ID: Вряд ли. Потому что если бы было во время ротации, файл бы ведь обрывался? Это происходит спонтанно и не в конце файла. Но я проверю, когда еще раз случится такое. 2011/11/21 Alex Vorona > А время, когда это происходит, случайно не совпадает со временем ротации > логов для nginx? > > _______________________________________________ > 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 rauan на maemirov.com Mon Nov 21 09:35:54 2011 From: rauan на maemirov.com (Rauan Maemirov) Date: Mon, 21 Nov 2011 15:35:54 +0600 Subject: =?UTF-8?B?UmU6INCd0LXQutC+0YDRgNC10LrRgtC90LDRjyDQt9Cw0L/QuNGB0Ywg0LIg0Ls=?= =?UTF-8?B?0L7Qsw==?= In-Reply-To: References: <20111121064309.GA66362@nginx.com> <4ECA126D.9070007@amhost.net> Message-ID: Кстати, ротации логов на весь nginx нет, но именно на этот логфайл есть. [~]# cat /etc/logrotate.d/nginx /usr/local/nginx/logs/statlogs/viewstats.log { daily rotate 30 missingok notifempty nocompress nomail sharedscripts postrotate [ ! -f /usr/local/nginx/logs/nginx.pid ] || kill -USR1 `cat /usr/local/nginx/logs/nginx.pid` endscript } 2011/11/21 Rauan Maemirov > Вряд ли. Потому что если бы было во время ротации, файл бы ведь обрывался? > Это происходит спонтанно и не в конце файла. > > Но я проверю, когда еще раз случится такое. > > 2011/11/21 Alex Vorona > >> А время, когда это происходит, случайно не совпадает со временем ротации >> логов для nginx? >> >> _______________________________________________ >> 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 nginx-forum на nginx.us Mon Nov 21 14:04:46 2011 From: nginx-forum на nginx.us (nadim) Date: Mon, 21 Nov 2011 09:04:46 -0500 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LzQsCDRgSBnemlw?= In-Reply-To: <4f1a3438840843902867a594cbb75095.NginxMailingListRussian@forum.nginx.org> References: <4f1a3438840843902867a594cbb75095.NginxMailingListRussian@forum.nginx.org> Message-ID: <5e73a45f40a199077fd2bf9ca473770e.NginxMailingListRussian@forum.nginx.org> Проверил очередной сайт гуглом, нашёл ещё одну проблеммку: Контент за ссылками типа http://www.rafaello.eu/wp-content/themes/invictus/js/jquery.min.js?ver=1.5.1 не сжимается, wget вроде определяет тип [application/x-javascript]. Олсо, на другом сайте http://dav.dpkg.info/h/gpso.png почему-то кое-что тоже не сжимается, хотя application (x-)javascript включен. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218481,218707#msg-218707 From ne на vbart.ru Mon Nov 21 14:31:22 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Mon, 21 Nov 2011 18:31:22 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LzQsCDRgSBnemlw?= In-Reply-To: <5e73a45f40a199077fd2bf9ca473770e.NginxMailingListRussian@forum.nginx.org> References: <4f1a3438840843902867a594cbb75095.NginxMailingListRussian@forum.nginx.org> <5e73a45f40a199077fd2bf9ca473770e.NginxMailingListRussian@forum.nginx.org> Message-ID: <201111211831.23260.ne@vbart.ru> On Monday 21 November 2011 18:04:46 nadim wrote: > Проверил очередной сайт гуглом, нашёл > ещё одну проблеммку: > Контент за ссылками типа > http://www.rafaello.eu/wp-content/themes/invictus/js/jquery.min.js?ver=1.5. > 1 не сжимается, wget вроде определяет тип > [application/x-javascript]. > Олсо, на другом сайте http://dav.dpkg.info/h/gpso.png > почему-то кое-что тоже не сжимается, > хотя application (x-)javascript включен. > Опять же, не правда, сжимается: GET /wp-content/themes/invictus/js/jquery.min.js?ver=1.5.1 HTTP/1.1 Host: www.rafaello.eu Accept-Encoding: gzip HTTP/1.1 200 OK Server: nginx/1.1.8 Date: Mon, 21 Nov 2011 14:27:17 GMT Content-Type: application/x-javascript Last-Modified: Tue, 21 Jun 2011 07:59:50 GMT Transfer-Encoding: chunked Connection: keep-alive Vary: Accept-Encoding Expires: Thu, 31 Dec 2037 23:55:55 GMT Cache-Control: max-age=315360000 Content-Encoding: gzip Это не проблема Nginx, а проблема инструмента, которым вы пользуетесь для проверки. -- Валентин Бартенев From hell-for-yahoo на umail.ru Mon Nov 21 14:36:26 2011 From: hell-for-yahoo на umail.ru (Andrey Repin) Date: Mon, 21 Nov 2011 18:36:26 +0400 Subject: Правильное распределение нагрузки In-Reply-To: <9bb02833ca3e1bd83094406035d0ace8.NginxMailingListRussian@forum.nginx.org> References: <9bb02833ca3e1bd83094406035d0ace8.NginxMailingListRussian@forum.nginx.org> Message-ID: <1955314107.20111121183626@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) Tiberiy! T> Спасибо за советы. Еще вопрос. На T> фронтах можно держать нагрузочные вещи T> или лучше фронты не нагружать T> дополнительной логикой? Например T> сейчас у меня фронты еще и выполняют T> роль backup серверов при падении T> апстримов. Поставьте мониторинг на все сервера и сами решайте для себя, куда что девать. -- С уважением Andrey Repin (hell-for-yahoo на umail.ru) понедельник, 21.11.2011, <18:35> From nginx-forum на nginx.us Mon Nov 21 15:37:14 2011 From: nginx-forum на nginx.us (nadim) Date: Mon, 21 Nov 2011 10:37:14 -0500 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LzQsCDRgSBnemlw?= In-Reply-To: <201111211831.23260.ne@vbart.ru> References: <201111211831.23260.ne@vbart.ru> Message-ID: <0222aff3030ca6c7aefa764b30541fa6.NginxMailingListRussian@forum.nginx.org> Не нравится мне это) но всё равно спасибо. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218481,218712#msg-218712 From fry.kun на gmail.com Tue Nov 22 02:24:20 2011 From: fry.kun на gmail.com (Konstantin Svist) Date: Mon, 21 Nov 2011 18:24:20 -0800 Subject: subrequest headers ignored Message-ID: <4ECB07D4.90706@gmail.com> Подскажите пожалуйста, как такое лечится Я хочу вытащить хэдеры из lua subrequest. Вроде по документации они должны сидеть в res.header, но там я только вижу ["Content-Type"] = "application/octet-stream"; location /foo { content_by_lua 'local res = ngx.location.capture("/bar"); ngx.print(res.header["Foo"])'; } location /bar { echo "baz"; add_header "Foo" "Bar"; } $ curl -v 'http://localhost/foo' * About to connect() to localhost port 80 (#0) * Trying 127.0.0.1... connected * Connected to localhost (127.0.0.1) port 80 (#0) > GET /foo HTTP/1.1 > User-Agent: curl/7.21.3-DEV (x86_64-unknown-linux-gnu) libcurl/7.21.3-DEV OpenSSL/1.0.0 zlib/1.2.5 libssh2/1.2.4 > Host: localhost > Accept: */* > < HTTP/1.1 200 OK < Server: < Date: Tue, 22 Nov 2011 02:18:18 GMT < Content-Type: application/octet-stream < Transfer-Encoding: chunked < Connection: keep-alive < * Connection #0 to host localhost left intact * Closing connection #0 nil# $ curl -v 'http://localhost/bar' * About to connect() to localhost port 80 (#0) * Trying 127.0.0.1... connected * Connected to localhost (127.0.0.1) port 80 (#0) > GET /bar HTTP/1.1 > User-Agent: curl/7.21.3-DEV (x86_64-unknown-linux-gnu) libcurl/7.21.3-DEV OpenSSL/1.0.0 zlib/1.2.5 libssh2/1.2.4 > Host: localhost > Accept: */* > < HTTP/1.1 200 OK < Server: < Date: Tue, 22 Nov 2011 02:17:38 GMT < Content-Type: application/octet-stream < Transfer-Encoding: chunked < Connection: keep-alive < Foo: Bar < baz * Connection #0 to host localhost left intact * Closing connection #0 From nginx-forum на nginx.us Tue Nov 22 03:58:28 2011 From: nginx-forum на nginx.us (npocToNIK) Date: Mon, 21 Nov 2011 22:58:28 -0500 Subject: =?UTF-8?B?UmU6INCc0L7QtNGD0LvRjCBuZ3ggaHR0cCBsaW1pdCByZXEgbW9kdWxl?= In-Reply-To: <4EC2ACBD.6000405@csdoc.com> References: <4EC2ACBD.6000405@csdoc.com> Message-ID: <5053b862332d37e26e5350c433bdad27.NginxMailingListRussian@forum.nginx.org> а на windows server 2008 r2 , значит проблему не решить? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218405,218724#msg-218724 From igor.vavrjin на gmail.com Tue Nov 22 04:23:32 2011 From: igor.vavrjin на gmail.com (Igor Vavrjin) Date: Tue, 22 Nov 2011 11:23:32 +0700 Subject: URL decode variable In-Reply-To: <4EC9D741.4060903@gmail.com> References: <4EC9D741.4060903@gmail.com> Message-ID: <4ECB23C4.5060401@gmail.com> 21.11.2011 11:44, Igor Vavrjin пишет: > Здравствуйте, не подскажите как можно средствами nginx url > декодировать значение переменной? > > Поясню на примере: > > location = /mirror.html { > add_header Refresh "0; url=$arg_url"; > return 200; > } > > На адрес /mirror.html приходят запросы с гет параметром url - на этот > урл надо перенаправить пользователя. Обычный redirect не подходит, так > как нужно реферрер подменить на тот откуда загрузился mirror.html, > переменная url - urlencoded - вот как бы все работает если научиться > декодировать значение переменной. Возможно ли это сделать? Никто не поможет? ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From rush.zlo на gmail.com Tue Nov 22 06:57:02 2011 From: rush.zlo на gmail.com (=?UTF-8?B?0JXQstCz0LXQvdC40LkgJ1J1c2gnINCd0LXQv9C+0LzQvdGP0YnQuNC5?=) Date: Tue, 22 Nov 2011 10:57:02 +0400 Subject: URL decode variable In-Reply-To: <4ECB23C4.5060401@gmail.com> References: <4EC9D741.4060903@gmail.com> <4ECB23C4.5060401@gmail.com> Message-ID: Может это http://wiki.nginx.org/HttpSetMiscModule поможет (см. set_unescape_uri)? 22 ноября 2011 г. 8:23 пользователь Igor Vavrjin написал: > 21.11.2011 11:44, Igor Vavrjin пишет: > > Здравствуйте, не подскажите как можно средствами nginx url декодировать > значение переменной? > > Поясню на примере: > > location = /mirror.html { >         add_header Refresh "0; url=$arg_url"; >         return 200; > } > > На адрес /mirror.html приходят запросы с гет параметром url - на этот урл > надо перенаправить пользователя. Обычный redirect не подходит, так как нужно > реферрер подменить на тот откуда загрузился mirror.html, переменная url - > urlencoded - вот как бы все работает если научиться декодировать значение > переменной. Возможно ли это сделать? > > Никто не поможет? > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Cogito ergo sum From igor.vavrjin на gmail.com Tue Nov 22 07:38:52 2011 From: igor.vavrjin на gmail.com (Igor Vavrjin) Date: Tue, 22 Nov 2011 14:38:52 +0700 Subject: URL decode variable In-Reply-To: References: <4EC9D741.4060903@gmail.com> <4ECB23C4.5060401@gmail.com> Message-ID: <4ECB518C.5050209@gmail.com> Спасибо, вроде то что надо 22.11.2011 13:57, Евгений 'Rush' Непомнящий пишет: > Может это http://wiki.nginx.org/HttpSetMiscModule поможет (см. > set_unescape_uri)? > > 22 ноября 2011 г. 8:23 пользователь Igor Vavrjin > написал: >> 21.11.2011 11:44, Igor Vavrjin пишет: >> >> Здравствуйте, не подскажите как можно средствами nginx url декодировать >> значение переменной? >> >> Поясню на примере: >> >> location = /mirror.html { >> add_header Refresh "0; url=$arg_url"; >> return 200; >> } >> >> На адрес /mirror.html приходят запросы с гет параметром url - на этот урл >> надо перенаправить пользователя. Обычный redirect не подходит, так как нужно >> реферрер подменить на тот откуда загрузился mirror.html, переменная url - >> urlencoded - вот как бы все работает если научиться декодировать значение >> переменной. Возможно ли это сделать? >> >> Никто не поможет? >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > From i.lobahin на nikitaonline.ru Tue Nov 22 14:49:35 2011 From: i.lobahin на nikitaonline.ru (Ilya Lobahin) Date: Tue, 22 Nov 2011 18:49:35 +0400 Subject: =?UTF-8?B?0KHQv9C10YbRgdC40LzQstC+0LvRiyDQsiB1cmk=?= Message-ID: <1665572293.20111122184935@nikitaonline.ru> Здравствуйте, коллеги. Столкнулся с интересной особенностью nginx. Делаем запросы вида http://site/path/DFO}g+6nYZy]Z1TE6i.P#5 {cmi=xM'^Dd В результате nginx, судя по error-логу ищет файл /some/path/DFO}g+6nYZy]Z1TE6i.P Т.е. все, после anchor (вместе с ним также) отрезается. Не спрашивайте почему у файла такое название, победить это невозможно. Подскажите, есть ли решение проблемы средствами nginx, или придется жить на apache, где такой ситуации не возникает? P.S. Lighttpd те же грабли. -- С уважением, Лобахин Илья From citrin на citrin.ru Tue Nov 22 14:57:36 2011 From: citrin на citrin.ru (Anton Yuzhaninov) Date: Tue, 22 Nov 2011 18:57:36 +0400 Subject: =?UTF-8?B?UmU6INCh0L/QtdGG0YHQuNC80LLQvtC70Ysg0LIgdXJp?= In-Reply-To: <1665572293.20111122184935@nikitaonline.ru> References: <1665572293.20111122184935@nikitaonline.ru> Message-ID: <4ECBB860.2000304@citrin.ru> On 11/22/11 18:49, Ilya Lobahin wrote: > Столкнулся с интересной особенностью nginx. > Делаем запросы видаhttp://site/path/DFO}g+6nYZy]Z1TE6i.P#5 {cmi=xM'^Dd > В результате nginx, судя по error-логу ищет файл /some/path/DFO}g+6nYZy]Z1TE6i.P > Т.е. все, после anchor (вместе с ним также) отрезается. > Не спрашивайте почему у файла такое название, победить это невозможно. > > Подскажите, есть ли решение проблемы средствами nginx, или придется > жить на apache, где такой ситуации не возникает? Все после # должен обрезать браузер, перед отправкой запроса на сервер. -- Anton Yuzhaninov From ne на vbart.ru Tue Nov 22 15:10:16 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Tue, 22 Nov 2011 19:10:16 +0400 Subject: =?UTF-8?B?UmU6INCh0L/QtdGG0YHQuNC80LLQvtC70Ysg0LIgdXJp?= In-Reply-To: <1665572293.20111122184935@nikitaonline.ru> References: <1665572293.20111122184935@nikitaonline.ru> Message-ID: <201111221910.16705.ne@vbart.ru> On Tuesday 22 November 2011 18:49:35 Ilya Lobahin wrote: > Здравствуйте, коллеги. > > Столкнулся с интересной особенностью nginx. > Делаем запросы вида http://site/path/DFO}g+6nYZy]Z1TE6i.P#5 {cmi=xM'^Dd > В результате nginx, судя по error-логу ищет файл > /some/path/DFO}g+6nYZy]Z1TE6i.P Т.е. все, после anchor (вместе с ним > также) отрезается. > Не спрашивайте почему у файла такое название, победить это невозможно. [...] А если делать такой запрос? http://site/path/DFO%7Dg%2B6nYZy%5DZ1TE6i.P%235%20%7Bcmi%3DxM'%5EDd -- Валентин Бартенев From i.lobahin на nikitaonline.ru Tue Nov 22 15:16:55 2011 From: i.lobahin на nikitaonline.ru (Ilya Lobahin) Date: Tue, 22 Nov 2011 19:16:55 +0400 Subject: =?UTF-8?B?UmVbMl06INCh0L/QtdGG0YHQuNC80LLQvtC70Ysg0LIgdXJp?= In-Reply-To: <201111221910.16705.ne@vbart.ru> References: <1665572293.20111122184935@nikitaonline.ru> <201111221910.16705.ne@vbart.ru> Message-ID: <715527639.20111122191655@nikitaonline.ru> Здравствуйте, Валентин. Вы писали 22 ноября 2011 г., 19:10:16: > On Tuesday 22 November 2011 18:49:35 Ilya Lobahin wrote: >> Здравствуйте, коллеги. >> >> Столкнулся с интересной особенностью nginx. >> Делаем запросы вида http://site/path/DFO}g+6nYZy]Z1TE6i.P#5 {cmi=xM'^Dd >> В результате nginx, судя по error-логу ищет файл >> /some/path/DFO}g+6nYZy]Z1TE6i.P Т.е. все, после anchor (вместе с ним >> также) отрезается. >> Не спрашивайте почему у файла такое название, победить это невозможно. > [...] > А если делать такой запрос? > http://site/path/DFO%7Dg%2B6nYZy%5DZ1TE6i.P%235%20%7Bcmi%3DxM'%5EDd Если заменить # на %23, то файл скачивается нормально. Проблема только в том, что первоначальный uri изменить невозможно, там специальная софтина, приходится заходить со стороны сервера. Пробовал сделать такую конфигурацию: rewrite ^(.*)#(.*)$ $1%23$2 break; Не получилось. -- С уважением, Лобахин Илья From ne на vbart.ru Tue Nov 22 15:30:48 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Tue, 22 Nov 2011 19:30:48 +0400 Subject: =?UTF-8?B?UmU6INCh0L/QtdGG0YHQuNC80LLQvtC70Ysg0LIgdXJp?= In-Reply-To: <715527639.20111122191655@nikitaonline.ru> References: <1665572293.20111122184935@nikitaonline.ru> <201111221910.16705.ne@vbart.ru> <715527639.20111122191655@nikitaonline.ru> Message-ID: <201111221930.48389.ne@vbart.ru> On Tuesday 22 November 2011 19:16:55 Ilya Lobahin wrote: > > Если заменить # на %23, то файл скачивается нормально. > Проблема только в том, что первоначальный uri изменить невозможно, > там специальная софтина, приходится заходить со стороны сервера. > > Пробовал сделать такую конфигурацию: > rewrite ^(.*)#(.*)$ $1%23$2 break; > > Не получилось. URI обрезается по # ещё на этапе парсинга строки запроса. Пожалуй единственный ваш выход, это попробовать использовать переменную $request, которая, если я не ошибаюсь, должна содержать строку запроса целиком. -- Валентин Бартенев From nginx-forum на nginx.us Tue Nov 22 20:27:36 2011 From: nginx-forum на nginx.us (Tiberiy) Date: Tue, 22 Nov 2011 15:27:36 -0500 Subject: =?UTF-8?B?UmU6INCh0L/QtdGG0YHQuNC80LLQvtC70Ysg0LIgdXJp?= In-Reply-To: <1665572293.20111122184935@nikitaonline.ru> References: <1665572293.20111122184935@nikitaonline.ru> Message-ID: <6f7130dd65fac32c142eb11d84049d3f.NginxMailingListRussian@forum.nginx.org> Подтверждаю проблему. Имею много трафика с таким же анкором. Все параметры после отрезаются нгинксом. Решения так и не нашел... Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218745,218760#msg-218760 From fry.kun на gmail.com Tue Nov 22 22:17:33 2011 From: fry.kun на gmail.com (Konstantin Svist) Date: Tue, 22 Nov 2011 14:17:33 -0800 Subject: [SOLVED] Re: subrequest headers ignored In-Reply-To: <4ECB07D4.90706@gmail.com> References: <4ECB07D4.90706@gmail.com> Message-ID: <4ECC1F7D.1010202@gmail.com> https://github.com/chaoslawful/lua-nginx-module/issues/6 On 11/21/2011 06:24 PM, Konstantin Svist wrote: > Подскажите пожалуйста, как такое лечится > Я хочу вытащить хэдеры из lua subrequest. Вроде по документации они > должны сидеть в res.header, но там я только вижу ["Content-Type"] = > "application/octet-stream"; > > > > location /foo { > content_by_lua 'local res = ngx.location.capture("/bar"); > ngx.print(res.header["Foo"])'; > } > location /bar { > echo "baz"; > add_header "Foo" "Bar"; > } > > > > $ curl -v 'http://localhost/foo' > * About to connect() to localhost port 80 (#0) > * Trying 127.0.0.1... connected > * Connected to localhost (127.0.0.1) port 80 (#0) > > GET /foo HTTP/1.1 > > User-Agent: curl/7.21.3-DEV (x86_64-unknown-linux-gnu) > libcurl/7.21.3-DEV OpenSSL/1.0.0 zlib/1.2.5 libssh2/1.2.4 > > Host: localhost > > Accept: */* > > > < HTTP/1.1 200 OK > < Server: > < Date: Tue, 22 Nov 2011 02:18:18 GMT > < Content-Type: application/octet-stream > < Transfer-Encoding: chunked > < Connection: keep-alive > < > * Connection #0 to host localhost left intact > * Closing connection #0 > nil# > > > > $ curl -v 'http://localhost/bar' > * About to connect() to localhost port 80 (#0) > * Trying 127.0.0.1... connected > * Connected to localhost (127.0.0.1) port 80 (#0) > > GET /bar HTTP/1.1 > > User-Agent: curl/7.21.3-DEV (x86_64-unknown-linux-gnu) > libcurl/7.21.3-DEV OpenSSL/1.0.0 zlib/1.2.5 libssh2/1.2.4 > > Host: localhost > > Accept: */* > > > < HTTP/1.1 200 OK > < Server: > < Date: Tue, 22 Nov 2011 02:17:38 GMT > < Content-Type: application/octet-stream > < Transfer-Encoding: chunked > < Connection: keep-alive > < Foo: Bar > < > baz > * Connection #0 to host localhost left intact > * Closing connection #0 > > From sergey.kobzar на itcraft.org Tue Nov 22 22:50:29 2011 From: sergey.kobzar на itcraft.org (Sergey Kobzar) Date: Wed, 23 Nov 2011 00:50:29 +0200 Subject: Dead backend detection Message-ID: <4ECC2735.5060206@itcraft.org> Добрый вечер Есть ли возможность (в ралтайме) узнать, что бэкенд был признан помершим и выкинут из пула и причину? Слишком часто у меня на фронтэнде проскакивает 502 ошибка: # cat /var/log/nginx/default_access.log | grep ' HTTP/1.0" 502 ' | wc -l 4498 Например: 207.46.13.98 - - [22/Nov/2011:04:24:57 +0000] "GET /Companies/go-hongkong-hotels/0270003228578 HTTP/1.1" 502 9603 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)" "-" Т.е. была ли проблема с сетью, либо же фронтенд получил 50х ошибку от быкенда. Конфиг на фронтенде: proxy_connect_timeout 5; proxy_intercept_errors on; upstream backend { server 10.1.9.2 max_fails=3 fail_timeout=300s; server 10.1.9.3 max_fails=3 fail_timeout=300s; server 127.0.0.1 backup; ip_hash; } server { location / { error_page 502 504 /errors/500.html; return 502; } } server { listen 80 default; location / { proxy_pass http://backend; proxy_next_upstream error timeout http_502 http_504; } ... } Спасибо. From nginx-forum на nginx.us Wed Nov 23 04:06:09 2011 From: nginx-forum на nginx.us (alexpts) Date: Tue, 22 Nov 2011 23:06:09 -0500 Subject: =?UTF-8?B?0JTQuNC90LDQvNC40YfQtdGB0LrQuNC5IGluY2x1ZGUg0L/QviAq?= Message-ID: <8d17f94c753573f94c968f7a97b907aa.NginxMailingListRussian@forum.nginx.org> В debian делал настройки хоста в папке проекта, чтобы каждый новый проект не добавлять использовал конструкцию вида: /var/www/*/nginx.conf; Таким образом со всех проектов динамически подгружались конфиги проектов. Пытаюсь сделать тоже самое в windows, но отображается ошибка при использовании символа * при include: include C:/NPM_Server/hosts/*/nginx.conf; nginx: [emerg] FindFirstFile() "C:/NPM_Server/hosts/*/nginx.conf" failed (123: С интаксическая ошибка в имени файла, имени папки или метке тома) in C:\NPM_Server \nginx/conf/nginx.conf:100 Это проблема ОС? Можно ли как-то под windows сделать аналагично *, чтобы во всех папках проверять конфиги проектов. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218770,218770#msg-218770 From mdounin на mdounin.ru Wed Nov 23 07:54:15 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 23 Nov 2011 11:54:15 +0400 Subject: Dead backend detection In-Reply-To: <4ECC2735.5060206@itcraft.org> References: <4ECC2735.5060206@itcraft.org> Message-ID: <20111123075415.GM95664@mdounin.ru> Hello! On Wed, Nov 23, 2011 at 12:50:29AM +0200, Sergey Kobzar wrote: > Добрый вечер > > Есть ли возможность (в ралтайме) узнать, что бэкенд был признан > помершим и выкинут из пула и причину? > > Слишком часто у меня на фронтэнде проскакивает 502 ошибка: > > # cat /var/log/nginx/default_access.log | grep ' HTTP/1.0" 502 ' | wc -l > 4498 > > Например: > 207.46.13.98 - - [22/Nov/2011:04:24:57 +0000] "GET > /Companies/go-hongkong-hotels/0270003228578 HTTP/1.1" 502 9603 "-" > "Mozilla/5.0 (compatible; bingbot/2.0; > +http://www.bing.com/bingbot.htm)" "-" > > Т.е. была ли проблема с сетью, либо же фронтенд получил 50х ошибку > от быкенда. Я бы рекомендовал начать с базовых вещей: логгировать $upstream_status / $upstream_response_time. Maxim Dounin From mdounin на mdounin.ru Wed Nov 23 08:01:35 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 23 Nov 2011 12:01:35 +0400 Subject: =?UTF-8?B?UmU6INCU0LjQvdCw0LzQuNGH0LXRgdC60LjQuSBpbmNsdWRlINC/0L4gKg==?= In-Reply-To: <8d17f94c753573f94c968f7a97b907aa.NginxMailingListRussian@forum.nginx.org> References: <8d17f94c753573f94c968f7a97b907aa.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111123080135.GN95664@mdounin.ru> Hello! On Tue, Nov 22, 2011 at 11:06:09PM -0500, alexpts wrote: > В debian делал настройки хоста в папке > проекта, чтобы каждый новый проект не > добавлять использовал конструкцию > вида: > > /var/www/*/nginx.conf; > > Таким образом со всех проектов > динамически подгружались конфиги > проектов. > > Пытаюсь сделать тоже самое в windows, но > отображается ошибка при использовании > символа * при include: > > include C:/NPM_Server/hosts/*/nginx.conf; > > nginx: [emerg] FindFirstFile() "C:/NPM_Server/hosts/*/nginx.conf" failed > (123: С > интаксическая ошибка в имени файла, > имени папки или метке тома) in C:\NPM_Server > \nginx/conf/nginx.conf:100 > > Это проблема ОС? Да. > Можно ли как-то под windows > сделать аналагично *, чтобы во всех > папках проверять конфиги проектов. Нет. Maxim Dounin From manowar на gsc-game.kiev.ua Wed Nov 23 09:12:28 2011 From: manowar на gsc-game.kiev.ua (Serguei I. Ivantsov) Date: Wed, 23 Nov 2011 11:12:28 +0200 Subject: =?UTF-8?Q?PHP_=D0=B8_try=5Ffiles?= Message-ID: <4ECCB8FC.4010203@gsc-game.kiev.ua> Привет! Не могу разобраться. Всегда не находит файл, даже если он есть. В чём подвох? > location ~ \.php$ { > try_files $uri @fnotfound; > proxy_pass http://127.0.0.1:3128; > proxy_set_header Host $host; > proxy_set_header X-Forwarded-For > $proxy_add_x_forwarded_for; > } > > location @fnotfound { > return 410; > } -- Regards, Serguei I. Ivantsov From rush.zlo на gmail.com Wed Nov 23 09:57:30 2011 From: rush.zlo на gmail.com (=?UTF-8?B?0JXQstCz0LXQvdC40LkgJ1J1c2gnINCd0LXQv9C+0LzQvdGP0YnQuNC5?=) Date: Wed, 23 Nov 2011 13:57:30 +0400 Subject: =?UTF-8?Q?Re=3A_PHP_=D0=B8_try=5Ffiles?= In-Reply-To: <4ECCB8FC.4010203@gsc-game.kiev.ua> References: <4ECCB8FC.4010203@gsc-game.kiev.ua> Message-ID: а root то куда кажет? 23 ноября 2011 г. 13:12 пользователь Serguei I. Ivantsov написал: > Привет! > > Не могу разобраться. Всегда не находит файл, даже если он есть. В чём > подвох? > >>         location ~ \.php$ { >>             try_files           $uri @fnotfound; >>             proxy_pass          http://127.0.0.1:3128; >>             proxy_set_header    Host    $host; >>             proxy_set_header    X-Forwarded-For >> $proxy_add_x_forwarded_for; >>         } >> >>         location @fnotfound { >>             return 410; >>         } > > -- > Regards, >  Serguei I. Ivantsov > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Cogito ergo sum From sergey.kobzar на itcraft.org Wed Nov 23 09:58:01 2011 From: sergey.kobzar на itcraft.org (Sergey Kobzar) Date: Wed, 23 Nov 2011 11:58:01 +0200 Subject: Dead backend detection In-Reply-To: <20111123075415.GM95664@mdounin.ru> References: <4ECC2735.5060206@itcraft.org> <20111123075415.GM95664@mdounin.ru> Message-ID: <4ECCC3A9.5090202@itcraft.org> On 11/23/11 09:54, Maxim Dounin wrote: > Hello! > > On Wed, Nov 23, 2011 at 12:50:29AM +0200, Sergey Kobzar wrote: > >> Добрый вечер >> >> Есть ли возможность (в ралтайме) узнать, что бэкенд был признан >> помершим и выкинут из пула и причину? >> >> Слишком часто у меня на фронтэнде проскакивает 502 ошибка: >> >> # cat /var/log/nginx/default_access.log | grep ' HTTP/1.0" 502 ' | wc -l >> 4498 >> >> Например: >> 207.46.13.98 - - [22/Nov/2011:04:24:57 +0000] "GET >> /Companies/go-hongkong-hotels/0270003228578 HTTP/1.1" 502 9603 "-" >> "Mozilla/5.0 (compatible; bingbot/2.0; >> +http://www.bing.com/bingbot.htm)" "-" >> >> Т.е. была ли проблема с сетью, либо же фронтенд получил 50х ошибку >> от быкенда. > > Я бы рекомендовал начать с базовых вещей: логгировать > $upstream_status / $upstream_response_time. Максим, спасибо. А в отдельный logfile собирать статистику по бэкендам на фронтенде есть возможность или только accesslog? Нагрузка довольно большая и за день accelog вырастает до гигабайта - не совсем удобно с ним работать. > > Maxim Dounin > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From manowar на gsc-game.kiev.ua Wed Nov 23 09:59:01 2011 From: manowar на gsc-game.kiev.ua (Serguei I. Ivantsov) Date: Wed, 23 Nov 2011 11:59:01 +0200 Subject: =?UTF-8?Q?Re=3A_PHP_=D0=B8_try=5Ffiles?= In-Reply-To: References: <4ECCB8FC.4010203@gsc-game.kiev.ua> Message-ID: <4ECCC3E5.6080103@gsc-game.kiev.ua> Вот оно что! root действительно в другом location-е... Спасибо! Жаль что nginx не наследует предыдущие совпадения location-ов, из-за этого копи-пастить много надо. On 23.11.2011 11:57, Евгений 'Rush' Непомнящий wrote: > а root то куда кажет? > > 23 ноября 2011 г. 13:12 пользователь Serguei I. Ivantsov > написал: >> Привет! >> >> Не могу разобраться. Всегда не находит файл, даже если он есть. В чём >> подвох? >> >>> location ~ \.php$ { >>> try_files $uri @fnotfound; >>> proxy_pass http://127.0.0.1:3128; >>> proxy_set_header Host $host; >>> proxy_set_header X-Forwarded-For >>> $proxy_add_x_forwarded_for; >>> } >>> >>> location @fnotfound { >>> return 410; >>> } >> -- >> Regards, >> Serguei I. Ivantsov >> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > From rush.zlo на gmail.com Wed Nov 23 10:23:56 2011 From: rush.zlo на gmail.com (=?UTF-8?B?0JXQstCz0LXQvdC40LkgJ1J1c2gnINCd0LXQv9C+0LzQvdGP0YnQuNC5?=) Date: Wed, 23 Nov 2011 14:23:56 +0400 Subject: =?UTF-8?Q?Re=3A_PHP_=D0=B8_try=5Ffiles?= In-Reply-To: <4ECCC3E5.6080103@gsc-game.kiev.ua> References: <4ECCB8FC.4010203@gsc-game.kiev.ua> <4ECCC3E5.6080103@gsc-game.kiev.ua> Message-ID: root можно указывать в любой секции, соответственно если указать его в http - его унаследуют не только все локации, но и все сервера. Ну и include тоже поможет спастить от приступа безудержной копипасты :) 23 ноября 2011 г. 13:59 пользователь Serguei I. Ivantsov написал: > Вот оно что! root действительно в другом location-е... Спасибо! Жаль что > nginx не наследует предыдущие совпадения location-ов, из-за этого > копи-пастить много надо. > > On 23.11.2011 11:57, Евгений 'Rush' Непомнящий wrote: >> а root то куда кажет? >> >> 23 ноября 2011 г. 13:12 пользователь Serguei I. Ivantsov >> написал: >>> Привет! >>> >>> Не могу разобраться. Всегда не находит файл, даже если он есть. В чём >>> подвох? >>> >>>>         location ~ \.php$ { >>>>             try_files           $uri @fnotfound; >>>>             proxy_pass          http://127.0.0.1:3128; >>>>             proxy_set_header    Host    $host; >>>>             proxy_set_header    X-Forwarded-For >>>> $proxy_add_x_forwarded_for; >>>>         } >>>> >>>>         location @fnotfound { >>>>             return 410; >>>>         } >>> -- >>> Regards, >>>  Serguei I. Ivantsov >>> >>> >>> _______________________________________________ >>> 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 -- Cogito ergo sum From manowar на gsc-game.kiev.ua Wed Nov 23 10:29:29 2011 From: manowar на gsc-game.kiev.ua (Serguei I. Ivantsov) Date: Wed, 23 Nov 2011 12:29:29 +0200 Subject: =?UTF-8?Q?Re=3A_PHP_=D0=B8_try=5Ffiles?= In-Reply-To: References: <4ECCB8FC.4010203@gsc-game.kiev.ua> <4ECCC3E5.6080103@gsc-game.kiev.ua> Message-ID: <4ECCCB09.9040804@gsc-game.kiev.ua> Вот инклудами и спасаюсь :) Спасибо за хинт по поводу root-а! И ещё вопрос, вот мне нужно в отдельную директорию (админку) разрешить доступ только с определённой сетки. Как это сделать, чтобы в соответствующем location-е не дублировать все proxy* настройки из location-а, который перехватывает .php? -- Regards, Serguei I. Ivantsov On 23.11.2011 12:23, Евгений 'Rush' Непомнящий wrote: > root можно указывать в любой секции, соответственно если указать его в > http - его унаследуют не только все локации, но и все сервера. Ну и > include тоже поможет спастить от приступа безудержной копипасты :) > > 23 ноября 2011 г. 13:59 пользователь Serguei I. Ivantsov > написал: >> Вот оно что! root действительно в другом location-е... Спасибо! Жаль что >> nginx не наследует предыдущие совпадения location-ов, из-за этого >> копи-пастить много надо. >> >> On 23.11.2011 11:57, Евгений 'Rush' Непомнящий wrote: >>> а root то куда кажет? >>> >>> 23 ноября 2011 г. 13:12 пользователь Serguei I. Ivantsov >>> написал: >>>> Привет! >>>> >>>> Не могу разобраться. Всегда не находит файл, даже если он есть. В чём >>>> подвох? >>>> >>>>> location ~ \.php$ { >>>>> try_files $uri @fnotfound; >>>>> proxy_pass http://127.0.0.1:3128; >>>>> proxy_set_header Host $host; >>>>> proxy_set_header X-Forwarded-For >>>>> $proxy_add_x_forwarded_for; >>>>> } >>>>> >>>>> location @fnotfound { >>>>> return 410; >>>>> } >>>> -- >>>> Regards, >>>> Serguei I. Ivantsov >>>> >>>> >>>> _______________________________________________ >>>> nginx-ru mailing list >>>> nginx-ru на nginx.org >>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > From latypoff на yandex.ru Wed Nov 23 10:39:54 2011 From: latypoff на yandex.ru (Denis F. Latypoff) Date: Wed, 23 Nov 2011 17:39:54 +0700 Subject: =?UTF-8?Q?Re=3A_PHP_=D0=B8_try=5Ffiles?= In-Reply-To: <4ECCCB09.9040804@gsc-game.kiev.ua> References: <4ECCB8FC.4010203@gsc-game.kiev.ua> <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> Message-ID: <110461322044794@web15.yandex.ru> 23.11.2011, 17:29, "Serguei I. Ivantsov" : > Вот инклудами и спасаюсь :) Спасибо за хинт по поводу root-а! > И ещё вопрос, вот мне нужно в отдельную директорию (админку) разрешить > доступ только с определённой сетки. Как это сделать, чтобы в > соответствующем location-е не дублировать все proxy* настройки из > location-а, который перехватывает .php? ну так же - инклудом. nginx не будет работать быстрее, если в конфиге меньше строк, что за панический страх перед дублированием конфига? > > -- > Regards, >  Serguei I. Ivantsov > > On 23.11.2011 12:23, Евгений 'Rush' Непомнящий wrote: > >>  root можно указывать в любой секции, соответственно если указать его в >>  http - его унаследуют не только все локации, но и все сервера. Ну и >>  include тоже поможет спастить от приступа безудержной копипасты :) >> >>  23 ноября 2011 г. 13:59 пользователь Serguei I. Ivantsov >>   написал: >>>  Вот оно что! root действительно в другом location-е... Спасибо! Жаль что >>>  nginx не наследует предыдущие совпадения location-ов, из-за этого >>>  копи-пастить много надо. >>> >>>  On 23.11.2011 11:57, Евгений 'Rush' Непомнящий wrote: >>>>  а root то куда кажет? >>>> >>>>  23 ноября 2011 г. 13:12 пользователь Serguei I. Ivantsov >>>>   написал: >>>>>  Привет! >>>>> >>>>>  Не могу разобраться. Всегда не находит файл, даже если он есть. В чём >>>>>  подвох? >>>>>>          location ~ \.php$ { >>>>>>              try_files           $uri @fnotfound; >>>>>>              proxy_pass          http://127.0.0.1:3128; >>>>>>              proxy_set_header    Host    $host; >>>>>>              proxy_set_header    X-Forwarded-For >>>>>>  $proxy_add_x_forwarded_for; >>>>>>          } >>>>>> >>>>>>          location @fnotfound { >>>>>>              return 410; >>>>>>          } >>>>>  -- >>>>>  Regards, >>>>>   Serguei I. Ivantsov >>>>> >>>>>  _______________________________________________ >>>>>  nginx-ru mailing list >>>>>  nginx-ru на nginx.org >>>>>  http://mailman.nginx.org/mailman/listinfo/nginx-ru >>>  _______________________________________________ >>>  nginx-ru mailing list >>>  nginx-ru на nginx.org >>>  http://mailman.nginx.org/mailman/listinfo/nginx-ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- br, Denis F. Latypoff. From manowar на gsc-game.kiev.ua Wed Nov 23 10:47:27 2011 From: manowar на gsc-game.kiev.ua (Serguei I. Ivantsov) Date: Wed, 23 Nov 2011 12:47:27 +0200 Subject: =?UTF-8?Q?Re=3A_PHP_=D0=B8_try=5Ffiles?= In-Reply-To: <110461322044794@web15.yandex.ru> References: <4ECCB8FC.4010203@gsc-game.kiev.ua> <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> Message-ID: <4ECCCF3F.90703@gsc-game.kiev.ua> On 23.11.2011 12:39, Denis F. Latypoff wrote: > nginx не будет работать быстрее, если в конфиге меньше строк, что за > панический страх перед дублированием конфига? Если это действительно так, то вопрос снят. >> -- >> Regards, >> Serguei I. Ivantsov >> >> On 23.11.2011 12:23, Евгений 'Rush' Непомнящий wrote: >> >>> root можно указывать в любой секции, соответственно если указать его в >>> http - его унаследуют не только все локации, но и все сервера. Ну и >>> include тоже поможет спастить от приступа безудержной копипасты :) >>> >>> 23 ноября 2011 г. 13:59 пользователь Serguei I. Ivantsov >>> написал: >>>> Вот оно что! root действительно в другом location-е... Спасибо! Жаль что >>>> nginx не наследует предыдущие совпадения location-ов, из-за этого >>>> копи-пастить много надо. >>>> >>>> On 23.11.2011 11:57, Евгений 'Rush' Непомнящий wrote: >>>>> а root то куда кажет? >>>>> >>>>> 23 ноября 2011 г. 13:12 пользователь Serguei I. Ivantsov >>>>> написал: >>>>>> Привет! >>>>>> >>>>>> Не могу разобраться. Всегда не находит файл, даже если он есть. В чём >>>>>> подвох? >>>>>>> location ~ \.php$ { >>>>>>> try_files $uri @fnotfound; >>>>>>> proxy_pass http://127.0.0.1:3128; >>>>>>> proxy_set_header Host $host; >>>>>>> proxy_set_header X-Forwarded-For >>>>>>> $proxy_add_x_forwarded_for; >>>>>>> } >>>>>>> >>>>>>> location @fnotfound { >>>>>>> return 410; >>>>>>> } >>>>>> -- >>>>>> Regards, >>>>>> Serguei I. Ivantsov >>>>>> >>>>>> _______________________________________________ >>>>>> nginx-ru mailing list >>>>>> nginx-ru на nginx.org >>>>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>>> _______________________________________________ >>>> nginx-ru mailing list >>>> nginx-ru на nginx.org >>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru From gmm на csdoc.com Wed Nov 23 11:11:51 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Wed, 23 Nov 2011 13:11:51 +0200 Subject: don't repeat yourself / copy and paste programming In-Reply-To: <110461322044794@web15.yandex.ru> References: <4ECCB8FC.4010203@gsc-game.kiev.ua> <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> Message-ID: <4ECCD4F7.4060606@csdoc.com> On 23.11.2011 12:39, Denis F. Latypoff wrote: >> И ещё вопрос, вот мне нужно в отдельную директорию (админку) разрешить >> доступ только с определённой сетки. Как это сделать, чтобы в >> соответствующем location-е не дублировать все proxy* настройки из >> location-а, который перехватывает .php? > ну так же - инклудом. > nginx не будет работать быстрее, если в конфиге меньше строк, > что за панический страх перед дублированием конфига? по поводу copy/paste: http://en.wikipedia.org/wiki/Don%27t_repeat_yourself http://en.wikipedia.org/wiki/Copy_and_paste_programming по поводу include: не просмотрев все конфиги нельзя понять какие сайты затронет модификация того или иного фрагмента include-файла, потому что все include-файлы имеют глобальную область видимости. как вариант - применить трехуровневую схему: /etc/nginx/nginx.conf /etc/nginx/virtual/example.com/example.com.conf /etc/nginx/virtual/example.com/include-file.inc в таком случае у каждого сайта будет свой собственный подкаталог и там будут include-файлы только с локальной областью видимости, которые можно будет безопасно модифицировать, точно зная, что это не затронет никакие другие сайты. но это опять же, конфигурирование nginx методом copy/paste, потому что в 99% случаев это будут полностью одинаковые копии файлов. как избавиться от метода copy/paste в том или ином виде: 1. написать свой собственный генератор конфига nginx из DSL. 2. добавить в nginx возможность создавать "макросы" с локальной областью видимости, тогда можно будет конфигурировать nginx по принципу "1 сайт == 1 конфиг" и вместе с тем, избавиться от индусского метода copy/paste. 3. ......................................................... ? -- Best regards, Gena From rush.zlo на gmail.com Wed Nov 23 11:28:26 2011 From: rush.zlo на gmail.com (=?UTF-8?B?0JXQstCz0LXQvdC40LkgJ1J1c2gnINCd0LXQv9C+0LzQvdGP0YnQuNC5?=) Date: Wed, 23 Nov 2011 15:28:26 +0400 Subject: don't repeat yourself / copy and paste programming In-Reply-To: <4ECCD4F7.4060606@csdoc.com> References: <4ECCB8FC.4010203@gsc-game.kiev.ua> <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> Message-ID: В нашем случае используется ?1 (genshi templates + fabric, так как серверов много). Минус только один - ленимся написать запуска для этой связки вебморду :) Впрочем тот же подход практикуем и для конфигов другого софта, не только nginx, так что метод в общем то универсальный, хотя не для ленивых, это да. 23 ноября 2011 г. 15:11 пользователь Gena Makhomed написал: > On 23.11.2011 12:39, Denis F. Latypoff wrote: > >>> И ещё вопрос, вот мне нужно в отдельную директорию (админку) разрешить >>> доступ только с определённой сетки. Как это сделать, чтобы в >>> соответствующем location-е не дублировать все proxy* настройки из >>> location-а, который перехватывает .php? > >> ну так же - инклудом. >> nginx не будет работать быстрее, если в конфиге меньше строк, >> что за панический страх перед дублированием конфига? > > по поводу copy/paste: > > http://en.wikipedia.org/wiki/Don%27t_repeat_yourself > http://en.wikipedia.org/wiki/Copy_and_paste_programming > > по поводу include: > > не просмотрев все конфиги нельзя понять какие сайты > затронет модификация того или иного фрагмента include-файла, > потому что все include-файлы имеют глобальную область видимости. > > как вариант - применить трехуровневую схему: > > /etc/nginx/nginx.conf > /etc/nginx/virtual/example.com/example.com.conf > /etc/nginx/virtual/example.com/include-file.inc > > в таком случае у каждого сайта будет свой собственный > подкаталог и там будут include-файлы только с локальной > областью видимости, которые можно будет безопасно > модифицировать, точно зная, что это не затронет никакие > другие сайты. но это опять же, конфигурирование nginx > методом copy/paste, потому что в 99% случаев > это будут полностью одинаковые копии файлов. > > как избавиться от метода copy/paste в том или ином виде: > > 1. написать свой собственный генератор конфига nginx из DSL. > > 2. добавить в nginx возможность создавать "макросы" > с локальной областью видимости, тогда можно будет > конфигурировать nginx по принципу "1 сайт == 1 конфиг" > и вместе с тем, избавиться от индусского метода copy/paste. > > 3. ......................................................... ? > > -- > Best regards, >  Gena > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Cogito ergo sum From latypoff на yandex.ru Wed Nov 23 11:40:50 2011 From: latypoff на yandex.ru (Denis F. Latypoff) Date: Wed, 23 Nov 2011 18:40:50 +0700 Subject: don't repeat yourself / copy and paste programming In-Reply-To: <4ECCD4F7.4060606@csdoc.com> References: <4ECCB8FC.4010203@gsc-game.kiev.ua> <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> Message-ID: <141131322048450@web99.yandex.ru> 23.11.2011, 18:11, "Gena Makhomed" : > On 23.11.2011 12:39, Denis F. Latypoff wrote: > >>>  И ещё вопрос, вот мне нужно в отдельную директорию (админку) разрешить >>>  доступ только с определённой сетки. Как это сделать, чтобы в >>>  соответствующем location-е не дублировать все proxy* настройки из >>>  location-а, который перехватывает .php? >>  ну так же - инклудом. >>  nginx не будет работать быстрее, если в конфиге меньше строк, >>  что за панический страх перед дублированием конфига? > > по поводу copy/paste: > > http://en.wikipedia.org/wiki/Don%27t_repeat_yourself > http://en.wikipedia.org/wiki/Copy_and_paste_programming > конфиг nginx'а это не язык программирования, и это надо донести всякому, к чему всех призываю. повторяю еще раз скорость nginx'а никак не зависит от кол-ва строк в конфиге (конечно если не делать 100500 редиректов). Игорь где-то тут в рассылке неоднократно высказывался на тему 250 локейшенов рамблера, которые можно хоть как крутить и это не затронет работу остальных 249 локейшенов. -- br, Denis F. Latypoff. From isk на cupid.com Wed Nov 23 11:51:45 2011 From: isk на cupid.com (Olexander Shtepa) Date: Wed, 23 Nov 2011 13:51:45 +0200 Subject: don't repeat yourself / copy and paste programming In-Reply-To: References: <4ECCB8FC.4010203@gsc-game.kiev.ua> <4ECCD4F7.4060606@csdoc.com> Message-ID: <201111231351.45826.isk@cupid.com> > В нашем случае используется ?1 (genshi templates + fabric, так как > серверов много). Минус только один - ленимся написать запуска для этой > связки вебморду :) Впрочем тот же подход практикуем и для конфигов > другого софта, не только nginx, так что метод в общем то > универсальный, хотя не для ленивых, это да. А мы используем Puppet и нас тоже не волнует эта проблемма. From gmm на csdoc.com Wed Nov 23 12:01:28 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Wed, 23 Nov 2011 14:01:28 +0200 Subject: don't repeat yourself / copy and paste programming In-Reply-To: <141131322048450@web99.yandex.ru> References: <4ECCB8FC.4010203@gsc-game.kiev.ua> <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> Message-ID: <4ECCE098.7080403@csdoc.com> On 23.11.2011 13:40, Denis F. Latypoff wrote: >>> nginx не будет работать быстрее, если в конфиге меньше строк, >>> что за панический страх перед дублированием конфига? >> по поводу copy/paste: >> http://en.wikipedia.org/wiki/Don%27t_repeat_yourself >> http://en.wikipedia.org/wiki/Copy_and_paste_programming > конфиг nginx'а это не язык программирования, > и это надо донести всякому, к чему всех призываю. хм. а в чем между ними принципиальная разница? конфиг nginx'а программирует работу /sbin/nginx и его реакцию на внешние события (запросы клиентов) так что принцип DRY применим не только к java/python/C/etc, но и к конфигурационным файлам различных сервисов и демонов, в частности директива include в nginx по той же причине добавлена. > повторяю еще раз скорость nginx'а никак не зависит от кол-ва > строк в конфиге (конечно если не делать 100500 редиректов). а я где-то утверждал обратное? или с кем это Вы сейчас спорите? > Игорь где-то тут в рассылке неоднократно высказывался на > тему 250 локейшенов рамблера, которые можно хоть как крутить > и это не затронет работу остальных 249 локейшенов. Игорь говорил про один сайт. с большим количеством локейшенов. там действительно удобно будет общие фрагменты конфига вынести во внешние файлы и подключать их в нужных местах через include. некоторые проблемы начинаются если в конфиге nginx будет не один большой сайт, а несколько десятков/сотен/тысяч/... именно об этом случае я подробно написал в предыдущем сообщении. -- Best regards, Gena From latypoff на yandex.ru Wed Nov 23 12:12:23 2011 From: latypoff на yandex.ru (Denis F. Latypoff) Date: Wed, 23 Nov 2011 19:12:23 +0700 Subject: don't repeat yourself / copy and paste programming In-Reply-To: <4ECCE098.7080403@csdoc.com> References: <4ECCB8FC.4010203@gsc-game.kiev.ua> <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> <4ECCE098.7080403@csdoc.com> Message-ID: <170851322050343@web84.yandex.ru> 23.11.2011, 19:01, "Gena Makhomed" : > On 23.11.2011 13:40, Denis F. Latypoff wrote: > >>>>    nginx не будет работать быстрее, если в конфиге меньше строк, >>>>    что за панический страх перед дублированием конфига? >>>  по поводу copy/paste: >>>  http://en.wikipedia.org/wiki/Don%27t_repeat_yourself >>>  http://en.wikipedia.org/wiki/Copy_and_paste_programming >>  конфиг nginx'а это не язык программирования, >>  и это надо донести всякому, к чему всех призываю. > > хм. а в чем между ними принципиальная разница? > конфиг nginx'а программирует работу /sbin/nginx > и его реакцию на внешние события (запросы клиентов) > > так что принцип DRY применим не только к java/python/C/etc, > но и к конфигурационным файлам различных сервисов и демонов, > в частности директива include в nginx по той же причине добавлена. > >>  повторяю еще раз скорость nginx'а никак не зависит от кол-ва >>  строк в конфиге (конечно если не делать 100500 редиректов). > > а я где-то утверждал обратное? или с кем это Вы сейчас спорите? > >>  Игорь где-то тут в рассылке неоднократно высказывался на >>  тему 250 локейшенов рамблера, которые можно хоть как крутить >>  и это не затронет работу остальных 249 локейшенов. > > Игорь говорил про один сайт. с большим количеством локейшенов. > там действительно удобно будет общие фрагменты конфига вынести > во внешние файлы и подключать их в нужных местах через include. > > некоторые проблемы начинаются если в конфиге nginx будет > не один большой сайт, а несколько десятков/сотен/тысяч/... > именно об этом случае я подробно написал в предыдущем сообщении. > Хватит на все смотреть через призму шаред хостинга, они сами разберутся как им конфиг запилить. Большинство же вопрошающих имеет один-два сайта, и nginx надо затачивать под него, а не под мифические 100500 сайтов, которые возможно когда-то появятся. И, Гена, я не пытаюсь вовлечь тебя потроллить. Не обязательно отвечать на мое письмо. Скорее всего, я на твое в этом треде уже не отвечу, тема уже обсосана неоднократно. -- br, Denis F. Latypoff. From igor на sysoev.ru Wed Nov 23 12:35:38 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 23 Nov 2011 16:35:38 +0400 Subject: don't repeat yourself / copy and paste programming In-Reply-To: <4ECCE098.7080403@csdoc.com> References: <4ECCB8FC.4010203@gsc-game.kiev.ua> <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> <4ECCE098.7080403@csdoc.com> Message-ID: <20111123123537.GA43681@nginx.com> On Wed, Nov 23, 2011 at 02:01:28PM +0200, Gena Makhomed wrote: > > Игорь где-то тут в рассылке неоднократно высказывался на > > тему 250 локейшенов рамблера, которые можно хоть как крутить > > и это не затронет работу остальных 249 локейшенов. > > Игорь говорил про один сайт. с большим количеством локейшенов. > там действительно удобно будет общие фрагменты конфига вынести > во внешние файлы и подключать их в нужных местах через include. > > некоторые проблемы начинаются если в конфиге nginx будет > не один большой сайт, а несколько десятков/сотен/тысяч/... > именно об этом случае я подробно написал в предыдущем сообщении. Нет, include'ов на этом сайте практически нет. Периодически хочу пару include'ов убрать, да всё руки не доходят, потому проблем не создают. Лично я считаю приемлимым include'ить целый сайт, но не по location'ам: http { ... include site1.conf; include site2.conf; -- Игорь Сысоев http://sysoev.ru From ekruglov на gmail.com Wed Nov 23 12:43:42 2011 From: ekruglov на gmail.com (Kruglov Eugenie) Date: Wed, 23 Nov 2011 15:43:42 +0300 Subject: =?UTF-8?B?UmU6INCh0L/QtdGG0YHQuNC80LLQvtC70Ysg0LIgdXJp?= In-Reply-To: <6f7130dd65fac32c142eb11d84049d3f.NginxMailingListRussian@forum.nginx.org> References: <1665572293.20111122184935@nikitaonline.ru> <6f7130dd65fac32c142eb11d84049d3f.NginxMailingListRussian@forum.nginx.org> Message-ID: А вы уверены что всё что после # вообще доходит до нгинкса? Проверьте tcpdump'ом 2011/11/23 Tiberiy > Подтверждаю проблему. Имею много > трафика с таким же анкором. Все > параметры после отрезаются нгинксом. > Решения так и не нашел... > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,218745,218760#msg-218760 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Faithfully yours, Eugenie ICQ #701217 GTalk ekruglov на gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From manowar на gsc-game.kiev.ua Wed Nov 23 12:43:38 2011 From: manowar на gsc-game.kiev.ua (Serguei I. Ivantsov) Date: Wed, 23 Nov 2011 14:43:38 +0200 Subject: don't repeat yourself / copy and paste programming In-Reply-To: <170851322050343@web84.yandex.ru> References: <4ECCB8FC.4010203@gsc-game.kiev.ua> <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> <4ECCE098.7080403@csdoc.com> <170851322050343@web84.yandex.ru> Message-ID: <4ECCEA7A.1090709@gsc-game.kiev.ua> On 23.11.2011 14:12, Denis F. Latypoff wrote: > 23.11.2011, 19:01, "Gena Makhomed" : >> некоторые проблемы начинаются если в конфиге nginx будет >> не один большой сайт, а несколько десятков/сотен/тысяч/... >> именно об этом случае я подробно написал в предыдущем сообщении. >> > Хватит на все смотреть через призму шаред хостинга, они сами > разберутся как им конфиг запилить. Большинство же вопрошающих > имеет один-два сайта, и nginx надо затачивать под него, а не под > мифические 100500 сайтов, которые возможно когда-то появятся. Собственно сайтов как раз много и один и тот же кусок конфига совпадает для большинства виртуалов. Поэтому конфигурить несколько неудобно, да и сам конфиг выглядит не по ООП-овски :) Про скорость скорее всего правы, а вот памяти расходует точно больше, разве что внутри nginx как-то сортирует/сливает одинаковые location-ы и ставит на них референсы, или как-то по-другому оптимизирует. From i.lobahin на nikitaonline.ru Wed Nov 23 12:50:41 2011 From: i.lobahin на nikitaonline.ru (Ilya Lobahin) Date: Wed, 23 Nov 2011 16:50:41 +0400 Subject: =?UTF-8?B?UmVbMl06INCh0L/QtdGG0YHQuNC80LLQvtC70Ysg0LIgdXJp?= In-Reply-To: References: <1665572293.20111122184935@nikitaonline.ru> <6f7130dd65fac32c142eb11d84049d3f.NginxMailingListRussian@forum.nginx.org> Message-ID: <534166761.20111123165041@nikitaonline.ru> Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Wed Nov 23 12:53:39 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 23 Nov 2011 16:53:39 +0400 Subject: Dead backend detection In-Reply-To: <4ECCC3A9.5090202@itcraft.org> References: <4ECC2735.5060206@itcraft.org> <20111123075415.GM95664@mdounin.ru> <4ECCC3A9.5090202@itcraft.org> Message-ID: <20111123125339.GR95664@mdounin.ru> Hello! On Wed, Nov 23, 2011 at 11:58:01AM +0200, Sergey Kobzar wrote: > On 11/23/11 09:54, Maxim Dounin wrote: > >Hello! > > > >On Wed, Nov 23, 2011 at 12:50:29AM +0200, Sergey Kobzar wrote: > > > >>Добрый вечер > >> > >>Есть ли возможность (в ралтайме) узнать, что бэкенд был признан > >>помершим и выкинут из пула и причину? > >> > >>Слишком часто у меня на фронтэнде проскакивает 502 ошибка: > >> > >># cat /var/log/nginx/default_access.log | grep ' HTTP/1.0" 502 ' | wc -l > >>4498 > >> > >>Например: > >>207.46.13.98 - - [22/Nov/2011:04:24:57 +0000] "GET > >>/Companies/go-hongkong-hotels/0270003228578 HTTP/1.1" 502 9603 "-" > >>"Mozilla/5.0 (compatible; bingbot/2.0; > >>+http://www.bing.com/bingbot.htm)" "-" > >> > >>Т.е. была ли проблема с сетью, либо же фронтенд получил 50х ошибку > >>от быкенда. > > > >Я бы рекомендовал начать с базовых вещей: логгировать > >$upstream_status / $upstream_response_time. > > Максим, спасибо. > > А в отдельный logfile собирать статистику по бэкендам на фронтенде > есть возможность или только accesslog? > > Нагрузка довольно большая и за день accelog вырастает до гигабайта - > не совсем удобно с ним работать. Можно определить отдельный access_log, куда собирать только информацию по $upstream_*. Опять же, вращать логи часто - никто не мешает, равно как и читать их по мере накопления. Ну и вообще говоря все ошибки работы с upstream'ами - логгируются в error_log. Пришедшие от бекенда ответы с ошибками, правда, туда не попадают, но они должны быть залоггированы на бекенде. Maxim Dounin From igor на sysoev.ru Wed Nov 23 13:00:10 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 23 Nov 2011 17:00:10 +0400 Subject: =?UTF-8?B?UmU6INCh0L/QtdGG0YHQuNC80LLQvtC70Ysg0LIgdXJp?= In-Reply-To: <534166761.20111123165041@nikitaonline.ru> References: <1665572293.20111122184935@nikitaonline.ru> <6f7130dd65fac32c142eb11d84049d3f.NginxMailingListRussian@forum.nginx.org> <534166761.20111123165041@nikitaonline.ru> Message-ID: <20111123130010.GB43681@nginx.com> On Wed, Nov 23, 2011 at 04:50:41PM +0400, Ilya Lobahin wrote: Пожалуйста, добавьте в bat plain text письма, потому что на это html отвечать просто невозможно. Как эта строка: -------------- nginx-err.log ------------------ *135754 open() "/some/path/DFO}g+6nYZy]Z1TE6i.P\" failed (2: No such file or directory), ----------------------------------------------- выглядит в access_log'е nginx'а ? У Апача "#" почему-то экранирован в %23: -------------- apache-access.log--------------- GET /some/path/DFO}g+6nYZy]Z1TE6i.P%235%20{cmi=xM'^Dd HTTP/1.1" 200 ----------------------------------------------- -- Игорь Сысоев http://sysoev.ru From gmm на csdoc.com Wed Nov 23 13:02:27 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Wed, 23 Nov 2011 15:02:27 +0200 Subject: don't repeat yourself / copy and paste programming In-Reply-To: <170851322050343@web84.yandex.ru> References: <4ECCB8FC.4010203@gsc-game.kiev.ua> <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> <4ECCE098.7080403@csdoc.com> <170851322050343@web84.yandex.ru> Message-ID: <4ECCEEE3.3020101@csdoc.com> On 23.11.2011 14:12, Denis F. Latypoff wrote: >>> конфиг nginx'а это не язык программирования, >>> и это надо донести всякому, к чему всех призываю. >> хм. а в чем между ними принципиальная разница? >> конфиг nginx'а программирует работу /sbin/nginx >> и его реакцию на внешние события (запросы клиентов) прежде чем что-то кому-то начинать доносить, объясните пожалуйста, - в чем между ними принципиальная разница? >>> Игорь где-то тут в рассылке неоднократно высказывался на >>> тему 250 локейшенов рамблера, которые можно хоть как крутить >>> и это не затронет работу остальных 249 локейшенов. >> Игорь говорил про один сайт. с большим количеством локейшенов. >> там действительно удобно будет общие фрагменты конфига вынести >> во внешние файлы и подключать их в нужных местах через include. >> некоторые проблемы начинаются если в конфиге nginx будет >> не один большой сайт, а несколько десятков/сотен/тысяч/... >> именно об этом случае я подробно написал в предыдущем сообщении. > Хватит на все смотреть через призму шаред хостинга, > они сами разберутся как им конфиг запилить. я вот как раз и пытаюсь разобраться как мне лучше "запилить" конфиги. для увеличения безопасности и надежности поставил на новый сервер OpenVZ, но с конфигами nginx`а проще от этого не стало, наоборот, их число только выросло в два раза по сравнению с количеством сайтов. > Большинство же вопрошающих имеет один-два сайта, > и nginx надо затачивать под него, а не под мифические > 100500 сайтов, которые возможно когда-то появятся. даже при 50-100 сайтов неудобно делать много include на каждый сайт, гораздо удобнее все-таки подход "1 сайт == 1 конфигурационный файл". но в этом случае получается много copy/paste и нарушение принципа don't repeat yourself, что приводит к снижению скорости работы администратора по сопровождению такого дублированного конфига. P.S. наверное надо будет разбираться с cfengine или писать генератор конфигов nginx из DSL более высокого уровня. -- Best regards, Gena From sergey.kobzar на itcraft.org Wed Nov 23 13:11:05 2011 From: sergey.kobzar на itcraft.org (Sergey Kobzar) Date: Wed, 23 Nov 2011 15:11:05 +0200 Subject: Dead backend detection In-Reply-To: <20111123125339.GR95664@mdounin.ru> References: <4ECC2735.5060206@itcraft.org> <20111123075415.GM95664@mdounin.ru> <4ECCC3A9.5090202@itcraft.org> <20111123125339.GR95664@mdounin.ru> Message-ID: <4ECCF0E9.6000008@itcraft.org> On 11/23/11 14:53, Maxim Dounin wrote: > Ну и вообще говоря все ошибки работы с upstream'ами - логгируются > в error_log. Пришедшие от бекенда ответы с ошибками, правда, туда > не попадают, но они должны быть залоггированы на бекенде. error_log поределенный на уровне server? Или можно сделать глобальный лог? Да, и по каким ключевым словаи погребать? Пробовал по имени upstream в error_log - ничего не находит. From i.lobahin на nikitaonline.ru Wed Nov 23 13:45:50 2011 From: i.lobahin на nikitaonline.ru (Ilya Lobahin) Date: Wed, 23 Nov 2011 17:45:50 +0400 Subject: =?UTF-8?B?UmVbMl06INCh0L/QtdGG0YHQuNC80LLQvtC70Ysg0LIgdXJp?= In-Reply-To: <20111123130010.GB43681@nginx.com> References: <1665572293.20111122184935@nikitaonline.ru> <6f7130dd65fac32c142eb11d84049d3f.NginxMailingListRussian@forum.nginx.org> <534166761.20111123165041@nikitaonline.ru> <20111123130010.GB43681@nginx.com> Message-ID: <1655572972.20111123174550@nikitaonline.ru> Здравствуйте, Igor. Вы писали 23 ноября 2011 г., 17:00:10: > Пожалуйста, добавьте в bat plain text письма, потому что на это html > отвечать просто невозможно. Прошу прощения. Непривычно юзать списки рассылок. > Как эта строка: > -------------- nginx-err.log ------------------ > *135754 open() "/some/path/DFO}g+6nYZy]Z1TE6i.P\" failed (2: No such file or directory), > ----------------------------------------------- > выглядит в access_log'е nginx'а ? > У Апача "#" почему-то экранирован в %23: > -------------- apache-access.log--------------- > GET /some/path/DFO}g+6nYZy]Z1TE6i.P%235%20{cmi=xM'^Dd HTTP/1.1" 200 > ----------------------------------------------- Примеры я взял за разные периоды есс-но, т.к. в одни моменты все отдавалось nginx-ом, а в другие апачем. После углубленного изучения логов, появилось подозрение на "неправильных" клиентов. Временно возьму таймаут по теме. -- С уважением, Лобахин Илья Системный администратор NIKITA.ONLINE 115201, Москва, Каширское шоссе д. 22/4 строение 7 e-mail: mailto:i.lobahin на nikitaonline.ru Тел./Факс: +7 (495) 788-7936 http://www.nikitaonline.ru http://www.gamexp.ru From nginx-forum на nginx.us Wed Nov 23 13:50:30 2011 From: nginx-forum на nginx.us (Tiberiy) Date: Wed, 23 Nov 2011 08:50:30 -0500 Subject: =?UTF-8?B?UmU6INCh0L/QtdGG0YHQuNC80LLQvtC70Ysg0LIgdXJp?= In-Reply-To: References: Message-ID: <0186af9a4359e048a1264ecaf448b527.NginxMailingListRussian@forum.nginx.org> В логах нгинкса присутствуют записи с '#' Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218745,218824#msg-218824 From nginx-forum на nginx.us Wed Nov 23 14:03:14 2011 From: nginx-forum на nginx.us (mennanov) Date: Wed, 23 Nov 2011 09:03:14 -0500 Subject: =?UTF-8?B?bG9jYXRpb24g0LLRgdGRINC60YDQvtC80LUg0L7QtNC90L7Qs9C+?= Message-ID: Есть конфиг вида: location /cms/ { rewrite (.*) /webroot/cms/webroot/$1; if (!-f $request_filename) { rewrite (.*) /webroot/cms/engine/index.php; } } location ВСЁ_КРОМЕ_/CMS/ { try_files /webroot/$uri /engine/index.php; } Как это сделать? location ~ (?!cms) {} отдает ошибку 500 из-за бесконечного цикла. Спасибо. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218830,218830#msg-218830 From swood на fotofor.biz Wed Nov 23 14:05:28 2011 From: swood на fotofor.biz (Anton Kiryushkin) Date: Wed, 23 Nov 2011 18:05:28 +0400 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINCy0YHRkSDQutGA0L7QvNC1INC+0LTQvdC+0LPQvg==?= In-Reply-To: References: Message-ID: Может быть так: location ~* ^([^kaitori]*)$ { } ? 23 ноября 2011 г. 18:03 пользователь mennanov написал: > Есть конфиг вида: > > location /cms/ { > rewrite (.*) /webroot/cms/webroot/$1; > if (!-f $request_filename) { > rewrite (.*) /webroot/cms/engine/index.php; > } > } > > location ВСЁ_КРОМЕ_/CMS/ { > try_files /webroot/$uri /engine/index.php; > } > > Как это сделать? location ~ (?!cms) {} отдает > ошибку 500 из-за бесконечного цикла. > Спасибо. > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,218830,218830#msg-218830 > > _______________________________________________ > 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 wangsamp на gmail.com Wed Nov 23 14:08:10 2011 From: wangsamp на gmail.com (Oleksandr V. Typlyns'kyi) Date: Wed, 23 Nov 2011 16:08:10 +0200 (EET) Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINCy0YHRkSDQutGA0L7QvNC1INC+0LTQvdC+0LPQvg==?= In-Reply-To: References: Message-ID: Today Nov 23, 2011 at 09:03 mennanov wrote: > Есть конфиг вида: > > location /cms/ { > rewrite (.*) /webroot/cms/webroot/$1; > if (!-f $request_filename) { > rewrite (.*) /webroot/cms/engine/index.php; > } > } > > location ВСЁ_КРОМЕ_/CMS/ { > try_files /webroot/$uri /engine/index.php; > } > > Как это сделать? location ~ (?!cms) {} отдает > ошибку 500 из-за бесконечного цикла. Всё очень тривиально - "location /" -- WNGS-RIPE From nginx-forum на nginx.us Wed Nov 23 14:11:30 2011 From: nginx-forum на nginx.us (mennanov) Date: Wed, 23 Nov 2011 09:11:30 -0500 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINCy0YHRkSDQutGA0L7QvNC1INC+0LTQvdC+0LPQvg==?= In-Reply-To: References: Message-ID: 500 error при обращении к / rewrite or internal redirection cycle while internal redirect to "/engine/index.php", client: 127.0.0.1, server: glinka.fm, request: "GET / HTTP/1.1", host: "glinka.fm:8080" Видимо на /engine/index.php происходит затык и он зацикливается... Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218830,218835#msg-218835 From nginx-forum на nginx.us Wed Nov 23 14:18:11 2011 From: nginx-forum на nginx.us (mennanov) Date: Wed, 23 Nov 2011 09:18:11 -0500 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINCy0YHRkSDQutGA0L7QvNC1INC+0LTQvdC+0LPQvg==?= In-Reply-To: References: Message-ID: >Всё очень тривиально - "location /" Однако не так тривиально как кажется, мне нужно чтобы при обращении к "/js/jquery.js" грузился файл "/webroot/js/jquery.js", а при отсутсвтии такого файла должен запускаться /engine/index.php Но это только половина задачи: есть папка "cms" с такой же структурой (т.е там тоже есть свой webroot) которая лежит внутри /webroot. И запросы вида "/cms/js/jquery.js" должны отдавать файл "/webroot/cms/webroot/js/jquery.js", а если такой файл не найден то должен запускаться /webroot/cms/engine/index.php А то что вы предложили не сработает потому что при запросе "/cms/js/jquery.js" будет запущен /engine/index.php. А мне то надо "/webroot/cms/webroot/js/jquery.js"... Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218830,218836#msg-218836 From wangsamp на gmail.com Wed Nov 23 14:20:06 2011 From: wangsamp на gmail.com (Oleksandr V. Typlyns'kyi) Date: Wed, 23 Nov 2011 16:20:06 +0200 (EET) Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINCy0YHRkSDQutGA0L7QvNC1INC+0LTQvdC+0LPQvg==?= In-Reply-To: References: Message-ID: Today Nov 23, 2011 at 09:11 mennanov wrote: > 500 error при обращении к / > > rewrite or internal redirection cycle while internal redirect to > "/engine/index.php", client: 127.0.0.1, server: glinka.fm, request: "GET > / HTTP/1.1", host: "glinka.fm:8080" > > Видимо на /engine/index.php происходит затык и > он зацикливается... Не удивительно - нужен location где будет обработан /engine/index.php. http://nginx.org/ru/docs/http/ngx_http_core_module.html#try_files Или там ошибка и должно быть /cms/engine/index.php. -- WNGS-RIPE From wangsamp на gmail.com Wed Nov 23 14:23:28 2011 From: wangsamp на gmail.com (Oleksandr V. Typlyns'kyi) Date: Wed, 23 Nov 2011 16:23:28 +0200 (EET) Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINCy0YHRkSDQutGA0L7QvNC1INC+0LTQvdC+0LPQvg==?= In-Reply-To: References: Message-ID: Today Nov 23, 2011 at 09:18 mennanov wrote: > >Всё очень тривиально - "location /" > > Однако не так тривиально как кажется, > мне нужно чтобы при обращении к > "/js/jquery.js" грузился файл "/webroot/js/jquery.js", а > при отсутсвтии такого файла должен > запускаться /engine/index.php location /js/ ? > Но это только половина задачи: есть > папка "cms" с такой же структурой (т.е там > тоже есть свой webroot) которая лежит > внутри /webroot. И запросы вида "/cms/js/jquery.js" > должны отдавать файл > "/webroot/cms/webroot/js/jquery.js", а если такой файл > не найден то должен запускаться > /webroot/cms/engine/index.php > А то что вы предложили не сработает > потому что при запросе "/cms/js/jquery.js" будет > запущен /engine/index.php. А мне то надо > "/webroot/cms/webroot/js/jquery.js"... Этот запрос попадёт в location /cms/ и будет обработан ровно так, как Вы опишите в конфиге. -- WNGS-RIPE From bediev на gmail.com Wed Nov 23 14:27:32 2011 From: bediev на gmail.com (p1gmale0n) Date: Wed, 23 Nov 2011 20:27:32 +0600 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINCy0YHRkSDQutGA0L7QvNC1INC+0LTQvdC+0LPQvg==?= In-Reply-To: References: Message-ID: location / { try_files /webroot/$uri /engine/index.php; } location /cms/ { try_files /webroot/cms/webroot/$uri /engine/index.php; } ----------- ???????? ????? ----------- ???????? ? ??????? HTML ???? ?????????… URL: From nginx-forum на nginx.us Wed Nov 23 14:33:29 2011 From: nginx-forum на nginx.us (mennanov) Date: Wed, 23 Nov 2011 09:33:29 -0500 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINCy0YHRkSDQutGA0L7QvNC1INC+0LTQvdC+0LPQvg==?= In-Reply-To: References: Message-ID: <3137591af15a31087d2ac9ba4579b6fb.NginxMailingListRussian@forum.nginx.org> Я не могу писать location'ы для каждой папки... Вообщем, вот мой конфиг: server { listen 8080; server_name glinka.fm; root /home/renat/www/glinka; index index.php index.html; location / { # все файлы ищутся в /webroot, если файла нет то /engine/index.php try_files /webroot/$uri /engine/index.php; # однако сюда попадают и запросы вида /cms/ а этого не хочется } location /cms/ { # все файлы типа /cms/css/style.css ищутся в /webroot/cms/webroot/$1 rewrite /cms/(.*) /webroot/cms/webroot/$1; if (!-f $request_filename) { # если файл в папке /webroot/cms/webroot не найден то запускаем /webroot/cms/engine.php rewrite (.*) /webroot/cms/engine/index.php; } } location ~ \.php$ { include fastcgi.conf; } } Вот и получается что файлы /cms/* ищутся вовсе не в /webroot/cms/webroot/ а в /webroot/ Если закомменить location / {} то для /cms/* запросов всё работает отлично. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218830,218841#msg-218841 From nginx-forum на nginx.us Wed Nov 23 14:39:29 2011 From: nginx-forum на nginx.us (mennanov) Date: Wed, 23 Nov 2011 09:39:29 -0500 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINCy0YHRkSDQutGA0L7QvNC1INC+0LTQvdC+0LPQvg==?= In-Reply-To: References: Message-ID: <016becd947ac0b8795cba80e41434e4a.NginxMailingListRussian@forum.nginx.org> p1gmale0n Wrote: ------------------------------------------------------- > location / { > try_files /webroot/$uri /engine/index.php; > } > > location /cms/ { > try_files /webroot/cms/webroot/$uri > /engine/index.php; > } > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Я не зря использовал rewrite, т.к. без него похоже не обойтись. Когда браузер просит файл "/cms/js/jquery.js" то ФИЗИЧЕСКИ он лежит в "/webroot/cms/webroot/js/jquery.js". >try_files /webroot/cms/webroot/$uri Он будет искать его в /webroot/cms/webroot/cms/js/jquery.js т.е. путь уже неверный, т.к. должен быть /webroot/cms/webroot/js/jquery.js Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218830,218842#msg-218842 From ne на vbart.ru Wed Nov 23 14:47:13 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Wed, 23 Nov 2011 18:47:13 +0400 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINCy0YHRkSDQutGA0L7QvNC1INC+0LTQvdC+0LPQvg==?= In-Reply-To: <016becd947ac0b8795cba80e41434e4a.NginxMailingListRussian@forum.nginx.org> References: <016becd947ac0b8795cba80e41434e4a.NginxMailingListRussian@forum.nginx.org> Message-ID: <201111231847.13718.ne@vbart.ru> On Wednesday 23 November 2011 18:39:29 mennanov wrote: [...] > > Я не зря использовал rewrite, т.к. без него > похоже не обойтись. > Когда браузер просит файл "/cms/js/jquery.js" то > ФИЗИЧЕСКИ он лежит в > "/webroot/cms/webroot/js/jquery.js". > location ~ ^/cms/(.*)$ { root /webroot/cms/webroot/; try_files /$1 /engine/index.php; } -- Валентин Бартенев From ne на vbart.ru Wed Nov 23 14:51:29 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Wed, 23 Nov 2011 18:51:29 +0400 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINCy0YHRkSDQutGA0L7QvNC1INC+0LTQvdC+0LPQvg==?= In-Reply-To: <201111231847.13718.ne@vbart.ru> References: <016becd947ac0b8795cba80e41434e4a.NginxMailingListRussian@forum.nginx.org> <201111231847.13718.ne@vbart.ru> Message-ID: <201111231851.29971.ne@vbart.ru> On Wednesday 23 November 2011 18:47:13 Валентин Бартенев wrote: > > location ~ ^/cms/(.*)$ { > root /webroot/cms/webroot/; > try_files /$1 /engine/index.php; > } Или.. location /cms/ { alias /webroot/cms/webroot/; error_page 404 =200 /engine/index.php; } -- Валентин Бартенев From swood на fotofor.biz Wed Nov 23 14:55:52 2011 From: swood на fotofor.biz (Anton Kiryushkin) Date: Wed, 23 Nov 2011 18:55:52 +0400 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINCy0YHRkSDQutGA0L7QvNC1INC+0LTQvdC+0LPQvg==?= In-Reply-To: <201111231851.29971.ne@vbart.ru> References: <016becd947ac0b8795cba80e41434e4a.NginxMailingListRussian@forum.nginx.org> <201111231847.13718.ne@vbart.ru> <201111231851.29971.ne@vbart.ru> Message-ID: А если попытаться прописать location с исключением нужного и отдельно для него через location = /cms/ {} ? 23 ноября 2011 г. 18:51 пользователь Валентин Бартенев написал: > On Wednesday 23 November 2011 18:47:13 Валентин Бартенев wrote: > > > > location ~ ^/cms/(.*)$ { > > root /webroot/cms/webroot/; > > try_files /$1 /engine/index.php; > > } > > Или.. > > location /cms/ { > alias /webroot/cms/webroot/; > error_page 404 =200 /engine/index.php; > } > > -- > Валентин Бартенев > _______________________________________________ > 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 Nov 23 15:01:58 2011 From: nginx-forum на nginx.us (mennanov) Date: Wed, 23 Nov 2011 10:01:58 -0500 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINCy0YHRkSDQutGA0L7QvNC1INC+0LTQvdC+0LPQvg==?= In-Reply-To: <201111231847.13718.ne@vbart.ru> References: <201111231847.13718.ne@vbart.ru> Message-ID: <707a46729a9e1aa9db77604a236a4e0c.NginxMailingListRussian@forum.nginx.org> Валентин Бартенев Wrote: ------------------------------------------------------- > On Wednesday 23 November 2011 18:39:29 mennanov > wrote: > [...] > > > > Я не зря использовал rewrite, > т.к. без него > > похоже не обойтись. > > Когда браузер просит файл > "/cms/js/jquery.js" то > > ФИЗИЧЕСКИ он лежит в > > "/webroot/cms/webroot/js/jquery.js". > > > > location ~ ^/cms/(.*)$ { > root /webroot/cms/webroot/; > try_files /$1 /engine/index.php; > } > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Спасибо, большое! Это то что нужно (хотя именно в том виде, что дали вы оно НЕ работает). Т.к. try_files не реагирует на смену root (почему то...) Сработало только вот так: location ~ ^/cms/(.*)$ { try_files /webroot/cms/webroot/$1 /webroot/cms/engine/index.php; } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218830,218847#msg-218847 From ne на vbart.ru Wed Nov 23 15:06:21 2011 From: ne на vbart.ru (=?utf-8?b?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 23 Nov 2011 19:06:21 +0400 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINCy0YHRkSDQutGA0L7QvNC1INC+0LTQvdC+0LPQvg==?= In-Reply-To: References: <201111231851.29971.ne@vbart.ru> Message-ID: <201111231906.22069.ne@vbart.ru> On Wednesday 23 November 2011 18:55:52 Anton Kiryushkin wrote: > А если попытаться прописать location с исключением нужного и отдельно для > него через location = /cms/ {} ? Решаемая задача наверняка предельно проста. Задача же понять до конца, чего же именно хочет автор топика судя по всему гораздо сложнее. -- Валентин Бартенев From ne на vbart.ru Wed Nov 23 15:11:54 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Wed, 23 Nov 2011 19:11:54 +0400 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINCy0YHRkSDQutGA0L7QvNC1INC+0LTQvdC+0LPQvg==?= In-Reply-To: <707a46729a9e1aa9db77604a236a4e0c.NginxMailingListRussian@forum.nginx.org> References: <201111231847.13718.ne@vbart.ru> <707a46729a9e1aa9db77604a236a4e0c.NginxMailingListRussian@forum.nginx.org> Message-ID: <201111231911.54526.ne@vbart.ru> On Wednesday 23 November 2011 19:01:58 mennanov wrote: [...] > > location ~ ^/cms/(.*)$ { > try_files /webroot/cms/webroot/$1 /webroot/cms/engine/index.php; > } > Лучше уж второй предложенный мной вариант, с alias и error_page. -- Валентин Бартенев From ne на vbart.ru Wed Nov 23 15:18:27 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Wed, 23 Nov 2011 19:18:27 +0400 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINCy0YHRkSDQutGA0L7QvNC1INC+0LTQvdC+0LPQvg==?= In-Reply-To: <707a46729a9e1aa9db77604a236a4e0c.NginxMailingListRussian@forum.nginx.org> References: <201111231847.13718.ne@vbart.ru> <707a46729a9e1aa9db77604a236a4e0c.NginxMailingListRussian@forum.nginx.org> Message-ID: <201111231918.28150.ne@vbart.ru> On Wednesday 23 November 2011 19:01:58 mennanov wrote: [...] > Т.к. try_files не реагирует на смену root > (почему то...) > Сработало только вот так: [...] Скорее всего, как раз реагирует, просто у вас выше уровнем наверное еще какой-то root прописан, соответственно он подменяется. И /webroot/cms/webroot/ - это видимо не от корня самого сервера, как я вначале подумал? > location ~ ^/cms/(.*)$ { > try_files /webroot/cms/webroot/$1 /webroot/cms/engine/index.php; > } В данном случае у вас будет тогда root + /webroot/cms/webroot/$1; -- Валентин Бартенев From nginx-forum на nginx.us Wed Nov 23 15:39:19 2011 From: nginx-forum на nginx.us (mennanov) Date: Wed, 23 Nov 2011 10:39:19 -0500 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uINCy0YHRkSDQutGA0L7QvNC1INC+0LTQvdC+0LPQvg==?= In-Reply-To: <201111231918.28150.ne@vbart.ru> References: <201111231918.28150.ne@vbart.ru> Message-ID: <6c53de4d965d4b11e8ec747fcf88469b.NginxMailingListRussian@forum.nginx.org> Валентин Бартенев Wrote: ------------------------------------------------------- > On Wednesday 23 November 2011 19:01:58 mennanov > wrote: > [...] > > Т.к. try_files не реагирует на > смену root > > (почему то...) > > Сработало только вот так: > [...] > > Скорее всего, как раз > реагирует, просто у вас > выше уровнем наверное еще > какой-то > root прописан, > соответственно он > подменяется. И /webroot/cms/webroot/ - > это > видимо не от корня самого > сервера, как я вначале > подумал? > > > location ~ ^/cms/(.*)$ { > > try_files /webroot/cms/webroot/$1 > /webroot/cms/engine/index.php; > > } > > В данном случае у вас будет > тогда root + /webroot/cms/webroot/$1; > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru В этом сообщении мой конфиг полностью представлен http://forum.nginx.org/read.php?21,218830,218841#msg-218841 Да, там сразу же задан root А /webroot/cms/webroot/ это от корня сайта конечно. т.е. полный абсолютный путь такой: /home/renat/www/glinka/webroot/cms/webroot. Чтобы было ясно о чем вообще идет речь, вот структура файлов (от корня сайта конечно). engine/ __index.php webroot/ __images/ __css/ __cms/ # папка с почти аналогичным сайтом, т.е. получается сайт в сайте :) и там абсолютно такая же структура ______engine/ _________index.php ______webroot/ _________images/ _________css/ plugins/ templates/ etc/ Зачем вообще нужен webroot: во-первых чтобы отделить файлы вёрстки (типа css и images) от самого движка (engine, plugins, templates короче всё что в корне) ну и чтобы не бояться за запросы типа /config.ini или /templates/index.tpl (т.к. они будут искаться в webroot) Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218830,218852#msg-218852 From igor на sysoev.ru Wed Nov 23 16:35:11 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 23 Nov 2011 20:35:11 +0400 Subject: don't repeat yourself / copy and paste programming In-Reply-To: <4ECCEA7A.1090709@gsc-game.kiev.ua> References: <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> <4ECCE098.7080403@csdoc.com> <170851322050343@web84.yandex.ru> <4ECCEA7A.1090709@gsc-game.kiev.ua> Message-ID: <20111123163511.GD49193@nginx.com> On Wed, Nov 23, 2011 at 02:43:38PM +0200, Serguei I. Ivantsov wrote: > > On 23.11.2011 14:12, Denis F. Latypoff wrote: > > 23.11.2011, 19:01, "Gena Makhomed" : > >> некоторые проблемы начинаются если в конфиге nginx будет > >> не один большой сайт, а несколько десятков/сотен/тысяч/... > >> именно об этом случае я подробно написал в предыдущем сообщении. > >> > > Хватит на все смотреть через призму шаред хостинга, они сами > > разберутся как им конфиг запилить. Большинство же вопрошающих > > имеет один-два сайта, и nginx надо затачивать под него, а не под > > мифические 100500 сайтов, которые возможно когда-то появятся. > > Собственно сайтов как раз много и один и тот же кусок конфига совпадает > для большинства виртуалов. Поэтому конфигурить несколько неудобно, да и > сам конфиг выглядит не по ООП-овски :) Про скорость скорее всего правы, > а вот памяти расходует точно больше, разве что внутри nginx как-то > сортирует/сливает одинаковые location-ы и ставит на них референсы, или > как-то по-другому оптимизирует. А почему конфигурация должна выглядет объектно-ориентированно и программируемо ? Где там объекты и программы ? Конфигурация должна выглядеть и выглядит декларативно. -- Igor Sysoev From igor на sysoev.ru Wed Nov 23 16:38:03 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 23 Nov 2011 20:38:03 +0400 Subject: don't repeat yourself / copy and paste programming In-Reply-To: <4ECCEEE3.3020101@csdoc.com> References: <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> <4ECCE098.7080403@csdoc.com> <170851322050343@web84.yandex.ru> <4ECCEEE3.3020101@csdoc.com> Message-ID: <20111123163803.GE49193@nginx.com> On Wed, Nov 23, 2011 at 03:02:27PM +0200, Gena Makhomed wrote: > даже при 50-100 сайтов неудобно делать много include на каждый сайт, > гораздо удобнее все-таки подход "1 сайт == 1 конфигурационный файл". > > но в этом случае получается много copy/paste и нарушение принципа > don't repeat yourself, что приводит к снижению скорости работы > администратора по сопровождению такого дублированного конфига. Спасибо, я на эти don't repeat yourself насмотрелся. Больше не хочу. Нужно критически подходить к приницпам. -- Игорь Сысоев http://sysoev.ru From nginx-forum на nginx.us Wed Nov 23 17:15:22 2011 From: nginx-forum на nginx.us (kavkaz) Date: Wed, 23 Nov 2011 12:15:22 -0500 Subject: =?UTF-8?B?UmU6INCg0LDRgdGI0LjRgNC10L3QuNC1INGE0YPQvdC60LjQvtC90LDQu9CwIG5n?= =?UTF-8?B?eCBlc2NhcGUgaHRtbA==?= In-Reply-To: <20111016163444.GL1137@mdounin.ru> References: <20111016163444.GL1137@mdounin.ru> Message-ID: <3d7bb9cac5fa7eb5f388750ecbb95cd3.NginxMailingListRussian@forum.nginx.org> Up Пожелалка актуальна. Можно? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,216787,218871#msg-218871 From gmm на csdoc.com Wed Nov 23 18:29:00 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Wed, 23 Nov 2011 20:29:00 +0200 Subject: don't repeat yourself / copy and paste programming In-Reply-To: <20111123163803.GE49193@nginx.com> References: <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> <4ECCE098.7080403@csdoc.com> <170851322050343@web84.yandex.ru> <4ECCEEE3.3020101@csdoc.com> <20111123163803.GE49193@nginx.com> Message-ID: <4ECD3B6C.5000801@csdoc.com> On 23.11.2011 18:38, Igor Sysoev wrote: >> даже при 50-100 сайтов неудобно делать много include на каждый сайт, >> гораздо удобнее все-таки подход "1 сайт == 1 конфигурационный файл". >> но в этом случае получается много copy/paste и нарушение принципа >> don't repeat yourself, что приводит к снижению скорости работы >> администратора по сопровождению такого дублированного конфига. > Спасибо, я на эти don't repeat yourself насмотрелся. Больше не хочу. > Нужно критически подходить к приницпам. все-таки DRY - это достаточно важный принцип, и он соблюдается даже в исходниках nginx - общие части кода выносятся в макросы или в отдельные функции, и там нет дублирования через copy/paste. в конфигах nginx например, директивы "include fastcgi.conf;" или "include fastcgi_params;" встречаются с той же целью, насколько я понимаю - избежать лишнего дублирования кода. мне очень трудно критиковать принцип DRY / SSOT, потому что его противоположностью является чрезмерное использование copy/paste, что в случае программирования приводит к т.е. "индусскому коду". -- Best regards, Gena From zzz на zzz.org.ua Wed Nov 23 19:01:16 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Wed, 23 Nov 2011 21:01:16 +0200 Subject: don't repeat yourself / copy and paste programming In-Reply-To: <4ECD3B6C.5000801@csdoc.com> References: <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> <4ECCE098.7080403@csdoc.com> <170851322050343@web84.yandex.ru> <4ECCEEE3.3020101@csdoc.com> <20111123163803.GE49193@nginx.com> <4ECD3B6C.5000801@csdoc.com> Message-ID: On Wed, Nov 23, 2011 at 8:29 PM, Gena Makhomed wrote: > все-таки DRY - это достаточно важный принцип, и он соблюдается > даже в исходниках nginx - общие части кода выносятся в макросы > или в отдельные функции, и там нет дублирования через copy/paste. Не так все просто. Допустим, есть такая простая программа: a = 5; b = 17; c = a + b; print c; a = c; b = c + 8; c = a + b; print c; Если вынесем "c = a + b; print c" в макрос и назовем его, SUM1, то получим вот такой код: a = 5; b = 17; SUM1; a = c; b = c + 8; SUM1; Теперь он стал непонятным и нечитабельным, потому что мы не видим, что происходит с a, b и c после SUM1. Чтобы видеть, нам нужно четко знать, куда будет попадать результат и от каких параметров он зависит, т.е.: a = 5; b = 17; c = SUM1 (a, b); a = c; b = c + 8; c = SUM1 (a, b); Так что и include в конфиге в общем случае тоже плохо. Потому что прячет параметры. From ano на bestmx.ru Wed Nov 23 20:07:15 2011 From: ano на bestmx.ru (Andrey N. Oktyabrski) Date: Wed, 23 Nov 2011 23:07:15 +0300 Subject: don't repeat yourself / copy and paste programming In-Reply-To: References: <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> <4ECCE098.7080403@csdoc.com> <170851322050343@web84.yandex.ru> <4ECCEEE3.3020101@csdoc.com> <20111123163803.GE49193@nginx.com> <4ECD3B6C.5000801@csdoc.com> Message-ID: <4ECD5273.6010204@bestmx.ru> On 23.11.11 22:01, Alexandr Gomoliako wrote: > Чтобы видеть, нам нужно четко знать, куда будет попадать > результат и от каких параметров он зависит, т.е.: > > a = 5; > b = 17; > > c = SUM1 (a, b); > > a = c; > b = c + 8; > > c = SUM1 (a, b); > > Так что и include в конфиге в общем случае тоже плохо. > Потому что прячет параметры. Тут есть ещё более серьёзная проблема: используется побочный эффект. То есть, присваивание явно обозначено, а печать - неявный побочный эффект. From zzz на zzz.org.ua Wed Nov 23 19:08:15 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Wed, 23 Nov 2011 21:08:15 +0200 Subject: don't repeat yourself / copy and paste programming In-Reply-To: <4ECD5273.6010204@bestmx.ru> References: <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> <4ECCE098.7080403@csdoc.com> <170851322050343@web84.yandex.ru> <4ECCEEE3.3020101@csdoc.com> <20111123163803.GE49193@nginx.com> <4ECD3B6C.5000801@csdoc.com> <4ECD5273.6010204@bestmx.ru> Message-ID: On Wed, Nov 23, 2011 at 10:07 PM, Andrey N. Oktyabrski wrote: > Тут есть ещё более серьёзная проблема: используется побочный эффект. То > есть, присваивание явно обозначено, а печать - неявный побочный эффект. Да, точно, print тоже нельзя выносить. From onokonem на gmail.com Wed Nov 23 19:21:31 2011 From: onokonem на gmail.com (Daniel Podolsky) Date: Wed, 23 Nov 2011 22:21:31 +0300 Subject: don't repeat yourself / copy and paste programming In-Reply-To: <20111123163511.GD49193@nginx.com> References: <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> <4ECCE098.7080403@csdoc.com> <170851322050343@web84.yandex.ru> <4ECCEA7A.1090709@gsc-game.kiev.ua> <20111123163511.GD49193@nginx.com> Message-ID: > Конфигурация должна выглядеть и выглядит декларативно. Есть предложение. Сложно ли сделать параметризованный include? Большую часть проблем "недостаточной гибкости" это бы решило. А с точки зрения обработки ничего бы не изменилось, практически. Разве что сообщения и синтаксических ошибках в конфиге прийдется печатать со всес стек-трейсом :) From zzz на zzz.org.ua Wed Nov 23 19:25:23 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Wed, 23 Nov 2011 21:25:23 +0200 Subject: don't repeat yourself / copy and paste programming In-Reply-To: References: <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> <4ECCE098.7080403@csdoc.com> <170851322050343@web84.yandex.ru> <4ECCEA7A.1090709@gsc-game.kiev.ua> <20111123163511.GD49193@nginx.com> Message-ID: On Wed, Nov 23, 2011 at 9:21 PM, Daniel Podolsky wrote: >> Конфигурация должна выглядеть и выглядит декларативно. > Есть предложение. > > Сложно ли сделать параметризованный include? Большую часть проблем > "недостаточной гибкости" это бы решило. Но не решит главную: не будет видно куда будет попадать результат. From onokonem на gmail.com Wed Nov 23 19:28:04 2011 From: onokonem на gmail.com (Daniel Podolsky) Date: Wed, 23 Nov 2011 22:28:04 +0300 Subject: don't repeat yourself / copy and paste programming In-Reply-To: References: <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> <4ECCE098.7080403@csdoc.com> <170851322050343@web84.yandex.ru> <4ECCEA7A.1090709@gsc-game.kiev.ua> <20111123163511.GD49193@nginx.com> Message-ID: > Но не решит главную: не будет видно куда будет попадать результат. результат чего? From zzz на zzz.org.ua Wed Nov 23 19:33:34 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Wed, 23 Nov 2011 21:33:34 +0200 Subject: don't repeat yourself / copy and paste programming In-Reply-To: References: <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> <4ECCE098.7080403@csdoc.com> <170851322050343@web84.yandex.ru> <4ECCEA7A.1090709@gsc-game.kiev.ua> <20111123163511.GD49193@nginx.com> Message-ID: On Wed, Nov 23, 2011 at 9:28 PM, Daniel Podolsky wrote: >> Но не решит главную: не будет видно куда будет попадать результат. > результат чего? Результат инклуда, он как был, так и останется спрятан. Т.е. внутри себя установит какие-то директивы. From onokonem на gmail.com Wed Nov 23 19:45:09 2011 From: onokonem на gmail.com (Daniel Podolsky) Date: Wed, 23 Nov 2011 22:45:09 +0300 Subject: don't repeat yourself / copy and paste programming In-Reply-To: References: <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> <4ECCE098.7080403@csdoc.com> <170851322050343@web84.yandex.ru> <4ECCEA7A.1090709@gsc-game.kiev.ua> <20111123163511.GD49193@nginx.com> Message-ID: > Результат инклуда, он как был, так и останется спрятан. > Т.е. внутри себя установит какие-то директивы. Это Вы всерьез, или за философию поболтать? (в изложенной парадигме на не знаю неспрятанных результатов чего бы то ни было. к примеру - единственный конфиг-файл тоже устанавливает внутри себя какие-то директивы. не следует ли нам описывать все конфигурацию в параметрах командной строки?..) From zzz на zzz.org.ua Wed Nov 23 19:58:23 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Wed, 23 Nov 2011 21:58:23 +0200 Subject: don't repeat yourself / copy and paste programming In-Reply-To: References: <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> <4ECCE098.7080403@csdoc.com> <170851322050343@web84.yandex.ru> <4ECCEA7A.1090709@gsc-game.kiev.ua> <20111123163511.GD49193@nginx.com> Message-ID: On Wed, Nov 23, 2011 at 9:45 PM, Daniel Podolsky wrote: >> Результат инклуда, он как был, так и останется спрятан. >> Т.е. внутри себя установит какие-то директивы. > Это Вы всерьез, или за философию поболтать? > > (в изложенной парадигме на не знаю неспрятанных результатов чего бы то > ни было. к примеру - единственный конфиг-файл тоже устанавливает > внутри себя какие-то директивы. не следует ли нам описывать все > конфигурацию в параметрах командной строки?..) Я серьезно, когда он единственный, он ничего не усложняет, он же единственный. Очевидно, что пара инклудов тоже проблем не создаст, как бы там что спрятано не было. From drug на qwarta.ru Thu Nov 24 01:00:34 2011 From: drug на qwarta.ru (=?koi8-r?B?5NXHyc4g88XSx8XK?=) Date: Thu, 24 Nov 2011 05:00:34 +0400 Subject: nginx + memcache In-Reply-To: References: <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> <4ECCE098.7080403@csdoc.com> <170851322050343@web84.yandex.ru> <4ECCEA7A.1090709@gsc-game.kiev.ua> <20111123163511.GD49193@nginx.com> Message-ID: <1335678769.20111124050034@qwarta.ru> Здравствуйте, Alexandr. Туплю, не могу понять для чего нужен memcache в nginx :) доку прочитал http://nginx.org/ru/docs/http/ngx_http_memcached_module.html по прежнему туплю. Теперь вопрос. Есть два сервера на одном стоит memcache (допустим он висит на ip 8.8.8.8:11211) на втором сервере тоже стоит memcache (допустим он висит на ip 8.8.4.4:11211) На третьем сервере стоит nginx и php скрипты может ли nginx с помощью этого модуля раскидывать запросы от php к мемкешу в качестве прокси-балансировщика между двумя мемкеш серверами. То есть в пхп скрипте я делаю коннект к 10.0.0.10:11211 на этом IP висит nginx и запросы перекидывает на один из двух мемекеш серверов. И если есть возможость киньте пример какой-нить. Спасибо. -- С уважением, Дугин Сергей mailto:drug на qwarta.ru QWARTA From temotor на gmail.com Thu Nov 24 01:37:39 2011 From: temotor на gmail.com (Sergey Shepelev) Date: Thu, 24 Nov 2011 05:37:39 +0400 Subject: nginx + memcache In-Reply-To: <1335678769.20111124050034@qwarta.ru> References: <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> <4ECCE098.7080403@csdoc.com> <170851322050343@web84.yandex.ru> <4ECCEA7A.1090709@gsc-game.kiev.ua> <20111123163511.GD49193@nginx.com> <1335678769.20111124050034@qwarta.ru> Message-ID: 2011/11/24 Дугин Сергей : > Здравствуйте, Alexandr. > > Туплю, не могу понять для чего нужен memcache в nginx :) > доку прочитал http://nginx.org/ru/docs/http/ngx_http_memcached_module.html > по прежнему туплю. > > Теперь вопрос. > > Есть два сервера на одном стоит > memcache (допустим он висит на ip 8.8.8.8:11211) > на  втором  сервере  тоже  стоит  memcache   (допустим  он висит на ip 8.8.4.4:11211) > > На третьем сервере стоит nginx и php скрипты > может  ли  nginx  с  помощью этого модуля раскидывать запросы от php к > мемкешу   в   качестве   прокси-балансировщика   между  двумя  мемкеш > серверами. > > То  есть  в  пхп  скрипте я делаю коннект к 10.0.0.10:11211 на этом IP > висит nginx и запросы перекидывает на один из двух мемекеш серверов. > > И если есть возможость киньте пример какой-нить. > > Спасибо. > Нет. Единственная задача модуля memcached в стандартной поставке nginx: отдавать пользователю ответы из мемкеша. В случае, если в мемкеше нужных ключей нет, продолжается обычная обработка (например proxy_pass на php). Чтобы *балансировать* нагрузку между двумя мемкешами, вы можете воспользоваться, например, haproxy. Но балансировать нагрузку между мемкеш серверами - это что-то мифическое-фантастическое, потому что никакой нагрузки мемкеш не создаёт, нечего балансировать. Обычно приложение подключается ко всем мемкеш серверам и использует несколько серверов для увеличения доступного объёма кеша. То есть часть ключей приложение кладёт (и читает) на первый мемкеш-сервер, часть на второй и т.д. Есть простые и хорошие алгоритмы для распределения ключей по серверам. В любом случае, всем этим занимается приложение, без промежуточных проксей. From nginx-forum на nginx.us Thu Nov 24 04:58:03 2011 From: nginx-forum на nginx.us (valet) Date: Wed, 23 Nov 2011 23:58:03 -0500 Subject: =?UTF-8?B?0J/QvtC80L7Qs9C40YLQtSDRgNCw0LfQvtCx0YDQsNGC0YzRgdGPINC+0YLQutGD?= =?UTF-8?B?0LTQsCDQsdC10YDRg9GC0YHRjyDQu9C10LLRi9C1IGdldC3Qt9Cw0L/RgNC+?= =?UTF-8?B?0YHRiw==?= Message-ID: Выделенный сервер на Debian, на котором много сайтов (bind9, nginx+php-fpm). Столкнулся с очень странной проблемой. В логах nginx отдельных хостов с завидной регулярностью замечаю get-запросы страниц другого сайта. То есть например в логе первого сайта site1.ru.access.log Googlebot/2.1 и другие боты запрашивают страницы второго сайта ... ..."GET /stranica-site2-1.html HTTP/1.1"... ... ..."GET /stranica-site2-n.html HTTP/1.1"... ... На самом деле это урл-ы сайта site2.ru и ссылок естественно таких на site1.ru нигде нет, поэтому то, что они запрашиваются тем боле поисковыми ботами, может означать только одно - ошибка где-то в конфигах. Я в первую очередь подумал, что дело в кешировании fast-cgi-запросов на nginx и убрал его - но это на мое удивление не решило проблему. Я не могу понять почему такое может происходить и куда копать дальше. Тому, кто даст правильную наводку в решении вопроса, готов заплатить 10 баксов за помощь (если проблема окажется серьезная, готов обсудить решение за вашу цену). Вот конфиги: общий nginx.conf user www-data; worker_processes 8; # Уменьшает число системных вызовов gettimeofday(), что приводит к увеличению производительности timer_resolution 100ms; # Изменяет ограничение на число используемых файлов RLIMIT_NOFILE для рабочего процесса. worker_rlimit_nofile 8192; # Директива задаёт приоритет рабочих процессов от -20 до 20 (отрицательное число означает более высокий приоритет). worker_priority -5; events { #worker_connections 1024; worker_connections 16384; use epoll; multi_accept off; } pid /var/run/nginx.pid; http { ## # Basic Settings ## include blockips.conf; sendfile on; tcp_nopush on; tcp_nodelay on; #keepalive_timeout 65; keepalive_timeout 5; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## gzip on; gzip_disable "msie6"; # gzip_vary on; # gzip_proxied any; # gzip_comp_level 6; # gzip_buffers 16 8k; # gzip_http_version 1.1; # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; # gzip_min_length 1100; gzip_buffers 64 8k; gzip_comp_level 8; gzip_types text/plain application/xml application/x-javascript text/css; gzip_proxied any; #кеширование #fastcgi_cache_path /tmp/nginx/ levels=1:2 keys_zone=fastcgi_cache:16m max_size=256m inactive=1d; ## # Virtual Host Configs ## # default virtual host server { listen 80 default; server_name localhost; deny all; } include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } конфиг хоста: server { listen 80; server_name site.ru; access_log /var/log/nginx/site.ru.access.log; error_log /var/log/nginx/site.ru.error.log; gzip_static on; if ($http_user_agent ~ ZmEu) { return 503; } ##не принимать от клиентов запросы длиной более 1 Мб client_max_body_size 1m; root /var/www/site.ru; ## Default location location / { index index.php index.html index.htm; include /var/www/site.ru/.htaccess; } location ^~ /uploads/ { access_log off; expires max; } location ^~ /templates/ { } location /robots.txt { alias /var/www/site.ru/robots_$host.txt; } location /sitemap.xml { alias /var/www/site.ru/uploads/sitemap_$host.xml; } ## Images and static content is treated different location ~* ^.+.(jpg|jpeg|gif|png|js|ico)$ { access_log off; expires max; } location /index.php { return 301 /; } ## Parse all .php file in the /var/www/site.ru directory location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(.*)$; #fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/tmp/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/site.ru$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; fastcgi_temp_file_write_size 256k; #кеширование FastCGI-запросов #fastcgi_pass_header "Set-Cookie"; # Необходимо для передачи cookie в соответствующие переменные, например cookie с именем phpsessid будет находится в переменной $cookie_phpsessid # # #fastcgi_ignore_headers Cache-Control Expires Set-Cookie; # Игнорируем заголовки, относящиеся к кешированию, полученные от FastCGI-сервера # fastcgi_cache_key "$server_addr:$server_port$request_uri|$cookie_phpsessid"; # Формируем уникальный ключ; в данном случае различаем пользователей с помощью $cookie_phpsessid # fastcgi_cache fastcgi_cache; # Говорим о том, что использовать надо вышеобъявленную кеш-зону fastcgi_cache # fastcgi_temp_path /tmp/nginx/temp 1 2; # Указываем папку для хранения временных файлов # fastcgi_cache_use_stale updating error timeout invalid_header http_500; # Используем вариант из кеша (даже если он устарел) в случае ошибки #fastcgi_cache_valid 200 302 10m; #fastcgi_cache_valid 301 1h; #fastcgi_cache_valid any 1m; } ## Disable viewing .htaccess & .htpassword location ~ /\.ht { deny all; } } server { listen 80; server_name www.site.ru; rewrite ^ http://site.ru$request_uri?; } Подскажите, где косяк? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218912,218912#msg-218912 From nginx-forum на nginx.us Thu Nov 24 06:07:07 2011 From: nginx-forum на nginx.us (byg) Date: Thu, 24 Nov 2011 01:07:07 -0500 Subject: =?UTF-8?B?0J3QtSDQvNC+0LPRgyDQvdCw0YHRgtGA0L7QuNGC0Ywgbmdpbngg0YfRgtC+0LE=?= =?UTF-8?B?0Ysg0LDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjRjyDQvdC1INGI0LvQsCA=?= =?UTF-8?B?0L3QsCDQvdC10LwsINC90L4g0L/QtdGA0LXQtNCw0LLQsNC70LDRgdGMINCy?= =?UTF-8?B?0L3Rg9GC0YDQtdC90L3QuNC8INGB0LXRgNCy0LXRgNCw0Lw=?= Message-ID: <6b1e904e76b4aa903fa144a657f26a72.NginxMailingListRussian@forum.nginx.org> Добрый день! Я пытаюсь настроить nginx как прокси к внутренним серверам. При этом внутренние сервера используют аутентификацию по NTLM и BASE. Но, хотя, браузер и запрашивает логин и пароль серверам он не передается. Вот моя секция конфига: location /reps/ { proxy_pass http://10.2.0.20/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_pass_header Set-Cookie; set $IsAuth 1; if ($cookie_AUTH = "") { set $IsAuth 0; } proxy_redirect default; } location /portal/ { proxy_pass http://reportal/; proxy_redirect default; } Что я не так делаю? И можно ли логировать запрос, что бы увидеть имя и пароль передаются или нет? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218915,218915#msg-218915 From mva на mva.name Thu Nov 24 06:32:12 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Thu, 24 Nov 2011 13:32:12 +0700 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0YDQsNC30L7QsdGA0LDRgtGM0YHRjyDQvtGC?= =?UTF-8?B?0LrRg9C00LAg0LHQtdGA0YPRgtGB0Y8g0LvQtdCy0YvQtSBnZXQt0LfQsNC/?= =?UTF-8?B?0YDQvtGB0Ys=?= In-Reply-To: References: Message-ID: <1322116332.1762.3.camel@N900> во-первых, хотелось бы заметить, что вместо дописывания пути до корня сайта руками в параметрах fastcgi можно использовать $document_root Во-вторых, Вы привели только один вхост. И не понятно, толи это тот, к которому уходят чужие запросы, толи тот от которого. В-третьих, поисковые системы иногда имеют привычку запрашивать страницы, которых нету ;) Чем, например, очень сильно засирают логи в интернет-магазинах. On чт 24 ноя 2011 11:58:03 KRAT, valet wrote: > Выделенный сервер на Debian, на котором > много сайтов (bind9, nginx+php-fpm). > Столкнулся с очень странной проблемой. > В логах nginx отдельных хостов с завидной > регулярностью замечаю get-запросы > страниц другого сайта. > То есть например в логе первого сайта > site1.ru.access.log Googlebot/2.1 и другие боты > запрашивают страницы второго сайта > ... > ..."GET /stranica-site2-1.html HTTP/1.1"... > ... > ..."GET /stranica-site2-n.html HTTP/1.1"... > ... > На самом деле это урл-ы сайта site2.ru и > ссылок естественно таких на site1.ru нигде > нет, поэтому то, что они запрашиваются > тем боле поисковыми ботами, может > означать только одно - ошибка где-то в > конфигах. Я в первую очередь подумал, > что дело в кешировании fast-cgi-запросов на > nginx и убрал его - но это на мое удивление > не решило проблему. > Я не могу понять почему такое может > происходить и куда копать дальше. > Тому, кто даст правильную наводку в > решении вопроса, готов заплатить 10 > баксов за помощь (если проблема > окажется серьезная, готов обсудить > решение за вашу цену). > > Вот конфиги: > общий nginx.conf > user www-data; > worker_processes 8; > > # Уменьшает число системных вызовов > gettimeofday(), что приводит к увеличению > производительности > timer_resolution 100ms; > > # Изменяет ограничение на число > используемых файлов RLIMIT_NOFILE для > рабочего процесса. > worker_rlimit_nofile 8192; > > # Директива задаёт приоритет рабочих > процессов от -20 до 20 (отрицательное > число означает более высокий > приоритет). > worker_priority -5; > > events { >        #worker_connections  1024; >        worker_connections  16384; >        use epoll; >        multi_accept off; > } > > > pid /var/run/nginx.pid; > > > http { > >     ## >     # Basic Settings >     ## > > include blockips.conf; > >     sendfile on; >     tcp_nopush on; >     tcp_nodelay on; >     #keepalive_timeout 65; >     keepalive_timeout 5; >     types_hash_max_size 2048; >     # server_tokens off; > >     # server_names_hash_bucket_size 64; >     # server_name_in_redirect off; > >     include /etc/nginx/mime.types; >     default_type application/octet-stream; > >     ## >     # Logging Settings >     ## > >     access_log /var/log/nginx/access.log; >     error_log /var/log/nginx/error.log; > >     ## >     # Gzip Settings >     ## > >     gzip on; >     gzip_disable "msie6"; > >     # gzip_vary on; >     # gzip_proxied any; >     # gzip_comp_level 6; >     # gzip_buffers 16 8k; >     # gzip_http_version 1.1; >     # gzip_types text/plain text/css application/json > application/x-javascript text/xml application/xml application/xml+rss > text/javascript; > > #      gzip_min_length  1100; >        gzip_buffers        64 8k; >        gzip_comp_level 8; >        gzip_types text/plain application/xml application/x-javascript > text/css; >        gzip_proxied any; > > #кеширование > #fastcgi_cache_path /tmp/nginx/ levels=1:2 keys_zone=fastcgi_cache:16m > max_size=256m inactive=1d; > >     ## >     # Virtual Host Configs >     ## > > > # default virtual host > server { > listen 80 default; > server_name localhost; > deny all; > } > > >     include /etc/nginx/conf.d/*.conf; >     include /etc/nginx/sites-enabled/*; > } > > конфиг хоста: > server { >        listen  80; >        server_name site.ru; >        access_log  /var/log/nginx/site.ru.access.log; >        error_log  /var/log/nginx/site.ru.error.log; > >        gzip_static on; > > if ($http_user_agent ~ ZmEu) { > return 503; > } > > ##не принимать от клиентов запросы > длиной более 1 Мб > client_max_body_size 1m; > > root    /var/www/site.ru; > > ## Default location >        location / { >                index index.php index.html index.htm; >                include /var/www/site.ru/.htaccess; > } > > location ^~ /uploads/ { >     access_log off; >     expires max; > } > > location ^~ /templates/ { > } > > location /robots.txt { > alias /var/www/site.ru/robots_$host.txt; > } > > location /sitemap.xml { > alias /var/www/site.ru/uploads/sitemap_$host.xml; > } > > ## Images and static content is treated different >        location ~* ^.+.(jpg|jpeg|gif|png|js|ico)$ { >            access_log              off; >            expires                    max; >        } > > location /index.php { >     return 301 /; > } > > ## Parse all .php file in the /var/www/site.ru directory >        location ~ \.php$ { >     try_files $uri =404; >                fastcgi_split_path_info ^(.+\.php)(.*)$; >                #fastcgi_pass    127.0.0.1:9000; >                fastcgi_pass    unix:/tmp/php-fpm.sock; >                fastcgi_index  index.php; >                fastcgi_param  SCRIPT_FILENAME > /var/www/site.ru$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; >                fastcgi_temp_file_write_size 256k; > #кеширование FastCGI-запросов > #fastcgi_pass_header "Set-Cookie"; # Необходимо для > передачи cookie в соответствующие > переменные, например cookie с именем phpsessid > будет находится в переменной $cookie_phpsessid > # > #                      #fastcgi_ignore_headers Cache-Control Expires Set-Cookie; # > Игнорируем заголовки, относящиеся к > кешированию, полученные от > FastCGI-сервера > #                      fastcgi_cache_key > "$server_addr:$server_port$request_uri|$cookie_phpsessid"; # > Формируем уникальный ключ; в данном > случае различаем пользователей с > помощью $cookie_phpsessid > #                      fastcgi_cache fastcgi_cache; # Говорим о том, > что использовать надо вышеобъявленную > кеш-зону fastcgi_cache > #                      fastcgi_temp_path  /tmp/nginx/temp 1 2; # > Указываем папку для хранения временных > файлов > #                      fastcgi_cache_use_stale updating error timeout > invalid_header http_500; # Используем вариант из > кеша (даже если он устарел) в случае > ошибки > #fastcgi_cache_valid  200 302 10m; > #fastcgi_cache_valid  301 1h; > #fastcgi_cache_valid  any 1m; >        } > > ## Disable viewing .htaccess & .htpassword >        location ~ /\.ht { >                deny  all; >        } > > } > > server { >        listen            80; >        server_name www.site.ru; >        rewrite    ^  http://site.ru$request_uri?; > } > > Подскажите, где косяк? > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,218912,218912#msg-218912 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, mva From nginx-forum на nginx.us Thu Nov 24 06:54:01 2011 From: nginx-forum на nginx.us (valet) Date: Thu, 24 Nov 2011 01:54:01 -0500 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0YDQsNC30L7QsdGA0LDRgtGM0YHRjyDQvtGC?= =?UTF-8?B?0LrRg9C00LAg0LHQtdGA0YPRgtGB0Y8g0LvQtdCy0YvQtSBnZXQt0LfQsNC/?= =?UTF-8?B?0YDQvtGB0Ys=?= In-Reply-To: References: Message-ID: >>>во-первых, хотелось бы заметить, что вместо дописывания пути до корня сайта руками в параметрах fastcgi можно использовать $document_root А разве это что-то может изменить? >>>Во-вторых, Вы привели только один вхост. И не понятно, толи это тот, к которому уходят чужие запросы, толи тот от которого. А они полностью идентичны, отличаются только собственно хостом. Поэтому и привел один. >>>В-третьих, поисковые системы иногда имеют привычку запрашивать страницы, которых нету ;) Чем, например, очень сильно засирают логи в интернет-магазинах. Ну не скажите. Может кое когда и кое где... А у меня это происходит с завидной регулярностью по несколько сотен страниц в день. Проекты правда тоже довольно крупные. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218912,218917#msg-218917 From i.lobahin на nikitaonline.ru Thu Nov 24 06:57:21 2011 From: i.lobahin на nikitaonline.ru (Ilya Lobahin) Date: Thu, 24 Nov 2011 10:57:21 +0400 Subject: =?UTF-8?B?UmVbM106INCh0L/QtdGG0YHQuNC80LLQvtC70Ysg0LIgdXJp?= In-Reply-To: <1655572972.20111123174550@nikitaonline.ru> References: <1665572293.20111122184935@nikitaonline.ru> <6f7130dd65fac32c142eb11d84049d3f.NginxMailingListRussian@forum.nginx.org> <534166761.20111123165041@nikitaonline.ru> <20111123130010.GB43681@nginx.com> <1655572972.20111123174550@nikitaonline.ru> Message-ID: <161565216.20111124105721@nikitaonline.ru> Здравствуйте, Ilya. Вы писали 23 ноября 2011 г., 17:45:50: >> Как эта строка: >> -------------- nginx-err.log ------------------ >> *135754 open() "/some/path/DFO}g+6nYZy]Z1TE6i.P\" failed (2: No such file or directory), >> ----------------------------------------------- >> выглядит в access_log'е nginx'а ? >> У Апача "#" почему-то экранирован в %23: >> -------------- apache-access.log--------------- >> GET /some/path/DFO}g+6nYZy]Z1TE6i.P%235%20{cmi=xM'^Dd HTTP/1.1" 200 >> ----------------------------------------------- > Примеры я взял за разные периоды есс-но, т.к. в одни моменты все > отдавалось nginx-ом, а в другие апачем. > После углубленного изучения логов, появилось подозрение на > "неправильных" клиентов. Временно возьму таймаут по теме. Прошу прощения, видимо я всех дезинформировал. Софтина, прогоняет урлы через функцию типа urlencode(), файл качается нормально. А любопытные юзеры, выдергивают откуда-то изначальный урл и пихают его в браузеры и всякие качалки, которые не урлэнкодят путь. У меня вопросов по теме нет. Но у кого-то еще всплывала подобная проблема. -- С уважением, Лобахин Илья Системный администратор NIKITA.ONLINE 115201, Москва, Каширское шоссе д. 22/4 строение 7 e-mail: mailto:i.lobahin на nikitaonline.ru Тел./Факс: +7 (495) 788-7936 http://www.nikitaonline.ru http://www.gamexp.ru From i.lobahin на nikitaonline.ru Thu Nov 24 06:57:34 2011 From: i.lobahin на nikitaonline.ru (Ilya Lobahin) Date: Thu, 24 Nov 2011 10:57:34 +0400 Subject: =?UTF-8?B?UmVbMl06INCh0L/QtdGG0YHQuNC80LLQvtC70Ysg0LIgdXJp?= In-Reply-To: <0186af9a4359e048a1264ecaf448b527.NginxMailingListRussian@forum.nginx.org> References: <0186af9a4359e048a1264ecaf448b527.NginxMailingListRussian@forum.nginx.org> Message-ID: <1366057886.20111124105734@nikitaonline.ru> Здравствуйте, Tiberiy. Вы писали 23 ноября 2011 г., 17:50:30: > В логах нгинкса присутствуют записи с > '#' Можно такой access лог посмотреть? Из чистого любопытства. > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,218745,218824#msg-218824 > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, Лобахин Илья Системный администратор NIKITA.ONLINE 115201, Москва, Каширское шоссе д. 22/4 строение 7 e-mail: mailto:i.lobahin на nikitaonline.ru Тел./Факс: +7 (495) 788-7936 http://www.nikitaonline.ru http://www.gamexp.ru From nginx-forum на nginx.us Thu Nov 24 07:18:57 2011 From: nginx-forum на nginx.us (Tiberiy) Date: Thu, 24 Nov 2011 02:18:57 -0500 Subject: =?UTF-8?B?UmU6INCh0L/QtdGG0YHQuNC80LLQvtC70Ysg0LIgdXJp?= In-Reply-To: <1665572293.20111122184935@nikitaonline.ru> References: <1665572293.20111122184935@nikitaonline.ru> Message-ID: <267195f64d74290a24fc2a76901fb780.NginxMailingListRussian@forum.nginx.org> 2011/11/21 12:05:46 [error] 62549#0: *355049 upstream timed out (60: Operation timed out) while connecting to upstream, client: 46.105. 114.205, server: 178.162.183.34, request: "GET /xml/xml.php?aff=123&saff=1515&ip=99.68.204.112&q=ohio+essential+understandings+educatio n&ref=http%3A%2F%2F1047.swebstore.com%2fsearch.php%3faff%3d743%26saff%3d1000%26design%3dwarez%26q%3d#####&useragent=Mozilla%2F4. 0%20%28compatible%3B%20MSIE%208.0%3B%20Windows%20NT%205.1%3B%20Trident%2F4.0%3B%20GTB7.1%3B%20Mozilla%2F4.0%20%28compatible%3B%20MSIE%2 06.0%3B%20Windows%20NT%205.1%3B%20SV1%29%20%3B%20.NET%20CLR%201.1.4322%3B%20AskTbCDS%2F5.9.1.14019%29 HTTP/1.0", upstream: "http://111.1 111.111.111:80/xml/xml.php?aff=123&saff=1515&ip=99.68.204.112&q=ohio+essential+understandings+education&ref=http%3A%2F%2F1047.swebbstore.com%2fsearch.php%3faff%3d743%26saff%3d1000%26design%3dwarez%26q%3d#####&useragent=Mozilla%2F4.0%20%28compatible%3B%20MSIE%208.0% 3B%20Windows%20NT%205.1%3B%20Trident%2F4.0%3B%20GTB7.1%3B%20Mozilla%2F4.0%20%28compatible%3B%20MSIE%206.0%3B%20Windows%20NT%205.1%3B%20 SV1%29%20%3B%20.NET%20CLR%201.1.4322%3B%20AskTbCDS%2F5.9.1.14019%29", host: "domain.com" Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218745,218920#msg-218920 From manowar на gsc-game.kiev.ua Thu Nov 24 07:40:27 2011 From: manowar на gsc-game.kiev.ua (Serguei I. Ivantsov) Date: Thu, 24 Nov 2011 09:40:27 +0200 Subject: don't repeat yourself / copy and paste programming In-Reply-To: <20111123163511.GD49193@nginx.com> References: <4ECCC3E5.6080103@gsc-game.kiev.ua> <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> <4ECCE098.7080403@csdoc.com> <170851322050343@web84.yandex.ru> <4ECCEA7A.1090709@gsc-game.kiev.ua> <20111123163511.GD49193@nginx.com> Message-ID: <4ECDF4EB.8090105@gsc-game.kiev.ua> On 23.11.2011 18:35, Igor Sysoev wrote: > А почему конфигурация должна выглядет объектно-ориентированно Потому что так красиво, наглядно и понятно. От общего к частному. Сначала определяются общие правила для всех, потом, если надо, уточняются/переопределяются. Наследуемый location - это было бы здорово! :) From andrey на xdel.ru Wed Nov 23 20:02:45 2011 From: andrey на xdel.ru (Andrey Korolyov) Date: Wed, 23 Nov 2011 23:02:45 +0300 Subject: =?UTF-8?B?ZmNnaSBkb2N1bWVudF9yb290INCyIDEuMS44?= Message-ID: Добрый вечер, сервер следующего вида отдает 404, не передавая корректно параметр SCRIPT_FILENAME: server { ..... location / { root /usr/share/zabbix; index index.php; } location ~ \.php$ { fastcgi_param SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name; include fastcgi_params; } } . Вложенный локейшен работает, как и предполагалось. server { ..... location / { root /usr/share/zabbix; index index.php; location ~ \.php$ { fastcgi_param SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name; include fastcgi_params; } } } В аттаче - два стрейса, для первого и второго случаев. Баг минорный, потому что установка root сразу внутри директивы server решает проблему, но поскольку достаточно большой процент конфигураций fastcgi используют вместо глобально определенного $document_root хардкоднутый путь, как выше, поправить поведение наверняка стоит. built by gcc 4.6.2 (Debian 4.6.2-4) TLS SNI support enabled configure arguments: --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-http_gzip_static_module --with-http_ssl_module --with-ipv6 --without-http_browser_module --without-http_geo_module --without-http_limit_req_module --without-http_limit_zone_module --without-http_memcached_module --without-http_referer_module --without-http_scgi_module --without-http_split_clients_module --with-http_stub_status_module --without-http_ssi_module --without-http_userid_module --without-http_uwsgi_module --add-module=/tmp/buildd/nginx-1.1.8/debian/modules/nginx-echo ----------- следущая часть ----------- accept(0, {sa_family=AF_INET, sin_port=htons(39744), sin_addr=inet_addr("127.0.0.1")}, [16]) = 3 clock_gettime(CLOCK_MONOTONIC, {38253, 478477548}) = 0 times({tms_utime=16327, tms_stime=1207, tms_cutime=0, tms_cstime=0}) = 1721889877 poll([{fd=3, events=POLLIN}], 1, 5000) = 1 ([{fd=3, revents=POLLIN}]) read(3, "\1\1\0\1\0\10\0\0", 8) = 8 read(3, "\0\1\0\0\0\0\0\0", 8) = 8 read(3, "\1\4\0\1\3\335\3\0", 8) = 8 read(3, "\17\34SCRIPT_FILENAME/usr/share/zabb"..., 992) = 992 read(3, "\1\4\0\1\0\0\0\0", 8) = 8 lstat("/usr/share/zabbix/index.php", {st_mode=S_IFREG|0644, st_size=4045, ...}) = 0 lstat("/usr/share/zabbix", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat("/usr/share", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 clock_gettime(CLOCK_MONOTONIC, {38253, 479559297}) = 0 stat("/usr/share/zabbix/.user.ini", 0x7fff0e30acf0) = -1 ENOENT (No such file or directory) setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={600, 0}}, NULL) = 0 rt_sigaction(SIGPROF, {0x674d00, [PROF], SA_RESTORER|SA_RESTART, 0x7f57266e21e0}, {0x674d00, [PROF], SA_RESTORER|SA_RESTART, 0x7f57266e21e0}, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [PROF], NULL, 8) = 0 open("/usr/share/zabbix/index.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=4045, ...}) = 0 clock_gettime(CLOCK_MONOTONIC, {38253, 480209318}) = 0 getcwd("/", 4095) = 2 chdir("/usr/share/zabbix") = 0 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={600, 0}}, NULL) = 0 ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff0e309960) = -1 ENOTTY (Inappropriate ioctl for device) fstat(4, {st_mode=S_IFREG|0644, st_size=4045, ...}) = 0 mmap(NULL, 4077, PROT_READ, MAP_PRIVATE, 4, 0) = 0x7f5729817000 fstat(4, {st_mode=S_IFREG|0644, st_size=4045, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5729816000 lseek(4, 0, SEEK_CUR) = 0 munmap(0x7f5729817000, 4045) = 0 close(4) = 0 munmap(0x7f5729816000, 4096) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/config.inc.php", {st_mode=S_IFREG|0644, st_size=20704, ...}) = 0 lstat("/usr/share/zabbix/./include", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat("/usr/share/zabbix/include/config.inc.php", {st_mode=S_IFREG|0644, st_size=20704, ...}) = 0 lstat("/usr/share/zabbix/include", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 open("/usr/share/zabbix/include/config.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=20704, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=20704, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=20704, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=20704, ...}) = 0 mmap(NULL, 20704, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729812000 munmap(0x7f5729812000, 20704) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/debug.inc.php", {st_mode=S_IFREG|0644, st_size=1762, ...}) = 0 lstat("/usr/share/zabbix/include/debug.inc.php", {st_mode=S_IFREG|0644, st_size=1762, ...}) = 0 open("/usr/share/zabbix/include/debug.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=1762, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1762, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1762, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1762, ...}) = 0 mmap(NULL, 1762, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1762) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/defines.inc.php", {st_mode=S_IFREG|0644, st_size=26161, ...}) = 0 lstat("/usr/share/zabbix/include/defines.inc.php", {st_mode=S_IFREG|0644, st_size=26161, ...}) = 0 open("/usr/share/zabbix/include/defines.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=26161, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=26161, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=26161, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=26161, ...}) = 0 mmap(NULL, 26161, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729811000 munmap(0x7f5729811000, 26161) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/fonts", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/func.inc.php", {st_mode=S_IFREG|0644, st_size=35751, ...}) = 0 lstat("/usr/share/zabbix/include/func.inc.php", {st_mode=S_IFREG|0644, st_size=35751, ...}) = 0 open("/usr/share/zabbix/include/func.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=35751, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=35751, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=35751, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=35751, ...}) = 0 mmap(NULL, 35751, PROT_READ, MAP_SHARED, 4, 0) = 0x7f572980f000 munmap(0x7f572980f000, 35751) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/html.inc.php", {st_mode=S_IFREG|0644, st_size=6870, ...}) = 0 lstat("/usr/share/zabbix/include/html.inc.php", {st_mode=S_IFREG|0644, st_size=6870, ...}) = 0 open("/usr/share/zabbix/include/html.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=6870, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=6870, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=6870, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=6870, ...}) = 0 mmap(NULL, 6870, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729816000 munmap(0x7f5729816000, 6870) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/copt.lib.php", {st_mode=S_IFREG|0644, st_size=12014, ...}) = 0 lstat("/usr/share/zabbix/include/copt.lib.php", {st_mode=S_IFREG|0644, st_size=12014, ...}) = 0 open("/usr/share/zabbix/include/copt.lib.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=12014, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=12014, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=12014, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=12014, ...}) = 0 mmap(NULL, 12014, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729815000 munmap(0x7f5729815000, 12014) = 0 close(4) = 0 gettimeofday({1322005028, 341202}, NULL) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/profiles.inc.php", {st_mode=S_IFREG|0644, st_size=10504, ...}) = 0 lstat("/usr/share/zabbix/include/profiles.inc.php", {st_mode=S_IFREG|0644, st_size=10504, ...}) = 0 open("/usr/share/zabbix/include/profiles.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=10504, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=10504, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=10504, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=10504, ...}) = 0 mmap(NULL, 10504, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729815000 munmap(0x7f5729815000, 10504) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./conf/maintenance.inc.php", {st_mode=S_IFREG|0644, st_size=1025, ...}) = 0 lstat("/usr/share/zabbix/./conf", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat("/usr/share/zabbix/conf/maintenance.inc.php", {st_mode=S_IFREG|0644, st_size=1025, ...}) = 0 lstat("/usr/share/zabbix/conf", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 open("/usr/share/zabbix/conf/maintenance.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=1025, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1025, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1025, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1025, ...}) = 0 mmap(NULL, 1025, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1025) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/nodes.inc.php", {st_mode=S_IFREG|0644, st_size=11321, ...}) = 0 lstat("/usr/share/zabbix/include/nodes.inc.php", {st_mode=S_IFREG|0644, st_size=11321, ...}) = 0 open("/usr/share/zabbix/include/nodes.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=11321, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=11321, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=11321, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=11321, ...}) = 0 mmap(NULL, 11321, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729815000 munmap(0x7f5729815000, 11321) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/hosts.inc.php", {st_mode=S_IFREG|0644, st_size=53110, ...}) = 0 lstat("/usr/share/zabbix/include/hosts.inc.php", {st_mode=S_IFREG|0644, st_size=53110, ...}) = 0 open("/usr/share/zabbix/include/hosts.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=53110, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=53110, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=53110, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=53110, ...}) = 0 mmap(NULL, 53110, PROT_READ, MAP_SHARED, 4, 0) = 0x7f572980b000 munmap(0x7f572980b000, 53110) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/items.inc.php", {st_mode=S_IFREG|0644, st_size=57184, ...}) = 0 lstat("/usr/share/zabbix/include/items.inc.php", {st_mode=S_IFREG|0644, st_size=57184, ...}) = 0 open("/usr/share/zabbix/include/items.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=57184, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=57184, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=57184, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=57184, ...}) = 0 mmap(NULL, 57184, PROT_READ, MAP_SHARED, 4, 0) = 0x7f572980a000 munmap(0x7f572980a000, 57184) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/triggers.inc.php", {st_mode=S_IFREG|0644, st_size=124917, ...}) = 0 lstat("/usr/share/zabbix/include/triggers.inc.php", {st_mode=S_IFREG|0644, st_size=124917, ...}) = 0 open("/usr/share/zabbix/include/triggers.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=124917, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=124917, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=124917, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=124917, ...}) = 0 mmap(NULL, 124917, PROT_READ, MAP_SHARED, 4, 0) = 0x7f57297f9000 munmap(0x7f57297f9000, 124917) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/graphs.inc.php", {st_mode=S_IFREG|0644, st_size=40682, ...}) = 0 lstat("/usr/share/zabbix/include/graphs.inc.php", {st_mode=S_IFREG|0644, st_size=40682, ...}) = 0 open("/usr/share/zabbix/include/graphs.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=40682, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=40682, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=40682, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=40682, ...}) = 0 mmap(NULL, 40682, PROT_READ, MAP_SHARED, 4, 0) = 0x7f572980e000 munmap(0x7f572980e000, 40682) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/maps.inc.php", {st_mode=S_IFREG|0644, st_size=64430, ...}) = 0 lstat("/usr/share/zabbix/include/maps.inc.php", {st_mode=S_IFREG|0644, st_size=64430, ...}) = 0 open("/usr/share/zabbix/include/maps.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=64430, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=64430, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=64430, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=64430, ...}) = 0 mmap(NULL, 64430, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729808000 munmap(0x7f5729808000, 64430) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/acknow.inc.php", {st_mode=S_IFREG|0644, st_size=1777, ...}) = 0 lstat("/usr/share/zabbix/include/acknow.inc.php", {st_mode=S_IFREG|0644, st_size=1777, ...}) = 0 open("/usr/share/zabbix/include/acknow.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=1777, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1777, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1777, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1777, ...}) = 0 mmap(NULL, 1777, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1777) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/services.inc.php", {st_mode=S_IFREG|0644, st_size=28429, ...}) = 0 lstat("/usr/share/zabbix/include/services.inc.php", {st_mode=S_IFREG|0644, st_size=28429, ...}) = 0 open("/usr/share/zabbix/include/services.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=28429, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=28429, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=28429, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=28429, ...}) = 0 mmap(NULL, 28429, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729811000 munmap(0x7f5729811000, 28429) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/httptest.inc.php", {st_mode=S_IFREG|0644, st_size=18334, ...}) = 0 lstat("/usr/share/zabbix/include/httptest.inc.php", {st_mode=S_IFREG|0644, st_size=18334, ...}) = 0 open("/usr/share/zabbix/include/httptest.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=18334, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=18334, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=18334, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=18334, ...}) = 0 mmap(NULL, 18334, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729813000 munmap(0x7f5729813000, 18334) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 getcwd("/usr/share/zabbix", 4096) = 18 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/actions.inc.php", {st_mode=S_IFREG|0644, st_size=36064, ...}) = 0 lstat("/usr/share/zabbix/include/actions.inc.php", {st_mode=S_IFREG|0644, st_size=36064, ...}) = 0 open("/usr/share/zabbix/include/actions.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=36064, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=36064, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=36064, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=36064, ...}) = 0 mmap(NULL, 36064, PROT_READ, MAP_SHARED, 4, 0) = 0x7f572980f000 munmap(0x7f572980f000, 36064) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/discovery.inc.php", {st_mode=S_IFREG|0644, st_size=10106, ...}) = 0 lstat("/usr/share/zabbix/include/discovery.inc.php", {st_mode=S_IFREG|0644, st_size=10106, ...}) = 0 open("/usr/share/zabbix/include/discovery.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=10106, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=10106, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=10106, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=10106, ...}) = 0 mmap(NULL, 10106, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729815000 munmap(0x7f5729815000, 10106) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/perm.inc.php", {st_mode=S_IFREG|0644, st_size=19678, ...}) = 0 lstat("/usr/share/zabbix/include/perm.inc.php", {st_mode=S_IFREG|0644, st_size=19678, ...}) = 0 open("/usr/share/zabbix/include/perm.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=19678, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=19678, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=19678, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=19678, ...}) = 0 mmap(NULL, 19678, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729813000 munmap(0x7f5729813000, 19678) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/sounds.inc.php", {st_mode=S_IFREG|0644, st_size=3809, ...}) = 0 lstat("/usr/share/zabbix/include/sounds.inc.php", {st_mode=S_IFREG|0644, st_size=3809, ...}) = 0 open("/usr/share/zabbix/include/sounds.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=3809, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=3809, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=3809, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=3809, ...}) = 0 mmap(NULL, 3809, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729817000 munmap(0x7f5729817000, 3809) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/images.inc.php", {st_mode=S_IFREG|0644, st_size=1814, ...}) = 0 lstat("/usr/share/zabbix/include/images.inc.php", {st_mode=S_IFREG|0644, st_size=1814, ...}) = 0 open("/usr/share/zabbix/include/images.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=1814, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1814, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1814, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1814, ...}) = 0 mmap(NULL, 1814, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1814) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/events.inc.php", {st_mode=S_IFREG|0644, st_size=15581, ...}) = 0 lstat("/usr/share/zabbix/include/events.inc.php", {st_mode=S_IFREG|0644, st_size=15581, ...}) = 0 open("/usr/share/zabbix/include/events.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=15581, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=15581, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=15581, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=15581, ...}) = 0 mmap(NULL, 15581, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729814000 munmap(0x7f5729814000, 15581) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/scripts.inc.php", {st_mode=S_IFREG|0644, st_size=1746, ...}) = 0 lstat("/usr/share/zabbix/include/scripts.inc.php", {st_mode=S_IFREG|0644, st_size=1746, ...}) = 0 open("/usr/share/zabbix/include/scripts.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=1746, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1746, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1746, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1746, ...}) = 0 mmap(NULL, 1746, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1746) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/maintenances.inc.php", {st_mode=S_IFREG|0644, st_size=3986, ...}) = 0 lstat("/usr/share/zabbix/include/maintenances.inc.php", {st_mode=S_IFREG|0644, st_size=3986, ...}) = 0 open("/usr/share/zabbix/include/maintenances.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=3986, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=3986, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=3986, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=3986, ...}) = 0 mmap(NULL, 3986, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729817000 munmap(0x7f5729817000, 3986) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/valuemap.inc.php", {st_mode=S_IFREG|0644, st_size=2909, ...}) = 0 lstat("/usr/share/zabbix/include/valuemap.inc.php", {st_mode=S_IFREG|0644, st_size=2909, ...}) = 0 open("/usr/share/zabbix/include/valuemap.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=2909, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=2909, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=2909, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=2909, ...}) = 0 mmap(NULL, 2909, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729817000 munmap(0x7f5729817000, 2909) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/users.inc.php", {st_mode=S_IFREG|0644, st_size=5468, ...}) = 0 lstat("/usr/share/zabbix/include/users.inc.php", {st_mode=S_IFREG|0644, st_size=5468, ...}) = 0 open("/usr/share/zabbix/include/users.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=5468, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=5468, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=5468, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=5468, ...}) = 0 mmap(NULL, 5468, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729816000 munmap(0x7f5729816000, 5468) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/locales.inc.php", {st_mode=S_IFREG|0644, st_size=2398, ...}) = 0 lstat("/usr/share/zabbix/include/locales.inc.php", {st_mode=S_IFREG|0644, st_size=2398, ...}) = 0 open("/usr/share/zabbix/include/locales.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=2398, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=2398, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=2398, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=2398, ...}) = 0 mmap(NULL, 2398, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729817000 munmap(0x7f5729817000, 2398) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/audit.inc.php", {st_mode=S_IFREG|0644, st_size=4898, ...}) = 0 lstat("/usr/share/zabbix/include/audit.inc.php", {st_mode=S_IFREG|0644, st_size=4898, ...}) = 0 open("/usr/share/zabbix/include/audit.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=4898, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=4898, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=4898, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=4898, ...}) = 0 mmap(NULL, 4898, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729816000 munmap(0x7f5729816000, 4898) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/js.inc.php", {st_mode=S_IFREG|0644, st_size=17031, ...}) = 0 lstat("/usr/share/zabbix/include/js.inc.php", {st_mode=S_IFREG|0644, st_size=17031, ...}) = 0 open("/usr/share/zabbix/include/js.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=17031, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=17031, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=17031, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=17031, ...}) = 0 mmap(NULL, 17031, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729813000 munmap(0x7f5729813000, 17031) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/validate.inc.php", {st_mode=S_IFREG|0644, st_size=17437, ...}) = 0 lstat("/usr/share/zabbix/include/validate.inc.php", {st_mode=S_IFREG|0644, st_size=17437, ...}) = 0 open("/usr/share/zabbix/include/validate.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=17437, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=17437, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=17437, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=17437, ...}) = 0 mmap(NULL, 17437, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729813000 munmap(0x7f5729813000, 17437) = 0 close(4) = 0 access("/usr/share/zabbix/conf/zabbix.conf.php", F_OK) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.cconfigfile.php", {st_mode=S_IFREG|0644, st_size=4804, ...}) = 0 lstat("/usr/share/zabbix/./include/classes", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.cconfigfile.php", {st_mode=S_IFREG|0644, st_size=4804, ...}) = 0 lstat("/usr/share/zabbix/include/classes", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 open("/usr/share/zabbix/include/classes/class.cconfigfile.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=4804, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=4804, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=4804, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=4804, ...}) = 0 mmap(NULL, 4804, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729816000 munmap(0x7f5729816000, 4804) = 0 close(4) = 0 access("/usr/share/zabbix/conf/zabbix.conf.php", F_OK) = 0 lstat("/usr/share/zabbix/conf/zabbix.conf.php", {st_mode=S_IFLNK|0777, st_size=24, ...}) = 0 readlink("/usr/share/zabbix/conf/zabbix.conf.php", "/etc/zabbix/dbconfig.php"..., 4096) = 24 lstat("/etc/zabbix/dbconfig.php", {st_mode=S_IFREG|0640, st_size=832, ...}) = 0 lstat("/etc/zabbix", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat("/etc", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 open("/etc/zabbix/dbconfig.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0640, st_size=832, ...}) = 0 fstat(4, {st_mode=S_IFREG|0640, st_size=832, ...}) = 0 fstat(4, {st_mode=S_IFREG|0640, st_size=832, ...}) = 0 fstat(4, {st_mode=S_IFREG|0640, st_size=832, ...}) = 0 mmap(NULL, 832, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729817000 munmap(0x7f5729817000, 832) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/db.inc.php", {st_mode=S_IFREG|0644, st_size=31660, ...}) = 0 lstat("/usr/share/zabbix/include/db.inc.php", {st_mode=S_IFREG|0644, st_size=31660, ...}) = 0 open("/usr/share/zabbix/include/db.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=31660, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=31660, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=31660, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=31660, ...}) = 0 mmap(NULL, 31660, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729810000 munmap(0x7f5729810000, 31660) = 0 close(4) = 0 socket(PF_NETLINK, SOCK_RAW, 0) = 4 bind(4, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0 getsockname(4, {sa_family=AF_NETLINK, pid=8383, groups=00000000}, [12]) = 0 sendto(4, "\24\0\0\0\26\0\1\3$2\314N\0\0\0\0\0\0\0\0", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20 recvmsg(4, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"0\0\0\0\24\0\2\0$2\314N\277 \0\0\2\10\200\376\1\0\0\0\10\0\1\0\177\0\0\1"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 168 recvmsg(4, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"@\0\0\0\24\0\2\0$2\314N\277 \0\0\n\200\200\376\1\0\0\0\24\0\1\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 192 recvmsg(4, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0$2\314N\277 \0\0\0\0\0\0\1\0\0\0\24\0\1\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 20 close(4) = 0 stat("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=32, ...}) = 0 open("/etc/hosts", O_RDONLY|O_CLOEXEC) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=275, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5729817000 read(4, "127.0.0.1\tlocalhost\n172.20.1.104"..., 4096) = 275 read(4, "", 4096) = 0 close(4) = 0 munmap(0x7f5729817000, 4096) = 0 socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 4 setsockopt(4, SOL_TCP, TCP_NODELAY, [1], 4) = 0 fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK) = 0 fcntl(4, F_SETFD, FD_CLOEXEC) = 0 setsockopt(4, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0 connect(4, {sa_family=AF_INET, sin_port=htons(5432), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress) poll([{fd=4, events=POLLOUT|POLLERR}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}]) getsockopt(4, SOL_SOCKET, SO_ERROR, [0], [4]) = 0 getsockname(4, {sa_family=AF_INET, sin_port=htons(42497), sin_addr=inet_addr("127.0.0.1")}, [16]) = 0 poll([{fd=4, events=POLLOUT|POLLERR}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}]) sendto(4, "\0\0\0\10\4\322\26/", 8, MSG_NOSIGNAL, NULL, 0) = 8 poll([{fd=4, events=POLLIN|POLLERR}], 1, -1) = 1 ([{fd=4, revents=POLLIN}]) recvfrom(4, "S", 16384, 0, NULL, NULL) = 1 geteuid() = 33 open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 5 lseek(5, 0, SEEK_CUR) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1464, ...}) = 0 mmap(NULL, 1464, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 lseek(5, 1464, SEEK_SET) = 1464 munmap(0x7f5729817000, 1464) = 0 close(5) = 0 stat("/var/www/.postgresql/postgresql.crt", 0x7fff0e306790) = -1 ENOENT (No such file or directory) stat("/var/www/.postgresql/root.crt", 0x7fff0e306790) = -1 ENOENT (No such file or directory) write(4, "\26\3\1\0Z\1\0\0V\3\1N\3142$\272S\342\370\351\253\36\272{\263\300\324\\\372\23|H"..., 95) = 95 read(4, "\26\3\1\0005", 5) = 5 read(4, "\2\0\0001\3\1N\3142$\0\216\376-w6\37\353*\261:\271\326$\203E\225\31\254\262\222\227"..., 53) = 53 read(4, "\26\3\1\2\264", 5) = 5 read(4, "\v\0\2\260\0\2\255\0\2\2520\202\2\2460\202\1\216\2\t\0\242\224brt'\251\3550\r\6"..., 692) = 692 read(4, "\26\3\1\2\r", 5) = 5 read(4, "\f\0\2\t\0\200\364\210\375XNI\333\315 \264\235\344\221\0076k3l8\rE\35\17|\210\263"..., 525) = 525 read(4, "\26\3\1\0\4", 5) = 5 read(4, "\16\0\0\0", 4) = 4 write(4, "\26\3\1\0\206\20\0\0\202\0\200\246\345\25\6\367aa\r\0\20R?f\363\307\22", 32) = 32 read(4, "\27\3\1\0000", 5) = 5 read(4, "\275\3707<\277\255m\245 P9kv|\352:\346\314\351\225\177]\325\255\25\270\351\365>\270\276v"..., 48) = 48 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 write(4, "\27\3\1\0 \323}\257\336\273\\p=yrW\350\5\366=\214\215'\350e\230}\232\337\305h\21"..., 122) = 122 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 poll([{fd=4, events=POLLIN|POLLERR}], 1, -1) = 1 ([{fd=4, revents=POLLIN}]) rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 read(4, "\27\3\1\0 ", 5) = 5 read(4, "\3430l_\275\277 \226\264XV\262\n\371\241\304\307GZ\371\3\276#m\177\240Q\0265~\271G", 32) = 32 read(4, "\27\3\1\1\0", 5) = 5 read(4, "k^>{;\234\244tW\201T\274u\211\371+pZ,cC\263\245\334B\3708l4T\324\322"..., 256) = 256 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 gettimeofday({1322005028, 420189}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 write(4, "\27\3\1\0 ]d]\267\37\31m]\220\21\t\310\22\216\1\326s'2\5\274\237pT|\263\221"..., 106) = 106 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 poll([{fd=4, events=POLLIN|POLLERR}], 1, -1) = 1 ([{fd=4, revents=POLLIN}]) rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 read(4, "\27\3\1\0 ", 5) = 5 read(4, "\305\20\210\24\267\231\343hKt\266\365\264H\372\n\1H\276Vw:\265\202\277T]),\350\34\372", 32) = 32 read(4, "\27\3\1\0000", 5) = 5 read(4, "\313\1\275\200\0\233\243\217\267\202\f\354}\346\215\327<\250_\364\215\1V на x\372\333\333;\230\354\262"..., 48) = 48 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 gettimeofday({1322005028, 421385}, NULL) = 0 gettimeofday({1322005028, 421485}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 write(4, "\27\3\1\0 \231\211a\370\303\233\21\371p\5\356\331\7\351\1\265\5\330s\314\361\353{P!\177\v"..., 122) = 122 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 poll([{fd=4, events=POLLIN|POLLERR}], 1, -1) = 1 ([{fd=4, revents=POLLIN}]) rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 read(4, "\27\3\1\0 ", 5) = 5 read(4, "x\375\302\336\235\315k5\25\353\312%&\215a\22q^Ms\2012\375B\2064\23t*?\275k", 32) = 32 read(4, "\27\3\1\0\260", 5) = 5 read(4, "\2656\26\315\345\324'\377\16\367h\372\336\22\272\223\327\231y\264*\t\32*5}\202Q\343\350f\276"..., 176) = 176 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 gettimeofday({1322005028, 424771}, NULL) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./api/classes/class.cuser.php", {st_mode=S_IFREG|0644, st_size=42275, ...}) = 0 lstat("/usr/share/zabbix/./api/classes", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat("/usr/share/zabbix/./api", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat("/usr/share/zabbix/api/classes/class.cuser.php", {st_mode=S_IFREG|0644, st_size=42275, ...}) = 0 lstat("/usr/share/zabbix/api/classes", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat("/usr/share/zabbix/api", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 open("/usr/share/zabbix/api/classes/class.cuser.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=42275, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=42275, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=42275, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=42275, ...}) = 0 mmap(NULL, 42275, PROT_READ, MAP_SHARED, 5, 0) = 0x7f572980d000 munmap(0x7f572980d000, 42275) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./api/classes/class.czbxapi.php", {st_mode=S_IFREG|0644, st_size=4388, ...}) = 0 lstat("/usr/share/zabbix/api/classes/class.czbxapi.php", {st_mode=S_IFREG|0644, st_size=4388, ...}) = 0 open("/usr/share/zabbix/api/classes/class.czbxapi.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=4388, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=4388, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=4388, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=4388, ...}) = 0 mmap(NULL, 4388, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729816000 munmap(0x7f5729816000, 4388) = 0 close(5) = 0 gettimeofday({1322005028, 429130}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 write(4, "\27\3\1\0 \321\330\256\303\237\367\300\265V\342\24\252\363\347"..., 96) = 96 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 gettimeofday({1322005028, 432170}, NULL) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/locales/en_gb.inc.php", {st_mode=S_IFREG|0644, st_size=102118, ...}) = 0 lstat("/usr/share/zabbix/./include/locales", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat("/usr/share/zabbix/include/locales/en_gb.inc.php", {st_mode=S_IFREG|0644, st_size=102118, ...}) = 0 lstat("/usr/share/zabbix/include/locales", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 open("/usr/share/zabbix/include/locales/en_gb.inc.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=102118, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=102118, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=102118, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=102118, ...}) = 0 mmap(NULL, 102118, PROT_READ, MAP_SHARED, 5, 0) = 0x7f57297ff000 munmap(0x7f57297ff000, 102118) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.curl.php", {st_mode=S_IFREG|0644, st_size=8336, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.curl.php", {st_mode=S_IFREG|0644, st_size=8336, ...}) = 0 open("/usr/share/zabbix/include/classes/class.curl.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=8336, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=8336, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=8336, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=8336, ...}) = 0 mmap(NULL, 8336, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729815000 munmap(0x7f5729815000, 8336) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./index.php", {st_mode=S_IFREG|0644, st_size=4045, ...}) = 0 open("/usr/share/zabbix/index.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=4045, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=4045, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=4045, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=4045, ...}) = 0 mmap(NULL, 4045, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 4045) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/forms.inc.php", {st_mode=S_IFREG|0644, st_size=199299, ...}) = 0 lstat("/usr/share/zabbix/include/forms.inc.php", {st_mode=S_IFREG|0644, st_size=199299, ...}) = 0 open("/usr/share/zabbix/include/forms.inc.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=199299, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=199299, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=199299, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=199299, ...}) = 0 mmap(NULL, 199299, PROT_READ, MAP_SHARED, 5, 0) = 0x7f57297e7000 munmap(0x7f57297e7000, 199299) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 gettimeofday({1322005028, 452096}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 write(4, "\27\3\1\0 \326-\356Z?[\343\374{\377\342n\231\254\333\245}n\10\330f\242Y\232+\261\352"..., 90) = 90 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 poll([{fd=4, events=POLLIN|POLLERR}], 1, -1) = 1 ([{fd=4, revents=POLLIN}]) rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 read(4, "\27\3\1\0 ", 5) = 5 read(4, "\201{\270FE\207\230\317\353\374w\367om\17%\362\16\27\360_\212\232g\4+\223\303\222\215\322\267", 32) = 32 read(4, "\27\3\1\1\240", 5) = 5 read(4, ".X)\235H\3700\206m\263\363\364\\\300\333o\203*\325\233\232\223\216B\250\327\336\376\334]\353/"..., 416) = 416 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 gettimeofday({1322005028, 453937}, NULL) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/page_header.php", {st_mode=S_IFREG|0644, st_size=15255, ...}) = 0 lstat("/usr/share/zabbix/include/page_header.php", {st_mode=S_IFREG|0644, st_size=15255, ...}) = 0 open("/usr/share/zabbix/include/page_header.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=15255, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=15255, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=15255, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=15255, ...}) = 0 mmap(NULL, 15255, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729814000 munmap(0x7f5729814000, 15255) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 getcwd("/usr/share/zabbix", 4096) = 18 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/menu.inc.php", {st_mode=S_IFREG|0644, st_size=10191, ...}) = 0 lstat("/usr/share/zabbix/include/menu.inc.php", {st_mode=S_IFREG|0644, st_size=10191, ...}) = 0 open("/usr/share/zabbix/include/menu.inc.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=10191, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=10191, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=10191, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=10191, ...}) = 0 mmap(NULL, 10191, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729815000 munmap(0x7f5729815000, 10191) = 0 close(5) = 0 gettimeofday({1322005028, 457495}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 write(4, "\27\3\1\0 \353q\253\217\236U\276\305\223jZ\312f\275\35\226\264%\220\353\203pd\36a\327l"..., 122) = 122 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 poll([{fd=4, events=POLLIN|POLLERR}], 1, -1) = 1 ([{fd=4, revents=POLLIN}]) rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 read(4, "\27\3\1\0 ", 5) = 5 read(4, "\261\n\374n\355\235\f\364m\265\213\360\345\177'\237i\"\250\242\270K1\26\2557Oa\325\2255\233", 32) = 32 read(4, "\27\3\1\0\300", 5) = 5 read(4, "h\34\34#_\325H\250\202\254\212\275i\232TN#\250\251\f_\1o\23\31&\364]Mv\36P"..., 192) = 192 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 gettimeofday({1322005028, 459724}, NULL) = 0 stat("/usr/share/zoneinfo/Europe/Moscow", {st_mode=S_IFREG|0644, st_size=1448, ...}) = 0 open("/usr/share/zoneinfo/Europe/Moscow", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1448, ...}) = 0 mmap(NULL, 1448, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 close(5) = 0 munmap(0x7f5729817000, 1448) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.clink.php", {st_mode=S_IFREG|0644, st_size=2260, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.clink.php", {st_mode=S_IFREG|0644, st_size=2260, ...}) = 0 open("/usr/share/zabbix/include/classes/class.clink.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=2260, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=2260, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=2260, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=2260, ...}) = 0 mmap(NULL, 2260, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 2260) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.ctag.php", {st_mode=S_IFREG|0644, st_size=5038, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.ctag.php", {st_mode=S_IFREG|0644, st_size=5038, ...}) = 0 open("/usr/share/zabbix/include/classes/class.ctag.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=5038, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=5038, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=5038, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=5038, ...}) = 0 mmap(NULL, 5038, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729816000 munmap(0x7f5729816000, 5038) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.cobject.php", {st_mode=S_IFREG|0644, st_size=2473, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.cobject.php", {st_mode=S_IFREG|0644, st_size=2473, ...}) = 0 open("/usr/share/zabbix/include/classes/class.cobject.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=2473, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=2473, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=2473, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=2473, ...}) = 0 mmap(NULL, 2473, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 2473) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.cdiv.php", {st_mode=S_IFREG|0644, st_size=1083, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.cdiv.php", {st_mode=S_IFREG|0644, st_size=1083, ...}) = 0 open("/usr/share/zabbix/include/classes/class.cdiv.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1083, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1083, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1083, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1083, ...}) = 0 mmap(NULL, 1083, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1083) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.ccol.php", {st_mode=S_IFREG|0644, st_size=1322, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.ccol.php", {st_mode=S_IFREG|0644, st_size=1322, ...}) = 0 open("/usr/share/zabbix/include/classes/class.ccol.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1322, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1322, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1322, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1322, ...}) = 0 mmap(NULL, 1322, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1322) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.ctable.php", {st_mode=S_IFREG|0644, st_size=4007, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.ctable.php", {st_mode=S_IFREG|0644, st_size=4007, ...}) = 0 open("/usr/share/zabbix/include/classes/class.ctable.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=4007, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=4007, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=4007, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=4007, ...}) = 0 mmap(NULL, 4007, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 4007) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.crow.php", {st_mode=S_IFREG|0644, st_size=1580, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.crow.php", {st_mode=S_IFREG|0644, st_size=1580, ...}) = 0 open("/usr/share/zabbix/include/classes/class.crow.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1580, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1580, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1580, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1580, ...}) = 0 mmap(NULL, 1580, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1580) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.cformtable.php", {st_mode=S_IFREG|0644, st_size=4542, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.cformtable.php", {st_mode=S_IFREG|0644, st_size=4542, ...}) = 0 open("/usr/share/zabbix/include/classes/class.cformtable.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=4542, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=4542, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=4542, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=4542, ...}) = 0 mmap(NULL, 4542, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729816000 munmap(0x7f5729816000, 4542) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.cform.php", {st_mode=S_IFREG|0644, st_size=1923, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.cform.php", {st_mode=S_IFREG|0644, st_size=1923, ...}) = 0 open("/usr/share/zabbix/include/classes/class.cform.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1923, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1923, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1923, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1923, ...}) = 0 mmap(NULL, 1923, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1923) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.cvar.php", {st_mode=S_IFREG|0644, st_size=1545, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.cvar.php", {st_mode=S_IFREG|0644, st_size=1545, ...}) = 0 open("/usr/share/zabbix/include/classes/class.cvar.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1545, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1545, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1545, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1545, ...}) = 0 mmap(NULL, 1545, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1545) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.cvartag.php", {st_mode=S_IFREG|0644, st_size=1143, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.cvartag.php", {st_mode=S_IFREG|0644, st_size=1143, ...}) = 0 open("/usr/share/zabbix/include/classes/class.cvartag.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1143, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1143, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1143, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1143, ...}) = 0 mmap(NULL, 1143, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1143) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.chelp.php", {st_mode=S_IFREG|0644, st_size=1270, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.chelp.php", {st_mode=S_IFREG|0644, st_size=1270, ...}) = 0 open("/usr/share/zabbix/include/classes/class.chelp.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1270, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1270, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1270, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1270, ...}) = 0 mmap(NULL, 1270, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1270) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.cicon.php", {st_mode=S_IFREG|0644, st_size=1041, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.cicon.php", {st_mode=S_IFREG|0644, st_size=1041, ...}) = 0 open("/usr/share/zabbix/include/classes/class.cicon.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1041, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1041, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1041, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1041, ...}) = 0 mmap(NULL, 1041, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1041) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.ctextbox.php", {st_mode=S_IFREG|0644, st_size=1698, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.ctextbox.php", {st_mode=S_IFREG|0644, st_size=1698, ...}) = 0 open("/usr/share/zabbix/include/classes/class.ctextbox.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1698, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1698, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1698, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1698, ...}) = 0 mmap(NULL, 1698, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1698) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.cpassbox.php", {st_mode=S_IFREG|0644, st_size=963, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.cpassbox.php", {st_mode=S_IFREG|0644, st_size=963, ...}) = 0 open("/usr/share/zabbix/include/classes/class.cpassbox.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=963, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=963, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=963, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=963, ...}) = 0 mmap(NULL, 963, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 963) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.cbutton.php", {st_mode=S_IFREG|0644, st_size=1684, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.cbutton.php", {st_mode=S_IFREG|0644, st_size=1684, ...}) = 0 open("/usr/share/zabbix/include/classes/class.cbutton.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1684, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1684, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1684, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1684, ...}) = 0 mmap(NULL, 1684, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1684) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/page_footer.php", {st_mode=S_IFREG|0644, st_size=3707, ...}) = 0 lstat("/usr/share/zabbix/include/page_footer.php", {st_mode=S_IFREG|0644, st_size=3707, ...}) = 0 open("/usr/share/zabbix/include/page_footer.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=3707, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=3707, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=3707, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=3707, ...}) = 0 mmap(NULL, 3707, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 3707) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.cspan.php", {st_mode=S_IFREG|0644, st_size=1085, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.cspan.php", {st_mode=S_IFREG|0644, st_size=1085, ...}) = 0 open("/usr/share/zabbix/include/classes/class.cspan.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1085, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1085, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1085, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1085, ...}) = 0 mmap(NULL, 1085, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1085) = 0 close(5) = 0 chdir("/") = 0 clock_gettime(CLOCK_MONOTONIC, {38253, 634225470}) = 0 times({tms_utime=16334, tms_stime=1207, tms_cutime=0, tms_cstime=0}) = 1721889892 rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 write(4, "\27\3\1\0 \341~\375\24\262\245\341\366\202m\346\270\277%\314\271\204\372\263\331F]\311F\370\32c"..., 74) = 74 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 write(4, "\25\3\1\0 e\5xM\205-\221@\336U\340-\237W;\217\234i\2466\320\303\351\203\345\203\300"..., 37) = 37 rt_sigpending([]) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 close(4) = 0 write(3, "\1\6\0\1\r\254\4\0Content-Type: text/html;"..., 3528) = 3528 shutdown(3, 1 /* send */) = 0 recvfrom(3, "\1\5\0\1\0\0\0\0", 8, 0, NULL, NULL) = 8 recvfrom(3, "", 8, 0, NULL, NULL) = 0 close(3) = 0 clock_gettime(CLOCK_MONOTONIC, {38253, 642566069}) = 0 open("/dev/urandom", O_RDONLY) = 3 read(3, "\364\371p\3329\7\31a", 8) = 8 close(3) = 0 open("/dev/urandom", O_RDONLY) = 3 read(3, "\310`\357\322\224j\226\345", 8) = 8 close(3) = 0 open("/dev/urandom", O_RDONLY) = 3 read(3, "\251\353\367\2\205$8:", 8) = 8 close(3) = 0 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0 clock_gettime(CLOCK_MONOTONIC, {38253, 643314486}) = 0 accept(0, {sa_family=AF_INET, sin_port=htons(39746), sin_addr=inet_addr("127.0.0.1")}, [16]) = 3 clock_gettime(CLOCK_MONOTONIC, {38253, 803759454}) = 0 times({tms_utime=16335, tms_stime=1207, tms_cutime=0, tms_cstime=0}) = 1721889909 poll([{fd=3, events=POLLIN}], 1, 5000) = 1 ([{fd=3, revents=POLLIN}]) read(3, "\1\1\0\1\0\10\0\0", 8) = 8 read(3, "\0\1\0\0\0\0\0\0", 8) = 8 read(3, "\1\4\0\1\4@\0\0", 8) = 8 read(3, "\17\37SCRIPT_FILENAME/usr/share/zabb"..., 1088) = 1088 read(3, "\1\4\0\1\0\0\0\0", 8) = 8 lstat("/usr/share/zabbix/jsLoader.php", {st_mode=S_IFREG|0644, st_size=4532, ...}) = 0 clock_gettime(CLOCK_MONOTONIC, {38253, 804463471}) = 0 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={600, 0}}, NULL) = 0 rt_sigaction(SIGPROF, {0x674d00, [PROF], SA_RESTORER|SA_RESTART, 0x7f57266e21e0}, {0x674d00, [PROF], SA_RESTORER|SA_RESTART, 0x7f57266e21e0}, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [PROF], NULL, 8) = 0 open("/usr/share/zabbix/jsLoader.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=4532, ...}) = 0 clock_gettime(CLOCK_MONOTONIC, {38253, 804998198}) = 0 getcwd("/", 4095) = 2 chdir("/usr/share/zabbix") = 0 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={600, 0}}, NULL) = 0 ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff0e309960) = -1 ENOTTY (Inappropriate ioctl for device) fstat(4, {st_mode=S_IFREG|0644, st_size=4532, ...}) = 0 mmap(NULL, 4564, PROT_READ, MAP_PRIVATE, 4, 0) = 0x7f5729816000 fstat(4, {st_mode=S_IFREG|0644, st_size=4532, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5729815000 lseek(4, 0, SEEK_CUR) = 0 munmap(0x7f5729816000, 4532) = 0 close(4) = 0 munmap(0x7f5729815000, 4096) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/locales/en_gb.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=102118, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=102118, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=102118, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=102118, ...}) = 0 mmap(NULL, 102118, PROT_READ, MAP_SHARED, 4, 0) = 0x7f57297ff000 munmap(0x7f57297ff000, 102118) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/include/js.inc.php", {st_mode=S_IFREG|0644, st_size=17031, ...}) = 0 open("/usr/share/zabbix/include/js.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=17031, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=17031, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=17031, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=17031, ...}) = 0 mmap(NULL, 17031, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729813000 munmap(0x7f5729813000, 17031) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/js/prototype.js", {st_mode=S_IFLNK|0777, st_size=39, ...}) = 0 readlink("/usr/share/zabbix/js/prototype.js", "../../javascript/prototype/prototype.js", 4096) = 39 lstat("/usr/share/zabbix/js/../../javascript/prototype/prototype.js", {st_mode=S_IFLNK|0777, st_size=18, ...}) = 0 readlink("/usr/share/zabbix/js/../../javascript/prototype/prototype.js", "prototype-1.7.0.js"..., 4096) = 18 lstat("/usr/share/zabbix/js/../../javascript/prototype/prototype-1.7.0.js", {st_mode=S_IFREG|0644, st_size=163313, ...}) = 0 lstat("/usr/share/zabbix/js/../../javascript/prototype", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat("/usr/share/zabbix/js/../../javascript", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat("/usr/share/zabbix/js", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 open("/usr/share/javascript/prototype/prototype-1.7.0.js", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=163313, ...}) = 0 lseek(4, 0, SEEK_CUR) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=163313, ...}) = 0 read(4, "/* Prototype JavaScript framewo"..., 8192) = 8192 read(4, "isArray == 'function')\n && Ar"..., 8192) = 8192 read(4, "hash, pair) {\n if ((pair = "..., 8192) = 8192 read(4, "alue, index);\n });\n return"..., 8192) = 8192 read(4, "ction(results, pair) {\n var"..., 8192) = 8192 read(4, "ess() ? 'Success' : 'Failure')]\n"..., 8192) = 8192 read(4, "ldUseCache(tagName, attributes) "..., 8192) = 8192 read(4, "\n\n siblings: function(element) "..., 8192) = 8192 read(4, "ement.style.overflow = 'hidden';"..., 8192) = 8192 read(4, " v._getEv,\n onkeypress: "..., 8192) = 8192 read(4, "end(tagName) {\n tagName = tag"..., 8192) = 8192 read(4, "= false;\n }\n },\n\n _se"..., 8192) = 8192 read(4, "nction(element) {\n return"..., 8192) = 8192 read(4, "ut: getLayout,\n "..., 8192) = 8192 read(4, " == null ) {\n\t\t\t\tthrow \"Syntax e"..., 8192) = 8192 read(4, "\t}\n\t\t\t\t\treturn true;\n\t\t\t\tcase 'n"..., 8192) = 8192 read(4, "elem[dir];\n\t\t\tvar match = false;"..., 8192) = 8192 read(4, "bject.isUndefined(value)) return"..., 8192) = 8192 read(4, "() { this.cancelBubble = true },"..., 8192) = 8192 read(4, "clearTimeout(timer);\n documen"..., 8192) = 7665 read(4, "", 8192) = 0 read(4, "", 8192) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/js/scriptaculous/effects.js", {st_mode=S_IFREG|0644, st_size=38471, ...}) = 0 lstat("/usr/share/zabbix/js/scriptaculous", {st_mode=S_IFLNK|0777, st_size=30, ...}) = 0 readlink("/usr/share/zabbix/js/scriptaculous", "../../javascript/scriptaculous"..., 4096) = 30 lstat("/usr/share/zabbix/js/../../javascript/scriptaculous", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat("/usr/share/zabbix/js/../../javascript", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 open("/usr/share/javascript/scriptaculous/effects.js", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=38471, ...}) = 0 lseek(4, 0, SEEK_CUR) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=38471, ...}) = 0 read(4, "// script.aculo.us effects.js v1"..., 8192) = 8192 read(4, "\n if (this.state === \"run"..., 8192) = 8192 read(4, "s.endcolor = this.element.getSty"..., 8192) = 8192 read(4, "Width: elementDimensions.width},"..., 8192) = 8192 read(4, "r components = value.match(/^([\\"..., 8192) = 5703 read(4, "", 8192) = 0 read(4, "", 8192) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/js/scriptaculous/dragdrop.js", {st_mode=S_IFREG|0644, st_size=31066, ...}) = 0 lstat("/usr/share/zabbix/js/scriptaculous", {st_mode=S_IFLNK|0777, st_size=30, ...}) = 0 readlink("/usr/share/zabbix/js/scriptaculous", "../../javascript/scriptaculous"..., 4096) = 30 lstat("/usr/share/zabbix/js/../../javascript/scriptaculous", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat("/usr/share/zabbix/js/../../javascript", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 open("/usr/share/javascript/scriptaculous/dragdrop.js", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=31066, ...}) = 0 lseek(4, 0, SEEK_CUR) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=31066, ...}) = 0 read(4, "// script.aculo.us dragdrop.js v"..., 8192) = 8192 read(4, "[1] || { });\n\n this.element ="..., 8192) = 8192 read(4, "his._getWindowScroll(this.option"..., 8192) = 8192 read(4, "g\n dropon.parentNode.inse"..., 8192) = 6490 read(4, "", 8192) = 0 read(4, "", 8192) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/js/common.js", {st_mode=S_IFREG|0644, st_size=17138, ...}) = 0 open("/usr/share/zabbix/js/common.js", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=17138, ...}) = 0 lseek(4, 0, SEEK_CUR) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=17138, ...}) = 0 read(4, "/*\n** ZABBIX\n** Copyright (C) 20"..., 8192) = 8192 read(4, "th = parseInt(obj.offsetWidth,10"..., 8192) = 8192 read(4, " '';\n\t\tie6pngfix.run();\n\t}\n\nretu"..., 8192) = 754 read(4, "", 8192) = 0 read(4, "", 8192) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/js/dom.js", {st_mode=S_IFREG|0644, st_size=1247, ...}) = 0 open("/usr/share/zabbix/js/dom.js", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=1247, ...}) = 0 lseek(4, 0, SEEK_CUR) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1247, ...}) = 0 read(4, "// JavaScript Document\n// DOM Cl"..., 8192) = 1247 read(4, "", 8192) = 0 read(4, "", 8192) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/js/class.cdebug.js", {st_mode=S_IFREG|0644, st_size=1703, ...}) = 0 open("/usr/share/zabbix/js/class.cdebug.js", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=1703, ...}) = 0 lseek(4, 0, SEEK_CUR) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1703, ...}) = 0 read(4, "// JavaScript Document\n/*\n** ZAB"..., 8192) = 1703 read(4, "", 8192) = 0 read(4, "", 8192) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/js/class.cdate.js", {st_mode=S_IFREG|0644, st_size=6559, ...}) = 0 open("/usr/share/zabbix/js/class.cdate.js", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=6559, ...}) = 0 lseek(4, 0, SEEK_CUR) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=6559, ...}) = 0 read(4, "// JavaScript Document\n/*\n** ZAB"..., 8192) = 6559 read(4, "", 8192) = 0 read(4, "", 8192) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/js/class.cookie.js", {st_mode=S_IFREG|0644, st_size=4892, ...}) = 0 open("/usr/share/zabbix/js/class.cookie.js", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=4892, ...}) = 0 lseek(4, 0, SEEK_CUR) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=4892, ...}) = 0 read(4, "//Javascript document\n/*\n** ZABB"..., 8192) = 4892 read(4, "", 8192) = 0 read(4, "", 8192) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/js/class.curl.js", {st_mode=S_IFREG|0644, st_size=6974, ...}) = 0 open("/usr/share/zabbix/js/class.curl.js", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=6974, ...}) = 0 lseek(4, 0, SEEK_CUR) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=6974, ...}) = 0 read(4, "/*\n** ZABBIX\n** Copyright (C) 20"..., 8192) = 6974 read(4, "", 8192) = 0 read(4, "", 8192) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/js/class.rpc.js", {st_mode=S_IFREG|0644, st_size=4155, ...}) = 0 open("/usr/share/zabbix/js/class.rpc.js", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=4155, ...}) = 0 lseek(4, 0, SEEK_CUR) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=4155, ...}) = 0 read(4, "/*\n** ZABBIX\n** Copyright (C) 20"..., 8192) = 4155 read(4, "", 8192) = 0 read(4, "", 8192) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/js/class.bbcode.js", {st_mode=S_IFREG|0644, st_size=4296, ...}) = 0 open("/usr/share/zabbix/js/class.bbcode.js", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=4296, ...}) = 0 lseek(4, 0, SEEK_CUR) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=4296, ...}) = 0 read(4, "//Javascript document\n/*\n ** ZAB"..., 8192) = 4296 read(4, "", 8192) = 0 read(4, "", 8192) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/js/class.csuggest.js", {st_mode=S_IFREG|0644, st_size=11815, ...}) = 0 open("/usr/share/zabbix/js/class.csuggest.js", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=11815, ...}) = 0 lseek(4, 0, SEEK_CUR) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=11815, ...}) = 0 read(4, "/*\n** Copyright (C) 2010 Artem \""..., 8192) = 8192 read(4, ";\n//---\n\n\tthis.mouseOverSuggest "..., 8192) = 3623 read(4, "", 8192) = 0 read(4, "", 8192) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/js/class.cmessages.js", {st_mode=S_IFREG|0644, st_size=15022, ...}) = 0 open("/usr/share/zabbix/js/class.cmessages.js", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=15022, ...}) = 0 lseek(4, 0, SEEK_CUR) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=15022, ...}) = 0 read(4, "/*\n** Copyright (C) 2010 Artem \""..., 8192) = 8192 read(4, "on(){\n\tthis.debug('timeoutMessag"..., 8192) = 6830 read(4, "", 8192) = 0 read(4, "", 8192) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/js/main.js", {st_mode=S_IFREG|0644, st_size=25369, ...}) = 0 open("/usr/share/zabbix/js/main.js", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=25369, ...}) = 0 lseek(4, 0, SEEK_CUR) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=25369, ...}) = 0 read(4, "//Javascript document\n/*\n** ZABB"..., 8192) = 8192 read(4, "et pageGoName')\n\t}\n},\n\nsubmitGo:"..., 8192) = 8192 read(4, "*/\n\tthis.boxes[boxid] = box;\n\tth"..., 8192) = 8192 read(4, "= url.getPath()+'?'+Object.toQue"..., 8192) = 793 read(4, "", 8192) = 0 read(4, "", 8192) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/js/functions.js", {st_mode=S_IFREG|0644, st_size=23187, ...}) = 0 open("/usr/share/zabbix/js/functions.js", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=23187, ...}) = 0 lseek(4, 0, SEEK_CUR) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=23187, ...}) = 0 read(4, "/*\n** ZABBIX\n** Copyright (C) 20"..., 8192) = 8192 read(4, "typeof(id)=='string'){\n\t\tvar reg"..., 8192) = 8192 read(4, ",{'outer' : ['pum_oheader'],'inn"..., 8192) = 6803 read(4, "", 8192) = 0 read(4, "", 8192) = 0 close(4) = 0 chdir("/") = 0 clock_gettime(CLOCK_MONOTONIC, {38253, 826530731}) = 0 times({tms_utime=16335, tms_stime=1207, tms_cutime=0, tms_cstime=0}) = 1721889912 write(3, "\1\6\0\1\0D\4\0Status: 304 Not Modified"..., 96) = 96 shutdown(3, 1 /* send */) = 0 recvfrom(3, "\1\5\0\1\0\0\0\0", 8, 0, NULL, NULL) = 8 recvfrom(3, "", 8, 0, NULL, NULL) = 0 close(3) = 0 clock_gettime(CLOCK_MONOTONIC, {38253, 827546177}) = 0 open("/dev/urandom", O_RDONLY) = 3 read(3, "\225X?b\373A\204*", 8) = 8 close(3) = 0 open("/dev/urandom", O_RDONLY) = 3 read(3, "\205\261\247\356\340\260\341\321", 8) = 8 close(3) = 0 open("/dev/urandom", O_RDONLY) = 3 read(3, "\307\371+\16\5\317\363~", 8) = 8 close(3) = 0 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0 clock_gettime(CLOCK_MONOTONIC, {38253, 828328825}) = 0 accept(0, {sa_family=AF_INET, sin_port=htons(39759), sin_addr=inet_addr("127.0.0.1")}, [16]) = 3 clock_gettime(CLOCK_MONOTONIC, {38254, 129032705}) = 0 times({tms_utime=16336, tms_stime=1207, tms_cutime=0, tms_cstime=0}) = 1721889942 poll([{fd=3, events=POLLIN}], 1, 5000) = 1 ([{fd=3, revents=POLLIN}]) read(3, "\1\1\0\1\0\10\0\0", 8) = 8 read(3, "\0\1\0\0\0\0\0\0", 8) = 8 read(3, "\1\4\0\1\5\20\0\0", 8) = 8 read(3, "\17\34SCRIPT_FILENAME/usr/share/zabb"..., 1296) = 1296 read(3, "\1\4\0\1\0\0\0\0", 8) = 8 lstat("/usr/share/zabbix/jsrpc.php", {st_mode=S_IFREG|0644, st_size=5228, ...}) = 0 clock_gettime(CLOCK_MONOTONIC, {38254, 129790119}) = 0 read(3, "\1\5\0\1\0L\4\0", 8) = 8 read(3, "{\"jsonrpc\":\"2.0\",\"method\":\"messa"..., 76) = 76 read(3, "\0\0\0\0", 4) = 4 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={600, 0}}, NULL) = 0 rt_sigaction(SIGPROF, {0x674d00, [PROF], SA_RESTORER|SA_RESTART, 0x7f57266e21e0}, {0x674d00, [PROF], SA_RESTORER|SA_RESTART, 0x7f57266e21e0}, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [PROF], NULL, 8) = 0 lstat("/usr/share/zabbix/jsrpc.php", {st_mode=S_IFREG|0644, st_size=5228, ...}) = 0 open("/usr/share/zabbix/jsrpc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=5228, ...}) = 0 clock_gettime(CLOCK_MONOTONIC, {38254, 130624811}) = 0 getcwd("/", 4095) = 2 chdir("/usr/share/zabbix") = 0 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={600, 0}}, NULL) = 0 ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff0e309960) = -1 ENOTTY (Inappropriate ioctl for device) fstat(4, {st_mode=S_IFREG|0644, st_size=5228, ...}) = 0 mmap(NULL, 5260, PROT_READ, MAP_PRIVATE, 4, 0) = 0x7f5729816000 fstat(4, {st_mode=S_IFREG|0644, st_size=5228, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5729815000 lseek(4, 0, SEEK_CUR) = 0 munmap(0x7f5729816000, 5228) = 0 close(4) = 0 munmap(0x7f5729815000, 4096) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/config.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=20704, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=20704, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=20704, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=20704, ...}) = 0 mmap(NULL, 20704, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729812000 munmap(0x7f5729812000, 20704) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/debug.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=1762, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1762, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1762, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1762, ...}) = 0 mmap(NULL, 1762, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1762) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/defines.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=26161, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=26161, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=26161, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=26161, ...}) = 0 mmap(NULL, 26161, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729811000 munmap(0x7f5729811000, 26161) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/func.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=35751, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=35751, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=35751, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=35751, ...}) = 0 mmap(NULL, 35751, PROT_READ, MAP_SHARED, 4, 0) = 0x7f572980f000 munmap(0x7f572980f000, 35751) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/html.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=6870, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=6870, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=6870, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=6870, ...}) = 0 mmap(NULL, 6870, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729816000 munmap(0x7f5729816000, 6870) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/copt.lib.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=12014, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=12014, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=12014, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=12014, ...}) = 0 mmap(NULL, 12014, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729815000 munmap(0x7f5729815000, 12014) = 0 close(4) = 0 gettimeofday({1322005028, 989757}, NULL) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/profiles.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=10504, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=10504, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=10504, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=10504, ...}) = 0 mmap(NULL, 10504, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729815000 munmap(0x7f5729815000, 10504) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/conf/maintenance.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=1025, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1025, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1025, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1025, ...}) = 0 mmap(NULL, 1025, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1025) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/nodes.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=11321, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=11321, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=11321, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=11321, ...}) = 0 mmap(NULL, 11321, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729815000 munmap(0x7f5729815000, 11321) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/hosts.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=53110, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=53110, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=53110, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=53110, ...}) = 0 mmap(NULL, 53110, PROT_READ, MAP_SHARED, 4, 0) = 0x7f572980b000 munmap(0x7f572980b000, 53110) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/items.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=57184, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=57184, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=57184, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=57184, ...}) = 0 mmap(NULL, 57184, PROT_READ, MAP_SHARED, 4, 0) = 0x7f572980a000 munmap(0x7f572980a000, 57184) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/triggers.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=124917, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=124917, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=124917, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=124917, ...}) = 0 mmap(NULL, 124917, PROT_READ, MAP_SHARED, 4, 0) = 0x7f57297f9000 munmap(0x7f57297f9000, 124917) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/graphs.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=40682, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=40682, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=40682, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=40682, ...}) = 0 mmap(NULL, 40682, PROT_READ, MAP_SHARED, 4, 0) = 0x7f572980e000 munmap(0x7f572980e000, 40682) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/maps.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=64430, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=64430, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=64430, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=64430, ...}) = 0 mmap(NULL, 64430, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729808000 munmap(0x7f5729808000, 64430) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/acknow.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=1777, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1777, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1777, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1777, ...}) = 0 mmap(NULL, 1777, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1777) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/services.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=28429, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=28429, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=28429, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=28429, ...}) = 0 mmap(NULL, 28429, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729811000 munmap(0x7f5729811000, 28429) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/httptest.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=18334, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=18334, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=18334, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=18334, ...}) = 0 mmap(NULL, 18334, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729813000 munmap(0x7f5729813000, 18334) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 getcwd("/usr/share/zabbix", 4096) = 18 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/actions.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=36064, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=36064, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=36064, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=36064, ...}) = 0 mmap(NULL, 36064, PROT_READ, MAP_SHARED, 4, 0) = 0x7f572980f000 munmap(0x7f572980f000, 36064) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/discovery.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=10106, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=10106, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=10106, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=10106, ...}) = 0 mmap(NULL, 10106, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729815000 munmap(0x7f5729815000, 10106) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/perm.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=19678, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=19678, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=19678, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=19678, ...}) = 0 mmap(NULL, 19678, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729813000 munmap(0x7f5729813000, 19678) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/sounds.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=3809, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=3809, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=3809, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=3809, ...}) = 0 mmap(NULL, 3809, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729817000 munmap(0x7f5729817000, 3809) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/images.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=1814, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1814, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1814, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1814, ...}) = 0 mmap(NULL, 1814, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1814) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/events.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=15581, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=15581, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=15581, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=15581, ...}) = 0 mmap(NULL, 15581, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729814000 munmap(0x7f5729814000, 15581) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/scripts.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=1746, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1746, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1746, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=1746, ...}) = 0 mmap(NULL, 1746, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1746) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/maintenances.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=3986, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=3986, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=3986, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=3986, ...}) = 0 mmap(NULL, 3986, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729817000 munmap(0x7f5729817000, 3986) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/valuemap.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=2909, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=2909, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=2909, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=2909, ...}) = 0 mmap(NULL, 2909, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729817000 munmap(0x7f5729817000, 2909) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/users.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=5468, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=5468, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=5468, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=5468, ...}) = 0 mmap(NULL, 5468, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729816000 munmap(0x7f5729816000, 5468) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/locales.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=2398, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=2398, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=2398, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=2398, ...}) = 0 mmap(NULL, 2398, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729817000 munmap(0x7f5729817000, 2398) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/audit.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=4898, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=4898, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=4898, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=4898, ...}) = 0 mmap(NULL, 4898, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729816000 munmap(0x7f5729816000, 4898) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/include/js.inc.php", {st_mode=S_IFREG|0644, st_size=17031, ...}) = 0 open("/usr/share/zabbix/include/js.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=17031, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=17031, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=17031, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=17031, ...}) = 0 mmap(NULL, 17031, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729813000 munmap(0x7f5729813000, 17031) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/validate.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=17437, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=17437, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=17437, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=17437, ...}) = 0 mmap(NULL, 17437, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729813000 munmap(0x7f5729813000, 17437) = 0 close(4) = 0 access("/usr/share/zabbix/conf/zabbix.conf.php", F_OK) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/classes/class.cconfigfile.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=4804, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=4804, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=4804, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=4804, ...}) = 0 mmap(NULL, 4804, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729816000 munmap(0x7f5729816000, 4804) = 0 close(4) = 0 access("/usr/share/zabbix/conf/zabbix.conf.php", F_OK) = 0 open("/etc/zabbix/dbconfig.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0640, st_size=832, ...}) = 0 fstat(4, {st_mode=S_IFREG|0640, st_size=832, ...}) = 0 fstat(4, {st_mode=S_IFREG|0640, st_size=832, ...}) = 0 fstat(4, {st_mode=S_IFREG|0640, st_size=832, ...}) = 0 mmap(NULL, 832, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729817000 munmap(0x7f5729817000, 832) = 0 close(4) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/include/db.inc.php", {st_mode=S_IFREG|0644, st_size=31660, ...}) = 0 open("/usr/share/zabbix/include/db.inc.php", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=31660, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=31660, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=31660, ...}) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=31660, ...}) = 0 mmap(NULL, 31660, PROT_READ, MAP_SHARED, 4, 0) = 0x7f5729810000 munmap(0x7f5729810000, 31660) = 0 close(4) = 0 socket(PF_NETLINK, SOCK_RAW, 0) = 4 bind(4, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0 getsockname(4, {sa_family=AF_NETLINK, pid=8383, groups=00000000}, [12]) = 0 sendto(4, "\24\0\0\0\26\0\1\3%2\314N\0\0\0\0\0\0\0\0", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20 recvmsg(4, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"0\0\0\0\24\0\2\0%2\314N\277 \0\0\2\10\200\376\1\0\0\0\10\0\1\0\177\0\0\1"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 168 recvmsg(4, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"@\0\0\0\24\0\2\0%2\314N\277 \0\0\n\200\200\376\1\0\0\0\24\0\1\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 192 recvmsg(4, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0%2\314N\277 \0\0\0\0\0\0\1\0\0\0\24\0\1\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 20 close(4) = 0 stat("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=32, ...}) = 0 open("/etc/hosts", O_RDONLY|O_CLOEXEC) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=275, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5729817000 read(4, "127.0.0.1\tlocalhost\n172.20.1.104"..., 4096) = 275 read(4, "", 4096) = 0 close(4) = 0 munmap(0x7f5729817000, 4096) = 0 socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 4 setsockopt(4, SOL_TCP, TCP_NODELAY, [1], 4) = 0 fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK) = 0 fcntl(4, F_SETFD, FD_CLOEXEC) = 0 setsockopt(4, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0 connect(4, {sa_family=AF_INET, sin_port=htons(5432), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress) poll([{fd=4, events=POLLOUT|POLLERR}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}]) getsockopt(4, SOL_SOCKET, SO_ERROR, [0], [4]) = 0 getsockname(4, {sa_family=AF_INET, sin_port=htons(42516), sin_addr=inet_addr("127.0.0.1")}, [16]) = 0 poll([{fd=4, events=POLLOUT|POLLERR}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}]) sendto(4, "\0\0\0\10\4\322\26/", 8, MSG_NOSIGNAL, NULL, 0) = 8 poll([{fd=4, events=POLLIN|POLLERR}], 1, -1) = 1 ([{fd=4, revents=POLLIN}]) recvfrom(4, "S", 16384, 0, NULL, NULL) = 1 geteuid() = 33 open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 5 lseek(5, 0, SEEK_CUR) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1464, ...}) = 0 mmap(NULL, 1464, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 lseek(5, 1464, SEEK_SET) = 1464 munmap(0x7f5729817000, 1464) = 0 close(5) = 0 stat("/var/www/.postgresql/postgresql.crt", 0x7fff0e306790) = -1 ENOENT (No such file or directory) stat("/var/www/.postgresql/root.crt", 0x7fff0e306790) = -1 ENOENT (No such file or directory) write(4, "\26\3\1\0Z\1\0\0V\3\1N\3142%\343Q\16\352\17'\30\375\301/\215}\253\32\300Yb"..., 95) = 95 read(4, "\26\3\1\0005", 5) = 5 read(4, "\2\0\0001\3\1N\3142%m\363\353\3\33)\361\324\302\273\25\t\2173 на S\336\21\374x\221]"..., 53) = 53 read(4, "\26\3\1\2\264", 5) = 5 read(4, "\v\0\2\260\0\2\255\0\2\2520\202\2\2460\202\1\216\2\t\0\242\224brt'\251\3550\r\6"..., 692) = 692 read(4, "\26\3\1\2\r", 5) = 5 read(4, "\f\0\2\t\0\200\364\210\375XNI\333\315 \264\235\344\221\0076k3l8\rE\35\17|\210\263"..., 525) = 525 read(4, "\26\3\1\0\4", 5) = 5 read(4, "\16\0\0\0", 4) = 4 write(4, "\26\3\1\0\206\20\0\0\202\0\200\216\302]\5|\227\207\271\273q\214-\315\3\26\212\267\331Vt\274"..., 198) = 198 read(4, 0x26f7160, 5) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=4, events=POLLIN|POLLERR}], 1, -1) = 1 ([{fd=4, revents=POLLIN}]) read(4, "\26\3\1\0\252", 5) = 5 read(4, "\4\0\0\246\0\0\0\0\0\240\355\5\25\206\366\300\235\351\233t\36f\376]\362l~Ol\213\243\375"..., 170) = 170 read(4, "\24\3\1\0\1", 5) = 5 read(4, "\1", 1) = 1 read(4, "\26\3\1\0000", 5) = 5 read(4, "W\272n\337e\273\36p%\211D\320\r|\25\260\251u-X%x\325+\"Kd\324n\16B\""..., 48) = 48 poll([{fd=4, events=POLLOUT|POLLERR}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}]) rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 write(4, "\27\3\1\0 <\227\24$\220m\310\333nFKg\24\331\313\343\363[@B\344\213lP:\321\\\f\315\203+\24\361\230q\322{\201\372\17-\20\352", 32) = 32 read(4, "\27\3\1\1\240", 5) = 5 read(4, "\t8\215\324\236\r\253l<\326\226\352\266\313$\321^\263\225\nWC[\23qv\21\300\21b\232\237"..., 416) = 416 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 gettimeofday({1322005029, 94041}, NULL) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/page_header.php", {st_mode=S_IFREG|0644, st_size=15255, ...}) = 0 open("/usr/share/zabbix/include/page_header.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=15255, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=15255, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=15255, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=15255, ...}) = 0 mmap(NULL, 15255, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729814000 munmap(0x7f5729814000, 15255) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 getcwd("/usr/share/zabbix", 4096) = 18 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/menu.inc.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=10191, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=10191, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=10191, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=10191, ...}) = 0 mmap(NULL, 10191, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729815000 munmap(0x7f5729815000, 10191) = 0 close(5) = 0 gettimeofday({1322005029, 97277}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 write(4, "\27\3\1\0 9M\364\24\375\257-\260)\236\271\2\265X\340j\342\304R\202\24C\223P|\257\265"..., 122) = 122 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 poll([{fd=4, events=POLLIN|POLLERR}], 1, -1) = 1 ([{fd=4, revents=POLLIN}]) rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 read(4, "\27\3\1\0 ", 5) = 5 read(4, "\362\247#3\336\267KGI\244/\254\364R\221\317\367\31\202\357\376;\35 kd:\24d\337\3726", 32) = 32 read(4, "\27\3\1\0\300", 5) = 5 read(4, "b\304e\266\210\254\323\327h1\204\244\333&\335\30W6\21\211`g\0\226\230\276\302A\275\267\302\223"..., 192) = 192 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 gettimeofday({1322005029, 99509}, NULL) = 0 stat("/usr/share/zoneinfo/Europe/Moscow", {st_mode=S_IFREG|0644, st_size=1448, ...}) = 0 open("/usr/share/zoneinfo/Europe/Moscow", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1448, ...}) = 0 mmap(NULL, 1448, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 close(5) = 0 munmap(0x7f5729817000, 1448) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/classes/class.clink.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=2260, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=2260, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=2260, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=2260, ...}) = 0 mmap(NULL, 2260, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 2260) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/classes/class.ctag.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=5038, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=5038, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=5038, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=5038, ...}) = 0 mmap(NULL, 5038, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729816000 munmap(0x7f5729816000, 5038) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/classes/class.cobject.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=2473, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=2473, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=2473, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=2473, ...}) = 0 mmap(NULL, 2473, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 2473) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/classes/class.cdiv.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1083, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1083, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1083, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1083, ...}) = 0 mmap(NULL, 1083, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1083) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/classes/class.ccol.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1322, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1322, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1322, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1322, ...}) = 0 mmap(NULL, 1322, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1322) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/classes/class.ctable.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=4007, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=4007, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=4007, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=4007, ...}) = 0 mmap(NULL, 4007, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 4007) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/classes/class.crow.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1580, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1580, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1580, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1580, ...}) = 0 mmap(NULL, 1580, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1580) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.cformtable.php", {st_mode=S_IFREG|0644, st_size=4542, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.cformtable.php", {st_mode=S_IFREG|0644, st_size=4542, ...}) = 0 open("/usr/share/zabbix/include/classes/class.cformtable.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=4542, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=4542, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=4542, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=4542, ...}) = 0 mmap(NULL, 4542, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729816000 munmap(0x7f5729816000, 4542) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/classes/class.cform.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1923, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1923, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1923, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1923, ...}) = 0 mmap(NULL, 1923, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1923) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/classes/class.cvar.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1545, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1545, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1545, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1545, ...}) = 0 mmap(NULL, 1545, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1545) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/classes/class.cvartag.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1143, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1143, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1143, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1143, ...}) = 0 mmap(NULL, 1143, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1143) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.chelp.php", {st_mode=S_IFREG|0644, st_size=1270, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.chelp.php", {st_mode=S_IFREG|0644, st_size=1270, ...}) = 0 open("/usr/share/zabbix/include/classes/class.chelp.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1270, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1270, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1270, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1270, ...}) = 0 mmap(NULL, 1270, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1270) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.cicon.php", {st_mode=S_IFREG|0644, st_size=1041, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.cicon.php", {st_mode=S_IFREG|0644, st_size=1041, ...}) = 0 open("/usr/share/zabbix/include/classes/class.cicon.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1041, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1041, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1041, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1041, ...}) = 0 mmap(NULL, 1041, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1041) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.ctextbox.php", {st_mode=S_IFREG|0644, st_size=1698, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.ctextbox.php", {st_mode=S_IFREG|0644, st_size=1698, ...}) = 0 open("/usr/share/zabbix/include/classes/class.ctextbox.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1698, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1698, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1698, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1698, ...}) = 0 mmap(NULL, 1698, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1698) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/classes/class.cpassbox.php", {st_mode=S_IFREG|0644, st_size=963, ...}) = 0 lstat("/usr/share/zabbix/include/classes/class.cpassbox.php", {st_mode=S_IFREG|0644, st_size=963, ...}) = 0 open("/usr/share/zabbix/include/classes/class.cpassbox.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=963, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=963, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=963, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=963, ...}) = 0 mmap(NULL, 963, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 963) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 open("/usr/share/zabbix/include/classes/class.cbutton.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1684, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1684, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1684, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1684, ...}) = 0 mmap(NULL, 1684, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1684) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/./include/page_footer.php", {st_mode=S_IFREG|0644, st_size=3707, ...}) = 0 open("/usr/share/zabbix/include/page_footer.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=3707, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=3707, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=3707, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=3707, ...}) = 0 mmap(NULL, 3707, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 3707) = 0 close(5) = 0 getcwd("/usr/share/zabbix", 4096) = 18 getcwd("/usr/share/zabbix", 4096) = 18 lstat("/usr/share/zabbix/include/classes/class.cspan.php", {st_mode=S_IFREG|0644, st_size=1085, ...}) = 0 open("/usr/share/zabbix/include/classes/class.cspan.php", O_RDONLY) = 5 fstat(5, {st_mode=S_IFREG|0644, st_size=1085, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1085, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1085, ...}) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=1085, ...}) = 0 mmap(NULL, 1085, PROT_READ, MAP_SHARED, 5, 0) = 0x7f5729817000 munmap(0x7f5729817000, 1085) = 0 close(5) = 0 chdir("/") = 0 clock_gettime(CLOCK_MONOTONIC, {38254, 271318804}) = 0 times({tms_utime=16343, tms_stime=1207, tms_cutime=0, tms_cstime=0}) = 1721889956 rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 write(4, "\27\3\1\0 ?\215\31d\200q\204\216\5v\330\344\26\17 \232s{\206\372\220\216(Wy\327p"..., 74) = 74 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 write(4, "\25\3\1\0 :\375\33P\365\253\215\2524\206\305\355NJrp\261\222\303\323\344_2_\225\324\201"..., 37) = 37 rt_sigpending([]) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 close(4) = 0 write(3, "\1\6\0\1\16\37\1\0Content-Type: text/html;"..., 3640) = 3640 shutdown(3, 1 /* send */) = 0 recvfrom(3, "\1\5\0\1\0\0\0\0", 8, 0, NULL, NULL) = 8 recvfrom(3, "", 8, 0, NULL, NULL) = 0 close(3) = 0 clock_gettime(CLOCK_MONOTONIC, {38254, 279742683}) = 0 open("/dev/urandom", O_RDONLY) = 3 read(3, "\235@\262\315\2275\235m", 8) = 8 close(3) = 0 open("/dev/urandom", O_RDONLY) = 3 read(3, "G\251\352Q\t\256\257\231", 8) = 8 close(3) = 0 open("/dev/urandom", O_RDONLY) = 3 read(3, "\366\262\1\24\10\36\337\4", 8) = 8 close(3) = 0 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0 clock_gettime(CLOCK_MONOTONIC, {38254, 280505708}) = 0 accept(0, ----------- следущая часть ----------- accept(0, {sa_family=AF_INET, sin_port=htons(39049), sin_addr=inet_addr("127.0.0.1")}, [16]) = 3 clock_gettime(CLOCK_MONOTONIC, {38215, 760594833}) = 0 times({tms_utime=16327, tms_stime=1207, tms_cutime=0, tms_cstime=0}) = 1721886105 poll([{fd=3, events=POLLIN}], 1, 5000) = 1 ([{fd=3, revents=POLLIN}]) read(3, "\1\1\0\1\0\10\0\0", 8) = 8 read(3, "\0\1\0\0\0\0\0\0", 8) = 8 read(3, "\1\4\0\1\3\331\7\0", 8) = 8 read(3, "\17\34SCRIPT_FILENAME/usr/share/zabb"..., 992) = 992 read(3, "\1\4\0\1\0\0\0\0", 8) = 8 lstat("/etc/nginx/html/index.php", 0x7fff0e309e60) = -1 ENOENT (No such file or directory) stat("/etc/nginx/html", 0x7fff0e30c270) = -1 ENOENT (No such file or directory) stat("/etc/nginx", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 stat("/etc", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 stat("", 0x7fff0e30c270) = -1 ENOENT (No such file or directory) clock_gettime(CLOCK_MONOTONIC, {38215, 761693380}) = 0 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={600, 0}}, NULL) = 0 rt_sigaction(SIGPROF, {0x674d00, [PROF], SA_RESTORER|SA_RESTART, 0x7f57266e21e0}, {0x674d00, [PROF], SA_RESTORER|SA_RESTART, 0x7f57266e21e0}, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [PROF], NULL, 8) = 0 clock_gettime(CLOCK_MONOTONIC, {38215, 762053819}) = 0 times({tms_utime=16327, tms_stime=1207, tms_cutime=0, tms_cstime=0}) = 1721886105 write(3, "\1\6\0\1\0002\6\0Status: 404 Not Found\r\nC"..., 80) = 80 shutdown(3, 1 /* send */) = 0 recvfrom(3, "\1\5\0\1\0\0\0\0", 8, 0, NULL, NULL) = 8 recvfrom(3, "", 8, 0, NULL, NULL) = 0 close(3) = 0 clock_gettime(CLOCK_MONOTONIC, {38215, 762616212}) = 0 open("/dev/urandom", O_RDONLY) = 3 read(3, "\247\0??y\310\201\233", 8) = 8 close(3) = 0 open("/dev/urandom", O_RDONLY) = 3 read(3, "$\n;\311\10d\357\202", 8) = 8 close(3) = 0 open("/dev/urandom", O_RDONLY) = 3 read(3, "x\347\"\253\255#}'", 8) = 8 close(3) = 0 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0 clock_gettime(CLOCK_MONOTONIC, {38215, 763339493}) = 0 accept(0, From igor на sysoev.ru Thu Nov 24 07:57:11 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Thu, 24 Nov 2011 11:57:11 +0400 Subject: don't repeat yourself / copy and paste programming In-Reply-To: <4ECDF4EB.8090105@gsc-game.kiev.ua> References: <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> <4ECCE098.7080403@csdoc.com> <170851322050343@web84.yandex.ru> <4ECCEA7A.1090709@gsc-game.kiev.ua> <20111123163511.GD49193@nginx.com> <4ECDF4EB.8090105@gsc-game.kiev.ua> Message-ID: <20111124075711.GC70072@nginx.com> On Thu, Nov 24, 2011 at 09:40:27AM +0200, Serguei I. Ivantsov wrote: > On 23.11.2011 18:35, Igor Sysoev wrote: > > А почему конфигурация должна выглядет объектно-ориентированно > Потому что так красиво, наглядно и понятно. От общего к частному. > Сначала определяются общие правила для всех, потом, если надо, > уточняются/переопределяются. Наследуемый location - это было бы здорово! :) Ну вот http/server/location/вложенный location - это от общего к частному. А насчёт наглядно, наглядно - это, когда ВСЁ помещается на одном экране. Все проичие вараинты - это не наглядно. -- Игорь Сысоев http://sysoev.ru From igor на sysoev.ru Thu Nov 24 08:17:14 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Thu, 24 Nov 2011 12:17:14 +0400 Subject: don't repeat yourself / copy and paste programming In-Reply-To: <4ECD3B6C.5000801@csdoc.com> References: <4ECCCB09.9040804@gsc-game.kiev.ua> <110461322044794@web15.yandex.ru> <4ECCD4F7.4060606@csdoc.com> <141131322048450@web99.yandex.ru> <4ECCE098.7080403@csdoc.com> <170851322050343@web84.yandex.ru> <4ECCEEE3.3020101@csdoc.com> <20111123163803.GE49193@nginx.com> <4ECD3B6C.5000801@csdoc.com> Message-ID: <20111124081714.GD70072@nginx.com> On Wed, Nov 23, 2011 at 08:29:00PM +0200, Gena Makhomed wrote: > On 23.11.2011 18:38, Igor Sysoev wrote: > > >> даже при 50-100 сайтов неудобно делать много include на каждый сайт, > >> гораздо удобнее все-таки подход "1 сайт == 1 конфигурационный файл". > > >> но в этом случае получается много copy/paste и нарушение принципа > >> don't repeat yourself, что приводит к снижению скорости работы > >> администратора по сопровождению такого дублированного конфига. > > > Спасибо, я на эти don't repeat yourself насмотрелся. Больше не хочу. > > Нужно критически подходить к приницпам. > > все-таки DRY - это достаточно важный принцип, и он соблюдается > даже в исходниках nginx - общие части кода выносятся в макросы > или в отдельные функции, и там нет дублирования через copy/paste. > > в конфигах nginx например, директивы "include fastcgi.conf;" > или "include fastcgi_params;" встречаются с той же целью, > насколько я понимаю - избежать лишнего дублирования кода. > > мне очень трудно критиковать принцип DRY / SSOT, потому что его > противоположностью является чрезмерное использование copy/paste, > что в случае программирования приводит к т.е. "индусскому коду". DRY - это миф. Есть два подхода к решению задач - выпиливание лобзиком и квадратно-гнездовой метод. Обычно продукт, выпиленный лобзиком, со стороны выглядит как образец DRY. Однако, если заглянуть в репозитарий, то можно увидить, сколько времени ушло на выпиливание DRY. Там будет сплошной repeat: repeat немного по-другому, возврат к прежнему repeat и так далее. Мне почему-то кажется, что 99% админов, настраивающих nginx, не хотят выпиливать лобзиком. Им нужно сделать это по-быстрее, затратив минимум мозговых усилий. Собственно, это видно уже по началу настройки - а давайте-ка всё, чего у нас нет, будет обрабатывать /index.php, а сам /index.php будет обрабатывать ~\.php$. Причём лучше, чтобы так было для всех сайтов, а то неохота возиться. В дальнейшем желание выпиливать лобзиком так и не появляется, а вот делать по-быстрому уже не получается - зависимости множаться и конфигурация превращается в стройную систему костылей и подпорок. Поэтому nginx предлагает конфигурировать квадратно-гнездовым методом со сложностью O(1), а не экспоненциальной. Да в начале писать немного больше, но это объем редактирования будет постоянен. -- Игорь Сысоев http://sysoev.ru From ne на vbart.ru Thu Nov 24 09:43:01 2011 From: ne на vbart.ru (=?utf-8?b?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Thu, 24 Nov 2011 13:43:01 +0400 Subject: =?UTF-8?Q?Re=3A_fcgi_document=5Froot_=D0=B2_1=2E1=2E8?= In-Reply-To: References: Message-ID: <201111241343.02145.ne@vbart.ru> On Thursday 24 November 2011 00:02:45 Andrey Korolyov wrote: > Добрый вечер, > > сервер следующего вида отдает 404, не передавая корректно параметр > SCRIPT_FILENAME: > > > server { > ..... > location / { > root /usr/share/zabbix; > index index.php; > } > location ~ \.php$ { > fastcgi_param SCRIPT_FILENAME > /usr/share/zabbix$fastcgi_script_name; > include fastcgi_params; > } > } > . [...] У меня не получилось воспроизвести проблему. По крайней мере SCRIPT_FILENAME и другие параметры передаются корректно. Содержимое fastcgi_params еще не мешало бы посмотреть. [...] > > В аттаче - два стрейса, для первого и второго случаев. Баг минорный, > потому что установка root сразу внутри директивы server решает > проблему, но поскольку достаточно большой процент конфигураций fastcgi > используют вместо глобально определенного $document_root хардкоднутый > путь, как выше, поправить поведение наверняка стоит. [...] Я так понимаю, что это strace php, причем в обоих случаях видно, что SCRIPT_FILENAME пришел правильный. Скорее всего разница в поведении связана с содержимым fastcgi_params. У вас там что-то передается, что зависит от root, и на это что-то опирается ваш php скрипт. p. s. лучше присылать не strace php, а nginx debug log http://nginx.org/en/docs/debugging_log.html -- Валентин Бартенев From nap на a-jam.ru Thu Nov 24 09:48:57 2011 From: nap на a-jam.ru (Eduard Kutuev) Date: Thu, 24 Nov 2011 13:48:57 +0400 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0YDQsNC30L7QsdGA0LDRgtGM0YHRjyDQvtGC?= =?UTF-8?B?0LrRg9C00LAg0LHQtdGA0YPRgtGB0Y8g0LvQtdCy0YvQtSBnZXQt0LfQsNC/?= =?UTF-8?B?0YDQvtGB0Ys=?= In-Reply-To: References: Message-ID: 24.11.2011, в 8:58, valet написал(а): > То есть например в логе первого сайта > site1.ru.access.log Googlebot/2.1 и другие боты > запрашивают страницы второго сайта > ... > ..."GET /stranica-site2-1.html HTTP/1.1"... > ... > ..."GET /stranica-site2-n.html HTTP/1.1"... > ... Выкусили самое главное. Какой результат? 404 или 200? From xdel на quake.ru Thu Nov 24 10:05:15 2011 From: xdel на quake.ru (Andrey Korolyov) Date: Thu, 24 Nov 2011 13:05:15 +0300 Subject: =?UTF-8?Q?Re=3A_fcgi_document=5Froot_=D0=B2_1=2E1=2E8?= In-Reply-To: <201111241343.02145.ne@vbart.ru> References: <201111241343.02145.ne@vbart.ru> Message-ID: fastcgi_params изначально был из тарболла нжинкса(он совпадает с тем, который идет в пакете), причем SCRIPT_FILENAME может как включать в себя $document_root, так и нет - поведение не меняется(что, в общем, ожидаемо, ему браться неоткуда). Из дебаг лога видно, что происходящие странности - на стороне нжинкса, почему-то оверрайдится упомянутая переменная. 2011/11/24 Валентин Бартенев : > On Thursday 24 November 2011 00:02:45 Andrey Korolyov wrote: >> Добрый вечер, >> >> сервер следующего вида отдает 404, не передавая корректно параметр >> SCRIPT_FILENAME: >> >> >>         server { >> ..... >>                 location / { >>                         root /usr/share/zabbix; >>                         index index.php; >>                 } >>                         location ~ \.php$ { >>                                 fastcgi_param SCRIPT_FILENAME >> /usr/share/zabbix$fastcgi_script_name; >>                                 include fastcgi_params; >>                       } >>         } >> . > [...] > > У меня не получилось воспроизвести проблему. По крайней мере > SCRIPT_FILENAME и другие параметры передаются корректно. > > Содержимое fastcgi_params еще не мешало бы посмотреть. > > [...] >> >> В аттаче - два стрейса, для первого и второго случаев. Баг минорный, >> потому что установка root сразу внутри директивы server решает >> проблему, но поскольку достаточно большой процент конфигураций fastcgi >> используют вместо глобально определенного $document_root хардкоднутый >> путь, как выше, поправить поведение наверняка стоит. > [...] > > Я так понимаю, что это strace php, причем в обоих случаях видно, что > SCRIPT_FILENAME пришел правильный. Скорее всего разница в поведении связана с > содержимым fastcgi_params. У вас там что-то передается, что зависит от root, и на > это что-то опирается ваш php скрипт. > > p. s. лучше присылать не strace php, а nginx debug log > http://nginx.org/en/docs/debugging_log.html > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- A non-text attachment was scrubbed... Name: debug.log.gz Type: application/x-gzip Size: 2527 bytes Desc: not available URL: From unera на debian.org Thu Nov 24 10:13:07 2011 From: unera на debian.org (Dmitry E. Oboukhov) Date: Thu, 24 Nov 2011 14:13:07 +0400 Subject: =?UTF-8?B?0KDQsNC30L3Ri9C1INCw0YDRhdC40YLQtdC60YLRg9GA0Ys=?= Message-ID: <20111124101306.GH3769@apache.rbscorp.ru> Есть архитектуры [1], на которых отсутствует макрос PATH_MAX. Есть так же много размышлений (например [2]) в сети на тему почему PATH_MAX использовать не стоит итп. Ну и есть в частности результат в виде логов, что nginx на этих платформах недоступен (как пример [3]). grep на предмет использования PATH_MAX показывает всего два места где это применяется: $ grep NGX_MAX_PATH -r src src/http/ngx_http_variables.c: u_char real[NGX_MAX_PATH]; src/os/unix/ngx_files.h:#define NGX_MAX_PATH PATH_MAX src/core/nginx.c: p = ngx_pnalloc(cycle->pool, NGX_MAX_PATH); src/core/nginx.c: if (ngx_getcwd(p, NGX_MAX_PATH) == 0) { rc/core/ngx_file.h:#define NGX_MAX_PATH_LEVEL 3 И вроде их оба несложно пофиксить для более успешного продвижения nginx на другие архитектуры. Что кто думает по этому поводу? Ну кроме "hurd не нужен"? 1. http://www.gnu.org/s/hurd/community/gsoc/project_ideas/maxpath.html 2. http://insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html 3. https://buildd.debian.org/status/fetch.php?pkg=nginx&arch=hurd-i386&ver=1.1.8-2&stamp=1322127530 -- . ''`. Dmitry E. Oboukhov : :? : email: unera на debian.org jabber://UNera на uvw.ru `. `~? GPGKey: 1024D / F8E26537 2006-11-21 `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537 ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: Digital signature URL: From ne на vbart.ru Thu Nov 24 10:18:24 2011 From: ne на vbart.ru (=?utf-8?b?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Thu, 24 Nov 2011 14:18:24 +0400 Subject: =?UTF-8?Q?Re=3A_fcgi_document=5Froot_=D0=B2_1=2E1=2E8?= In-Reply-To: References: <201111241343.02145.ne@vbart.ru> Message-ID: <201111241418.24891.ne@vbart.ru> On Thursday 24 November 2011 14:05:15 Andrey Korolyov wrote: > fastcgi_params изначально был из тарболла нжинкса(он совпадает с тем, > который идет в пакете), причем SCRIPT_FILENAME может как включать в > себя $document_root, так и нет - поведение не меняется(что, в общем, > ожидаемо, ему браться неоткуда). Из дебаг лога видно, что > происходящие странности - на стороне нжинкса, почему-то оверрайдится > упомянутая переменная. Изначально? По дебаг логу видно, что где-то между fastcgi_param CONTENT_LENGTH и fastcgi_param SCRIPT_NAME, у вас еще один fastcgi_param SCRIPT_FILENAME с другим значением. Вот она и оверрайдится. В оригинальном fastcgi_params с nginx.org нету SCRIPT_FILENAME. -- Валентин Бартенев From xdel на quake.ru Thu Nov 24 10:20:41 2011 From: xdel на quake.ru (Andrey Korolyov) Date: Thu, 24 Nov 2011 13:20:41 +0300 Subject: =?UTF-8?Q?Re=3A_fcgi_document=5Froot_=D0=B2_1=2E1=2E8?= In-Reply-To: References: <201111241343.02145.ne@vbart.ru> Message-ID: Прошу прощения, у меня во время во время цикла ребилд-установка пакета переписался fastcgi_params с оригинального на дистрибутивный(debian unstable), проблема в нем. 2011/11/24 Andrey Korolyov : > fastcgi_params изначально был из тарболла нжинкса(он совпадает с тем, > который идет в пакете), причем SCRIPT_FILENAME может как включать в > себя $document_root, так и нет - поведение не меняется(что, в общем, > ожидаемо, ему браться неоткуда).  Из дебаг лога видно, что > происходящие странности - на стороне нжинкса, почему-то оверрайдится > упомянутая переменная. > > 2011/11/24 Валентин Бартенев : >> On Thursday 24 November 2011 00:02:45 Andrey Korolyov wrote: >>> Добрый вечер, >>> >>> сервер следующего вида отдает 404, не передавая корректно параметр >>> SCRIPT_FILENAME: >>> >>> >>>         server { >>> ..... >>>                 location / { >>>                         root /usr/share/zabbix; >>>                         index index.php; >>>                 } >>>                         location ~ \.php$ { >>>                                 fastcgi_param SCRIPT_FILENAME >>> /usr/share/zabbix$fastcgi_script_name; >>>                                 include fastcgi_params; >>>                       } >>>         } >>> . >> [...] >> >> У меня не получилось воспроизвести проблему. По крайней мере >> SCRIPT_FILENAME и другие параметры передаются корректно. >> >> Содержимое fastcgi_params еще не мешало бы посмотреть. >> >> [...] >>> >>> В аттаче - два стрейса, для первого и второго случаев. Баг минорный, >>> потому что установка root сразу внутри директивы server решает >>> проблему, но поскольку достаточно большой процент конфигураций fastcgi >>> используют вместо глобально определенного $document_root хардкоднутый >>> путь, как выше, поправить поведение наверняка стоит. >> [...] >> >> Я так понимаю, что это strace php, причем в обоих случаях видно, что >> SCRIPT_FILENAME пришел правильный. Скорее всего разница в поведении связана с >> содержимым fastcgi_params. У вас там что-то передается, что зависит от root, и на >> это что-то опирается ваш php скрипт. >> >> p. s. лучше присылать не strace php, а nginx debug log >> http://nginx.org/en/docs/debugging_log.html >> >> -- >> Валентин Бартенев >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > From mdounin на mdounin.ru Thu Nov 24 10:24:18 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 24 Nov 2011 14:24:18 +0400 Subject: =?UTF-8?B?UmU6INCg0LDQt9C90YvQtSDQsNGA0YXQuNGC0LXQutGC0YPRgNGL?= In-Reply-To: <20111124101306.GH3769@apache.rbscorp.ru> References: <20111124101306.GH3769@apache.rbscorp.ru> Message-ID: <20111124102418.GB95664@mdounin.ru> Hello! On Thu, Nov 24, 2011 at 02:13:07PM +0400, Dmitry E. Oboukhov wrote: > Есть архитектуры [1], на которых отсутствует макрос PATH_MAX. > > Есть так же много размышлений (например [2]) в сети на тему почему > PATH_MAX использовать не стоит итп. > > Ну и есть в частности результат в виде логов, что nginx на этих > платформах недоступен (как пример [3]). > > grep на предмет использования PATH_MAX показывает всего два места где > это применяется: > > $ grep NGX_MAX_PATH -r src > > src/http/ngx_http_variables.c: u_char > real[NGX_MAX_PATH]; > src/os/unix/ngx_files.h:#define NGX_MAX_PATH PATH_MAX > src/core/nginx.c: p = ngx_pnalloc(cycle->pool, NGX_MAX_PATH); > src/core/nginx.c: if (ngx_getcwd(p, NGX_MAX_PATH) == 0) { > rc/core/ngx_file.h:#define NGX_MAX_PATH_LEVEL 3 > > > И вроде их оба несложно пофиксить для более успешного продвижения > nginx на другие архитектуры. > > Что кто думает по этому поводу? Ну кроме "hurd не нужен"? > > 1. http://www.gnu.org/s/hurd/community/gsoc/project_ideas/maxpath.html > 2. http://insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html > 3. https://buildd.debian.org/status/fetch.php?pkg=nginx&arch=hurd-i386&ver=1.1.8-2&stamp=1322127530 http://trac.nginx.org/nginx/ticket/22 Реально нужно переписать использование realpath(), там в приципе не сложно. Maxim Dounin From igor на sysoev.ru Thu Nov 24 10:34:33 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Thu, 24 Nov 2011 14:34:33 +0400 Subject: =?UTF-8?B?UmU6INCg0LDQt9C90YvQtSDQsNGA0YXQuNGC0LXQutGC0YPRgNGL?= In-Reply-To: <20111124101306.GH3769@apache.rbscorp.ru> References: <20111124101306.GH3769@apache.rbscorp.ru> Message-ID: <20111124103433.GH70072@nginx.com> On Thu, Nov 24, 2011 at 02:13:07PM +0400, Dmitry E. Oboukhov wrote: > Есть архитектуры [1], на которых отсутствует макрос PATH_MAX. > > Есть так же много размышлений (например [2]) в сети на тему почему > PATH_MAX использовать не стоит итп. > > Ну и есть в частности результат в виде логов, что nginx на этих > платформах недоступен (как пример [3]). > > grep на предмет использования PATH_MAX показывает всего два места где > это применяется: > > $ grep NGX_MAX_PATH -r src > > src/http/ngx_http_variables.c: u_char > real[NGX_MAX_PATH]; > src/os/unix/ngx_files.h:#define NGX_MAX_PATH PATH_MAX > src/core/nginx.c: p = ngx_pnalloc(cycle->pool, NGX_MAX_PATH); > src/core/nginx.c: if (ngx_getcwd(p, NGX_MAX_PATH) == 0) { > rc/core/ngx_file.h:#define NGX_MAX_PATH_LEVEL 3 > > > И вроде их оба несложно пофиксить для более успешного продвижения > nginx на другие архитектуры. > > Что кто думает по этому поводу? Ну кроме "hurd не нужен"? > > 1. http://www.gnu.org/s/hurd/community/gsoc/project_ideas/maxpath.html > 2. http://insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html > 3. https://buildd.debian.org/status/fetch.php?pkg=nginx&arch=hurd-i386&ver=1.1.8-2&stamp=1322127530 И как узнать необходимую длину ? http://pubs.opengroup.org/onlinepubs/000095399/functions/getcwd.html If buf is a null pointer, the behavior of getcwd() is unspecified. http://pubs.opengroup.org/onlinepubs/7908799/xsh/realpath.html Ничего про NULL буфер нет. -- Игорь Сысоев http://sysoev.ru From igor на sysoev.ru Thu Nov 24 10:35:35 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Thu, 24 Nov 2011 14:35:35 +0400 Subject: =?UTF-8?B?UmU6INCg0LDQt9C90YvQtSDQsNGA0YXQuNGC0LXQutGC0YPRgNGL?= In-Reply-To: <20111124103433.GH70072@nginx.com> References: <20111124101306.GH3769@apache.rbscorp.ru> <20111124103433.GH70072@nginx.com> Message-ID: <20111124103534.GI70072@nginx.com> On Thu, Nov 24, 2011 at 02:34:33PM +0400, Igor Sysoev wrote: > On Thu, Nov 24, 2011 at 02:13:07PM +0400, Dmitry E. Oboukhov wrote: > > Есть архитектуры [1], на которых отсутствует макрос PATH_MAX. > > > > Есть так же много размышлений (например [2]) в сети на тему почему > > PATH_MAX использовать не стоит итп. > > > > Ну и есть в частности результат в виде логов, что nginx на этих > > платформах недоступен (как пример [3]). > > > > grep на предмет использования PATH_MAX показывает всего два места где > > это применяется: > > > > $ grep NGX_MAX_PATH -r src > > > > src/http/ngx_http_variables.c: u_char > > real[NGX_MAX_PATH]; > > src/os/unix/ngx_files.h:#define NGX_MAX_PATH PATH_MAX > > src/core/nginx.c: p = ngx_pnalloc(cycle->pool, NGX_MAX_PATH); > > src/core/nginx.c: if (ngx_getcwd(p, NGX_MAX_PATH) == 0) { > > rc/core/ngx_file.h:#define NGX_MAX_PATH_LEVEL 3 > > > > > > И вроде их оба несложно пофиксить для более успешного продвижения > > nginx на другие архитектуры. > > > > Что кто думает по этому поводу? Ну кроме "hurd не нужен"? > > > > 1. http://www.gnu.org/s/hurd/community/gsoc/project_ideas/maxpath.html > > 2. http://insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html > > 3. https://buildd.debian.org/status/fetch.php?pkg=nginx&arch=hurd-i386&ver=1.1.8-2&stamp=1322127530 > > И как узнать необходимую длину ? > > http://pubs.opengroup.org/onlinepubs/000095399/functions/getcwd.html > > If buf is a null pointer, the behavior of getcwd() is unspecified. > > http://pubs.opengroup.org/onlinepubs/7908799/xsh/realpath.html > > Ничего про NULL буфер нет. Вернее, есть: [EINVAL] Either the file_name or resolved_name argument is a null pointer. -- Игорь Сысоев http://sysoev.ru From mdounin на mdounin.ru Thu Nov 24 10:51:52 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 24 Nov 2011 14:51:52 +0400 Subject: =?UTF-8?B?UmU6INCg0LDQt9C90YvQtSDQsNGA0YXQuNGC0LXQutGC0YPRgNGL?= In-Reply-To: <20111124103534.GI70072@nginx.com> References: <20111124101306.GH3769@apache.rbscorp.ru> <20111124103433.GH70072@nginx.com> <20111124103534.GI70072@nginx.com> Message-ID: <20111124105152.GD95664@mdounin.ru> Hello! On Thu, Nov 24, 2011 at 02:35:35PM +0400, Igor Sysoev wrote: > On Thu, Nov 24, 2011 at 02:34:33PM +0400, Igor Sysoev wrote: > > On Thu, Nov 24, 2011 at 02:13:07PM +0400, Dmitry E. Oboukhov wrote: > > > Есть архитектуры [1], на которых отсутствует макрос PATH_MAX. > > > > > > Есть так же много размышлений (например [2]) в сети на тему почему > > > PATH_MAX использовать не стоит итп. > > > > > > Ну и есть в частности результат в виде логов, что nginx на этих > > > платформах недоступен (как пример [3]). > > > > > > grep на предмет использования PATH_MAX показывает всего два места где > > > это применяется: > > > > > > $ grep NGX_MAX_PATH -r src > > > > > > src/http/ngx_http_variables.c: u_char > > > real[NGX_MAX_PATH]; > > > src/os/unix/ngx_files.h:#define NGX_MAX_PATH PATH_MAX > > > src/core/nginx.c: p = ngx_pnalloc(cycle->pool, NGX_MAX_PATH); > > > src/core/nginx.c: if (ngx_getcwd(p, NGX_MAX_PATH) == 0) { > > > rc/core/ngx_file.h:#define NGX_MAX_PATH_LEVEL 3 > > > > > > > > > И вроде их оба несложно пофиксить для более успешного продвижения > > > nginx на другие архитектуры. > > > > > > Что кто думает по этому поводу? Ну кроме "hurd не нужен"? > > > > > > 1. http://www.gnu.org/s/hurd/community/gsoc/project_ideas/maxpath.html > > > 2. http://insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html > > > 3. https://buildd.debian.org/status/fetch.php?pkg=nginx&arch=hurd-i386&ver=1.1.8-2&stamp=1322127530 > > > > И как узнать необходимую длину ? > > > > http://pubs.opengroup.org/onlinepubs/000095399/functions/getcwd.html > > > > If buf is a null pointer, the behavior of getcwd() is unspecified. Тут можно просто взять большой буфер, благо его размер передаётся. Если не влезет - будет ERANGE. > > http://pubs.opengroup.org/onlinepubs/7908799/xsh/realpath.html > > > > Ничего про NULL буфер нет. > > Вернее, есть: > > [EINVAL] > Either the file_name or resolved_name argument is a null pointer. Появилось в Issue 7: http://pubs.opengroup.org/onlinepubs/9699919799/functions/realpath.html Т.е. если PATH_MAX определён, надо действовать по старому. Если не определён - можно пытаться использовать интерфейс из Issue 7. Maxim Dounin From hell-for-yahoo на umail.ru Thu Nov 24 11:18:36 2011 From: hell-for-yahoo на umail.ru (Andrey Repin) Date: Thu, 24 Nov 2011 15:18:36 +0400 Subject: Не могу настроить nginx чтобы аутентификация не шла на нем, но передавалась внутренним серверам In-Reply-To: <6b1e904e76b4aa903fa144a657f26a72.NginxMailingListRussian@forum.nginx.org> References: <6b1e904e76b4aa903fa144a657f26a72.NginxMailingListRussian@forum.nginx.org> Message-ID: <1548019023.20111124151836@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) byg! b> Я пытаюсь настроить nginx как прокси к b> внутренним серверам. b> При этом внутренние сервера используют b> аутентификацию по NTLM и BASE. b> Но, хотя, браузер и запрашивает логин и b> пароль серверам он не передается. На сколько я знаю, NTLM аутентификация в принципе не проксируется. Что имеется в виду под "BASE" ? b> И можно ли логировать запрос, что бы b> увидеть имя и пароль передаются или b> нет? tcpdump -- С уважением Andrey Repin (hell-for-yahoo на umail.ru) четверг, 24.11.2011, <15:17> From hell-for-yahoo на umail.ru Thu Nov 24 11:15:11 2011 From: hell-for-yahoo на umail.ru (Andrey Repin) Date: Thu, 24 Nov 2011 15:15:11 +0400 Subject: location всё кроме одного In-Reply-To: <6c53de4d965d4b11e8ec747fcf88469b.NginxMailingListRussian@forum.nginx.org> References: <201111231918.28150.ne@vbart.ru> <6c53de4d965d4b11e8ec747fcf88469b.NginxMailingListRussian@forum.nginx.org> Message-ID: <374543131.20111124151511@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) mennanov! m> А /webroot/cms/webroot/ это от корня сайта m> конечно. т.е. полный абсолютный путь m> такой: /home/renat/www/glinka/webroot/cms/webroot. Так и пишите как есть! В root должен указываться физический путь к корню. -- С уважением Andrey Repin (hell-for-yahoo на umail.ru) четверг, 24.11.2011, <15:14> From voron на amhost.net Thu Nov 24 12:19:18 2011 From: voron на amhost.net (Alex Vorona) Date: Thu, 24 Nov 2011 14:19:18 +0200 Subject: =?UTF-8?B?UmU6INCd0LUg0LzQvtCz0YMg0L3QsNGB0YLRgNC+0LjRgtGMIG5naW54INGH0YI=?= =?UTF-8?B?0L7QsdGLINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40Y8g0L3QtSDRiNC7?= =?UTF-8?B?0LAg0L3QsCDQvdC10LwsINC90L4g0L/QtdGA0LXQtNCw0LLQsNC70LDRgdGM?= =?UTF-8?B?INCy0L3Rg9GC0YDQtdC90L3QuNC8INGB0LXRgNCy0LXRgNCw0Lw=?= In-Reply-To: <1548019023.20111124151836@mtu-net.ru> References: <6b1e904e76b4aa903fa144a657f26a72.NginxMailingListRussian@forum.nginx.org> <1548019023.20111124151836@mtu-net.ru> Message-ID: <4ECE3646.90801@amhost.net> 24.11.2011 13:18, Andrey Repin wrote: > Здравствуйте, Уважаемый(-ая, -ое) byg! [...] > b> И можно ли логировать запрос, что бы > b> увидеть имя и пароль передаются или > b> нет? > > tcpdump tcpflow может оказаться удобнее. From nginx-forum на nginx.us Thu Nov 24 12:28:39 2011 From: nginx-forum на nginx.us (Craken) Date: Thu, 24 Nov 2011 07:28:39 -0500 Subject: =?UTF-8?Q?Re=3A_PHP_=D0=B8_try_files?= In-Reply-To: <4ECCB8FC.4010203@gsc-game.kiev.ua> References: <4ECCB8FC.4010203@gsc-game.kiev.ua> Message-ID: <6caebe7df2b1f2430701327169a0b10b.NginxMailingListRussian@forum.nginx.org> Не вижу смысла создавать конфиг ООП-шного типа! Конфиг nginx - это просто "инструкция", указывающая на то, как он должен поступить в той или иной ситуации! Например при использовании fastcgi_module в локейшне, если добавить строку "fastcgi_read_timeout 30;", то nginx будет знать что таймаут на чтение будет 30 сек а не 60 (по умолчанию)! Лично у меня используется около 10 виртуальных серверов! Сам конфиг большой, но зато я точно знаю что поменяв какой-то параметр в одном из серверов или локейшнов - я не задену остальные! На самом деле обсуждать такие вопросы можно очень долго! И в конце-концов мы от "ООП-шного конфига" дойдем до того, почему nginx не умеет считывать мысли и автоматом строить конфиг по ним! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218778,218947#msg-218947 From igor на sysoev.ru Thu Nov 24 12:31:46 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Thu, 24 Nov 2011 16:31:46 +0400 Subject: =?UTF-8?Q?Re=3A_PHP_=D0=B8_try_files?= In-Reply-To: <6caebe7df2b1f2430701327169a0b10b.NginxMailingListRussian@forum.nginx.org> References: <4ECCB8FC.4010203@gsc-game.kiev.ua> <6caebe7df2b1f2430701327169a0b10b.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111124123146.GC76204@nginx.com> On Thu, Nov 24, 2011 at 07:28:39AM -0500, Craken wrote: > Не вижу смысла создавать конфиг > ООП-шного типа! Конфиг nginx - это просто > "инструкция", указывающая на то, как он > должен поступить в той или иной > ситуации! > Например при использовании fastcgi_module в > локейшне, если добавить строку > "fastcgi_read_timeout 30;", то nginx будет знать что > таймаут на чтение будет 30 сек а не 60 (по > умолчанию)! > > Лично у меня используется около 10 > виртуальных серверов! Сам конфиг > большой, но зато я точно знаю что > поменяв какой-то параметр в одном из > серверов или локейшнов - я не задену > остальные! > > На самом деле обсуждать такие вопросы > можно очень долго! И в конце-концов мы > от "ООП-шного конфига" дойдем до того, > почему nginx не умеет считывать мысли и > автоматом строить конфиг по ним! Правильно! -- Игорь Сысоев http://sysoev.ru From onokonem на gmail.com Thu Nov 24 12:33:51 2011 From: onokonem на gmail.com (Daniel Podolsky) Date: Thu, 24 Nov 2011 15:33:51 +0300 Subject: =?UTF-8?B?UmU6INCd0LUg0LzQvtCz0YMg0L3QsNGB0YLRgNC+0LjRgtGMIG5naW54INGH0YI=?= =?UTF-8?B?0L7QsdGLINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40Y8g0L3QtSDRiNC7?= =?UTF-8?B?0LAg0L3QsCDQvdC10LwsINC90L4g0L/QtdGA0LXQtNCw0LLQsNC70LDRgdGM?= =?UTF-8?B?INCy0L3Rg9GC0YDQtdC90L3QuNC8INGB0LXRgNCy0LXRgNCw0Lw=?= In-Reply-To: <4ECE3646.90801@amhost.net> References: <6b1e904e76b4aa903fa144a657f26a72.NginxMailingListRussian@forum.nginx.org> <1548019023.20111124151836@mtu-net.ru> <4ECE3646.90801@amhost.net> Message-ID: > tcpflow может оказаться удобнее. или даже ngrep From niakrisn на gmail.com Thu Nov 24 13:28:57 2011 From: niakrisn на gmail.com (=?UTF-8?B?0J3QuNC60LjRgtCwINCa0L7Qt9C70L7Qsg==?=) Date: Thu, 24 Nov 2011 17:28:57 +0400 Subject: =?UTF-8?Q?nginx-1=2E1=2E8_=D0=B8_upstream=5Fkeepalive=5Fmodule_with_proxy?= =?UTF-8?Q?=5Fmodule?= Message-ID: Приветствую. А upstream_keepalive_module работает для http proxy? Вроде настроил, но в отладочном логе так и не увидел "get keepalive peer: using connection" Подскажите пожалуйста, может помимо директивы keepalive в контексте upstream требуются еще какие-нибудь настройки? -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum на nginx.us Thu Nov 24 13:55:32 2011 From: nginx-forum на nginx.us (byg) Date: Thu, 24 Nov 2011 08:55:32 -0500 Subject: nginx , In-Reply-To: <1548019023.20111124151836@mtu-net.ru> References: <1548019023.20111124151836@mtu-net.ru> Message-ID: <2ff6bd5eeed83db64b6a0dee814fb00f.NginxMailingListRussian@forum.nginx.org> Спасибо за ответы! Я опишу задачу, а Вы может подскажете как решить... Мне нужно что-бы сервер слушал внешний IP на порту 443 и "проксировал" на внутренние сервера уже на 80-й порт. Это я сделал и работает. Доступ будет идти с "внешних" компов, а потому NTLM используется только внутренним сервером server1, а server2 использует свою аутентификацию (не LDAP), браузер передает логин и пароль. Внутренние сервера желательно, что бы выбирались по имени пользователя (если доменный, т.е. содержит @domeinname.domernroot, то server1.domeinname.domernroot, иначе server2.domeinname.domernroot). Ну и если еще и кешировать будет!!! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218944,218953#msg-218953 From citrin на citrin.ru Thu Nov 24 16:13:14 2011 From: citrin на citrin.ru (Anton Yuzhaninov) Date: Thu, 24 Nov 2011 20:13:14 +0400 Subject: =?UTF-8?Q?Re=3A_nginx-1=2E1=2E8_=D0=B8_upstream=5Fkeepalive=5Fmodule_with_?= =?UTF-8?Q?proxy=5Fmodule?= In-Reply-To: References: Message-ID: <4ECE6D1A.1050206@citrin.ru> On 11/24/11 17:28, Никита Козлов wrote: > А upstream_keepalive_module работает для http proxy? > > Вроде настроил, но в отладочном логе так и не увидел "get keepalive peer: using > connection" А что скрывается за словами "вроде настроил" ? Конфиг покажите. -- Anton Yuzhaninov From nginx-forum на nginx.us Thu Nov 24 16:38:18 2011 From: nginx-forum на nginx.us (valet) Date: Thu, 24 Nov 2011 11:38:18 -0500 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0YDQsNC30L7QsdGA0LDRgtGM0YHRjyDQvtGC?= =?UTF-8?B?0LrRg9C00LAg0LHQtdGA0YPRgtGB0Y8g0LvQtdCy0YvQtSBnZXQt0LfQsNC/?= =?UTF-8?B?0YDQvtGB0Ys=?= In-Reply-To: References: Message-ID: <09e8e37baa7684789dfde4021e33f1b5.NginxMailingListRussian@forum.nginx.org> Как где, кое где 200 (специфика движка такая идиотская, что даже на несуществующие отдает 200 и пустые страницы), кое где 404. Но вопрос не в этом, вопрос почему они вообще запрашиваются если таких ссылок нигде нет. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218912,218960#msg-218960 From ne на vbart.ru Thu Nov 24 17:59:15 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Thu, 24 Nov 2011 21:59:15 +0400 Subject: =?UTF-8?B?UmU6ICDQn9C+0LzQvtCz0LjRgtC1INGA0LDQt9C+0LHRgNCw0YLRjNGB0Y8g0L4=?= =?UTF-8?B?0YLQutGD0LTQsCDQsdC10YDRg9GC0YHRjyDQu9C10LLRi9C1IGdldC3Qt9Cw?= =?UTF-8?B?0L/RgNC+0YHRiw==?= In-Reply-To: <09e8e37baa7684789dfde4021e33f1b5.NginxMailingListRussian@forum.nginx.org> References: <09e8e37baa7684789dfde4021e33f1b5.NginxMailingListRussian@forum.nginx.org> Message-ID: <201111242159.15289.ne@vbart.ru> On Thursday 24 November 2011 20:38:18 valet wrote: > Как где, кое где 200 (специфика движка > такая идиотская, что даже на > несуществующие отдает 200 и пустые > страницы), кое где 404. Но вопрос не в > этом, вопрос почему они вообще > запрашиваются если таких ссылок нигде > нет. Как вы установили, что их нигде нет? -- Валентин Бартенев From niakrisn на gmail.com Thu Nov 24 18:08:27 2011 From: niakrisn на gmail.com (=?UTF-8?B?0J3QuNC60LjRgtCwINCa0L7Qt9C70L7Qsg==?=) Date: Thu, 24 Nov 2011 22:08:27 +0400 Subject: =?UTF-8?Q?Re=3A_nginx-1=2E1=2E8_=D0=B8_upstream=5Fkeepalive=5Fmodule_with_?= =?UTF-8?Q?proxy=5Fmodule?= In-Reply-To: <4ECE6D1A.1050206@citrin.ru> References: <4ECE6D1A.1050206@citrin.ru> Message-ID: 24 ноября 2011 г. 20:13 пользователь Anton Yuzhaninov написал: > On 11/24/11 17:28, Никита Козлов wrote: > >> А upstream_keepalive_module работает для http proxy? >> >> Вроде настроил, но в отладочном логе так и не увидел "get keepalive peer: >> using >> connection" >> > > А что скрывается за словами "вроде настроил" ? Конфиг покажите. Уже разобрался, контекст локейшена был сконфигурирован так: proxy_pass http://backend; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffering off; proxy_buffer_size 4k; proxy_buffers 128 8k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; Нужно было добавить proxy_set_header Connection keep-alive; -------------- next part -------------- An HTML attachment was scrubbed... URL: From gmm на csdoc.com Thu Nov 24 18:46:50 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Thu, 24 Nov 2011 20:46:50 +0200 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0YDQsNC30L7QsdGA0LDRgtGM0YHRjyDQvtGC?= =?UTF-8?B?0LrRg9C00LAg0LHQtdGA0YPRgtGB0Y8g0LvQtdCy0YvQtSBnZXQt0LfQsNC/?= =?UTF-8?B?0YDQvtGB0Ys=?= In-Reply-To: References: Message-ID: <4ECE911A.2060309@csdoc.com> On 24.11.2011 6:58, valet wrote: > Выделенный сервер на Debian, на котором > много сайтов (bind9, nginx+php-fpm). > Столкнулся с очень странной проблемой. > В логах nginx отдельных хостов с завидной > регулярностью замечаю get-запросы > страниц другого сайта. > То есть например в логе первого сайта > site1.ru.access.log Googlebot/2.1 и другие боты > запрашивают страницы второго сайта > ... > ..."GET /stranica-site2-1.html HTTP/1.1"... > ... > ..."GET /stranica-site2-n.html HTTP/1.1"... > ... > На самом деле это урл-ы сайта site2.ru и > ссылок естественно таких на site1.ru нигде > нет, поэтому то, что они запрашиваются > тем боле поисковыми ботами, может > означать только одно - ошибка где-то в > конфигах. Я в первую очередь подумал, > что дело в кешировании fast-cgi-запросов на > nginx и убрал его - но это на мое удивление > не решило проблему. да, причина этих проблем в не совсем верно настроенном кешировании fast-cgi-запросов. > Я не могу понять почему такое может > происходить и куда копать дальше. раньше Ваш сервер отдавал страницы site2 при запросе к site1, поисковые машины уже проиндексировали эти страницы, и потом начали ходить на сайт проверять обновления. чтобы они прекратили это делать - для несуществующих страниц необходимо возвращать код ошибки 404. > # fastcgi_cache_key > "$server_addr:$server_port$request_uri|$cookie_phpsessid"; # > Формируем уникальный ключ; в данном > случае различаем пользователей с > помощью $cookie_phpsessid ключ совсем не уникальный для не-залогиненных пользователей. потому что $cookie_phpsessid будет пустой строкой, а $server_addr:$server_port для всех/части сайтов на этом сервере будут одинаковые, это будет 11.22.33.44:80 некоторая часть $request_uri у разных сайтов может совпадать, например, если $request_uri == '/', что собственно и произошло. в официальной документации к nginx http://nginx.org/ru/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_key приведен не очень удачный пример, там нет переменной $host более понятный пример на сайте вики: http://wiki.nginx.org/HttpFcgiModule fastcgi_cache_key "$scheme$request_method$host$request_uri"; -- Best regards, Gena From nginx-forum на nginx.us Thu Nov 24 18:55:57 2011 From: nginx-forum на nginx.us (valet) Date: Thu, 24 Nov 2011 13:55:57 -0500 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0YDQsNC30L7QsdGA0LDRgtGM0YHRjyDQvtGC?= =?UTF-8?B?0LrRg9C00LAg0LHQtdGA0YPRgtGB0Y8g0LvQtdCy0YvQtSBnZXQt0LfQsNC/?= =?UTF-8?B?0YDQvtGB0Ys=?= In-Reply-To: <09e8e37baa7684789dfde4021e33f1b5.NginxMailingListRussian@forum.nginx.org> References: <09e8e37baa7684789dfde4021e33f1b5.NginxMailingListRussian@forum.nginx.org> Message-ID: <4c3eadadaf37c6da158a6d7c19e86a73.NginxMailingListRussian@forum.nginx.org> >>>Как вы установили, что их нигде нет? Ну а где они могут быть? Если бы это совсем левые страницы, я бы еще может и подумал, что если не внутри сайта есть ссылки на них, то конкуренты постарались, а то же нет - на нескольких сайтах появляются get-запросы конкретных страниц другого сайта. То есть например имеем на сервере 3 сайта: site1.ru, site2.ru, site3.ru На первых двух идут get-запросы урл-ов 3-го сайта. То есть например на сайте site3.ru имеются страницы: site3.ru/1-stranica.html site3.ru/2-stranica.html ... site3.ru/n-stranica.html вот именно эти страницы регулярно запрашиваются на сайтах site2.ru и site1.ru. То есть в логах этих хостов нахожу запросы этих страницы, например в логе site1.ru.access.log каждый день с завидной регулярностью и частотностью появляются записи типа: ... "GET /1-stranica.html..." ... ... "GET /5-stranica.html..." ... ... "GET /n-stranica.html..." ... Ну то есть все как обычно, только вот страницы не этого сайта. Масла в огонь добавляет тот факт, что движок (это DLE) генерит такие страницы с кодом 200 (естественно не для всех страниц, иногда получается 404), просто они получаются пустыми (только боковые менюшки), соответственно они благополучно индексируются. Я четко знаю структуру урл-ов всех размещенных сайтов на сервере, так как все мои собственные. И я четко вижу эту картину, которую могу только объяснить ошибкой в конфигах. Речь не идет о двух-трех страницах, речь идет о целой пачке страниц, о регулярном процессе (это происходит уже более двух месяцев каждый день), о всех ботах, начиная от GoogleBot, Yandexbot и заканчивая bing. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218912,218965#msg-218965 From mdounin на mdounin.ru Thu Nov 24 19:09:06 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 24 Nov 2011 23:09:06 +0400 Subject: =?UTF-8?Q?Re=3A_nginx-1=2E1=2E8_=D0=B8_upstream=5Fkeepalive=5Fmodule_with_?= =?UTF-8?Q?proxy=5Fmodule?= In-Reply-To: References: <4ECE6D1A.1050206@citrin.ru> Message-ID: <20111124190906.GF95664@mdounin.ru> Hello! On Thu, Nov 24, 2011 at 10:08:27PM +0400, Никита Козлов wrote: > 24 ноября 2011 г. 20:13 пользователь Anton Yuzhaninov написал: > > > On 11/24/11 17:28, Никита Козлов wrote: > > > >> А upstream_keepalive_module работает для http proxy? > >> > >> Вроде настроил, но в отладочном логе так и не увидел "get keepalive peer: > >> using > >> connection" > >> > > > > А что скрывается за словами "вроде настроил" ? Конфиг покажите. > > > Уже разобрался, контекст локейшена был сконфигурирован так: > > proxy_pass http://backend; > proxy_redirect off; > proxy_set_header Host $host; > proxy_set_header X-Real-IP $remote_addr; > proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; > > client_max_body_size 10m; > client_body_buffer_size 128k; > > proxy_connect_timeout 90; > proxy_send_timeout 90; > proxy_read_timeout 90; > > proxy_buffering off; > proxy_buffer_size 4k; > proxy_buffers 128 8k; > proxy_busy_buffers_size 64k; > proxy_temp_file_write_size 64k; > > Нужно было добавить proxy_set_header Connection keep-alive; Нужно было добавить proxy_http_version 1.1; proxy_set_header Connection ""; Без "proxy_http_version" работать тоже будет, но хуже (не будет keepalive'а после ответов без указания Content-Length). Maxim Dounin From agsmorodin на gmail.com Thu Nov 24 19:12:00 2011 From: agsmorodin на gmail.com (Alex Smorodin) Date: Thu, 24 Nov 2011 21:12:00 +0200 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0YDQsNC30L7QsdGA0LDRgtGM0YHRjyDQvtGC?= =?UTF-8?B?0LrRg9C00LAg0LHQtdGA0YPRgtGB0Y8g0LvQtdCy0YvQtSBnZXQt0LfQsNC/?= =?UTF-8?B?0YDQvtGB0Ys=?= In-Reply-To: <4c3eadadaf37c6da158a6d7c19e86a73.NginxMailingListRussian@forum.nginx.org> References: <09e8e37baa7684789dfde4021e33f1b5.NginxMailingListRussian@forum.nginx.org> <4c3eadadaf37c6da158a6d7c19e86a73.NginxMailingListRussian@forum.nginx.org> Message-ID: > Ну а где они могут быть? Если бы это > совсем левые страницы, я бы еще может и > подумал, что если не внутри сайта есть > ссылки на них, то конкуренты > постарались, а то же нет - на нескольких > сайтах появляются get-запросы > конкретных страниц другого сайта. > То есть например имеем на сервере 3 > сайта: site1.ru, site2.ru, site3.ru > На первых двух идут get-запросы урл-ов > 3-го сайта. > > То есть например на сайте site3.ru имеются > страницы: > site3.ru/1-stranica.html > site3.ru/2-stranica.html > ... > site3.ru/n-stranica.html > вот именно эти страницы регулярно > запрашиваются на сайтах site2.ru и site1.ru. > То есть в логах этих хостов нахожу > запросы этих страницы, например в логе > site1.ru.access.log каждый день с завидной > регулярностью и частотностью > появляются записи типа: > ... "GET /1-stranica.html..." > ... > ... "GET /5-stranica.html..." > ... > ... "GET /n-stranica.html... > а если посмотреть например в google webmastertools? гугл показывает источник ссылки, если ловит 404. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From niakrisn на gmail.com Thu Nov 24 19:27:54 2011 From: niakrisn на gmail.com (=?UTF-8?B?0J3QuNC60LjRgtCwINCa0L7Qt9C70L7Qsg==?=) Date: Thu, 24 Nov 2011 23:27:54 +0400 Subject: =?UTF-8?Q?Re=3A_nginx-1=2E1=2E8_=D0=B8_upstream=5Fkeepalive=5Fmodule_with_?= =?UTF-8?Q?proxy=5Fmodule?= In-Reply-To: <20111124190906.GF95664@mdounin.ru> References: <4ECE6D1A.1050206@citrin.ru> <20111124190906.GF95664@mdounin.ru> Message-ID: 24 ноября 2011 г. 23:09 пользователь Maxim Dounin написал: > Hello! > > Нужно было добавить > > proxy_http_version 1.1; > proxy_set_header Connection ""; > > Без "proxy_http_version" работать тоже будет, но хуже (не будет > keepalive'а после ответов без указания Content-Length). Ясно, спасибо. -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum на nginx.us Thu Nov 24 20:45:26 2011 From: nginx-forum на nginx.us (adept) Date: Thu, 24 Nov 2011 15:45:26 -0500 Subject: =?UTF-8?B?0YfRgtC10L3QuNC1INGH0YPQttC40YUg0YTQsNC50LvQvtCyLg==?= Message-ID: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> Собственно, уже не в первых раз, вижу что как-то, через nginx читают файлы других пользователей (php файлы, etc), чмод которых >=644. Как именно, пока не знаю. Тут хттпs://damagelab.org/index.php?showtopic=22153&view=findpost&p=126003 багу продают за 700$ Интересны варианты решения. Вариант расставлять всем чмод в принудительном порядке не очень устраивает. Какие будут варианты? Судя по всему, нужно ковырять исходник. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218970,218970#msg-218970 From nginx-forum на nginx.us Thu Nov 24 20:56:48 2011 From: nginx-forum на nginx.us (valet) Date: Thu, 24 Nov 2011 15:56:48 -0500 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0YDQsNC30L7QsdGA0LDRgtGM0YHRjyDQvtGC?= =?UTF-8?B?0LrRg9C00LAg0LHQtdGA0YPRgtGB0Y8g0LvQtdCy0YvQtSBnZXQt0LfQsNC/?= =?UTF-8?B?0YDQvtGB0Ys=?= In-Reply-To: <4ECE911A.2060309@csdoc.com> References: <4ECE911A.2060309@csdoc.com> Message-ID: >>>раньше Ваш сервер отдавал страницы site2 при запросе к site1, поисковые машины уже проиндексировали эти страницы, и потом начали ходить на сайт проверять обновления. Скорее всего это действительно так. Но все равно непонятно, сейчас я убрал кеширование вообще, причем почистил папку с кешем. То есть сейчас уже не может отдастся страница с кеша вообще - так как тогда ПС может заходить на эти страницы? >>>чтобы они прекратили это делать - для несуществующих страниц необходимо возвращать код ошибки 404. это нереально организовать, страниц очень много. >>>ключ совсем не уникальный для не-залогиненных пользователей. потому что $cookie_phpsessid будет пустой строкой, а $server_addr:$server_port для всех/части сайтов на этом сервере будут одинаковые, это будет 11.22.33.44:80 некоторая часть $request_uri у разных сайтов может совпадать, например, если $request_uri == '/', что собственно и произошло. Да, кажется вы абсолютно правы. Я нашел этот ключ хеша на хабре и даже не задумывался о том, что он может быть неуникальным. >>>в официальной документации к nginx http://nginx.org/ru/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_key приведен не очень удачный пример, там нет переменной $host Ну да, для одного сайта на сервере оно подойдет. Но когда на сервере много сайтов, будет катастрофа. >>>более понятный пример на сайте вики: http://wiki.nginx.org/HttpFcgiModule fastcgi_cache_key "$scheme$request_method$host$request_uri"; Но мне кажется этого явно мало, тут даже кук нету. >>>а если посмотреть например в google webmastertools? гугл показывает источник ссылки, если ловит 404. 404-ых именно тех страниц не могу найти, говорю же в основном отдается 200 по ним. Постараюсь еще поискать на других сайтах. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218912,218976#msg-218976 From onokonem на gmail.com Thu Nov 24 20:57:01 2011 From: onokonem на gmail.com (Daniel Podolsky) Date: Thu, 24 Nov 2011 23:57:01 +0300 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> Message-ID: > Судя по всему, нужно > ковырять исходник. Судя по всему, нужно писать конфиг nginx правильно, и не давать в нем доступ куда попало. From nginx-forum на nginx.us Thu Nov 24 21:20:03 2011 From: nginx-forum на nginx.us (Craken) Date: Thu, 24 Nov 2011 16:20:03 -0500 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> Message-ID: Думаю что проблема не в nginx, а в том, как настроен сам конфиг! Конечно всякое может быть! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218970,218979#msg-218979 From voron на amhost.net Thu Nov 24 21:27:29 2011 From: voron на amhost.net (Alex Vorona) Date: Thu, 24 Nov 2011 23:27:29 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> Message-ID: <4ECEB6C1.4000204@amhost.net> 24.11.2011 22:45, adept wrote: > Собственно, уже не в первых раз, вижу > что как-то, через nginx читают файлы > других пользователей (php файлы, etc), чмод > которых >=644. Как именно, пока не знаю. симлинки? From hell-for-yahoo на umail.ru Thu Nov 24 23:25:10 2011 From: hell-for-yahoo на umail.ru (Andrey Repin) Date: Fri, 25 Nov 2011 03:25:10 +0400 Subject: Помогите разобраться откуда берутся левые get-запросы In-Reply-To: References: <4ECE911A.2060309@csdoc.com> Message-ID: <1415660769.20111125032510@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) valet! >>>> раньше Ваш сервер отдавал страницы site2 при запросе к site1, поисковые >>>> машины уже проиндексировали эти страницы, и потом начали ходить на сайт >>>> проверять обновления. v> Скорее всего это действительно так. Но v> все равно непонятно, сейчас я убрал v> кеширование вообще, причем почистил v> папку с кешем. То есть сейчас уже не v> может отдастся страница с кеша вообще - v> так как тогда ПС может заходить на эти v> страницы? Вы вообще читали то, что цитируете? Из вашего вопроса явно видно, что не читали. >>>>чтобы они прекратили это делать - для несуществующих страниц необходимо >>>>возвращать код ошибки 404. v> это нереально организовать, страниц v> очень много. Не смешите меня. Реально всё, даже написать новый движок. Было бы желание. >>>> более понятный пример на сайте вики: >>>> http://wiki.nginx.org/HttpFcgiModule >>>> fastcgi_cache_key "$scheme$request_method$host$request_uri"; v> Но мне кажется этого явно мало, тут даже v> кук нету. Добавьте... >>>> а если посмотреть например в google webmastertools? гугл показывает >>>> источник ссылки, если ловит 404. v> 404-ых именно тех страниц не могу найти, v> говорю же в основном отдается 200 по ним. Сделайте, чтобы отдавалось 404, когда это необходимо. -- С уважением Andrey Repin (hell-for-yahoo на umail.ru) пятница, 25.11.2011, <03:21> From nginx-forum на nginx.us Thu Nov 24 23:45:28 2011 From: nginx-forum на nginx.us (adept) Date: Thu, 24 Nov 2011 18:45:28 -0500 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <4ECEB6C1.4000204@amhost.net> References: <4ECEB6C1.4000204@amhost.net> Message-ID: <0e16edef5d8249a95a5d627ad551189b.NginxMailingListRussian@forum.nginx.org> Нет, симплинки не канают. Покажите тогда правильный вариант конфигурации nginx. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218970,218985#msg-218985 From server_inc на list.ru Fri Nov 25 00:18:15 2011 From: server_inc на list.ru (=?KOI8-R?Q?=F3=D4=C1=CE=C9=D3=CC=C1=D7?=) Date: Fri, 25 Nov 2011 02:18:15 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <0e16edef5d8249a95a5d627ad551189b.NginxMailingListRussian@forum.nginx.org> References: <4ECEB6C1.4000204@amhost.net> <0e16edef5d8249a95a5d627ad551189b.NginxMailingListRussian@forum.nginx.org> Message-ID: <4ECEDEC7.4030901@list.ru> 25.11.2011 1:45, adept пишет: > Нет, симплинки не канают. > Покажите тогда правильный вариант > конфигурации nginx. > Нужен пример любого веб-сервера (nginx) с уязвимым конфигом. Там уже можно будет выковырять в чем состоит бага и как фиксить. Мне даже самому интересно стало. From nginx-forum на nginx.us Fri Nov 25 00:26:00 2011 From: nginx-forum на nginx.us (valet) Date: Thu, 24 Nov 2011 19:26:00 -0500 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0YDQsNC30L7QsdGA0LDRgtGM0YHRjyDQvtGC?= =?UTF-8?B?0LrRg9C00LAg0LHQtdGA0YPRgtGB0Y8g0LvQtdCy0YvQtSBnZXQt0LfQsNC/?= =?UTF-8?B?0YDQvtGB0Ys=?= In-Reply-To: References: <4ECE911A.2060309@csdoc.com> Message-ID: <10447e3dc4a779f012fdf884126a953d.NginxMailingListRussian@forum.nginx.org> >>>Вы вообще читали то, что цитируете? Из вашего вопроса явно видно, что не читали. Я немножко не так интерпретировал эту фразу. Я подумал имелось ввиду поисковик ходит по ссылкам с неправильной страницы, поэтому и подумал что он каким-то образом еще раз получает неправильную страницу, хотя она уже не отдается. Ну правильно, возможен вариант прямого обращения к странице, если когда-то попала в индекс, что собственно и происходит. >>>Добавьте... Я сделал проще, я тупо убрал кеширование. Gena Makhomed, жду WMZ-кошелек (можно в личку), оплачу как и обещал 10 баксов за правильную наводку. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218912,218987#msg-218987 From vugluskr на vugluskr.org.ua Fri Nov 25 00:47:46 2011 From: vugluskr на vugluskr.org.ua (=?KOI8-R?Q?=E2=CF=C7=D5=CE_=E4=CD=C9=D4=D2=C9=CA?=) Date: Fri, 25 Nov 2011 02:47:46 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <4ECEDEC7.4030901@list.ru> References: <4ECEB6C1.4000204@amhost.net> <0e16edef5d8249a95a5d627ad551189b.NginxMailingListRussian@forum.nginx.org> <4ECEDEC7.4030901@list.ru> Message-ID: <4ECEE5B2.1030601@vugluskr.org.ua> 25.11.2011 02:18, Станислав пишет: > 25.11.2011 1:45, adept пишет: >> Нет, симплинки не канают. >> Покажите тогда правильный вариант >> конфигурации nginx. >> > Нужен пример любого веб-сервера (nginx) с уязвимым конфигом. Там уже > можно будет выковырять в чем состоит бага и как фиксить. Мне даже > самому интересно стало. Уже ж сказали - симлинки. Если есть доступ к созданию симлинку в "своем" вебруте, можно получить все файлы на сервере, к которым у рабочего процесса nginx есть доступ на чтение. Хотя быть может уже и убрали эту "возможность", я давно рассылку не читал. ^_^ -- Богун Дмитрий aka vugluskr From vugluskr на vugluskr.org.ua Fri Nov 25 01:05:25 2011 From: vugluskr на vugluskr.org.ua (=?KOI8-R?Q?=E2=CF=C7=D5=CE_=E4=CD=C9=D4=D2=C9=CA?=) Date: Fri, 25 Nov 2011 03:05:25 +0200 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0YDQsNC30L7QsdGA0LDRgtGM0YHRjyDQvtGC?= =?UTF-8?B?0LrRg9C00LAg0LHQtdGA0YPRgtGB0Y8g0LvQtdCy0YvQtSBnZXQt0LfQsNC/?= =?UTF-8?B?0YDQvtGB0Ys=?= In-Reply-To: <10447e3dc4a779f012fdf884126a953d.NginxMailingListRussian@forum.nginx.org> References: <4ECE911A.2060309@csdoc.com> <10447e3dc4a779f012fdf884126a953d.NginxMailingListRussian@forum.nginx.org> Message-ID: <4ECEE9D5.40107@vugluskr.org.ua> 25.11.2011 02:26, valet пишет: > Я сделал проще, я тупо убрал > кеширование. Не поможет, раз боты уже "нашли" эти страницы - то будут их переодически проверять. Я когда менял на одном из своих проектов структуру ссылок(большой кусок статики переехал на другой набор ссылок) - то даже через 3 месяца видел запросы по старым ссылком от гуглового бота и это при том, что там отвечали 404, а если ботам отвечать на такие страницы 200 - то они просто обязаны за ними приходить вновь и вновь. -- Богун Дмитрий aka vugluskr From server_inc на list.ru Fri Nov 25 01:12:53 2011 From: server_inc на list.ru (=?KOI8-R?Q?=F3=D4=C1=CE=C9=D3=CC=C1=D7?=) Date: Fri, 25 Nov 2011 03:12:53 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <4ECEE5B2.1030601@vugluskr.org.ua> References: <4ECEB6C1.4000204@amhost.net> <0e16edef5d8249a95a5d627ad551189b.NginxMailingListRussian@forum.nginx.org> <4ECEDEC7.4030901@list.ru> <4ECEE5B2.1030601@vugluskr.org.ua> Message-ID: <4ECEEB95.7040408@list.ru> 25.11.2011 2:47, Богун Дмитрий пишет: > 25.11.2011 02:18, Станислав пишет: >> 25.11.2011 1:45, adept пишет: >>> Нет, симплинки не канают. >>> Покажите тогда правильный вариант >>> конфигурации nginx. >>> >> Нужен пример любого веб-сервера (nginx) с уязвимым конфигом. Там уже >> можно будет выковырять в чем состоит бага и как фиксить. Мне даже >> самому интересно стало. > Уже ж сказали - симлинки. > > Если есть доступ к созданию симлинку в "своем" вебруте, можно получить > все файлы на сервере, к которым у рабочего процесса nginx есть доступ > на чтение. Хотя быть может уже и убрали эту "возможность", я давно > рассылку не читал. ^_^ > То есть с помощью симлинка можно прочитать файлы игнорируя системные биты привилегий read/execute что ли? From vugluskr на vugluskr.org.ua Fri Nov 25 01:17:29 2011 From: vugluskr на vugluskr.org.ua (=?KOI8-R?Q?=E2=CF=C7=D5=CE_=E4=CD=C9=D4=D2=C9=CA?=) Date: Fri, 25 Nov 2011 03:17:29 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <4ECEEB95.7040408@list.ru> References: <4ECEB6C1.4000204@amhost.net> <0e16edef5d8249a95a5d627ad551189b.NginxMailingListRussian@forum.nginx.org> <4ECEDEC7.4030901@list.ru> <4ECEE5B2.1030601@vugluskr.org.ua> <4ECEEB95.7040408@list.ru> Message-ID: <4ECEECA9.9070000@vugluskr.org.ua> 25.11.2011 03:12, Станислав пишет: >> Уже ж сказали - симлинки. >> >> Если есть доступ к созданию симлинку в "своем" вебруте, можно >> получить все файлы на сервере, к которым у рабочего процесса nginx >> есть доступ на чтение. Хотя быть может уже и убрали эту >> "возможность", я давно рассылку не читал. ^_^ >> > То есть с помощью симлинка можно прочитать файлы игнорируя системные > биты привилегий read/execute что ли? Нельзя. Но если это shared хостинг, то там весьма вероятно nginx'у можно ходить во все вхосты, благодаря чему "соседи" могут шастать по вашим скриптам. Нужна лишь папка из которой nginx сам отдает файлы и возможность создавать там симлинки. -- Богун Дмитрий aka vugluskr From rauf на kuliyev.com Fri Nov 25 01:28:06 2011 From: rauf на kuliyev.com (Rauf Kuliyev) Date: Thu, 24 Nov 2011 17:28:06 -0800 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <4ECEECA9.9070000@vugluskr.org.ua> References: <4ECEB6C1.4000204@amhost.net> <0e16edef5d8249a95a5d627ad551189b.NginxMailingListRussian@forum.nginx.org> <4ECEDEC7.4030901@list.ru> <4ECEE5B2.1030601@vugluskr.org.ua> <4ECEEB95.7040408@list.ru> <4ECEECA9.9070000@vugluskr.org.ua> Message-ID: Emin на hasanov.com On Nov 24, 2011 5:17 PM, "Богун Дмитрий" wrote: > 25.11.2011 03:12, Станислав пишет: > >> Уже ж сказали - симлинки. >>> >>> Если есть доступ к созданию симлинку в "своем" вебруте, можно получить >>> все файлы на сервере, к которым у рабочего процесса nginx есть доступ на >>> чтение. Хотя быть может уже и убрали эту "возможность", я давно рассылку не >>> читал. ^_^ >>> >>> То есть с помощью симлинка можно прочитать файлы игнорируя системные >> биты привилегий read/execute что ли? >> > Нельзя. Но если это shared хостинг, то там весьма вероятно nginx'у можно > ходить во все вхосты, благодаря чему "соседи" могут шастать по вашим > скриптам. Нужна лишь папка из которой nginx сам отдает файлы и возможность > создавать там симлинки. > > -- > Богун Дмитрий aka vugluskr > > ______________________________**_________________ > 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 server_inc на list.ru Fri Nov 25 01:39:50 2011 From: server_inc на list.ru (=?KOI8-R?Q?=F3=D4=C1=CE=C9=D3=CC=C1=D7?=) Date: Fri, 25 Nov 2011 03:39:50 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <4ECEECA9.9070000@vugluskr.org.ua> References: <4ECEB6C1.4000204@amhost.net> <0e16edef5d8249a95a5d627ad551189b.NginxMailingListRussian@forum.nginx.org> <4ECEDEC7.4030901@list.ru> <4ECEE5B2.1030601@vugluskr.org.ua> <4ECEEB95.7040408@list.ru> <4ECEECA9.9070000@vugluskr.org.ua> Message-ID: <4ECEF1E6.9020703@list.ru> 25.11.2011 3:17, Богун Дмитрий пишет: > 25.11.2011 03:12, Станислав пишет: >>> Уже ж сказали - симлинки. >>> >>> Если есть доступ к созданию симлинку в "своем" вебруте, можно >>> получить все файлы на сервере, к которым у рабочего процесса nginx >>> есть доступ на чтение. Хотя быть может уже и убрали эту >>> "возможность", я давно рассылку не читал. ^_^ >>> >> То есть с помощью симлинка можно прочитать файлы игнорируя системные >> биты привилегий read/execute что ли? > Нельзя. Но если это shared хостинг, то там весьма вероятно nginx'у > можно ходить во все вхосты, благодаря чему "соседи" могут шастать по > вашим скриптам. Нужна лишь папка из которой nginx сам отдает файлы и > возможность создавать там симлинки. > Ну разве что интерпретатор (напрм. PHP) чрутиться или запускается для всех клиентов под разными правами. Тогда да... это интересная идея. В противном случае проще залить php шелл и с него смотреть вхосты. А я почему-то думал, что ошибка в конфигурации связана как-то с локейшенами... ээхх.. =) From server_inc на list.ru Fri Nov 25 01:47:37 2011 From: server_inc на list.ru (=?KOI8-R?Q?=F3=D4=C1=CE=C9=D3=CC=C1=D7?=) Date: Fri, 25 Nov 2011 03:47:37 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <4ECEF1E6.9020703@list.ru> References: <4ECEB6C1.4000204@amhost.net> <0e16edef5d8249a95a5d627ad551189b.NginxMailingListRussian@forum.nginx.org> <4ECEDEC7.4030901@list.ru> <4ECEE5B2.1030601@vugluskr.org.ua> <4ECEEB95.7040408@list.ru> <4ECEECA9.9070000@vugluskr.org.ua> <4ECEF1E6.9020703@list.ru> Message-ID: <4ECEF3B9.9000609@list.ru> 25.11.2011 3:39, Станислав пишет: > [.....] > > А я почему-то думал, что ошибка в конфигурации связана как-то с > локейшенами... ээхх.. =) ахх.. все... я чего-то не обратил внимание на последний пост автора... > работает с апачем хостинга hostnine.com (панель cpanel), по крайней мере, на их сервере uswest7.myserverhosts.com :) Значит и вправду симлинк... фе.. не интересно. Хотя автор заработал $700 . молодца =) From nginx-forum на nginx.us Fri Nov 25 06:59:07 2011 From: nginx-forum на nginx.us (byg) Date: Fri, 25 Nov 2011 01:59:07 -0500 Subject: =?UTF-8?B?UmU6INCd0LUg0LzQvtCz0YMg0L3QsNGB0YLRgNC+0LjRgtGMIG5naW54INGH0YI=?= =?UTF-8?B?0L7QsdGLINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40Y8g0L3QtSDRiNC7?= =?UTF-8?B?0LAg0L3QsCDQvdC10LwsINC90L4g0L/QtdGA0LXQtNCw0LLQsNC70LDRgdGM?= =?UTF-8?B?INCy0L3Rg9GC0YDQtdC90L3QuNC8INGB0LXRgNCy0LXRgNCw0Lw=?= In-Reply-To: <6b1e904e76b4aa903fa144a657f26a72.NginxMailingListRussian@forum.nginx.org> References: <6b1e904e76b4aa903fa144a657f26a72.NginxMailingListRussian@forum.nginx.org> Message-ID: <81298e90c31a0ba751e716778d912364.NginxMailingListRussian@forum.nginx.org> И все же, как можно "пробрасывать" имя и пароль к проксируемым сайтам? Т.е. аутентификация на сайтах за nginx. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218915,219001#msg-219001 From scukonick на gmail.com Fri Nov 25 07:08:56 2011 From: scukonick на gmail.com (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0JzQsNC70L7Qsg==?=) Date: Fri, 25 Nov 2011 11:08:56 +0400 Subject: =?UTF-8?B?UmU6INCd0LUg0LzQvtCz0YMg0L3QsNGB0YLRgNC+0LjRgtGMIG5naW54INGH0YI=?= =?UTF-8?B?0L7QsdGLINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40Y8g0L3QtSDRiNC7?= =?UTF-8?B?0LAg0L3QsCDQvdC10LwsINC90L4g0L/QtdGA0LXQtNCw0LLQsNC70LDRgdGM?= =?UTF-8?B?INCy0L3Rg9GC0YDQtdC90L3QuNC8INGB0LXRgNCy0LXRgNCw0Lw=?= In-Reply-To: <81298e90c31a0ba751e716778d912364.NginxMailingListRussian@forum.nginx.org> References: <6b1e904e76b4aa903fa144a657f26a72.NginxMailingListRussian@forum.nginx.org> <81298e90c31a0ba751e716778d912364.NginxMailingListRussian@forum.nginx.org> Message-ID: 25 ноября 2011 г. 10:59 пользователь byg написал: > И все же, как можно "пробрасывать" имя и > пароль к проксируемым сайтам? > Т.е. аутентификация на сайтах за nginx. С NTLM не будет работать просто так: http://forum.nginx.org/read.php?2,72871,72871 А для base всё работает по дефолту, ничего не надо настраиватть. > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218915,219001#msg-219001 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Alexey Malov From scukonick на gmail.com Fri Nov 25 07:40:09 2011 From: scukonick на gmail.com (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0JzQsNC70L7Qsg==?=) Date: Fri, 25 Nov 2011 11:40:09 +0400 Subject: don't repeat yourself / copy and paste programming In-Reply-To: <201111231351.45826.isk@cupid.com> References: <4ECCB8FC.4010203@gsc-game.kiev.ua> <4ECCD4F7.4060606@csdoc.com> <201111231351.45826.isk@cupid.com> Message-ID: 23 ноября 2011 г. 15:51 пользователь Olexander Shtepa написал: >> В нашем случае используется ?1 (genshi templates + fabric, так как >> серверов много). Минус только один - ленимся написать запуска для этой >> связки вебморду :) Впрочем тот же подход практикуем и для конфигов >> другого софта, не только nginx, так что метод в общем то >> универсальный, хотя не для ленивых, это да. > > А мы используем Puppet и нас тоже не волнует эта проблемма. А не поделитесь, пожалуйста, темплейтом Puppet'a для nginx? > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Alexey Malov From unera на uvw.ru Thu Nov 24 19:48:58 2011 From: unera на uvw.ru (Dmitry E. Oboukhov) Date: Thu, 24 Nov 2011 23:48:58 +0400 Subject: =?UTF-8?B?UmU6INCg0LDQt9C90YvQtSDQsNGA0YXQuNGC0LXQutGC0YPRgNGL?= In-Reply-To: <20111124105152.GD95664@mdounin.ru> References: <20111124101306.GH3769@apache.rbscorp.ru> <20111124103433.GH70072@nginx.com> <20111124103534.GI70072@nginx.com> <20111124105152.GD95664@mdounin.ru> Message-ID: <20111124194857.GN3769@apache.rbscorp.ru> > http://pubs.opengroup.org/onlinepubs/9699919799/functions/realpath.html > Т.е. если PATH_MAX определён, надо действовать по старому. Если > не определён - можно пытаться использовать интерфейс из Issue 7. суть в том что если PATH_MAX определен то общий путь все равно может его превысить. это уже насколько я понял дефакто на всех системах -- . ''`. Dmitry E. Oboukhov : :? : email: unera на debian.org jabber://UNera на uvw.ru `. `~? GPGKey: 1024D / F8E26537 2006-11-21 `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537 ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: Digital signature URL: From unera на uvw.ru Fri Nov 25 06:58:32 2011 From: unera на uvw.ru (Dmitry E. Oboukhov) Date: Fri, 25 Nov 2011 10:58:32 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111125065831.GP3769@apache.rbscorp.ru> > Собственно, уже не в первых раз, вижу > что как-то, через nginx читают файлы > других пользователей (php файлы, etc), чмод > которых >=644. Как именно, пока не знаю. > Тут > хттпs://damagelab.org/index.php?showtopic=22153&view=findpost&p=126003 > багу продают за 700$ > Интересны варианты решения. Вариант > расставлять всем чмод в принудительном > порядке не очень устраивает. Какие > будут варианты? Судя по всему, нужно > ковырять исходник. > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218970,218970#msg-218970 Скорее всего симлинки. У апача ЕМНИП есть опция (не )?ходить по симлинкам. Возможно надо такую же в nginx? -- . ''`. Dmitry E. Oboukhov : :? : email: unera на debian.org jabber://UNera на uvw.ru `. `~? GPGKey: 1024D / F8E26537 2006-11-21 `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537 ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: Digital signature URL: From igor на sysoev.ru Fri Nov 25 09:25:34 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Fri, 25 Nov 2011 13:25:34 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <20111125065831.GP3769@apache.rbscorp.ru> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111125065831.GP3769@apache.rbscorp.ru> Message-ID: <20111125092534.GC1438@nginx.com> On Fri, Nov 25, 2011 at 10:58:32AM +0400, Dmitry E. Oboukhov wrote: > > Собственно, уже не в первых раз, вижу > > что как-то, через nginx читают файлы > > других пользователей (php файлы, etc), чмод > > которых >=644. Как именно, пока не знаю. > > Тут > > хттпs://damagelab.org/index.php?showtopic=22153&view=findpost&p=126003 > > багу продают за 700$ > > > Интересны варианты решения. Вариант > > расставлять всем чмод в принудительном > > порядке не очень устраивает. Какие > > будут варианты? Судя по всему, нужно > > ковырять исходник. > > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218970,218970#msg-218970 > > Скорее всего симлинки. > > У апача ЕМНИП есть опция (не )?ходить по симлинкам. > Возможно надо такую же в nginx? http://httpd.apache.org/docs/2.2/mod/core.html#options FollowSymLinks SymLinksIfOwnerMatch This option should not be considered a security restriction, since symlink testing is subject to race conditions that make it circumventable. Отсюда возникает вопрос: имеет ли смысл тестировать каждый элемент пути при каждом запросе, если это не даёт 100% гарантии ? -- Igor Sysoev From citrin на citrin.ru Fri Nov 25 09:34:18 2011 From: citrin на citrin.ru (Anton Yuzhaninov) Date: Fri, 25 Nov 2011 13:34:18 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <20111125092534.GC1438@nginx.com> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111125065831.GP3769@apache.rbscorp.ru> <20111125092534.GC1438@nginx.com> Message-ID: <4ECF611A.20101@citrin.ru> On 11/25/11 13:25, Igor Sysoev wrote: > http://httpd.apache.org/docs/2.2/mod/core.html#options > > FollowSymLinks > SymLinksIfOwnerMatch > > This option should not be considered a security restriction, > since symlink testing is subject to race conditions that > make it circumventable. > > Отсюда возникает вопрос: имеет ли смысл тестировать каждый элемент > пути при каждом запросе, если это не даёт 100% гарантии ? В апаче сначала делают stat, потом open? А если сначала открыть файл, потом сделать fstat(), не позволит ли это избежать race? -- Anton Yuzhaninov From igor на sysoev.ru Fri Nov 25 09:42:58 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Fri, 25 Nov 2011 13:42:58 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <4ECF611A.20101@citrin.ru> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111125065831.GP3769@apache.rbscorp.ru> <20111125092534.GC1438@nginx.com> <4ECF611A.20101@citrin.ru> Message-ID: <20111125094258.GD1438@nginx.com> On Fri, Nov 25, 2011 at 01:34:18PM +0400, Anton Yuzhaninov wrote: > On 11/25/11 13:25, Igor Sysoev wrote: > > http://httpd.apache.org/docs/2.2/mod/core.html#options > > > > FollowSymLinks > > SymLinksIfOwnerMatch > > > > This option should not be considered a security restriction, > > since symlink testing is subject to race conditions that > > make it circumventable. > > > > Отсюда возникает вопрос: имеет ли смысл тестировать каждый элемент > > пути при каждом запросе, если это не даёт 100% гарантии ? > > В апаче сначала делают stat, потом open? > > А если сначала открыть файл, потом сделать fstat(), не позволит ли это избежать > race? Нет, симлинк можно поставить в середину пути. И O_NOFOLLOW похоже тоже не поможет, потому что: O_NOFOLLOW If pathname is a symbolic link, then the open fails. This is a FreeBSD extension, which was added to Linux in version 2.1.126. Symbolic links in earlier components of the pathname will still be followed. -- Игорь Сысоев http://sysoev.ru From igor на sysoev.ru Fri Nov 25 09:46:23 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Fri, 25 Nov 2011 13:46:23 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <20111125094258.GD1438@nginx.com> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111125065831.GP3769@apache.rbscorp.ru> <20111125092534.GC1438@nginx.com> <4ECF611A.20101@citrin.ru> <20111125094258.GD1438@nginx.com> Message-ID: <20111125094623.GE1438@nginx.com> On Fri, Nov 25, 2011 at 01:42:58PM +0400, Igor Sysoev wrote: > On Fri, Nov 25, 2011 at 01:34:18PM +0400, Anton Yuzhaninov wrote: > > On 11/25/11 13:25, Igor Sysoev wrote: > > > http://httpd.apache.org/docs/2.2/mod/core.html#options > > > > > > FollowSymLinks > > > SymLinksIfOwnerMatch > > > > > > This option should not be considered a security restriction, > > > since symlink testing is subject to race conditions that > > > make it circumventable. > > > > > > Отсюда возникает вопрос: имеет ли смысл тестировать каждый элемент > > > пути при каждом запросе, если это не даёт 100% гарантии ? > > > > В апаче сначала делают stat, потом open? > > > > А если сначала открыть файл, потом сделать fstat(), не позволит ли это избежать > > race? > > Нет, симлинк можно поставить в середину пути. > И O_NOFOLLOW похоже тоже не поможет, потому что: > > O_NOFOLLOW > If pathname is a symbolic link, then the open fails. This is a FreeBSD > extension, which was added to Linux in version 2.1.126. Symbolic links > in earlier components of the pathname will still be followed. Единственная 100% гарантия - mount -o nosymfollow. -- Игорь Сысоев http://sysoev.ru From unera на uvw.ru Fri Nov 25 09:47:59 2011 From: unera на uvw.ru (Dmitry E. Oboukhov) Date: Fri, 25 Nov 2011 13:47:59 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <20111125092534.GC1438@nginx.com> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111125065831.GP3769@apache.rbscorp.ru> <20111125092534.GC1438@nginx.com> Message-ID: <20111125094758.GQ3769@apache.rbscorp.ru> > Отсюда возникает вопрос: имеет ли смысл тестировать каждый элемент > пути при каждом запросе, если это не даёт 100% гарантии ? Да, правда, если проверку симлика атомарной сделать не получается то видимо и смысла правда нет ограничение реализовывать -- . ''`. Dmitry E. Oboukhov : :? : email: unera на debian.org jabber://UNera на uvw.ru `. `~? GPGKey: 1024D / F8E26537 2006-11-21 `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537 ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: Digital signature URL: From snar на snar.spb.ru Fri Nov 25 09:54:17 2011 From: snar на snar.spb.ru (Alexandre Snarskii) Date: Fri, 25 Nov 2011 13:54:17 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <20111125092534.GC1438@nginx.com> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111125065831.GP3769@apache.rbscorp.ru> <20111125092534.GC1438@nginx.com> Message-ID: <20111125095417.GA63216@snar.spb.ru> On Fri, Nov 25, 2011 at 01:25:34PM +0400, Igor Sysoev wrote: > > Скорее всего симлинки. > > > > У апача ЕМНИП есть опция (не )?ходить по симлинкам. > > Возможно надо такую же в nginx? > > http://httpd.apache.org/docs/2.2/mod/core.html#options > > FollowSymLinks > SymLinksIfOwnerMatch > > This option should not be considered a security restriction, > since symlink testing is subject to race conditions that > make it circumventable. > > Отсюда возникает вопрос: имеет ли смысл тестировать каждый элемент > пути при каждом запросе, если это не даёт 100% гарантии ? Сугубое jimho: весь путь проверять не надо. Достаточно проверять последний элемент пути, и, возможно, даже не "проверять самому", а переложить проверку на операционную систему флагом O_NOFOLLOW в open(2). Почему: симлинк-атака базируется на стандартном location'е location ~ \.(gif|png|)$ { root /some/user; } при котором "злому хацкеру" достаточно прописать в своей директории симлинк image.gif -> /some/other-user/config.php, и добавление O_NOFOLLOW от этой атаки прикрывает. Да, O_NOFOLLOW проверяет только последний элемент пути, но этого а) достаточно (выставление симлинка "уровнем выше" к атаке не приводит, ибо под данный location не попадает). б) не очень сильно ломает функционал атомарных обновлений (хотя если пользовательская CMS подставляет файлы именно симлинком "последнего элемента" - это сломается, ведь симлинки не будут работать даже внутри одной директории, но потому-то эта опция должна быть конфигурируема для location'а а не включена по умолчанию). PS: от атаки на хардлинках это по любому не защищает. -- In theory, there is no difference between theory and practice. But, in practice, there is. From mva на mva.name Fri Nov 25 09:56:50 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Fri, 25 Nov 2011 16:56:50 +0700 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <20111125094258.GD1438@nginx.com> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111125065831.GP3769@apache.rbscorp.ru> <20111125092534.GC1438@nginx.com> <4ECF611A.20101@citrin.ru> <20111125094258.GD1438@nginx.com> Message-ID: <1322215010.8898.2.camel@N900> On пт 25 ноя 2011 16:42:58 KRAT, Igor Sysoev wrote: > Нет, симлинк можно поставить в середину пути. > И O_NOFOLLOW похоже тоже не поможет, потому что: > > O_NOFOLLOW >        If pathname is a symbolic link, then the open fails.  This is a > FreeBSD      extension, which was added to Linux in version 2.1.126. > Symbolic links      in earlier components of the pathname will still be > followed. Ну про всякие виндовсы и прочее, конечно, я не могу говорить (хотя там и симлинки не используются), но в Linux'е ветка 2.1 была чуть ли не тысячу лет назад. Сомнительно, что где-то ещё используется вообще Linux<=2.4 (ну, сам 2.4 разве что, в старых моделях роутеров. И то, уже давно все можно на 2.6 перешить). Так что, имхо, можно добавить опцию, которая бы включала NOFOLLOW, выключенную по дефолту, и в документации добавить оговорку про Linux>=2.1.126 -- С уважением, mva From ne на vbart.ru Fri Nov 25 10:00:57 2011 From: ne на vbart.ru (=?utf-8?b?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Fri, 25 Nov 2011 14:00:57 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <1322215010.8898.2.camel@N900> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111125094258.GD1438@nginx.com> <1322215010.8898.2.camel@N900> Message-ID: <201111251400.58197.ne@vbart.ru> On Friday 25 November 2011 13:56:50 Мисбах-Соловь?в Вадим wrote: > On пт 25 ноя 2011 16:42:58 KRAT, Igor Sysoev wrote: > > Нет, симлинк можно поставить в середину пути. > > И O_NOFOLLOW похоже тоже не поможет, потому что: > > > > O_NOFOLLOW > > > > If pathname is a symbolic link, then the open fails. This is a > > > > FreeBSD extension, which was added to Linux in version 2.1.126. > > Symbolic links in earlier components of the pathname will still be > > followed. > > Ну про всякие виндовсы и прочее, конечно, я не могу говорить (хотя там и > симлинки не используются), но в Linux'е ветка 2.1 была чуть ли не тысячу > лет назад. Сомнительно, что где-то ещё используется вообще Linux<=2.4 (ну, > сам 2.4 разве что, в старых моделях роутеров. И то, уже давно все можно на > 2.6 перешить). Так что, имхо, можно добавить опцию, которая бы включала > NOFOLLOW, выключенную по дефолту, и в документации добавить оговорку про > Linux>=2.1.126 Речь видимо не про Linux>=2.1.126, а об этом: Symbolic links in earlier components of the pathname will still be followed. -- Валентин Бартенев From gmm на csdoc.com Fri Nov 25 10:15:30 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Fri, 25 Nov 2011 12:15:30 +0200 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0YDQsNC30L7QsdGA0LDRgtGM0YHRjyDQvtGC?= =?UTF-8?B?0LrRg9C00LAg0LHQtdGA0YPRgtGB0Y8g0LvQtdCy0YvQtSBnZXQt0LfQsNC/?= =?UTF-8?B?0YDQvtGB0Ys=?= In-Reply-To: <10447e3dc4a779f012fdf884126a953d.NginxMailingListRussian@forum.nginx.org> References: <4ECE911A.2060309@csdoc.com> <10447e3dc4a779f012fdf884126a953d.NginxMailingListRussian@forum.nginx.org> Message-ID: <4ECF6AC2.6080208@csdoc.com> On 25.11.2011 2:26, valet wrote: > Gena Makhomed, жду WMZ-кошелек (можно в личку), > оплачу как и обещал 10 баксов за > правильную наводку. лучше будет эти деньги перевести сразу сюда: http://sysoev.ru/donation.html Игорь мне много раз помогал ответами на мои вопросы, так что лично я ему должен гораздо больше, чем 10 WMZ. -- Best regards, Gena From igor на sysoev.ru Fri Nov 25 10:21:11 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Fri, 25 Nov 2011 14:21:11 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <1322215010.8898.2.camel@N900> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111125065831.GP3769@apache.rbscorp.ru> <20111125092534.GC1438@nginx.com> <4ECF611A.20101@citrin.ru> <20111125094258.GD1438@nginx.com> <1322215010.8898.2.camel@N900> Message-ID: <20111125102110.GF1438@nginx.com> On Fri, Nov 25, 2011 at 04:56:50PM +0700, Мисбах-Соловь?в Вадим wrote: > On пт 25 ноя 2011 16:42:58 KRAT, Igor Sysoev wrote: > > > Нет, симлинк можно поставить в середину пути. > > И O_NOFOLLOW похоже тоже не поможет, потому что: > > > > O_NOFOLLOW > >        If pathname is a symbolic link, then the open fails.  This is a > > FreeBSD      extension, which was added to Linux in version 2.1.126. > > Symbolic links      in earlier components of the pathname will still be > > followed. > > Ну про всякие виндовсы и прочее, конечно, я не могу говорить (хотя там и симлинки не используются), но в Linux'е ветка 2.1 была чуть ли не тысячу лет назад. Сомнительно, что где-то ещё используется вообще Linux<=2.4 (ну, сам 2.4 разве что, в старых моделях роутеров. И то, уже давно все можно на 2.6 перешить). > Так что, имхо, можно добавить опцию, которая бы включала NOFOLLOW, выключенную по дефолту, и в документации добавить оговорку про Linux>=2.1.126 Это строка из линуксового мана: http://www.kernel.org/doc/man-pages/online/pages/man2/open.2.html -- Игорь Сысоев http://sysoev.ru From igor на sysoev.ru Fri Nov 25 10:27:22 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Fri, 25 Nov 2011 14:27:22 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <20111125094623.GE1438@nginx.com> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111125065831.GP3769@apache.rbscorp.ru> <20111125092534.GC1438@nginx.com> <4ECF611A.20101@citrin.ru> <20111125094258.GD1438@nginx.com> <20111125094623.GE1438@nginx.com> Message-ID: <20111125102721.GG1438@nginx.com> On Fri, Nov 25, 2011 at 01:46:23PM +0400, Igor Sysoev wrote: > On Fri, Nov 25, 2011 at 01:42:58PM +0400, Igor Sysoev wrote: > > On Fri, Nov 25, 2011 at 01:34:18PM +0400, Anton Yuzhaninov wrote: > > > On 11/25/11 13:25, Igor Sysoev wrote: > > > > http://httpd.apache.org/docs/2.2/mod/core.html#options > > > > > > > > FollowSymLinks > > > > SymLinksIfOwnerMatch > > > > > > > > This option should not be considered a security restriction, > > > > since symlink testing is subject to race conditions that > > > > make it circumventable. > > > > > > > > Отсюда возникает вопрос: имеет ли смысл тестировать каждый элемент > > > > пути при каждом запросе, если это не даёт 100% гарантии ? > > > > > > В апаче сначала делают stat, потом open? > > > > > > А если сначала открыть файл, потом сделать fstat(), не позволит ли это избежать > > > race? > > > > Нет, симлинк можно поставить в середину пути. > > И O_NOFOLLOW похоже тоже не поможет, потому что: > > > > O_NOFOLLOW > > If pathname is a symbolic link, then the open fails. This is a FreeBSD > > extension, which was added to Linux in version 2.1.126. Symbolic links > > in earlier components of the pathname will still be followed. > > Единственная 100% гарантия - mount -o nosymfollow. Solaris 10 в этмо месте выглядит интереснее: O_NOFOLLOW If the path names a symbolic link, open() fails and sets errno to ELOOP. O_NOLINKS If the link count of the named file is greater than 1, open() fails and sets errno to EMLINK. -- Игорь Сысоев http://sysoev.ru From igor на sysoev.ru Fri Nov 25 10:29:28 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Fri, 25 Nov 2011 14:29:28 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <20111125095417.GA63216@snar.spb.ru> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111125065831.GP3769@apache.rbscorp.ru> <20111125092534.GC1438@nginx.com> <20111125095417.GA63216@snar.spb.ru> Message-ID: <20111125102928.GH1438@nginx.com> On Fri, Nov 25, 2011 at 01:54:17PM +0400, Alexandre Snarskii wrote: > PS: от атаки на хардлинках это по любому не защищает. Для создания хардлинка в отличие от симлинка нужны права. Никто не мешает в этом случае просто прочитать нужные файлы. -- Игорь Сысоев http://sysoev.ru From mva на mva.name Fri Nov 25 10:43:34 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Fri, 25 Nov 2011 17:43:34 +0700 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <20111125102928.GH1438@nginx.com> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111125065831.GP3769@apache.rbscorp.ru> <20111125092534.GC1438@nginx.com> <20111125095417.GA63216@snar.spb.ru> <20111125102928.GH1438@nginx.com> Message-ID: <1322217814.8898.5.camel@N900> On пт 25 ноя 2011 17:29:28 KRAT, Igor Sysoev wrote: > On Fri, Nov 25, 2011 at 01:54:17PM +0400, Alexandre Snarskii wrote: > > > PS: от атаки на хардлинках это по любому не защищает. > > Для создания хардлинка в отличие от симлинка нужны права. > Никто не мешает в этом случае просто прочитать нужные файлы. > > > -- > Игорь Сысоев > http://sysoev.ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, mva From mdounin на mdounin.ru Fri Nov 25 10:51:30 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 25 Nov 2011 14:51:30 +0400 Subject: =?UTF-8?B?UmU6INCg0LDQt9C90YvQtSDQsNGA0YXQuNGC0LXQutGC0YPRgNGL?= In-Reply-To: <20111124194857.GN3769@apache.rbscorp.ru> References: <20111124101306.GH3769@apache.rbscorp.ru> <20111124103433.GH70072@nginx.com> <20111124103534.GI70072@nginx.com> <20111124105152.GD95664@mdounin.ru> <20111124194857.GN3769@apache.rbscorp.ru> Message-ID: <20111125105129.GJ95664@mdounin.ru> Hello! On Thu, Nov 24, 2011 at 11:48:58PM +0400, Dmitry E. Oboukhov wrote: > > > http://pubs.opengroup.org/onlinepubs/9699919799/functions/realpath.html > > > Т.е. если PATH_MAX определён, надо действовать по старому. Если > > не определён - можно пытаться использовать интерфейс из Issue 7. > > > суть в том что если PATH_MAX определен то общий путь все равно может > его превысить. это уже насколько я понял дефакто на всех системах http://pubs.opengroup.org/onlinepubs/9699919799/functions/realpath.html [ENAMETOOLONG] The length of a pathname exceeds {PATH_MAX}, or pathname resolution of a symbolic link produced an intermediate result with a length that exceeds {PATH_MAX}. И дефакто там так и есть. Maxim Dounin From snar на snar.spb.ru Fri Nov 25 10:58:48 2011 From: snar на snar.spb.ru (Alexandre Snarskii) Date: Fri, 25 Nov 2011 14:58:48 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <20111125102928.GH1438@nginx.com> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111125065831.GP3769@apache.rbscorp.ru> <20111125092534.GC1438@nginx.com> <20111125095417.GA63216@snar.spb.ru> <20111125102928.GH1438@nginx.com> Message-ID: <20111125105848.GB63216@snar.spb.ru> On Fri, Nov 25, 2011 at 02:29:28PM +0400, Igor Sysoev wrote: > > > PS: от атаки на хардлинках это по любому не защищает. > > Для создания хардлинка в отличие от симлинка нужны права. > Никто не мешает в этом случае просто прочитать нужные файлы. snar на chumadan:~/public_html>ls -la /usr/local/etc/sasldb2.db -rw-r----- 1 cyrus mail 16384 27 сен 11:25 /usr/local/etc/sasldb2.db snar на chumadan:~/public_html>id uid=1001(snar) gid=20(staff) groups=20(staff),0(wheel) snar на chumadan:~/public_html>cat /usr/local/etc/sasldb2.db cat: /usr/local/etc/sasldb2.db: Permission denied snar на chumadan:~/public_html>ln /usr/local/etc/sasldb2.db image.jpg snar на chumadan:~/public_html>ls -la image.jpg -rw-r----- 2 cyrus mail 16384 Sep 27 11:25 image.jpg snar на chumadan:~/public_html>cat image.jpg cat: image.jpg: Permission denied i.e., у меня прав на чтение этого файла как не было так и нет, но (в контексте атаки) nginx этот файл прочитать и выдать сможет. FreeBSD 8.2-STABLE i386 -- In theory, there is no difference between theory and practice. But, in practice, there is. From isk на cupid.com Fri Nov 25 11:47:52 2011 From: isk на cupid.com (Olexander Shtepa) Date: Fri, 25 Nov 2011 13:47:52 +0200 Subject: don't repeat yourself / copy and paste programming In-Reply-To: References: <4ECCB8FC.4010203@gsc-game.kiev.ua> <201111231351.45826.isk@cupid.com> Message-ID: <201111251347.52984.isk@cupid.com> > А не поделитесь, пожалуйста, темплейтом Puppet'a для nginx? Большинство манифестов заточено на нашу внутреннюю архитектуру, поэтому не могу показать. Но некоторыми не специфическими поделится могу. Вот реальный пример, как эти манифесты используются у нас (убрал несущественное здесь и поменял имена/IP): class site::front::example_com { nginx::vhost_front { "example.com": ip => "1.2.3.4", ssl => true, ssl_only => true, default_trap => "redirect", proxy_pass => "backend123", custom => "client_max_body_size 64m;", } } node "front3" inherits "front_common" { include nginx::front include site::front::example_com } ----------- следущая часть ----------- class nginx::base { package { "nginx": ensure => present } service { "nginx": enable => true, ensure => running, hasrestart => false, restart => "/sbin/service nginx reload", hasstatus => true, require => Package["nginx"], } File { mode => 0644, owner => "root", group => "root", require => Package["nginx"], } file { [ "/etc/nginx", "/etc/nginx/vhosts" ]: ensure => directory, mode => 0755, } file { "/etc/nginx/mime.types": source => "puppet:///nginx/mime.types", notify => Service["nginx"], } } define nginx::conf($keepalive=false, $pid="/var/run/nginx.pid", $error_log="/var/log/nginx/error.log", $worker_processes=1, $worker_rlimit_nofile=2000, $worker_connections=2000, $log_format_combh=false, $gzip=false, $ssl=false, $maps=false, $resolver="", $upstreams=false) { file { "$name": owner => "root", group => "root", mode => 0644, content => template("nginx/nginx.conf.erb"), notify => $notify, } } class nginx::front inherits nginx::base { nginx::conf { "/etc/nginx/nginx.conf": notify => Service["nginx"], keepalive => true, worker_processes => 4, worker_rlimit_nofile => 20000, worker_connections => 20000, gzip => true, ssl => true, resolver => "192.168.1.110", upstreams => true, maps => true, } File { mode => 0644, owner => "root", group => "root", require => Package["nginx"], notify => Service["nginx"], } file { "/etc/nginx/upstreams.conf": source => "puppet:///nginx/upstreams.conf"; "/etc/nginx/maps.conf": source => "puppet:///nginx/maps.conf"; } } define nginx::vhost_front( $ip, $port=80, $port_ssl=443, $aliases=[], $custom="", $custom_ssl="", $default=false, $default_trap="", $ssl=false, $ssl_aliases=false, $ssl_cert="", $ssl_only=false, $proxy_pass="", $redirect="", $log=true, $trap_redirect="$name") { $main_name=$name $trap_redirect_schema = $ssl_only ? { true => "https", false => "http", } $default_trap_action = $default_trap ? { "redirect" => "rewrite ^ ${trap_redirect_schema}://$trap_redirect/ permanent;", "404" => "return 404;", default => "", } file { "/etc/nginx/vhosts/$name.conf": owner => "root", group => "root", mode => 0644, content => template("nginx/vhost_front.conf.erb"), notify => Service["nginx"], } if $ssl { pki::nginx::cert { "$name": notify => Service["nginx"] } } } ----------- следущая часть ----------- # Managed by puppet user nginx; worker_processes <%= worker_processes %>; worker_rlimit_nofile <%= worker_rlimit_nofile %>; timer_resolution 1ms; error_log <%= error_log %>; pid <%= pid %>; events { use epoll; worker_connections <%= worker_connections %>; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] $request ' '"$status" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; log_format combt '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" $request_time'; log_format full '$time_local $scheme $host ' '$remote_addr "$request" "$http_referer" "$http_user_agent" $remote_user $request_length ' '$pipe $request_time $status $bytes_sent $body_bytes_sent'; log_format bad '$time_local $scheme $host ' '$remote_addr "$request" "$http_referer" "$http_user_agent" $remote_user $request_length ' '$pipe $request_time $status $bytes_sent $body_bytes_sent'; <% if log_format_combh -%> log_format combh '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" $host'; <% end -%> access_log off; log_not_found off; sendfile on; tcp_nopush on; keepalive_timeout <% if keepalive %>65<% else %>0<% end %>; tcp_nodelay on; <% if gzip -%> gzip on; gzip_buffers 8 4k; gzip_min_length 1100; gzip_types text/css application/x-javascript; gzip_disable "MSIE [1-6]\.(?!.*SV1)"; <% end -%> <% if ssl -%> ssl_protocols SSLv3 TLSv1; ssl_ciphers AES128-SHA:AES256-SHA:RC4-SHA:RC4-MD5:DES-CBC3-SHA; ssl_session_cache shared:SSL:20m; ssl_session_timeout 30m; <% end -%> <% if !resolver.empty? -%> resolver <%= resolver %>; <% end -%> client_header_buffer_size 2k; large_client_header_buffers 4 8k; client_max_body_size 10m; proxy_connect_timeout 1s; proxy_read_timeout 1h; proxy_buffer_size 32k; proxy_buffers 64 4k; server_names_hash_bucket_size 128; <% if upstreams -%> include /etc/nginx/upstreams.conf; <% end -%> <%if maps -%> include /etc/nginx/maps.conf; <% end -%> include /etc/nginx/vhosts/*.conf; } ----------- следущая часть ----------- #Managed by Puppet <% if !default_trap.empty? -%> # trap for bad Host requests <% if !ssl_only -%> server { listen <%= ip %>:<%= port %> default; server_name _; <% if log -%> access_log /var/log/nginx/bad.log bad; <% end -%> <%= default_trap_action %> } <% end -%> <% if ssl -%> server { listen <%= ip %>:<%= port_ssl %> default; server_name _; ssl on; <% if ssl_cert.empty? -%> ssl_certificate /etc/pki/nginx/ssl.crt/<%= main_name %>.crt; ssl_certificate_key /etc/pki/nginx/ssl.key/<%= main_name %>.key; <% else -%> ssl_certificate /etc/pki/nginx/ssl.crt/<%= ssl_cert %>.crt; ssl_certificate_key /etc/pki/nginx/ssl.key/<%= ssl_cert %>.key; <% end -%> <% if log -%> access_log /var/log/nginx/bad.log bad; <% end -%> <%= default_trap_action %> } <% end -%> <% end -%> <% if !ssl_only -%> server { listen <%= ip %>:<%= port %><% if default %> default<% end %>; server_name <%= main_name %><% aliases.each do |arg| %> <%= arg %><% end %>; <% if log -%> access_log /var/log/nginx/access_log full; <% end -%> <% if !proxy_pass.empty? -%> location / { proxy_pass http://<%= proxy_pass %>; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; <% if ssl -%> proxy_set_header X-SCHEME $scheme; <% end -%> proxy_redirect off; } <% end -%> <% if !redirect.empty? -%> rewrite <%= redirect %> permanent; <% end -%> <%= custom -%> } <% end -%> <% if ssl -%> server { listen <%= ip %>:<%= port_ssl %>; server_name <%= main_name %><% if ssl_aliases %><% aliases.each do |arg| %> <%= arg %><% end %><% end %>; <% if log -%> access_log /var/log/nginx/access_log full; <% end -%> ssl on; <% if ssl_cert.empty? -%> ssl_certificate /etc/pki/nginx/ssl.crt/<%= main_name %>.crt; ssl_certificate_key /etc/pki/nginx/ssl.key/<%= main_name %>.key; <% else -%> ssl_certificate /etc/pki/nginx/ssl.crt/<%= ssl_cert %>.crt; ssl_certificate_key /etc/pki/nginx/ssl.key/<%= ssl_cert %>.key; <% end -%> <% if !proxy_pass.empty? -%> location / { proxy_pass http://<%= proxy_pass %>; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; <% if ssl -%> proxy_set_header X-SCHEME $scheme; <% end -%> proxy_redirect off; } <% end -%> <% if !custom_ssl.empty? -%> <%= custom_ssl -%> <% else -%> <%= custom -%> <% end -%> } <% end -%> From nobody.mail на gmail.com Fri Nov 25 11:58:10 2011 From: nobody.mail на gmail.com (=?UTF-8?B?0JrQvtGB0YLQtdC90LrQviDQldCy0LPQtdC90LjQuQ==?=) Date: Fri, 25 Nov 2011 15:58:10 +0400 Subject: =?UTF-8?Q?proxy=5Fcache=2C_cache_miss_=D0=B8_byte_range?= Message-ID: Всем доброго времени суток! В используемой схеме origin-сервер (весь контент) и раздающие geo-коробки с proxy_cache на борту. Было выявлено два "неприятных" момента: 1) Клиент качает c geo-коробки в N потоков файл, которого еще нет в кэше - в итоге в proxy_temp пролетает N*размер файла. Некий разгогрев кеша не подходит, т.к. на раздающих коробках места меньше, чем на origin-сервере и невозможно предсказать "нужное" наполнение кеша. Можно (и целесообразно ли?) как-то ограничить прокачку подобного "лишнего" трафика? 2) Если в кеше ЕЩЕ нет файла, а клиент качает 2+ потока, то клиент получает 200 вместо 206 и весь файл, а не запрошенный Range. Этот вопрос уже обсуждался, судя по наличию ветки в форуме ( http://forum.nginx.org/read.php?2,215141,215141), но как я понял ничем и не закончилось. Корректна ли отдача 200 вместо 206 (при указании Range и Cache miss)? Клиент должен обрабатывать такое поведение, либо в этом случае nginx отвечает "неправильно"? -- С Уважением, Костенко Евгений моб: +7(928)2961142 icq: 101241013 jabber: nobody.mail на gmail.com skype: nobody.ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From mdounin на mdounin.ru Fri Nov 25 12:16:49 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 25 Nov 2011 16:16:49 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <20111125105848.GB63216@snar.spb.ru> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111125065831.GP3769@apache.rbscorp.ru> <20111125092534.GC1438@nginx.com> <20111125095417.GA63216@snar.spb.ru> <20111125102928.GH1438@nginx.com> <20111125105848.GB63216@snar.spb.ru> Message-ID: <20111125121649.GM95664@mdounin.ru> Hello! On Fri, Nov 25, 2011 at 02:58:48PM +0400, Alexandre Snarskii wrote: > On Fri, Nov 25, 2011 at 02:29:28PM +0400, Igor Sysoev wrote: > > > > > PS: от атаки на хардлинках это по любому не защищает. > > > > Для создания хардлинка в отличие от симлинка нужны права. > > Никто не мешает в этом случае просто прочитать нужные файлы. > > snar на chumadan:~/public_html>ls -la /usr/local/etc/sasldb2.db > -rw-r----- 1 cyrus mail 16384 27 сен 11:25 /usr/local/etc/sasldb2.db > snar на chumadan:~/public_html>id > uid=1001(snar) gid=20(staff) groups=20(staff),0(wheel) > snar на chumadan:~/public_html>cat /usr/local/etc/sasldb2.db > cat: /usr/local/etc/sasldb2.db: Permission denied > snar на chumadan:~/public_html>ln /usr/local/etc/sasldb2.db image.jpg > snar на chumadan:~/public_html>ls -la image.jpg > -rw-r----- 2 cyrus mail 16384 Sep 27 11:25 image.jpg > snar на chumadan:~/public_html>cat image.jpg > cat: image.jpg: Permission denied > > i.e., у меня прав на чтение этого файла как не было так и нет, > но (в контексте атаки) nginx этот файл прочитать и выдать сможет. > > FreeBSD 8.2-STABLE i386 http://pubs.opengroup.org/onlinepubs/9699919799/functions/link.html ... The implementation may require that the calling process has permission to access the existing file. ... [EACCES] A component of either path prefix denies search permission, or the requested link requires writing in a directory that denies write permission, or the calling process does not have permission to access the existing file and this is required by the implementation. В общем случае - нужно отбирать search permissions на path prefix. Maxim Dounin From mdounin на mdounin.ru Fri Nov 25 12:18:59 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 25 Nov 2011 16:18:59 +0400 Subject: =?UTF-8?Q?Re=3A_proxy=5Fcache=2C_cache_miss_=D0=B8_byte_range?= In-Reply-To: References: Message-ID: <20111125121859.GN95664@mdounin.ru> Hello! On Fri, Nov 25, 2011 at 03:58:10PM +0400, Костенко Евгений wrote: > Всем доброго времени суток! > > В используемой схеме origin-сервер (весь контент) и раздающие geo-коробки с > proxy_cache на борту. > Было выявлено два "неприятных" момента: > > 1) Клиент качает c geo-коробки в N потоков файл, которого еще нет в кэше - > в итоге в proxy_temp пролетает N*размер файла. > Некий разгогрев кеша не подходит, т.к. на раздающих коробках места меньше, > чем на origin-сервере и невозможно предсказать "нужное" наполнение кеша. > > Можно (и целесообразно ли?) как-то ограничить прокачку подобного "лишнего" > трафика? google: busy locks site:nginx.org > 2) Если в кеше ЕЩЕ нет файла, а клиент качает 2+ потока, то клиент получает > 200 вместо 206 и весь файл, а не запрошенный Range. > Этот вопрос уже обсуждался, судя по наличию ветки в форуме ( > http://forum.nginx.org/read.php?2,215141,215141), но как я понял ничем и не > закончилось. > > Корректна ли отдача 200 вместо 206 (при указании Range и Cache miss)? > Клиент должен обрабатывать такое поведение, либо в этом случае nginx > отвечает "неправильно"? Корректна. Maxim Dounin From nginx-forum на nginx.us Fri Nov 25 13:06:37 2011 From: nginx-forum на nginx.us (igor.goncharenko) Date: Fri, 25 Nov 2011 08:06:37 -0500 Subject: php-fpm upstream pool Message-ID: Hi! Тестирую php-fpm пул и nginx балансером к нему. Требования - если один или несколько из серверов пула начинают отвечать дольше чем 30 сек - запрос отправлять на другой сервер пула: nginx.conf: http { {skip} fastcgi_connect_timeout 3; fastcgi_next_upstream error timeout invalid_header; fastcgi_read_timeout 30; fastcgi_send_timeout 3; {skip} vhost.conf: {skip} upstream fcgi_proxy { server 10.0.0.10:9000 max_fails=1 fail_timeout=240s; # answer more than 60 sec server 10.0.0.11:9000 max_fails=1 fail_timeout=240s; # answer more than 60 sec server 10.0.0.12:9000 max_fails=1 fail_timeout=240s; # ok } location ~ ^/fcgi_proxy/$ { include /usr/local/etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME /home/fcgi_proxy/index.php; fastcgi_param HOST $host; fastcgi_pass fcgi_proxy; allow all; } {skip} Пул работает отлично пока два сервера их трех начинают отвечать долго (см коментарий в upstream, эмулируем timeout больше 30 сек). В этом случае проскакивают такие ошибки: 10.0.0.1 - - [25/Nov/2011:12:38:26 +0000] "GET /fcgi-proxy/ HTTP/1.1" 504 1205 "-" "JoeDog/1.00 [en] (X11; I; Siege 2.70)" "-" "10.0.0.10:9000, 10.0.0.11:9000 : 10.0.0.12:80 504, 504 : 404 - 30.008, 30.007 : 0.002" 60.017 SSL:-/- "gzip:-" То-есть 2 первых сервера их пула "ответили" 504 (не отработали по таймауту), третий отработал правильно и вызад 404 (в данном случае это корректный ответ), но клиент все равно получил 504 ответ, хотя как я понимаю, должен был получить 404. и вот это еще странно 10.0.0.12:80 - откуда берется 80 порт? Таких ошибок всего 5 из 5000 (1000 concurrent = 5): $siege fcgi-proxy-test.com/fcgi-proxy/ -d1 -r1000 Transactions: 4995 hits Availability: 99.90 % {skip} Failed transactions: 5 лог siege: HTTP/1.1 404 0.01 secs: 41 bytes ==> /fcgi-proxy/ {skip} HTTP/1.1 504 60.02 secs: 1205 bytes ==> /fcgi-proxy/ HTTP/1.1 504 60.04 secs: 1205 bytes ==> /fcgi-proxy/ HTTP/1.1 504 60.02 secs: 1205 bytes ==> /fcgi-proxy/ HTTP/1.1 504 60.03 secs: 1205 bytes ==> /fcgi-proxy/ HTTP/1.1 504 60.02 secs: 1205 bytes ==> /fcgi-proxy/ {skip} HTTP/1.1 404 0.00 secs: 41 bytes ==> /fcgi-proxy/ Siege сам не рвет сессии (у него стоит timeout = 600 и тогда я бы видел в логе 499 ошибку). Подскажите, что не так в этой конфигурации пула? freebsd 8.2 i386/nginx-1.0.10_1,1 --- Igor Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219032,219032#msg-219032 From sergey.kobzar на itcraft.org Fri Nov 25 14:36:36 2011 From: sergey.kobzar на itcraft.org (Sergey Kobzar) Date: Fri, 25 Nov 2011 16:36:36 +0200 Subject: Dead backend detection In-Reply-To: <4ECCF0E9.6000008@itcraft.org> References: <4ECC2735.5060206@itcraft.org> <20111123075415.GM95664@mdounin.ru> <4ECCC3A9.5090202@itcraft.org> <20111123125339.GR95664@mdounin.ru> <4ECCF0E9.6000008@itcraft.org> Message-ID: <4ECFA7F4.8060202@itcraft.org> Что-то совсем запутался... Ушел ответ с бэкенда, все ОК 200: 207.241.237.226 - - [25/Nov/2011:14:28:11 +0000] "GET /Companies/t-d-advertising-marketing/0210001218642 HTTP/1.0" 200 62021 "-" "Mozilla/5.0 (compatible; archive.org_bot +http://www.archive.org/details/archive.org_bot)" "-" ловлю его фронтэндом: 207.241.237.226 - - [25/Nov/2011:14:28:11 +0000] "GET /Companies/t-d-advertising-marketing/0210001218642 HTTP/1.0" 502 9574 "-" "Mozilla/5.0 (compatible; archive.org_bot +http://www.archive.org/details/archive.org_bot)" "-" 10.17.92.2:80 502 0.055 502 ошибка. Последние 3 поля: - бэкенд - код ответа от бэкенда - время ответа конфиг фронтенда: upstream backend { server 10.17.92.2 max_fails=3 fail_timeout=300s; # server 10.17.92.12 max_fails=3 fail_timeout=300s; # server 127.0.0.1 backup; ip_hash; } server { listen 80 default; server_name localhost; access_log /var/log/nginx/default_access.log main; error_log /var/log/nginx/default_error.log info; location / { proxy_pass http://backend; # proxy_next_upstream error timeout http_502 http_504; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } error_page 502 504 /errors/500.html; location ^~ /errors/ { root /home/www/localhost/htdocs; expires max; } } Что не так? From mdounin на mdounin.ru Fri Nov 25 14:38:41 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 25 Nov 2011 18:38:41 +0400 Subject: =?UTF-8?B?UmU6INCg0LDRgdGI0LjRgNC10L3QuNC1INGE0YPQvdC60LjQvtC90LDQu9CwIG5n?= =?UTF-8?B?eCBlc2NhcGUgaHRtbA==?= In-Reply-To: <3d7bb9cac5fa7eb5f388750ecbb95cd3.NginxMailingListRussian@forum.nginx.org> References: <20111016163444.GL1137@mdounin.ru> <3d7bb9cac5fa7eb5f388750ecbb95cd3.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111125143841.GR95664@mdounin.ru> Hello! On Wed, Nov 23, 2011 at 12:15:22PM -0500, kavkaz wrote: > Up > > Пожелалка актуальна. > Можно? Да. А можно мне в почту (mdounin at mdounin.ru) имя на русском/английском, для CHANGES? Maxim Dounin From mdounin на mdounin.ru Fri Nov 25 14:43:52 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 25 Nov 2011 18:43:52 +0400 Subject: php-fpm upstream pool In-Reply-To: References: Message-ID: <20111125144352.GS95664@mdounin.ru> Hello! On Fri, Nov 25, 2011 at 08:06:37AM -0500, igor.goncharenko wrote: > Hi! > > Тестирую php-fpm пул и nginx балансером к > нему. Требования - если один или > несколько из серверов пула начинают > отвечать дольше чем 30 сек - запрос > отправлять на другой сервер пула: > > nginx.conf: > > http { > > {skip} > > fastcgi_connect_timeout 3; > fastcgi_next_upstream error timeout invalid_header; > fastcgi_read_timeout 30; > fastcgi_send_timeout 3; > > {skip} > > vhost.conf: > > {skip} > > upstream fcgi_proxy { > server 10.0.0.10:9000 max_fails=1 fail_timeout=240s; # answer more > than 60 sec > server 10.0.0.11:9000 max_fails=1 fail_timeout=240s; # answer more > than 60 sec > server 10.0.0.12:9000 max_fails=1 fail_timeout=240s; # ok > } > > > location ~ ^/fcgi_proxy/$ { > > include /usr/local/etc/nginx/fastcgi_params; > > fastcgi_param SCRIPT_FILENAME /home/fcgi_proxy/index.php; > fastcgi_param HOST $host; > fastcgi_pass fcgi_proxy; > > allow all; > } > > {skip} > > Пул работает отлично пока два сервера > их трех начинают отвечать долго (см > коментарий в upstream, эмулируем timeout > больше 30 сек). В этом случае > проскакивают такие ошибки: > > 10.0.0.1 - - [25/Nov/2011:12:38:26 +0000] "GET /fcgi-proxy/ HTTP/1.1" > 504 1205 "-" "JoeDog/1.00 [en] (X11; I; Siege 2.70)" "-" > "10.0.0.10:9000, 10.0.0.11:9000 : 10.0.0.12:80 504, 504 : 404 - 30.008, > 30.007 : 0.002" 60.017 SSL:-/- "gzip:-" > > То-есть 2 первых сервера их пула > "ответили" 504 (не отработали по > таймауту), третий отработал правильно и > вызад 404 (в данном случае это корректный > ответ), но клиент все равно получил 504 > ответ, хотя как я понимаю, должен был > получить 404. > > и вот это еще странно 10.0.0.12:80 - откуда > берется 80 порт? После ":" - это уже работа с другими upstream'ами, видимо после срабатывания error_page. В первой части сервер 10.0.0.12:9000, судя по всему, был ранее признан негодным, и потому на него даже не пытались ходить. Maxim Dounin From nginx-forum на nginx.us Fri Nov 25 14:50:05 2011 From: nginx-forum на nginx.us (adept) Date: Fri, 25 Nov 2011 09:50:05 -0500 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> Message-ID: <29c4e8ddb1fbd2ab7d5ec2e59bcf2a6e.NginxMailingListRussian@forum.nginx.org> Ух, тут написали сколько. Собственно про багу, она опасна в первую очередь на шаредах, но в любом случае, у меня свой сервер, с исп на боту, mpm-itk, будет не очень приятно, если через nginx смогут достать файлы. Есть варианты, как закрыть в данный момент багу? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218970,219038#msg-219038 From onokonem на gmail.com Fri Nov 25 14:56:00 2011 From: onokonem на gmail.com (Daniel Podolsky) Date: Fri, 25 Nov 2011 17:56:00 +0300 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <29c4e8ddb1fbd2ab7d5ec2e59bcf2a6e.NginxMailingListRussian@forum.nginx.org> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <29c4e8ddb1fbd2ab7d5ec2e59bcf2a6e.NginxMailingListRussian@forum.nginx.org> Message-ID: > Есть варианты, как закрыть в данный > момент багу? не пускать пользователей шелом или не давать им доступ на создание симлинков, доступных nginx на чтение. From mva на mva.name Fri Nov 25 15:05:56 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Fri, 25 Nov 2011 22:05:56 +0700 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <29c4e8ddb1fbd2ab7d5ec2e59bcf2a6e.NginxMailingListRussian@forum.nginx.org> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <29c4e8ddb1fbd2ab7d5ec2e59bcf2a6e.NginxMailingListRussian@forum.nginx.org> Message-ID: <1322233556.10256.2.camel@N900> Во-первых, написано же в самом начале, это не баг, это just as planned. И сейчас обсуждается, стоит ли делать костыль для этого. Так же тут написано, что даже в апаче запрет хождения по симлинкам не стоит использовать для повышения безопасности. Ну и в конце концов Игорь написал единственное 100% решение: mount -o nosymfollow (или как там опция) On пт 25 ноя 2011 21:50:05 KRAT, adept wrote: > Ух, тут написали сколько. Собственно > про багу, она опасна в первую очередь на > шаредах, но в любом случае, у меня свой > сервер, с исп на боту, mpm-itk, будет не > очень приятно, если через nginx смогут > достать файлы. > Есть варианты, как закрыть в данный > момент багу? > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,218970,219038#msg-219038 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, mva From igor на sysoev.ru Fri Nov 25 15:09:26 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Fri, 25 Nov 2011 19:09:26 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <1322233556.10256.2.camel@N900> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <29c4e8ddb1fbd2ab7d5ec2e59bcf2a6e.NginxMailingListRussian@forum.nginx.org> <1322233556.10256.2.camel@N900> Message-ID: <20111125150926.GD6241@nginx.com> On Fri, Nov 25, 2011 at 10:05:56PM +0700, Мисбах-Соловь?в Вадим wrote: > Во-первых, написано же в самом начале, это не баг, это just as planned. И сейчас обсуждается, стоит ли делать костыль для этого. > > Так же тут написано, что даже в апаче запрет хождения по симлинкам не стоит использовать для повышения безопасности. > > Ну и в конце концов Игорь написал единственное 100% решение: mount -o nosymfollow (или как там опция) Но и это решение не спасает от хардлинков, как уже было показано. -- Игорь Сысоев http://sysoev.ru From nginx-forum на nginx.us Fri Nov 25 15:11:22 2011 From: nginx-forum на nginx.us (igor.goncharenko) Date: Fri, 25 Nov 2011 10:11:22 -0500 Subject: php-fpm upstream pool In-Reply-To: References: Message-ID: Нет, как раз 3-й 10.0.0.12:9000 годный а первые два - нет. Скорее всего, он идет на 10.0.0.12:80 потому что принятно решение что пул нерабочий полностью (но мы знаем, что один из fcgi пула живой), и nginx идет за ошибкой на бэкенд (он у меня собпадает с одним из пулов). Сейчас я попробую с полностью разнесенными 4-мя fcgi серверами. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219032,219044#msg-219044 From onokonem на gmail.com Fri Nov 25 15:15:35 2011 From: onokonem на gmail.com (Daniel Podolsky) Date: Fri, 25 Nov 2011 18:15:35 +0300 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <20111125150926.GD6241@nginx.com> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <29c4e8ddb1fbd2ab7d5ec2e59bcf2a6e.NginxMailingListRussian@forum.nginx.org> <1322233556.10256.2.camel@N900> <20111125150926.GD6241@nginx.com> Message-ID: > Но и это решение не спасает от хардлинков, как уже было показано. Хардлинк нельзя сделать на директорию, так что имена файлов прийдется угадывать. Но это слабое утешение... From nefer05 на gmail.com Fri Nov 25 15:28:42 2011 From: nefer05 на gmail.com (Nefer) Date: Fri, 25 Nov 2011 19:28:42 +0400 Subject: php-fpm upstream pool In-Reply-To: References: Message-ID: <4ECFB42A.1070704@gmail.com> On 11/25/11 19:11, igor.goncharenko wrote: > Нет, как раз 3-й 10.0.0.12:9000 годный > а первые два - нет. > > Скорее всего, он идет на 10.0.0.12:80 потому А может посмотреть в логах бэкэнда куда он сходил и что ему ответили? Зачем гадать на пустом месте? From nginx-forum на nginx.us Fri Nov 25 15:36:23 2011 From: nginx-forum на nginx.us (adept) Date: Fri, 25 Nov 2011 10:36:23 -0500 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> Message-ID: <56d75bcf8442b0b263728e1222db2045.NginxMailingListRussian@forum.nginx.org> Даже угадывать особо не надо, большинство сайтов сейчас на цмс, узнать путь к конфигу не вызывает проблем. Даже если самопис, расковырять можно без проблем. В любом случае, очень неприятный момент, хотелось бы решить как можно быстрее. Будем ждать обновления nginx'a. Спасибо Игорю что откликнулся. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218970,219050#msg-219050 From neo на miritec.com Fri Nov 25 15:38:37 2011 From: neo на miritec.com (=?KOI8-R?B?4NLJyiDnz87ewdLP1w==?=) Date: Fri, 25 Nov 2011 17:38:37 +0200 Subject: =?UTF-8?B?0KHQu9C+0LbQvdGL0Lkg0YDQtdCy0YDQsNC50YI=?= Message-ID: Приветствую всех. Ковырял пол дня и так не смог побороть. Помогите разрешить задачу. Есть http://domain.com Если файл (или папка) не существует для http://domain.com/anyfolder/somethingelseunknown то нужно реврайт на http://domain.com/anyfolder/front.php (если два уровня вложенности, все равно брать первую папку, т.е. для http://domain.com/anyfolder/anyfolderinside/somethingelseunknown нужен реврайт на http://domain.com/anyfolder/front.php) anyfolder - может быть любой. В тоже время если вызывать http://domain.com/somethingelseunknown или если при попытке реврайта на http://domain.com/anyfolder/front.php - http://domain.com/anyfolder/front.php - не будет существовать (или файла front.php нет или вообще нет папки anyfolder) - то тогда реврайтить на http://domain.com/public/front.php Попробую обобщить 1. Если файл не существует И есть хотя бы одна папка в URI - то попробовать http://domain.com/anyfolder/front.php 2. (Если файл не существует И перейти по 1. не удалось) ИЛИ (в URI нет папок (типа http://domain.com/wrongfile)) то на http://domain.com/public/front.php Очень жду. Спасибо -- NEO83-RIPE From onokonem на gmail.com Fri Nov 25 15:50:11 2011 From: onokonem на gmail.com (Daniel Podolsky) Date: Fri, 25 Nov 2011 18:50:11 +0300 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <56d75bcf8442b0b263728e1222db2045.NginxMailingListRussian@forum.nginx.org> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <56d75bcf8442b0b263728e1222db2045.NginxMailingListRussian@forum.nginx.org> Message-ID: > Будем ждать обновления nginx'a. А при чем тут nginx? From nginx-forum на nginx.us Fri Nov 25 16:01:31 2011 From: nginx-forum на nginx.us (adept) Date: Fri, 25 Nov 2011 11:01:31 -0500 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: References: Message-ID: <72cda49114ed24a5c586fbb26a5e5f31.NginxMailingListRussian@forum.nginx.org> Daniel Podolsky Wrote: ------------------------------------------------------- > > Будем ждать обновления > nginx'a. > А при чем тут nginx? > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Надеюсь, в будущем увидеть возможность проверки путей в нем. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218970,219054#msg-219054 From mdounin на mdounin.ru Fri Nov 25 16:02:11 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 25 Nov 2011 20:02:11 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <29c4e8ddb1fbd2ab7d5ec2e59bcf2a6e.NginxMailingListRussian@forum.nginx.org> <1322233556.10256.2.camel@N900> <20111125150926.GD6241@nginx.com> Message-ID: <20111125160210.GU95664@mdounin.ru> Hello! On Fri, Nov 25, 2011 at 06:15:35PM +0300, Daniel Podolsky wrote: > > Но и это решение не спасает от хардлинков, как уже было показано. > Хардлинк нельзя сделать на директорию, так что имена файлов прийдется > угадывать. Но это слабое утешение... Как я уже писал, от хардлинков прекрасно помогает отобрать search permissions. Угадывать не может, просто не дадут создать хардлинк. Maxim Dounin From nginx-forum на nginx.us Fri Nov 25 16:18:58 2011 From: nginx-forum на nginx.us (adept) Date: Fri, 25 Nov 2011 11:18:58 -0500 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> Message-ID: Вроде как есть патч от Степана Федорова, решающий проблему, но что-то не могу его найти. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218970,219057#msg-219057 From nginx-forum на nginx.us Fri Nov 25 16:24:12 2011 From: nginx-forum на nginx.us (igor.goncharenko) Date: Fri, 25 Nov 2011 11:24:12 -0500 Subject: php-fpm upstream pool In-Reply-To: References: Message-ID: <2c2c0543ce78f05a90335101504307ef.NginxMailingListRussian@forum.nginx.org> В такой конфигурации еще интереснее: upstream fcgi_proxy { server 10.0.30.77:9000 max_fails=1 fail_timeout=240s; # answer more than 60 sec server 10.0.30.77:9001 max_fails=1 fail_timeout=240s; # answer more than 60 sec server 10.0.30.77:9002 max_fails=1 fail_timeout=240s; # answer more than 60 sec server 10.0.30.73:9000 max_fails=1 fail_timeout=240s; # ok } то-есть на 3-х серверах скрипт выполняется 60 сек, 4-й - нормальный. Получаем в логах: 10.0.0.1 - - [25/Nov/2011:15:41:54 +0000] "GET /fcgi-proxy/ HTTP/1.1" 502 1205 "-" "JoeDog/1.00 [en] (X11; I; Siege 2.70)" "-" "10.0.0.77:9000, fcgi_proxy : 10.0.0.12:80 504, 502 : 404 - 30.013, 0.000 : 0.093" 30.106 SSL:-/- "gzip:-" 502 непонятно пчему и вместо ip:port подставлено имя апстрима fcgi_proxy. 10.0.0.1 - - [25/Nov/2011:15:42:25 +0000] "GET /fcgi-proxy/ HTTP/1.1" 504 1205 "-" "JoeDog/1.00 [en] (X11; I; Siege 2.70)" "-" "10.0.0.77:9000, 10.0.0.77:9001 : 10.0.0.12:80 504, 504 : 404 - 30.012, 30.003 : 0.001" 60.016 SSL:-/- "gzip:-" 10.0.0.1 - - [25/Nov/2011:15:42:26 +0000] "GET /fcgi-proxy/ HTTP/1.1" 504 1205 "-" "JoeDog/1.00 [en] (X11; I; Siege 2.70)" "-" "10.0.0.77:9000, 10.0.0.77:9001 : 10.0.0.12:80 504, 504 : 404 - 30.009, 30.001 : 0.001" 60.011 SSL:-/- "gzip:-" вот это "10.0.0.12:80" нормальный бэкенд с апачем и в его логах: 10.0.0.1 fcgi-proxy.com 10.0.30.111 - - [25/Nov/2011:15:41:54 +0000] "GET /fcgi-proxy/ HTTP/1.0" 404 1205 "-" "JoeDog/1.00 [en] (X11; I; Siege 2.70)" /home/www/http_error/404.html 76304/676335936 - - то-есть идет уже за ошибкой 404. Получается, что если nginx прерывает коннект к первому, а потом ко второму fcgi серверу (оба по таймауту) , в сумме получается 30+30=60 сек, то на третий уже как бы идти нет смысла и он идет на бэкенд за ошибкой? Так? --- Igor Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219032,219058#msg-219058 From nginx-forum на nginx.us Fri Nov 25 16:41:09 2011 From: nginx-forum на nginx.us (adept) Date: Fri, 25 Nov 2011 11:41:09 -0500 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> Message-ID: Вот пачт: http://www.lexa.ru/nginx-ru/msg14919.html Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218970,219060#msg-219060 From mdounin на mdounin.ru Fri Nov 25 17:06:50 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 25 Nov 2011 21:06:50 +0400 Subject: Dead backend detection In-Reply-To: <4ECFA7F4.8060202@itcraft.org> References: <4ECC2735.5060206@itcraft.org> <20111123075415.GM95664@mdounin.ru> <4ECCC3A9.5090202@itcraft.org> <20111123125339.GR95664@mdounin.ru> <4ECCF0E9.6000008@itcraft.org> <4ECFA7F4.8060202@itcraft.org> Message-ID: <20111125170650.GW95664@mdounin.ru> Hello! On Fri, Nov 25, 2011 at 04:36:36PM +0200, Sergey Kobzar wrote: > Что-то совсем запутался... > > Ушел ответ с бэкенда, все ОК 200: > > 207.241.237.226 - - [25/Nov/2011:14:28:11 +0000] "GET > /Companies/t-d-advertising-marketing/0210001218642 HTTP/1.0" 200 > 62021 "-" "Mozilla/5.0 (compatible; archive.org_bot > +http://www.archive.org/details/archive.org_bot)" "-" > > ловлю его фронтэндом: > 207.241.237.226 - - [25/Nov/2011:14:28:11 +0000] "GET > /Companies/t-d-advertising-marketing/0210001218642 HTTP/1.0" 502 > 9574 "-" "Mozilla/5.0 (compatible; archive.org_bot > +http://www.archive.org/details/archive.org_bot)" "-" 10.17.92.2:80 > 502 0.055 > > 502 ошибка. Последние 3 поля: > - бэкенд > - код ответа от бэкенда Всмысле - $upstream_status? Там будет 502, если например бекенд ответил некорректно. Ну и ещё я бы рекомендовал лишний раз убедиться, что запрос действительно правильно идентифицирован. > - время ответа > > конфиг фронтенда: > > upstream backend { > server 10.17.92.2 max_fails=3 fail_timeout=300s; > # server 10.17.92.12 max_fails=3 fail_timeout=300s; > # server 127.0.0.1 backup; > ip_hash; > } > > server { > listen 80 default; > server_name localhost; > > access_log /var/log/nginx/default_access.log main; > error_log /var/log/nginx/default_error.log info; > > location / { > proxy_pass http://backend; > # proxy_next_upstream error timeout http_502 http_504; > > proxy_set_header Host $host; > proxy_set_header X-Real-IP $remote_addr; > proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; > } > > error_page 502 504 /errors/500.html; > > location ^~ /errors/ { > root /home/www/localhost/htdocs; > expires max; > } > } > > Что не так? Обычно помогает заглянуть в error_log. Maxim Dounin From sergey.kobzar на itcraft.org Fri Nov 25 17:57:04 2011 From: sergey.kobzar на itcraft.org (Sergey Kobzar) Date: Fri, 25 Nov 2011 19:57:04 +0200 Subject: Dead backend detection In-Reply-To: <20111125170650.GW95664@mdounin.ru> References: <4ECC2735.5060206@itcraft.org> <20111123075415.GM95664@mdounin.ru> <4ECCC3A9.5090202@itcraft.org> <20111123125339.GR95664@mdounin.ru> <4ECCF0E9.6000008@itcraft.org> <4ECFA7F4.8060202@itcraft.org> <20111125170650.GW95664@mdounin.ru> Message-ID: <4ECFD6F0.9080606@itcraft.org> On 11/25/11 19:06, Maxim Dounin wrote: > Hello! > > On Fri, Nov 25, 2011 at 04:36:36PM +0200, Sergey Kobzar wrote: > >> Что-то совсем запутался... >> >> Ушел ответ с бэкенда, все ОК 200: >> >> 207.241.237.226 - - [25/Nov/2011:14:28:11 +0000] "GET >> /Companies/t-d-advertising-marketing/0210001218642 HTTP/1.0" 200 >> 62021 "-" "Mozilla/5.0 (compatible; archive.org_bot >> +http://www.archive.org/details/archive.org_bot)" "-" >> >> ловлю его фронтэндом: >> 207.241.237.226 - - [25/Nov/2011:14:28:11 +0000] "GET >> /Companies/t-d-advertising-marketing/0210001218642 HTTP/1.0" 502 >> 9574 "-" "Mozilla/5.0 (compatible; archive.org_bot >> +http://www.archive.org/details/archive.org_bot)" "-" 10.17.92.2:80 >> 502 0.055 >> >> 502 ошибка. Последние 3 поля: >> - бэкенд >> - код ответа от бэкенда > > Всмысле - $upstream_status? Там будет 502, если например бекенд > ответил некорректно. Угу. Но почему с бэкенда улетает 200, а с фронтенда 502? > Ну и ещё я бы рекомендовал лишний раз убедиться, что запрос > действительно правильно идентифицирован. Не понял. >> - время ответа >> >> конфиг фронтенда: >> >> upstream backend { >> server 10.17.92.2 max_fails=3 fail_timeout=300s; >> # server 10.17.92.12 max_fails=3 fail_timeout=300s; >> # server 127.0.0.1 backup; >> ip_hash; >> } >> >> server { >> listen 80 default; >> server_name localhost; >> >> access_log /var/log/nginx/default_access.log main; >> error_log /var/log/nginx/default_error.log info; >> >> location / { >> proxy_pass http://backend; >> # proxy_next_upstream error timeout http_502 http_504; >> >> proxy_set_header Host $host; >> proxy_set_header X-Real-IP $remote_addr; >> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; >> } >> >> error_page 502 504 /errors/500.html; >> >> location ^~ /errors/ { >> root /home/www/localhost/htdocs; >> expires max; >> } >> } >> >> Что не так? > > Обычно помогает заглянуть в error_log. :) Ну там (error log на бэкенде) относительно чисто. Периодически проскакивет 2011/11/25 17:51:17 [info] 12202#0: *1707332 client closed prematurely connection, so upstream connection is closed too while sending request to upstream, client: 163.178.119.90, server: localhost, request: "GET /locations/San-jose/San-pedro HTTP/1.0", upstream: "fastcgi://127.0.0.1:9001", host: "www.abc.com", referrer: "http://www.abc.com/Companies/barber%C3%ADa-rex/1310003560" tail -f /var/log/nginx/default_access.log | grep 'HTTP/1.0" 502' Вообще молчит как партизан. На фронтенде в error_log только записи типа 2011/11/25 17:55:00 [info] 4267#0: *4238782 client 94.63.71.59 closed keepalive connection 2011/11/25 17:55:00 [info] 4256#0: *4248177 client 66.249.71.70 closed keepalive connection 2011/11/25 17:55:00 [info] 4261#0: *4249970 client 207.46.199.54 closed keepalive connection (104: Connection reset by peer) 2011/11/25 17:55:00 [info] 4270#0: *4249800 recv() failed (104: Connection reset by peer) while sending to client, client: 123.125.71.113, server: localhost, request: "GET /hk/Companies/m-two/11600063595 HTTP/1.1", upstream: "http://10.17.92.2:80/hk/Companies/m-two/11600063595", host: "abc.com" > > Maxim Dounin > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From sergey.kobzar на itcraft.org Fri Nov 25 18:01:33 2011 From: sergey.kobzar на itcraft.org (Sergey Kobzar) Date: Fri, 25 Nov 2011 20:01:33 +0200 Subject: Dead backend detection In-Reply-To: <4ECFD6F0.9080606@itcraft.org> References: <4ECC2735.5060206@itcraft.org> <20111123075415.GM95664@mdounin.ru> <4ECCC3A9.5090202@itcraft.org> <20111123125339.GR95664@mdounin.ru> <4ECCF0E9.6000008@itcraft.org> <4ECFA7F4.8060202@itcraft.org> <20111125170650.GW95664@mdounin.ru> <4ECFD6F0.9080606@itcraft.org> Message-ID: <4ECFD7FD.9080400@itcraft.org> On 11/25/11 19:57, Sergey Kobzar wrote: > On 11/25/11 19:06, Maxim Dounin wrote: >> Hello! >> >> On Fri, Nov 25, 2011 at 04:36:36PM +0200, Sergey Kobzar wrote: >> >>> Что-то совсем запутался... >>> >>> Ушел ответ с бэкенда, все ОК 200: >>> >>> 207.241.237.226 - - [25/Nov/2011:14:28:11 +0000] "GET >>> /Companies/t-d-advertising-marketing/0210001218642 HTTP/1.0" 200 >>> 62021 "-" "Mozilla/5.0 (compatible; archive.org_bot >>> +http://www.archive.org/details/archive.org_bot)" "-" >>> >>> ловлю его фронтэндом: >>> 207.241.237.226 - - [25/Nov/2011:14:28:11 +0000] "GET >>> /Companies/t-d-advertising-marketing/0210001218642 HTTP/1.0" 502 >>> 9574 "-" "Mozilla/5.0 (compatible; archive.org_bot >>> +http://www.archive.org/details/archive.org_bot)" "-" 10.17.92.2:80 >>> 502 0.055 >>> >>> 502 ошибка. Последние 3 поля: >>> - бэкенд >>> - код ответа от бэкенда >> >> Всмысле - $upstream_status? Там будет 502, если например бекенд >> ответил некорректно. > > Угу. Но почему с бэкенда улетает 200, а с фронтенда 502? > > >> Ну и ещё я бы рекомендовал лишний раз убедиться, что запрос >> действительно правильно идентифицирован. > > Не понял. > > >>> - время ответа >>> >>> конфиг фронтенда: >>> >>> upstream backend { >>> server 10.17.92.2 max_fails=3 fail_timeout=300s; >>> # server 10.17.92.12 max_fails=3 fail_timeout=300s; >>> # server 127.0.0.1 backup; >>> ip_hash; >>> } >>> >>> server { >>> listen 80 default; >>> server_name localhost; >>> >>> access_log /var/log/nginx/default_access.log main; >>> error_log /var/log/nginx/default_error.log info; >>> >>> location / { >>> proxy_pass http://backend; >>> # proxy_next_upstream error timeout http_502 http_504; >>> >>> proxy_set_header Host $host; >>> proxy_set_header X-Real-IP $remote_addr; >>> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; >>> } >>> >>> error_page 502 504 /errors/500.html; >>> >>> location ^~ /errors/ { >>> root /home/www/localhost/htdocs; >>> expires max; >>> } >>> } >>> >>> Что не так? >> >> Обычно помогает заглянуть в error_log. > > :) > > Ну там (error log на бэкенде) относительно чисто. Периодически проскакивет > > 2011/11/25 17:51:17 [info] 12202#0: *1707332 client closed prematurely > connection, so upstream connection is closed too while sending request > to upstream, client: 163.178.119.90, server: localhost, request: "GET > /locations/San-jose/San-pedro HTTP/1.0", upstream: > "fastcgi://127.0.0.1:9001", host: "www.abc.com", referrer: > "http://www.abc.com/Companies/barber%C3%ADa-rex/1310003560" > > tail -f /var/log/nginx/default_access.log | grep 'HTTP/1.0" 502' > Вообще молчит как партизан. > > > На фронтенде в error_log только записи типа > 2011/11/25 17:55:00 [info] 4267#0: *4238782 client 94.63.71.59 closed > keepalive connection > 2011/11/25 17:55:00 [info] 4256#0: *4248177 client 66.249.71.70 closed > keepalive connection > 2011/11/25 17:55:00 [info] 4261#0: *4249970 client 207.46.199.54 closed > keepalive connection (104: Connection reset by peer) > 2011/11/25 17:55:00 [info] 4270#0: *4249800 recv() failed (104: > Connection reset by peer) while sending to client, client: > 123.125.71.113, server: localhost, request: "GET > /hk/Companies/m-two/11600063595 HTTP/1.1", upstream: > "http://10.17.92.2:80/hk/Companies/m-two/11600063595", host: "abc.com" Больше всего инетресует, почему с бэкенда улетает 200, а со фронтенда 502. Причем повторяется не перманентно. Я за день выловил ошибку только раза 4. From sergey.kobzar на itcraft.org Fri Nov 25 18:07:39 2011 From: sergey.kobzar на itcraft.org (Sergey Kobzar) Date: Fri, 25 Nov 2011 20:07:39 +0200 Subject: Dead backend detection In-Reply-To: <4ECFD7FD.9080400@itcraft.org> References: <4ECC2735.5060206@itcraft.org> <20111123075415.GM95664@mdounin.ru> <4ECCC3A9.5090202@itcraft.org> <20111123125339.GR95664@mdounin.ru> <4ECCF0E9.6000008@itcraft.org> <4ECFA7F4.8060202@itcraft.org> <20111125170650.GW95664@mdounin.ru> <4ECFD6F0.9080606@itcraft.org> <4ECFD7FD.9080400@itcraft.org> Message-ID: <4ECFD96B.9000504@itcraft.org> On 11/25/11 20:01, Sergey Kobzar wrote: > On 11/25/11 19:57, Sergey Kobzar wrote: >> On 11/25/11 19:06, Maxim Dounin wrote: >>> Hello! >>> >>> On Fri, Nov 25, 2011 at 04:36:36PM +0200, Sergey Kobzar wrote: >>> >>>> Что-то совсем запутался... >>>> >>>> Ушел ответ с бэкенда, все ОК 200: >>>> >>>> 207.241.237.226 - - [25/Nov/2011:14:28:11 +0000] "GET >>>> /Companies/t-d-advertising-marketing/0210001218642 HTTP/1.0" 200 >>>> 62021 "-" "Mozilla/5.0 (compatible; archive.org_bot >>>> +http://www.archive.org/details/archive.org_bot)" "-" >>>> >>>> ловлю его фронтэндом: >>>> 207.241.237.226 - - [25/Nov/2011:14:28:11 +0000] "GET >>>> /Companies/t-d-advertising-marketing/0210001218642 HTTP/1.0" 502 >>>> 9574 "-" "Mozilla/5.0 (compatible; archive.org_bot >>>> +http://www.archive.org/details/archive.org_bot)" "-" 10.17.92.2:80 >>>> 502 0.055 >>>> >>>> 502 ошибка. Последние 3 поля: >>>> - бэкенд >>>> - код ответа от бэкенда >>> >>> Всмысле - $upstream_status? Там будет 502, если например бекенд >>> ответил некорректно. >> >> Угу. Но почему с бэкенда улетает 200, а с фронтенда 502? >> >> >>> Ну и ещё я бы рекомендовал лишний раз убедиться, что запрос >>> действительно правильно идентифицирован. >> >> Не понял. >> >> >>>> - время ответа >>>> >>>> конфиг фронтенда: >>>> >>>> upstream backend { >>>> server 10.17.92.2 max_fails=3 fail_timeout=300s; >>>> # server 10.17.92.12 max_fails=3 fail_timeout=300s; >>>> # server 127.0.0.1 backup; >>>> ip_hash; >>>> } >>>> >>>> server { >>>> listen 80 default; >>>> server_name localhost; >>>> >>>> access_log /var/log/nginx/default_access.log main; >>>> error_log /var/log/nginx/default_error.log info; >>>> >>>> location / { >>>> proxy_pass http://backend; >>>> # proxy_next_upstream error timeout http_502 http_504; >>>> >>>> proxy_set_header Host $host; >>>> proxy_set_header X-Real-IP $remote_addr; >>>> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; >>>> } >>>> >>>> error_page 502 504 /errors/500.html; >>>> >>>> location ^~ /errors/ { >>>> root /home/www/localhost/htdocs; >>>> expires max; >>>> } >>>> } >>>> >>>> Что не так? >>> >>> Обычно помогает заглянуть в error_log. >> >> :) >> >> Ну там (error log на бэкенде) относительно чисто. Периодически >> проскакивет >> >> 2011/11/25 17:51:17 [info] 12202#0: *1707332 client closed prematurely >> connection, so upstream connection is closed too while sending request >> to upstream, client: 163.178.119.90, server: localhost, request: "GET >> /locations/San-jose/San-pedro HTTP/1.0", upstream: >> "fastcgi://127.0.0.1:9001", host: "www.abc.com", referrer: >> "http://www.abc.com/Companies/barber%C3%ADa-rex/1310003560" >> >> tail -f /var/log/nginx/default_access.log | grep 'HTTP/1.0" 502' >> Вообще молчит как партизан. >> >> >> На фронтенде в error_log только записи типа >> 2011/11/25 17:55:00 [info] 4267#0: *4238782 client 94.63.71.59 closed >> keepalive connection >> 2011/11/25 17:55:00 [info] 4256#0: *4248177 client 66.249.71.70 closed >> keepalive connection >> 2011/11/25 17:55:00 [info] 4261#0: *4249970 client 207.46.199.54 closed >> keepalive connection (104: Connection reset by peer) >> 2011/11/25 17:55:00 [info] 4270#0: *4249800 recv() failed (104: >> Connection reset by peer) while sending to client, client: >> 123.125.71.113, server: localhost, request: "GET >> /hk/Companies/m-two/11600063595 HTTP/1.1", upstream: >> "http://10.17.92.2:80/hk/Companies/m-two/11600063595", host: "abc.com" > > Больше всего инетресует, почему с бэкенда улетает 200, а со фронтенда > 502. Причем повторяется не перманентно. Я за день выловил ошибку только > раза 4. Да, на фронтенде: proxy_buffers 8 64k; proxy_connect_timeout 5; proxy_intercept_errors on; Отключил proxy_intercept_errors вроде бы немного получше. > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From ne на vbart.ru Fri Nov 25 19:16:37 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Fri, 25 Nov 2011 23:16:37 +0400 Subject: =?UTF-8?B?UmU6INCh0LvQvtC20L3Ri9C5INGA0LXQstGA0LDQudGC?= In-Reply-To: References: Message-ID: <201111252316.37747.ne@vbart.ru> On Friday 25 November 2011 19:38:37 Юрий Гончаров wrote: > Приветствую всех. Ковырял пол дня и так не смог побороть. Помогите > разрешить задачу. > > Есть http://domain.com > Если файл (или папка) не существует для > http://domain.com/anyfolder/somethingelseunknown то нужно реврайт на > http://domain.com/anyfolder/front.php > (если два уровня вложенности, все равно брать первую папку, т.е. для > http://domain.com/anyfolder/anyfolderinside/somethingelseunknown > нужен реврайт на http://domain.com/anyfolder/front.php) > anyfolder - может быть любой. > В тоже время если вызывать http://domain.com/somethingelseunknown или > если при попытке реврайта на http://domain.com/anyfolder/front.php - > http://domain.com/anyfolder/front.php - не будет существовать (или > файла front.php нет или вообще нет папки anyfolder) - то тогда > реврайтить на http://domain.com/public/front.php > > Попробую обобщить > 1. Если файл не существует И есть хотя бы одна папка в URI - то > попробовать http://domain.com/anyfolder/front.php > 2. (Если файл не существует И перейти по 1. не удалось) ИЛИ (в URI нет > папок (типа http://domain.com/wrongfile)) то на > http://domain.com/public/front.php > > Очень жду. Спасибо > Написали очень сложно. Предположим, что все три кейса вы хотите обрабатывать в пределах одного локэйшена: location ~ ^(/[^/]+)/.+$ { try_files $uri $1/front.php /public/front.php =404; } Если хотите в разных, то: location ^~ /public/front.php { } location ~ ^/[^/]+/front.php$ { try_files $uri /public/front.php; } location ~ ^(/[^/]+)/ { try_files $uri $1/front.php; } -- Валентин Бартенев From ne на vbart.ru Fri Nov 25 19:19:39 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Fri, 25 Nov 2011 23:19:39 +0400 Subject: =?UTF-8?B?UmU6INCh0LvQvtC20L3Ri9C5INGA0LXQstGA0LDQudGC?= In-Reply-To: <201111252316.37747.ne@vbart.ru> References: <201111252316.37747.ne@vbart.ru> Message-ID: <201111252319.39185.ne@vbart.ru> On Friday 25 November 2011 23:16:37 Валентин Бартенев wrote: [...] > > location ~ ^(/[^/]+)/.+$ { > try_files $uri $1/front.php /public/front.php =404; > } -location ~ ^(/[^/]+)/.+$ { +location ~ ^(/[^/]+)/ { -- Валентин Бартенев From nginx-forum на nginx.us Fri Nov 25 20:53:48 2011 From: nginx-forum на nginx.us (valet) Date: Fri, 25 Nov 2011 15:53:48 -0500 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0YDQsNC30L7QsdGA0LDRgtGM0YHRjyDQvtGC?= =?UTF-8?B?0LrRg9C00LAg0LHQtdGA0YPRgtGB0Y8g0LvQtdCy0YvQtSBnZXQt0LfQsNC/?= =?UTF-8?B?0YDQvtGB0Ys=?= In-Reply-To: <10447e3dc4a779f012fdf884126a953d.NginxMailingListRussian@forum.nginx.org> References: <4ECE911A.2060309@csdoc.com> <10447e3dc4a779f012fdf884126a953d.NginxMailingListRussian@forum.nginx.org> Message-ID: <84b659c31a46884a2bba8115e606a1a6.NginxMailingListRussian@forum.nginx.org> >>>http://sysoev.ru/donation.html Да, и мне Игорь помогал в другой ветке. Так и сделал, в примечании указал ссылку на этот топик :). >>>то даже через 3 месяца видел запросы по старым ссылком от гуглового бота и это при том, что там отвечали 404, а если ботам отвечать на такие страницы 200 - то они просто обязаны за ними приходить вновь и вновь. Структура запрашиваемых страниц такая: site1.ru/id1-odna-novost-s-site2.html ... site1.ru/idn-drugaja-novost-s-site2.html А если 301 отдавать и редиректить на другую страницу с этим id? То есть например страницу site1.ru/idn-drugaja-novost-s-site2.html редиректить на site1.ru/idn-novost-s-site1-s-etim-id.html Редиректные страницы должны же выпасть? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218912,219070#msg-219070 From hell-for-yahoo на umail.ru Fri Nov 25 22:54:04 2011 From: hell-for-yahoo на umail.ru (Andrey Repin) Date: Sat, 26 Nov 2011 02:54:04 +0400 Subject: чтение чужих файлов. In-Reply-To: <72cda49114ed24a5c586fbb26a5e5f31.NginxMailingListRussian@forum.nginx.org> References: <72cda49114ed24a5c586fbb26a5e5f31.NginxMailingListRussian@forum.nginx.org> Message-ID: <187619855.20111126025404@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) adept! a> Надеюсь, в будущем увидеть возможность a> проверки путей в нем. Цена не стоит затрачиваемых усилий. -- С уважением Andrey Repin (hell-for-yahoo на umail.ru) суббота, 26.11.2011, <02:53> From hell-for-yahoo на umail.ru Fri Nov 25 22:51:49 2011 From: hell-for-yahoo на umail.ru (Andrey Repin) Date: Sat, 26 Nov 2011 02:51:49 +0400 Subject: Помогите разобраться откуда берутся левые get-запросы In-Reply-To: <84b659c31a46884a2bba8115e606a1a6.NginxMailingListRussian@forum.nginx.org> References: <4ECE911A.2060309@csdoc.com> <10447e3dc4a779f012fdf884126a953d.NginxMailingListRussian@forum.nginx.org> <84b659c31a46884a2bba8115e606a1a6.NginxMailingListRussian@forum.nginx.org> Message-ID: <1773256898.20111126025149@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) valet! v> Структура запрашиваемых страниц v> такая: v> site1.ru/id1-odna-novost-s-site2.html v> ... v> site1.ru/idn-drugaja-novost-s-site2.html v> А если 301 отдавать и редиректить на v> другую страницу с этим id? v> То есть например страницу v> site1.ru/idn-drugaja-novost-s-site2.html редиректить на v> site1.ru/idn-novost-s-site1-s-etim-id.html v> Редиректные страницы должны же v> выпасть? Тогда уже редиректить на site2.ru/idn-drugaja-novost-s-site2.html -- С уважением Andrey Repin (hell-for-yahoo на umail.ru) суббота, 26.11.2011, <02:50> From sergey.kobzar на itcraft.org Fri Nov 25 23:15:23 2011 From: sergey.kobzar на itcraft.org (Sergey Kobzar) Date: Sat, 26 Nov 2011 01:15:23 +0200 Subject: Dead backend detection In-Reply-To: <4ECFD96B.9000504@itcraft.org> References: <4ECC2735.5060206@itcraft.org> <20111123075415.GM95664@mdounin.ru> <4ECCC3A9.5090202@itcraft.org> <20111123125339.GR95664@mdounin.ru> <4ECCF0E9.6000008@itcraft.org> <4ECFA7F4.8060202@itcraft.org> <20111125170650.GW95664@mdounin.ru> <4ECFD6F0.9080606@itcraft.org> <4ECFD7FD.9080400@itcraft.org> <4ECFD96B.9000504@itcraft.org> Message-ID: <4ED0218B.2050002@itcraft.org> On 11/25/11 20:07, Sergey Kobzar wrote: >> Больше всего инетресует, почему с бэкенда улетает 200, а со фронтенда >> 502. Причем повторяется не перманентно. Я за день выловил ошибку только >> раза 4. > > Да, на фронтенде: > > proxy_buffers 8 64k; > proxy_connect_timeout 5; > proxy_intercept_errors on; > > Отключил proxy_intercept_errors вроде бы немного получше. Разобрался. Был целый букет причин. Основные: - сетевой стэк (sysctl) - переполнение таблиц фаера и как следствие закрытие соединения - нехватка буферов nginx: http://initio.ru/post/4518263056/nginx. То же самое для fastcgi. Проблема решена. Сейчас в error_log периодически сыпется: 2011/11/25 23:13:23 [info] 17367#0: *735107 client closed prematurely connection, so upstream connection is closed too while sending request to upstream, client: 184.82.126.118, server: localhost, request: "GET /Companies/brilliant-best/11600048 HTTP/1.0", upstream: "fastcgi://127.0.0.1:9001", host: "www.abc.com" Это действительно клиент оборвал соединение или на моей стороне могут быть бока? From vugluskr на vugluskr.org.ua Fri Nov 25 23:45:10 2011 From: vugluskr на vugluskr.org.ua (=?KOI8-R?Q?=E2=CF=C7=D5=CE_=E4=CD=C9=D4=D2=C9=CA?=) Date: Sat, 26 Nov 2011 01:45:10 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <4ECEF1E6.9020703@list.ru> References: <4ECEB6C1.4000204@amhost.net> <0e16edef5d8249a95a5d627ad551189b.NginxMailingListRussian@forum.nginx.org> <4ECEDEC7.4030901@list.ru> <4ECEE5B2.1030601@vugluskr.org.ua> <4ECEEB95.7040408@list.ru> <4ECEECA9.9070000@vugluskr.org.ua> <4ECEF1E6.9020703@list.ru> Message-ID: <4ED02886.3060103@vugluskr.org.ua> 25.11.2011 03:39, Станислав пишет: > 25.11.2011 3:17, Богун Дмитрий пишет: >> 25.11.2011 03:12, Станислав пишет: >>>> Уже ж сказали - симлинки. >>>> >>>> Если есть доступ к созданию симлинку в "своем" вебруте, можно >>>> получить все файлы на сервере, к которым у рабочего процесса nginx >>>> есть доступ на чтение. Хотя быть может уже и убрали эту >>>> "возможность", я давно рассылку не читал. ^_^ >>>> >>> То есть с помощью симлинка можно прочитать файлы игнорируя >>> системные биты привилегий read/execute что ли? >> Нельзя. Но если это shared хостинг, то там весьма вероятно nginx'у >> можно ходить во все вхосты, благодаря чему "соседи" могут шастать по >> вашим скриптам. Нужна лишь папка из которой nginx сам отдает файлы и >> возможность создавать там симлинки. >> > Ну разве что интерпретатор (напрм. PHP) чрутиться или запускается для > всех клиентов под разными правами. Тогда да... это интересная идея. > В противном случае проще залить php шелл и с него смотреть вхосты. У php есть свои "костыли" для улучнения защищенности(open_basedir, safe_mode и пр.) иногда их даже удается включить на shared хостингах... что затрудняет, но правда не исключает возможность использования phpshell'а. Так что возможность через симлинки полазить по соседям, насобирать паролей к БД... исключать не стоит. > А я почему-то думал, что ошибка в конфигурации связана как-то с > локейшенами... ээхх.. =) 700$ за "багу"... это наглость, как по мне. -- Богун Дмитрий aka vugluskr From nginx-forum на nginx.us Sat Nov 26 00:16:30 2011 From: nginx-forum на nginx.us (c0re) Date: Fri, 25 Nov 2011 19:16:30 -0500 Subject: =?UTF-8?Q?Re=3A_proxy_cache=2C_cache_miss_=D0=B8_byte_range?= In-Reply-To: References: Message-ID: <9051108ab342ef9aa839aeecc3bf35d9.NginxMailingListRussian@forum.nginx.org> Доброй ночи При возникновении подобных проблем (а вы далеко не первый, столкнувшийся с этой вопиющей несправедливостью), рекомендации ведущих собаководов =] не изобилуют разнообразием. Как правило, во всех подобных случаях, они являют собой предложение окунуться с головой в чрезвычайно увлекательное и полное опасностей приключение, состоящее из нескольких этапов: 1) ознакомиться с термином busylock 2) реализовать его собственными силами (или подождать преследующих вас товарищей, добравшихся, также как и вы, до второго уровня). Если с первым этапом все, как правило, гладко, то второй предварительно требует начальной военной подготовки (или наличия желания и свободного времени реализовывать эти busylock'и у старшего офицерского состава). Если принять во внимание, что интересоваться таким поведением nginx'а начали, мягко говоря, не вчера, ровно как и получать ответы про busylock'и, то, в какое кол-во времени может вылиться занятие выжидательной позиции на втором этапе, наверное не взялась бы предсказать даже Ванга, будь она жива. Тут уже самое время начать грустить, но не все так безнадежно. К счастью, проблему можно решить проще и силами самого nginx'а, НО... с некоторыми оговорками. 1) С файловой системой работает только 1 nginx ( в смысле файловая система не расшарена между несколькими серверами, где на каждом летит свой nginx ). 2) Использовать proxy_store, вместо proxy_cache. Это ограничивает возможности по кэшированию. Теоретически возможно реализовать эту схему и для proxy_cache, но над этим надо ломать голову отдельно. Несколько слов об этом в конце. 3) При самом первом запросе файла с другого сервера, которого еще нет в локальном кэше у запрашиваемого сервера, запрещен Range:bytes= запрос. 4) Перерасход трафика между узлами для горячего контента, если во время начального скачивания файла в кэш, будут поступать пареллельные запросы на скачивание этого же файла. Этот пункт можно обойти, но не очень корректно. Например кормить таких клиентов редиректами, пока файл не окажется в локальном кэше. Существенны для вас эти оговорки или нет, я не знаю, для нас они помехой не стали, так как мы работаем с обычными большими файлами и кэширование сложных запросов нас не интересует. Вот упрощенный вариант конфига: http { ... limit_zone perUri $uri 10m; limit_zone perIpUri $binary_remote_addr$uri 10m; # не обязательно open_file_cache_errors off; proxy_temp_path /storage/cache-v2/proxy 1 2; ... } server { ... # обращение как к origin'у # просто отдаем локальные файлы location /storage/edge-current/ { alias /storage/local/; } # обращение к файлам, для которых мы не origin # далее foreach $x in list_of_edges location /storage/edge-$x/ { root /storage/cache/edge-$x; # путь к локальному кэшу try_files $uri @proxy-edge-$x; # если в локальном кэше запрашиваемого файла нет, то дуем в @proxy-edge-$x } location @proxy-edge-$x { limit_conn perUri 1; # только один запрос к конкретному URI root /storage/cache/edge-$x; # путь к локальному кэшу proxy_set_header Range ""; # запрещаем Range:bytes= запросы в этой секции. иначе в store ничего не ляжет proxy_set_header User-Agent "Edge-$x: proxy"; # необязательно, для дебага и статистики proxy_store on; proxy_buffering on; proxy_ignore_client_abort on; # если клиент обрывает соединение, то файл все равно дотянется и ляжет в локальный кэш proxy_pass http://edge-$x.domain.com; # проксируем на origin error_page 503 = @stream-edge-$x; # если сработал limit_conn (уже выполняется скачивание этого файла в локальный кэш), # дуем в @stream-egde-$x } location @stream-edge-$x { proxy_set_header User-Agent "Edge-$x: stream"; # необязательно, для дебага и статистики proxy_buffering off; # прокачиваем файл через себя напрямую, со скоростью клиента, proxy_temp_file не создается # с радостью разрешаем Range:bytes=, так как чем меньше траффика, тем лучше #limit_conn perIpUri 1; # если вы уверены, что существенная часть ваших пользователей не сидят за NATом # и не идут с одного и того же ip адреса, можно ограничить кол-во сессий в этой секции tcp_nodelay on; proxy_pass http://edge-$x.domain.com; # проксируем на origin } # /foreach ... } Для удобства, копия конфига на http://pastie.org/private/b0bcixwojzgtp6cxiuntxw Используем nginx 1.0.10 Собственно все просто. A) Смотрим файл в локальном кэше, если нашли - то отдаем. B) Если не нашли, идем качать с origin'а на максимальной скорости, ложить в кэш и параллельно отдавать клиенту. HEAD запросы проксируются напрямую и к скачиванию файла не приводят. C) Если во время работы 'B' поступил запрос на этот же файл, мы просто проксируем эти запросы напрямую клиенту в обход буферов и кэшей. Вы можете задать другое поведение для секции 'C'. Например кормить клиента редиректами, пока не освободится секция 'B' и потом отдать файл с локального кэша, если клиент сможет дождаться. Также можно усложнить конфиг, чтобы файл качался не сразу с origin'а, а поискать его сначала в локальных кэшах на соседних узлах. В общем, может быть решение и не идеальное, но пока все работает почти замечательно, что не может не радовать. Есть один досадный момент - несмотря на proxy_ignore_client_abort on, файлы в proxy_temp_files все таки периодически залипают. Поэтому приходится заботиться о периодической чистке протухших временных файлов: find -amin +60 вполне справляется. Может кто-нибудь в состоянии пролить свет на такое поведение nginx'а? А еще лучше workaround. Был бы весьма признателен. Теперь о причине, почему нужно использовать proxy_store, вместо proxy_cache. При использовании proxy_store, мы в конфиге nginx'а имеем возможность проверить, закэширован ли уже такой файл в локальном кэше. Способов проверки силами самого nginx'а для proxy_cache мне обнаружить не удалось. Это можно сделать либо внешним скриптом, либо, может быть, через скриптовый модуль, например lua. Если кто-то может подсказать рабочее решение для определения, опять же буду весьма благодарен. proxy_store имеет как преимущества - например горячий контент можно заранее разложить по узлам самостоятельно (хотя и для proxy_cache можно, но сложнее), так и недостатки - придется самостоятельно следить за свободным местом в локальном кэше и чистить наименее востребованные файлы. Вот примерно так. Будет здорово, если это кому-нибудь поможет. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219025,219080#msg-219080 From unera на uvw.ru Sat Nov 26 05:19:20 2011 From: unera на uvw.ru (Dmitry E. Oboukhov) Date: Sat, 26 Nov 2011 09:19:20 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111126051920.GR3769@apache.rbscorp.ru> Еще размышления на тему стоит ли патчить nginx смотрите. человек от которого мы хотим защищаться 1. имеет возможность создавать симлинки 2. использует nginx далее для выкачки нужных файлов поскольку у него есть [1], то следовательно nginx здесь всего один из путей. он УЖЕ имеет доступ ко всем файлам системы. стоит ли nginx или не стоит. -- . ''`. Dmitry E. Oboukhov : :? : email: unera на debian.org jabber://UNera на uvw.ru `. `~? GPGKey: 1024D / F8E26537 2006-11-21 `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537 ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: Digital signature URL: From pavel2000 на ngs.ru Sat Nov 26 10:28:04 2011 From: pavel2000 на ngs.ru (Pavel V.) Date: Sat, 26 Nov 2011 17:28:04 +0700 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <20111126051920.GR3769@apache.rbscorp.ru> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111126051920.GR3769@apache.rbscorp.ru> Message-ID: <413943734.20111126172804@ngs.ru> Здравствуйте, Dmitry. Вы писали 26 ноября 2011 г., 12:19:20: > Еще размышления на тему стоит ли патчить nginx > смотрите. человек от которого мы хотим защищаться > 1. имеет возможность создавать симлинки > 2. использует nginx далее для выкачки нужных файлов Brawo. В общем случае, любой пользователь системы всегда имеет возможность создавать симлинки, если у него есть какой-то каталог, доступный на запись. Даже не имея явного шелла (SSH), симлинки можно создавать, залив специально обученный скрипт, например, по FTP и вызвав его по HTTP. > поскольку у него есть [1] ... он УЖЕ имеет доступ ко всем файлам системы. Умопомрачительная логика. Соглашаясь с ней, мы должны признать, что "всякие" rwxr-x---, права доступа, владелец/группа файлов - это "ничто". Но это не так. Права на файлы есть, и системные проверки уровня файловой системы работают. Имея возможность создать симлинк, пользователь _ещё_ не имеет доступа ко всем файлам системы. Ваши размышления - неверны. > то следовательно nginx здесь всего один из > путей. стоит ли nginx или не стоит. Nginx - один из немногих путей. В разбираемой ситуации их, собственно, всего "два": - Веб-сервер nginx, запущенный от имени пользователя, имеющего право чтения "всех" файлов, в т.ч. и по симлинку. - Веб-сервер apache и его модули, в т.ч. mod-php, также запущенный от имени пользователя, имеющего право чтения "всех" файлов, в т.ч. и по симлинку. И вот теперь, когда на сервере есть веб-сервер, имея возможность создать симлинк, вот тогда пользователь _уже_ имеет доступ ко всем файлам системы, к которым имеет доступ веб-сервер. Данная тема уже обсуждалась, со всеми подробностями, с учетом возможности обхода защит путем эксплуатирования Race Conditions, с чтением документации по Apache и уточнением из неё, что апачевская директива SymLinksIfOwnerMatch - также не является панацей. Цитирую http://httpd.apache.org/docs/2.2/mod/core.html#Options : "This option should not be considered a security restriction, since symlink testing is subject to race conditions that make it circumventable." Других веб-серверов, кроме Apache и Nginx я не эксплуатирую, как в них обстоят дела с аналогичной проблемой - не знаю. -- С уважением, Pavel mailto:pavel2000 на ngs.ru From nginx-forum на nginx.us Sat Nov 26 11:10:27 2011 From: nginx-forum на nginx.us (adept) Date: Sat, 26 Nov 2011 06:10:27 -0500 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <413943734.20111126172804@ngs.ru> References: <413943734.20111126172804@ngs.ru> Message-ID: <80ea060e17c189cbc33b316f3d9d3e1d.NginxMailingListRussian@forum.nginx.org> Pavel V. Wrote: ------------------------------------------------------- > Nginx - один из немногих путей. > В разбираемой ситуации их, > собственно, всего "два": > - Веб-сервер nginx, запущенный > от имени пользователя, > имеющего право чтения > "всех" файлов, в т.ч. и по > симлинку. > - Веб-сервер apache и его > модули, в т.ч. mod-php, также > запущенный от имени > пользователя, > имеющего право чтения > "всех" файлов, в т.ч. и по > симлинку. -- > С уважением, > Pavel > mailto:pavel2000 на ngs.ru Собственно, не только nginx и apache, еще mysql, но там это закрывается добавлением local-infile=0 в my.cnf В апаче - mpm-itk, да, он даст прочитать тот-же passwd, но читать скрипты соседей не даст. А вот nginx, даст, при соответствующих правах на файл >=644, кои ставят почти все панели на заливаемые файлы. В теме ниже, выкладывал патч для nginx'a, который закрывает эту возможность, но патч для версии 0.5.3 и на более свежие версии он не встанет. Буду рад помощи с допилом) Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219081,219098#msg-219098 From igor на sysoev.ru Sat Nov 26 11:16:27 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Sat, 26 Nov 2011 15:16:27 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <80ea060e17c189cbc33b316f3d9d3e1d.NginxMailingListRussian@forum.nginx.org> References: <413943734.20111126172804@ngs.ru> <80ea060e17c189cbc33b316f3d9d3e1d.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111126111627.GA30502@nginx.com> On Sat, Nov 26, 2011 at 06:10:27AM -0500, adept wrote: > Pavel V. Wrote: > ------------------------------------------------------- > > Nginx - один из немногих путей. > > В разбираемой ситуации их, > > собственно, всего "два": > > - Веб-сервер nginx, запущенный > > от имени пользователя, > > имеющего право чтения > > "всех" файлов, в т.ч. и по > > симлинку. > > - Веб-сервер apache и его > > модули, в т.ч. mod-php, также > > запущенный от имени > > пользователя, > > имеющего право чтения > > "всех" файлов, в т.ч. и по > > симлинку. > -- > > С уважением, > > Pavel > > mailto:pavel2000 на ngs.ru > > Собственно, не только nginx и apache, еще mysql, > но там это закрывается добавлением > local-infile=0 в my.cnf > В апаче - mpm-itk, да, он даст прочитать > тот-же passwd, но читать скрипты соседей не > даст. > А вот nginx, даст, при соответствующих > правах на файл >=644, кои ставят почти все > панели на заливаемые файлы. > В теме ниже, выкладывал патч для nginx'a, > который закрывает эту возможность, но > патч для версии 0.5.3 и на более свежие > версии он не встанет. Буду рад помощи с > допилом) Это патч использует realpath(3), а не гипотетический realpath(2) и имеет те же проблемы, что FollowSymLink в Апаче. То есть, 100% защиты не даёт, а даёт лишь иллюзию защищённости. -- Игорь Сысоев http://sysoev.ru From igor на sysoev.ru Sat Nov 26 11:20:51 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Sat, 26 Nov 2011 15:20:51 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <20111126111627.GA30502@nginx.com> References: <413943734.20111126172804@ngs.ru> <80ea060e17c189cbc33b316f3d9d3e1d.NginxMailingListRussian@forum.nginx.org> <20111126111627.GA30502@nginx.com> Message-ID: <20111126112051.GB30502@nginx.com> On Sat, Nov 26, 2011 at 03:16:27PM +0400, Igor Sysoev wrote: > Это патч использует realpath(3), а не гипотетический realpath(2) > и имеет те же проблемы, что FollowSymLink в Апаче. То есть, > 100% защиты не даёт, а даёт лишь иллюзию защищённости. Впрочем, realpath(2) тоже не поможет, потому что между open(2) и realpath(2) есть возможность убрать линк. -- Игорь Сысоев http://sysoev.ru From mdounin на mdounin.ru Sat Nov 26 11:53:23 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Sat, 26 Nov 2011 15:53:23 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <20111126112051.GB30502@nginx.com> References: <413943734.20111126172804@ngs.ru> <80ea060e17c189cbc33b316f3d9d3e1d.NginxMailingListRussian@forum.nginx.org> <20111126111627.GA30502@nginx.com> <20111126112051.GB30502@nginx.com> Message-ID: <20111126115323.GB67687@mdounin.ru> Hello! On Sat, Nov 26, 2011 at 03:20:51PM +0400, Igor Sysoev wrote: > On Sat, Nov 26, 2011 at 03:16:27PM +0400, Igor Sysoev wrote: > > > Это патч использует realpath(3), а не гипотетический realpath(2) > > и имеет те же проблемы, что FollowSymLink в Апаче. То есть, > > 100% защиты не даёт, а даёт лишь иллюзию защищённости. > > Впрочем, realpath(2) тоже не поможет, потому что между open(2) > и realpath(2) есть возможность убрать линк. Или, наоборот, добавить, если проверка делается до open(). Как уже неоднократно говорено, в том числе в этой рассылке, варианты приблизительно такие: 1. Использовать mount -o nosymfollow. 2. Сделать и использовать соответствующий флаг для open() в операционной системе (a la O_NOFOLLOW_ALL). 3. Использовать цепочку из openat(O_NOFOLLOW). Вариант (3), в принципе, на большинстве операционных систем сейчас реализуем. Maxim Dounin From exelib на googlemail.com Sat Nov 26 12:43:51 2011 From: exelib на googlemail.com (Anton Bessonov) Date: Sat, 26 Nov 2011 13:43:51 +0100 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <20111126112051.GB30502@nginx.com> References: <413943734.20111126172804@ngs.ru> <80ea060e17c189cbc33b316f3d9d3e1d.NginxMailingListRussian@forum.nginx.org> <20111126111627.GA30502@nginx.com> <20111126112051.GB30502@nginx.com> Message-ID: <4ED0DF07.8020600@gmail.com> Не совсем в тему, но запускать энджин, пхп и прочее с правами пользователя (то есть у каждого пользователя свои инстанции) не решит проблему? > Впрочем, realpath(2) тоже не поможет, потому что между open(2) > и realpath(2) есть возможность убрать линк. > > From pavel2000 на ngs.ru Sat Nov 26 16:22:14 2011 From: pavel2000 на ngs.ru (Pavel V.) Date: Sat, 26 Nov 2011 23:22:14 +0700 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <4ED0DF07.8020600@gmail.com> References: <413943734.20111126172804@ngs.ru> <80ea060e17c189cbc33b316f3d9d3e1d.NginxMailingListRussian@forum.nginx.org> <20111126111627.GA30502@nginx.com> <20111126112051.GB30502@nginx.com> <4ED0DF07.8020600@gmail.com> Message-ID: <354890739.20111126232214@ngs.ru> Здравствуйте, Anton. Вы писали 26 ноября 2011 г., 19:43:51: > Не совсем в тему, но запускать энджин, пхп и прочее с правами > пользователя (то есть у каждого пользователя свои инстанции) не решит > проблему? Решит, но в случае шаред-хостинга это приведет к тому, что будет такая схема: 1 Общий nginx-диспетчер, проксирует на nginx-воркер пользователей {Число пользоваталей} х { nginx-воркер, отдающий пользовательскую статику (запущен от имени пользователя) пользовательский апач, крутящий скрипты / другой сервер приложений, запущеный от имени пользователя } Всё это конкретно ресурсоемко, как по числу процессов, так и по занимаемой оперативной памяти, а также overhead за счет многократной передачи контента между веб-серверами внутри сервера. Не вижу преимуществ от построения такой схемы по сравнению с раздачей пользователям контейнеров VZ. >> Впрочем, realpath(2) тоже не поможет, потому что между open(2) >> и realpath(2) есть возможность убрать линк. >> >> > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, Pavel mailto:pavel2000 на ngs.ru From gmm на csdoc.com Sat Nov 26 16:31:39 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Sat, 26 Nov 2011 18:31:39 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <20111126115323.GB67687@mdounin.ru> References: <413943734.20111126172804@ngs.ru> <80ea060e17c189cbc33b316f3d9d3e1d.NginxMailingListRussian@forum.nginx.org> <20111126111627.GA30502@nginx.com> <20111126112051.GB30502@nginx.com> <20111126115323.GB67687@mdounin.ru> Message-ID: <4ED1146B.70200@csdoc.com> On 26.11.2011 13:53, Maxim Dounin wrote: > Как уже неоднократно говорено, в том числе в этой рассылке, > варианты приблизительно такие: > 1. Использовать mount -o nosymfollow. это сломает механизм атомарных обновлений сайта, - даже симлинки IfOwnerMatch тоже не будут работать. фактически нужна была опция nosymfollow_if_owner_not_match > 2. Сделать и использовать соответствующий флаг для open() в > операционной системе (a la O_NOFOLLOW_ALL). здесь тоже будет более интерен флаг O_NOFOLLOW_ANY_IF_OWNER_NOT_MATCH - нет смысла запрещать пользователю ходить по симлинкам на свои же файлы внутри сайтов и CMS симлинки могут использоваться, это же POSIX стандарт возможно имеет смысл попробовать этот вариант добавить в обе системы? или хотя бы только более простой вариант openat(O_NOFOLLOW_IF_OWNER_NOT_MATCH) > 3. Использовать цепочку из openat(O_NOFOLLOW). > > Вариант (3), в принципе, на большинстве операционных систем сейчас > реализуем. это будет аналог апачевской директивы Options -FollowSymLinks что может добавить проблем, если сайт/CMS использует симлинки. можно ли сделать в nginx корректно работающий в 100% случаев аналог апачевской директивы "Options SymLinksIfOwnerMatch" ? такой вариант имхо будет самым корректным для shared hostind`а. или для этого необходима поддержка в ядре флага openat(O_NOFOLLOW_IF_OWNER_NOT_MATCH) ? -- Best regards, Gena From gmm на csdoc.com Sat Nov 26 17:10:10 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Sat, 26 Nov 2011 19:10:10 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsi4=?= In-Reply-To: <20111125095417.GA63216@snar.spb.ru> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111125065831.GP3769@apache.rbscorp.ru> <20111125092534.GC1438@nginx.com> <20111125095417.GA63216@snar.spb.ru> Message-ID: <4ED11D72.4000107@csdoc.com> On 25.11.2011 11:54, Alexandre Snarskii wrote: >>> У апача ЕМНИП есть опция (не )?ходить по симлинкам. >>> Возможно надо такую же в nginx? >> >> http://httpd.apache.org/docs/2.2/mod/core.html#options >> >> FollowSymLinks >> SymLinksIfOwnerMatch >> >> This option should not be considered a security restriction, >> since symlink testing is subject to race conditions that >> make it circumventable. >> >> Отсюда возникает вопрос: имеет ли смысл тестировать каждый элемент >> пути при каждом запросе, если это не даёт 100% гарантии ? > Сугубое jimho: весь путь проверять не надо. Достаточно проверять > последний элемент пути, и, возможно, даже не "проверять самому", > а переложить проверку на операционную систему флагом O_NOFOLLOW > в open(2). > > Почему: симлинк-атака базируется на стандартном location'е > > location ~ \.(gif|png|)$ { > root /some/user; > } > > при котором "злому хацкеру" достаточно прописать в своей директории > симлинк image.gif -> /some/other-user/config.php, и добавление > O_NOFOLLOW от этой атаки прикрывает. насколько я понимаю, это полностью решит проблему shared hosting`ов. и этот метод будет работать 100% корректно, без race conditions - ведь у злоумышленников теперь уже не будет возможности изменить имя/расширение чужого файла и заставить nginx отдать чужой файл, который ранее не отдавался им напрямую через location ~ \.gif$ {} > Да, O_NOFOLLOW проверяет только последний элемент пути, но этого > а) достаточно (выставление симлинка "уровнем выше" к атаке не приводит, > ибо под данный location не попадает). > б) не очень сильно ломает функционал атомарных обновлений (хотя > если пользовательская CMS подставляет файлы именно симлинком > "последнего элемента" - это сломается, ведь симлинки не будут работать > даже внутри одной директории, но потому-то эта опция должна быть > конфигурируема для location'а а не включена по умолчанию). по крайней мере, такая опция была бы точно лучше, чем вообще ничего. а потом, со временем можно было бы добавить и (3), (4) режимы работы: 0) опция выключена (по умолчанию, для совместимости с пред. версиями) 1) флаг O_NOFOLLOW в open(2), при этом - максимальная производительность 2) флаг O_NOFOLLOW_IF_OWNER_NOT_MATCH в open(2) - более корректный метод 3) O_NOFOLLOW будут проверяться все компоненты пути на наличие симлинков 4) то же что и (3), но запрещать доступ только если владелец не совпадает многим хостингам для закрытия доступа к чужим конфигам достаточно будет применить только режим (1) или (2) не теряя при этом в nginx performance и эта защита в (1) и (2) будет реализована в nginx без race conditions. - пользователи хостингов будут заранее предупреждены файлы с какими расширениями будут отдаваться напрямую nginx`ом, а какие через апач или самостоятельно смогут это конфигурировать в панели управления, без возможности включить в этот список файлы с расширениями чужих конфигов на хостинге, например .php .inc .ini .conf .htaccess и т.п. -- Best regards, Gena From exelib на googlemail.com Sat Nov 26 18:08:12 2011 From: exelib на googlemail.com (Anton Bessonov) Date: Sat, 26 Nov 2011 19:08:12 +0100 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <354890739.20111126232214@ngs.ru> References: <413943734.20111126172804@ngs.ru> <80ea060e17c189cbc33b316f3d9d3e1d.NginxMailingListRussian@forum.nginx.org> <20111126111627.GA30502@nginx.com> <20111126112051.GB30502@nginx.com> <4ED0DF07.8020600@gmail.com> <354890739.20111126232214@ngs.ru> Message-ID: <4ED12B0C.3070802@gmail.com> >> Не совсем в тему, но запускать энджин, пхп и прочее с правами >> пользователя (то есть у каждого пользователя свои инстанции) не решит >> проблему? > Решит, но в случае шаред-хостинга это приведет к тому, что будет такая схема: > > 1 Общий nginx-диспетчер, проксирует на nginx-воркер пользователей > > {Число пользоваталей} х > { > nginx-воркер, отдающий пользовательскую статику (запущен от имени пользователя) > пользовательский апач, крутящий скрипты / другой сервер приложений, запущеный от имени пользователя > } > > Всё это конкретно ресурсоемко, как по числу процессов, так и по занимаемой оперативной памяти, а > также overhead за счет многократной передачи контента между веб-серверами внутри сервера. > Не вижу преимуществ от построения такой схемы по сравнению с раздачей пользователям контейнеров VZ. Решает - этого было достаточно. Такая схема будет только потомучто энджин до сих пор не поддерживает запуск воркеров от другого пользователя (где-то в рассылки была не плохая идея насчёт этого). Так же в большинстве случаев апач вообще не нужен ибо энджин в сумме хорошая замена ему. Именно так всё и использую. Реализация запуска воркеров из под нужных пользователей решило бы проблему вашей схемы - остался бы только один энджин и бэкэнды, которые если не сепарировать между пользователями, то будут проблемы названые автором топика. Думаю контейнеры, в данном случае, тем более оверхед. From nginx-forum на nginx.us Sun Nov 27 02:34:01 2011 From: nginx-forum на nginx.us (valet) Date: Sat, 26 Nov 2011 21:34:01 -0500 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0YDQsNC30L7QsdGA0LDRgtGM0YHRjyDQvtGC?= =?UTF-8?B?0LrRg9C00LAg0LHQtdGA0YPRgtGB0Y8g0LvQtdCy0YvQtSBnZXQt0LfQsNC/?= =?UTF-8?B?0YDQvtGB0Ys=?= In-Reply-To: <10447e3dc4a779f012fdf884126a953d.NginxMailingListRussian@forum.nginx.org> References: <4ECE911A.2060309@csdoc.com> <10447e3dc4a779f012fdf884126a953d.NginxMailingListRussian@forum.nginx.org> Message-ID: <1f71d10174837ae308ca0006c6a5e585.NginxMailingListRussian@forum.nginx.org> >>>Тогда уже редиректить на site2.ru/idn-drugaja-novost-s-site2.html Так тогда сайты будут перелинкововаться между собой, а я бы не хотел этого делать. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218912,219131#msg-219131 From nginx-forum на nginx.us Sun Nov 27 12:33:27 2011 From: nginx-forum на nginx.us (gansa) Date: Sun, 27 Nov 2011 07:33:27 -0500 Subject: =?UTF-8?B?0L/QvtC80L7Qs9C40YLQtSDRgNCw0LfQvtCx0YDQsNGC0YzRgdGPINGBIGh0dHAg?= =?UTF-8?B?bXA0IG1vZHVsZQ==?= Message-ID: <0ac215f4dbfeded024c9ca9206cd2599.NginxMailingListRussian@forum.nginx.org> Здравствуйте, есть сервер который раздаёт видео. На данный момент стримингом занимается apache, хочу перейти на nginx, но есть одна проблема, которую без вашей помощи наверно и не решу. Есть папка сериалы в которой допустим лежит Хаус, в этой папке есть еще одни, сезон1, сезон2 и т.д. Так вот вопрос, как правильно прописать в локейшн папку сериалс? А не так: location /serials/House/season1/ { mp4; mp4_buffer_size 1m; mp4_max_buffer_size 5m; } location /serials/House/season2/ { mp4; mp4_buffer_size 1m; mp4_max_buffer_size 5m; } Заранее благодарю всех за ответы. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219139,219139#msg-219139 From unera на uvw.ru Sun Nov 27 13:09:02 2011 From: unera на uvw.ru (Dmitry E. Oboukhov) Date: Sun, 27 Nov 2011 17:09:02 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <413943734.20111126172804@ngs.ru> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111126051920.GR3769@apache.rbscorp.ru> <413943734.20111126172804@ngs.ru> Message-ID: <20111127130902.GA3834@apache.rbscorp.ru> >> поскольку у него есть [1] ... он УЖЕ имеет доступ ко всем файлам системы. > Умопомрачительная логика. Соглашаясь с ней, мы должны признать, что "всякие" rwxr-x---, права давайте всеж таки не отходить от контекста в исходных посылах: 1. пользователь может создавать симлинки (= имеет доступ к файловой системе от своего имени) 2. пользовтатель - один из пользователей шаред вебхостинга. то есть может при желании запустить произвольный скрипт от имени вебсервера. таким образом ограничение на хождение по симлинкам итп - лишь сокращение удобных способов получить чужой конфиг. если этот чужой конфиг должен читать вебсервер, то единственный путь его защитить - индивидуальный а не шаред вебсервер. а костыли вида "не пойдет по симлинку" - лишь закрытие одного из сотен путей -- . ''`. Dmitry E. Oboukhov : :? : email: unera на debian.org jabber://UNera на uvw.ru `. `~? GPGKey: 1024D / F8E26537 2006-11-21 `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537 ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: Digital signature URL: From hell-for-yahoo на umail.ru Sun Nov 27 14:02:26 2011 From: hell-for-yahoo на umail.ru (Andrey Repin) Date: Sun, 27 Nov 2011 18:02:26 +0400 Subject: Помогите разобраться откуда берутся левые get-запросы In-Reply-To: <1f71d10174837ae308ca0006c6a5e585.NginxMailingListRussian@forum.nginx.org> References: <4ECE911A.2060309@csdoc.com> <10447e3dc4a779f012fdf884126a953d.NginxMailingListRussian@forum.nginx.org> <1f71d10174837ae308ca0006c6a5e585.NginxMailingListRussian@forum.nginx.org> Message-ID: <1713435429.20111127180226@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) valet! >>>>Тогда уже редиректить на v> site2.ru/idn-drugaja-novost-s-site2.html v> Так тогда сайты будут v> перелинкововаться между собой, а я бы v> не хотел этого делать. Не будут, если в редиректе поставишь правильный код. -- С уважением Andrey Repin (hell-for-yahoo на umail.ru) воскресенье, 27.11.2011, <18:02> From hell-for-yahoo на umail.ru Sun Nov 27 14:06:33 2011 From: hell-for-yahoo на umail.ru (Andrey Repin) Date: Sun, 27 Nov 2011 18:06:33 +0400 Subject: помогите разобраться с http mp4 module In-Reply-To: <0ac215f4dbfeded024c9ca9206cd2599.NginxMailingListRussian@forum.nginx.org> References: <0ac215f4dbfeded024c9ca9206cd2599.NginxMailingListRussian@forum.nginx.org> Message-ID: <278190671.20111127180633@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) gansa! g> допустим лежит Хаус, в этой папке есть g> еще одни, сезон1, сезон2 и т.д. Так вот g> вопрос, как правильно прописать в g> локейшн папку сериалс? А не так: g> location /serials/House/season1/ { g> mp4; g> mp4_buffer_size 1m; g> mp4_max_buffer_size 5m; g> } g> location /serials/House/season2/ { g> mp4; g> mp4_buffer_size 1m; g> mp4_max_buffer_size 5m; g> } g> Заранее благодарю всех за ответы. Главный вопрос - какого результата вы хотите добиться? Из вашего примера ничего не ясно. Не писать для каждой папки "mp4; ..." ? Используйте вложенные локейшены? -- С уважением Andrey Repin (hell-for-yahoo на umail.ru) воскресенье, 27.11.2011, <18:03> From gmm на csdoc.com Sun Nov 27 14:30:26 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Sun, 27 Nov 2011 16:30:26 +0200 Subject: =?UTF-8?B?UmU6INC/0L7QvNC+0LPQuNGC0LUg0YDQsNC30L7QsdGA0LDRgtGM0YHRjyDRgSBo?= =?UTF-8?B?dHRwIG1wNCBtb2R1bGU=?= In-Reply-To: <0ac215f4dbfeded024c9ca9206cd2599.NginxMailingListRussian@forum.nginx.org> References: <0ac215f4dbfeded024c9ca9206cd2599.NginxMailingListRussian@forum.nginx.org> Message-ID: <4ED24982.5050502@csdoc.com> On 27.11.2011 14:33, gansa wrote: > Здравствуйте, есть сервер который > раздаёт видео. На данный момент > стримингом занимается apache, хочу > перейти на nginx, но есть одна проблема, > которую без вашей помощи наверно и не > решу. Есть папка сериалы в которой > допустим лежит Хаус, в этой папке есть > еще одни, сезон1, сезон2 и т.д. Так вот > вопрос, как правильно прописать в > локейшн папку сериалс? А не так: > location /serials/House/season1/ { > mp4; > mp4_buffer_size 1m; > mp4_max_buffer_size 5m; > } > > location /serials/House/season2/ { > mp4; > mp4_buffer_size 1m; > mp4_max_buffer_size 5m; > } вот этого будет достаточно: location /serials/ { mp4; mp4_buffer_size 1m; mp4_max_buffer_size 5m; } документация: http://nginx.org/ru/docs/http/ngx_http_core_module.html#location -- Best regards, Gena From nginx-forum на nginx.us Sun Nov 27 17:57:49 2011 From: nginx-forum на nginx.us (gansa) Date: Sun, 27 Nov 2011 12:57:49 -0500 Subject: =?UTF-8?B?UmU6INC/0L7QvNC+0LPQuNGC0LUg0YDQsNC30L7QsdGA0LDRgtGM0YHRjyDRgSBo?= =?UTF-8?B?dHRwIG1wNCBtb2R1bGU=?= In-Reply-To: <4ED24982.5050502@csdoc.com> References: <4ED24982.5050502@csdoc.com> Message-ID: Спасибо, попробую) Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219144,219150#msg-219150 From mva на mva.name Sun Nov 27 19:59:20 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Mon, 28 Nov 2011 02:59:20 +0700 Subject: =?UTF-8?B?0L3QtdC+0LHRhdC+0LTQuNC80L7RgdGC0Ywg0L/QvtC00LzQtdC90Ysg0LfQsNCz?= =?UTF-8?B?0L7Qu9C+0LLQutC+0LIg0LfQsNC/0YDQvtGB0LAg0LIgZmFzdGNnaQ==?= In-Reply-To: References: <4ED24982.5050502@csdoc.com> Message-ID: <1322423961.3645.4.camel@N900> Здравствуйте, товарищи! А никто не сталкивался с тем, что из-за криворукости авторов некоторых веб-приложений (преимущественно на PHP) при использовании их [этих приложений] через fastcgi возникала необходимость подмены заголовков типа SERVER_PORT, REMOTE_ADDR и т.п.? Собственно, да, сама идея, конечно, дикая, но всё же кажется более простым выходом, чем править чужие исходники чужих приложений... А проблема зачастую заключается в том, что приложение вместо того, чтобы работать с HTTP_HOST берёт и делает 301 на урл типа SERVER_NAME:SERVER_PORT/uri (mediawiki, например, не раз попадалась на таком). А ещё есть такой момент, что когда NginX "слушает" соединения на дуалстековом IPv6-сокете, то отправляет приложениям IPv4-адреса пришедших хостов в виде "как есть", т.е. "::ffff:1.2.3.4", к чему некоторые приложения оказываются не готовы ;) Данную проблему, конечно, решает "слушание" отдельно в4 и отдельно в6-сокетов, но тем не менее. Ну и порой хочется просто не светить наличие бекендов в выполняемом юзером скрипте. В общем, есть у кого-нибудь какие-нибудь идеи? ;) -- С уваженем, mva From mva на mva.name Sun Nov 27 20:11:56 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Mon, 28 Nov 2011 03:11:56 +0700 Subject: =?UTF-8?B?Kl9wYXNzINC4IHVwc3RyZWFtJ9GLINC/0L4gSVB2Ng==?= In-Reply-To: <1322423961.3645.4.camel@N900> References: <4ED24982.5050502@csdoc.com> <1322423961.3645.4.camel@N900> Message-ID: <1322424716.3645.13.camel@N900> А ни в курсе ли уважаемые участники рассылки, планируется ли когда-нибудь допилить *_pass и server в upstream {} (ну и в прочих местах) чтобы они работали с бекендами по IPv6 и не провоцировали 502? ;) А то поддержка IPv6 добавлена уже 1000 лет назад, а работать с бекендами по IPv6 всё ещё никак... -- С уважением, mva From mdounin на mdounin.ru Sun Nov 27 20:14:21 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 28 Nov 2011 00:14:21 +0400 Subject: =?UTF-8?B?UmU6ICpfcGFzcyDQuCB1cHN0cmVhbSfRiyDQv9C+IElQdjY=?= In-Reply-To: <1322424716.3645.13.camel@N900> References: <4ED24982.5050502@csdoc.com> <1322423961.3645.4.camel@N900> <1322424716.3645.13.camel@N900> Message-ID: <20111127201421.GI67687@mdounin.ru> Hello! On Mon, Nov 28, 2011 at 03:11:56AM +0700, Мисбах-Соловь?в Вадим wrote: > А ни в курсе ли уважаемые участники рассылки, планируется ли > когда-нибудь допилить *_pass и server в upstream {} (ну и в > прочих местах) чтобы они работали с бекендами по IPv6 и не > провоцировали 502? ;) А то поддержка IPv6 добавлена уже 1000 лет > назад, а работать с бекендами по IPv6 всё ещё никак... Когда-нибудь - планируется. Maxim Dounin From nginx-forum на nginx.us Sun Nov 27 20:16:15 2011 From: nginx-forum на nginx.us (gansa) Date: Sun, 27 Nov 2011 15:16:15 -0500 Subject: http mp4 module In-Reply-To: <278190671.20111127180633@mtu-net.ru> References: <278190671.20111127180633@mtu-net.ru> Message-ID: <86ede3687a9e54b34fe905e805569d1a.NginxMailingListRussian@forum.nginx.org> Главная цель - стриминг. Просто если не прописывать локейшн, не работает перемотка, вот я и спрашиваю как можно одной записью охватить все папки. Не писать для каждой папки "mp4; ..." ? - Да, это моя главная цель. Используйте вложенные локейшены? - Нет, я не знаю как это прописать. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219143,219156#msg-219156 From public-mail на alekciy.ru Sun Nov 27 22:03:45 2011 From: public-mail на alekciy.ru (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0KHRg9C90LTRg9C60L7Qsg==?=) Date: Mon, 28 Nov 2011 02:03:45 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <20111127130902.GA3834@apache.rbscorp.ru> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111126051920.GR3769@apache.rbscorp.ru> <413943734.20111126172804@ngs.ru> <20111127130902.GA3834@apache.rbscorp.ru> Message-ID: Имхо, вопрос с доступам к файлам это не та часть, которую должен разруливать nginx. Иначе получится какой то php-ный safe mode. Запуск того же php с правами нужного юзера и выставление на папку с конфигами прав 700 решает проблему симлинков. > таким образом ограничение на хождение по симлинкам итп - лишь > сокращение удобных способов получить чужой конфиг. > если этот чужой конфиг должен читать вебсервер, то единственный путь > его защитить - индивидуальный а не шаред вебсервер. > а костыли вида "не пойдет по симлинку" - лишь закрытие одного из сотен > путей From nginx-forum на nginx.us Sun Nov 27 23:50:48 2011 From: nginx-forum на nginx.us (gansa) Date: Sun, 27 Nov 2011 18:50:48 -0500 Subject: http mp4 module In-Reply-To: <278190671.20111127180633@mtu-net.ru> References: <278190671.20111127180633@mtu-net.ru> Message-ID: <192ce4b996d679de47830b7bafb15554.NginxMailingListRussian@forum.nginx.org> По ходу настройки обнаружил вот что, енджин-икс не хочет раздавить видео не в каком виде, насколько я понимаю виной этом есть апач. Потому что раньше, когда я экспериментировал со связкой nginx-php-fastcgi траблов не было вообще никаких, прописал в локкейшн параметры и всё работает, сейчас мне пишет "Файл не соответствует типу video" и при этом идет загрузка файла, и после полной загрузки видео воспроизводится. Если нужны конфиги - я выложу, просто я не знаю что нужно, а что нет :) Помогите пожалуйста разобраться. Заранее благодарю Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219143,219163#msg-219163 From nginx-forum на nginx.us Mon Nov 28 01:08:30 2011 From: nginx-forum на nginx.us (valet) Date: Sun, 27 Nov 2011 20:08:30 -0500 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0YDQsNC30L7QsdGA0LDRgtGM0YHRjyDQvtGC?= =?UTF-8?B?0LrRg9C00LAg0LHQtdGA0YPRgtGB0Y8g0LvQtdCy0YvQtSBnZXQt0LfQsNC/?= =?UTF-8?B?0YDQvtGB0Ys=?= In-Reply-To: <10447e3dc4a779f012fdf884126a953d.NginxMailingListRussian@forum.nginx.org> References: <4ECE911A.2060309@csdoc.com> <10447e3dc4a779f012fdf884126a953d.NginxMailingListRussian@forum.nginx.org> Message-ID: >>>Не будут, если в редиректе поставишь правильный код. Какой, 301-ый? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,218912,219164#msg-219164 From nginx-forum на nginx.us Mon Nov 28 08:20:48 2011 From: nginx-forum на nginx.us (mennanov) Date: Mon, 28 Nov 2011 03:20:48 -0500 Subject: =?UTF-8?B?0J/RgNC+0YHRgtC10LnRiNCw0Y8g0LDRgNC40YTQvNC10YLQuNC60LAg0LIg0Lo=?= =?UTF-8?B?0L7QvdGE0LjQs9C1?= Message-ID: <3a966f415fc7af595e6a954a18143f34.NginxMailingListRussian@forum.nginx.org> У меня есть папка "i" в корне сайта, в ней лежат папки типа 0, 100, 200, 300 ... 600000 ...etc, а уже в них лежат файлы .jpg Т.е. я создаю отдельную папку для каждой сотой картинки, так в папке 200 будут лежать файлы 200.jpg - 299.jpg, в папке 300 будут файлы 300.jpg - 399.jpg Проблема в то что я не могу написать соотв. конфигурацию и вычислить название этой папки, вычисляется оно просто: ID - (ID%100), т.е. для запроса /i/256.jpg будет вычислено: 256 - (256 % 100) = 200 и картинку следует искать по адресу /i/200/256.jpg Я пробовал делать вот так: location ~ /i/(.*)\.jpg { set $folder $1-($1%100); try_files /i/$folder/$1.jpg =400; } Но это не сработало из синтаксических ошибок... Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219173,219173#msg-219173 From manowar на gsc-game.kiev.ua Mon Nov 28 08:44:58 2011 From: manowar на gsc-game.kiev.ua (Serguei I. Ivantsov) Date: Mon, 28 Nov 2011 10:44:58 +0200 Subject: =?UTF-8?B?ZXJyb3JfbG9nINCyINC00L7QutGD0LzQtdC90YLQsNGG0LjQuA==?= Message-ID: <4ED34A0A.5010504@gsc-game.kiev.ua> Привет, Не могу найти описание директивы 'error_log' в документации. Ни в разделе 'Глобальные директивы' ни в 'core_module' или 'log_module'. Может плохо ищу. Ткните, плииз... -- Regards, Serguei I. Ivantsov From aleks.raiden на gmail.com Mon Nov 28 08:50:20 2011 From: aleks.raiden на gmail.com (=?UTF-8?B?0JDQu9C10LrRgdCw0L3QtNGAINCb0L7Qt9C+0LLRjtC6?=) Date: Mon, 28 Nov 2011 10:50:20 +0200 Subject: =?UTF-8?B?UmU6IGVycm9yX2xvZyDQsiDQtNC+0LrRg9C80LXQvdGC0LDRhtC40Lg=?= In-Reply-To: <4ED34A0A.5010504@gsc-game.kiev.ua> References: <4ED34A0A.5010504@gsc-game.kiev.ua> Message-ID: Здесь нашел: http://wiki.nginx.org/CoreModule 2011/11/28 Serguei I. Ivantsov > Привет, > > Не могу найти описание директивы 'error_log' в документации. Ни в > разделе 'Глобальные директивы' ни в 'core_module' или 'log_module'. > Может плохо ищу. Ткните, плииз... > > -- > Regards, > Serguei I. Ivantsov > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- C уважением, Александр Лозовюк Alpha-Beta-Release Blog http://abrdev.com http://asyncionews.com ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From andrew на nginx.com Mon Nov 28 08:53:54 2011 From: andrew на nginx.com (Andrew Alexeev) Date: Mon, 28 Nov 2011 12:53:54 +0400 Subject: =?UTF-8?B?UmU6IGVycm9yX2xvZyDQsiDQtNC+0LrRg9C80LXQvdGC0LDRhtC40Lg=?= In-Reply-To: References: <4ED34A0A.5010504@gsc-game.kiev.ua> Message-ID: On Nov 28, 2011, at 12:50 PM, Александр Лозовюк wrote: > Здесь нашел: http://wiki.nginx.org/CoreModule Наиболее свежая здесь http://nginx.org/en/docs/ngx_core_module.html#error_log :) > 2011/11/28 Serguei I. Ivantsov > Привет, > > Не могу найти описание директивы 'error_log' в документации. Ни в > разделе 'Глобальные директивы' ни в 'core_module' или 'log_module'. > Может плохо ищу. Ткните, плииз... > > -- > Regards, > Serguei I. Ivantsov > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > -- > C уважением, Александр Лозовюк > Alpha-Beta-Release Blog > http://abrdev.com > http://asyncionews.com > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From manowar на gsc-game.kiev.ua Mon Nov 28 08:51:50 2011 From: manowar на gsc-game.kiev.ua (Serguei I. Ivantsov) Date: Mon, 28 Nov 2011 10:51:50 +0200 Subject: =?UTF-8?B?UmU6IGVycm9yX2xvZyDQsiDQtNC+0LrRg9C80LXQvdGC0LDRhtC40Lg=?= In-Reply-To: References: <4ED34A0A.5010504@gsc-game.kiev.ua> Message-ID: <4ED34BA6.4090303@gsc-game.kiev.ua> Спасибо, я в буржуйском разделе не искал, только в официальном http://nginx.org/ru/docs/ On 28.11.2011 10:50, Александр Лозовюк wrote: > Здесь нашел: http://wiki.nginx.org/CoreModule > From manowar на gsc-game.kiev.ua Mon Nov 28 08:55:50 2011 From: manowar на gsc-game.kiev.ua (Serguei I. Ivantsov) Date: Mon, 28 Nov 2011 10:55:50 +0200 Subject: =?UTF-8?B?UmU6IGVycm9yX2xvZyDQsiDQtNC+0LrRg9C80LXQvdGC0LDRhtC40Lg=?= In-Reply-To: References: <4ED34A0A.5010504@gsc-game.kiev.ua> Message-ID: <4ED34C96.5010605@gsc-game.kiev.ua> Grand merci! :) ИМХО, стоит и в русские доки её добавить. А то непорядок: директива - есть, описания - нет :) On 28.11.2011 10:53, Andrew Alexeev wrote: > On Nov 28, 2011, at 12:50 PM, Александр Лозовюк wrote: > >> Здесь нашел: http://wiki.nginx.org/CoreModule > > Наиболее свежая здесь > http://nginx.org/en/docs/ngx_core_module.html#error_log > > :) > From andrew на nginx.com Mon Nov 28 09:01:49 2011 From: andrew на nginx.com (Andrew Alexeev) Date: Mon, 28 Nov 2011 13:01:49 +0400 Subject: =?UTF-8?B?UmU6IGVycm9yX2xvZyDQsiDQtNC+0LrRg9C80LXQvdGC0LDRhtC40Lg=?= In-Reply-To: <4ED34C96.5010605@gsc-game.kiev.ua> References: <4ED34A0A.5010504@gsc-game.kiev.ua> <4ED34C96.5010605@gsc-game.kiev.ua> Message-ID: <324A5E9A-CE54-4FE9-B70E-5DB1524A064F@nginx.com> On Nov 28, 2011, at 12:55 PM, Serguei I. Ivantsov wrote: > Grand merci! :) > ИМХО, стоит и в русские доки её добавить. А то непорядок: директива - > есть, описания - нет :) В процессе, но пока на все не хватает рук. Сейчас мы пишем аутентичную английскую документацию, сводя все многочисленные источники знаний в один. Появляются главы по мере готовности здесь http://nginx.org/en/docs > On 28.11.2011 10:53, Andrew Alexeev wrote: >> On Nov 28, 2011, at 12:50 PM, Александр Лозовюк wrote: >> >>> Здесь нашел: http://wiki.nginx.org/CoreModule >> >> Наиболее свежая здесь >> http://nginx.org/en/docs/ngx_core_module.html#error_log >> >> :) >> > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From neo на miritec.com Mon Nov 28 09:49:01 2011 From: neo на miritec.com (=?KOI8-R?B?4NLJyiDnz87ewdLP1w==?=) Date: Mon, 28 Nov 2011 11:49:01 +0200 Subject: =?UTF-8?B?UmU6INCh0LvQvtC20L3Ri9C5INGA0LXQstGA0LDQudGC?= In-Reply-To: <201111252316.37747.ne@vbart.ru> References: <201111252316.37747.ne@vbart.ru> Message-ID: У меня apache+mod_php на бекенде. Если рассматривать вариант: location ~ ^(/[^/]+)/ {    try_files $uri $1/front.php /public/front.php =404;  } То /public/front.php будет пытаться читаться с корня /usr/local/nginx/html/ а не проксироваться на апач согласно другому location: location / { proxy_pass http://127.0.0.1:8885; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 100m; client_body_buffer_size 128k; proxy_connect_timeout 900; proxy_send_timeout 900; proxy_read_timeout 900; proxy_buffer_size 16k; proxy_buffers 16 64k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } Если в location что Вы предложили допишу root - то он же будет отдавать как статику. Как сделать так чтобы php файлы которые получаются из try files проксировались в итоге согласно другого location Спасибо 25 ноября 2011 г. 21:16 пользователь Валентин Бартенев написал: > On Friday 25 November 2011 19:38:37 Юрий Гончаров wrote: >> Приветствую всех. Ковырял пол дня и так не смог побороть. Помогите >> разрешить задачу. >> >> Есть http://domain.com >> Если файл (или папка) не существует для >> http://domain.com/anyfolder/somethingelseunknown то нужно реврайт на >> http://domain.com/anyfolder/front.php >> (если два уровня вложенности, все равно брать первую папку, т.е. для >> http://domain.com/anyfolder/anyfolderinside/somethingelseunknown >> нужен реврайт на http://domain.com/anyfolder/front.php) >> anyfolder - может быть любой. >> В тоже время если вызывать http://domain.com/somethingelseunknown или >> если при попытке реврайта на http://domain.com/anyfolder/front.php - >> http://domain.com/anyfolder/front.php - не будет существовать (или >> файла front.php нет или вообще нет папки anyfolder) - то тогда >> реврайтить на http://domain.com/public/front.php >> >> Попробую обобщить >> 1. Если файл не существует И есть хотя бы одна папка в URI - то >> попробовать http://domain.com/anyfolder/front.php >> 2. (Если файл не существует И перейти по 1. не удалось) ИЛИ (в URI нет >> папок (типа http://domain.com/wrongfile)) то на >> http://domain.com/public/front.php >> >> Очень жду. Спасибо >> > > Написали очень сложно. > > Предположим, что все три кейса вы хотите обрабатывать в пределах одного > локэйшена: > >  location ~ ^(/[^/]+)/.+$ { >    try_files $uri $1/front.php /public/front.php =404; >  } > > Если хотите в разных, то: > >  location ^~ /public/front.php { > >  } > >  location ~ ^/[^/]+/front.php$ { >    try_files $uri /public/front.php; >  } > >  location ~ ^(/[^/]+)/ { >    try_files $uri $1/front.php; >  } > > -- > Валентин Бартенев > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From ano на bestmx.ru Mon Nov 28 10:50:08 2011 From: ano на bestmx.ru (Andrey N. Oktyabrski) Date: Mon, 28 Nov 2011 13:50:08 +0300 Subject: =?UTF-8?B?UmU6IGVycm9yX2xvZyDQsiDQtNC+0LrRg9C80LXQvdGC0LDRhtC40Lg=?= In-Reply-To: <324A5E9A-CE54-4FE9-B70E-5DB1524A064F@nginx.com> References: <4ED34A0A.5010504@gsc-game.kiev.ua> <4ED34C96.5010605@gsc-game.kiev.ua> <324A5E9A-CE54-4FE9-B70E-5DB1524A064F@nginx.com> Message-ID: <4ED36760.2070400@bestmx.ru> On 28.11.11 12:01, Andrew Alexeev wrote: > On Nov 28, 2011, at 12:55 PM, Serguei I. Ivantsov wrote: > >> Grand merci! :) >> ИМХО, стоит и в русские доки её добавить. А то непорядок: директива - >> есть, описания - нет :) > > В процессе, но пока на все не хватает рук. Сейчас мы пишем > аутентичную английскую документацию, сводя все многочисленные > источники знаний в один. Появляются главы по мере готовности здесь > http://nginx.org/en/docs Англичане/америкосы пишут? Блин, была одна софтинка с хорошей русской документашкой, и той не будет :-( From andrew на nginx.com Mon Nov 28 09:52:05 2011 From: andrew на nginx.com (Andrew Alexeev) Date: Mon, 28 Nov 2011 13:52:05 +0400 Subject: =?UTF-8?B?UmU6IGVycm9yX2xvZyDQsiDQtNC+0LrRg9C80LXQvdGC0LDRhtC40Lg=?= In-Reply-To: <4ED36760.2070400@bestmx.ru> References: <4ED34A0A.5010504@gsc-game.kiev.ua> <4ED34C96.5010605@gsc-game.kiev.ua> <324A5E9A-CE54-4FE9-B70E-5DB1524A064F@nginx.com> <4ED36760.2070400@bestmx.ru> Message-ID: On Nov 28, 2011, at 2:50 PM, Andrey N. Oktyabrski wrote: > On 28.11.11 12:01, Andrew Alexeev wrote: >> On Nov 28, 2011, at 12:55 PM, Serguei I. Ivantsov wrote: >> >>> Grand merci! :) >>> ИМХО, стоит и в русские доки её добавить. А то непорядок: директива - >>> есть, описания - нет :) >> >> В процессе, но пока на все не хватает рук. Сейчас мы пишем >> аутентичную английскую документацию, сводя все многочисленные >> источники знаний в один. Появляются главы по мере готовности здесь >> http://nginx.org/en/docs > > Англичане/америкосы пишут? > Блин, была одна софтинка с хорошей русской документашкой, и той не будет :-( Будет. См. выше. > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From ne на vbart.ru Mon Nov 28 10:14:25 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Mon, 28 Nov 2011 14:14:25 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtGB0YLQtdC50YjQsNGPINCw0YDQuNGE0LzQtdGC0LjQutCwINCy?= =?UTF-8?B?INC60L7QvdGE0LjQs9C1?= In-Reply-To: <3a966f415fc7af595e6a954a18143f34.NginxMailingListRussian@forum.nginx.org> References: <3a966f415fc7af595e6a954a18143f34.NginxMailingListRussian@forum.nginx.org> Message-ID: <201111281414.25677.ne@vbart.ru> On Monday 28 November 2011 12:20:48 mennanov wrote: > У меня есть папка "i" в корне сайта, в ней > лежат папки типа 0, 100, 200, 300 ... 600000 ...etc, а > уже в них лежат файлы .jpg > Т.е. я создаю отдельную папку для каждой > сотой картинки, так в папке 200 будут > лежать файлы 200.jpg - 299.jpg, в папке 300 будут > файлы 300.jpg - 399.jpg > Проблема в то что я не могу написать > соотв. конфигурацию и вычислить > название этой папки, вычисляется оно > просто: ID - (ID%100), т.е. для запроса /i/256.jpg > будет вычислено: 256 - (256 % 100) = 200 и > картинку следует искать по адресу > /i/200/256.jpg > > Я пробовал делать вот так: > > location ~ /i/(.*)\.jpg { > set $folder $1-($1%100); > try_files /i/$folder/$1.jpg =400; > } > > Но это не сработало из синтаксических > ошибок... > Попробуйте что-нибудь такое: location /i/ { location ~ ^/i/(\d\d?)\.jpg$ { try_files /i/0/$1.jpg =400; } location ~ ^/i/((?\d+)\d\d)\.jpg$ { try_files /i/${huns}00/$1.jpg =400; } } -- Валентин Бартенев From ne на vbart.ru Mon Nov 28 10:19:44 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Mon, 28 Nov 2011 14:19:44 +0400 Subject: =?UTF-8?B?UmU6INCh0LvQvtC20L3Ri9C5INGA0LXQstGA0LDQudGC?= In-Reply-To: References: <201111252316.37747.ne@vbart.ru> Message-ID: <201111281419.45099.ne@vbart.ru> On Monday 28 November 2011 13:49:01 Юрий Гончаров wrote: > У меня apache+mod_php на бекенде. > Если рассматривать вариант: > > location ~ ^(/[^/]+)/ { > try_files $uri $1/front.php /public/front.php =404; > } > > То /public/front.php будет пытаться читаться с корня > /usr/local/nginx/html/ а не проксироваться на апач согласно другому > location: > > location / { > proxy_pass http://127.0.0.1:8885; > proxy_redirect off; > proxy_set_header Host $host; > proxy_set_header X-Real-IP $remote_addr; > proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; > client_max_body_size 100m; > client_body_buffer_size 128k; > proxy_connect_timeout 900; > proxy_send_timeout 900; > proxy_read_timeout 900; > proxy_buffer_size 16k; > proxy_buffers 16 64k; > proxy_busy_buffers_size 64k; > proxy_temp_file_write_size 64k; > } > > Если в location что Вы предложили допишу root - то он же будет > отдавать как статику. > Как сделать так чтобы php файлы которые получаются из try files > проксировались в итоге согласно другого location > location ~ ^(/[^/]+)/ { try_files $uri $1/front.php /public/front.php =404; proxy_pass http://127.0.0.1:8885; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 100m; client_body_buffer_size 128k; proxy_connect_timeout 900; proxy_send_timeout 900; proxy_read_timeout 900; proxy_buffer_size 16k; proxy_buffers 16 64k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } -- Валентин Бартенев From nginx-forum на nginx.us Mon Nov 28 10:29:05 2011 From: nginx-forum на nginx.us (numbata) Date: Mon, 28 Nov 2011 05:29:05 -0500 Subject: =?UTF-8?B?UmU6INCf0YDQvtGB0YLQtdC50YjQsNGPINCw0YDQuNGE0LzQtdGC0LjQutCwINCy?= =?UTF-8?B?INC60L7QvdGE0LjQs9C1?= In-Reply-To: <3a966f415fc7af595e6a954a18143f34.NginxMailingListRussian@forum.nginx.org> References: <3a966f415fc7af595e6a954a18143f34.NginxMailingListRussian@forum.nginx.org> Message-ID: А так ли уж важны эти два нуля в конце? location ~ /i/(([0-9]*)[0-9][0-9]|[0-9]+)\.jpg { try_files /i/${2}00/$1.jpg /i/0/$1.jpg =400; } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219173,219192#msg-219192 From gmm на csdoc.com Mon Nov 28 10:50:40 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Mon, 28 Nov 2011 12:50:40 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <20111127130902.GA3834@apache.rbscorp.ru> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111126051920.GR3769@apache.rbscorp.ru> <413943734.20111126172804@ngs.ru> <20111127130902.GA3834@apache.rbscorp.ru> Message-ID: <4ED36780.5030801@csdoc.com> On 27.11.2011 15:09, Dmitry E. Oboukhov wrote: > 1. пользователь может создавать симлинки (= имеет доступ к файловой > системе от своего имени) > 2. пользовтатель - один из пользователей шаред вебхостинга. то есть > может при желании запустить произвольный скрипт от имени вебсервера. > таким образом ограничение на хождение по симлинкам итп - лишь > сокращение удобных способов получить чужой конфиг. да, это нужно для того, чтобы закрыть возможность пользователям shared hosting`а получить чужой конфиг. > если этот чужой конфиг должен читать вебсервер, то единственный путь > его защитить - индивидуальный а не шаред вебсервер. если "индивидуальный вебсервер" - это уже не будет shared hosting. > а костыли вида "не пойдет по симлинку" - лишь закрытие одного из сотен > путей все остальные "удобные пути" можно закрыть корректной настройкой apache, FollowSymLinks, SymLinksIfOwnerMatch, php_admin_value open_basedir и корректной настройкой прав доступа к каталогам пользователей. -- Best regards, Gena From gmm на csdoc.com Mon Nov 28 10:54:48 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Mon, 28 Nov 2011 12:54:48 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111126051920.GR3769@apache.rbscorp.ru> <413943734.20111126172804@ngs.ru> <20111127130902.GA3834@apache.rbscorp.ru> Message-ID: <4ED36878.2010701@csdoc.com> On 28.11.2011 0:03, Алексей Сундуков wrote: > Имхо, вопрос с доступам к файлам это не та часть, которую должен > разруливать nginx. Иначе получится какой то php-ный safe mode. Запуск > того же php с правами нужного юзера и выставление на папку с конфигами > прав 700 решает проблему симлинков. это решает проблему симлинков, но появляется другая проблема - как в таких условиях отдавать статику через nginx, не запуская каждому пользователю свой собственный экземпляр веб-сервера. -- Best regards, Gena From pavel2000 на ngs.ru Mon Nov 28 11:13:30 2011 From: pavel2000 на ngs.ru (Pavel V.) Date: Mon, 28 Nov 2011 18:13:30 +0700 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <4ED36878.2010701@csdoc.com> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111126051920.GR3769@apache.rbscorp.ru> <413943734.20111126172804@ngs.ru> <20111127130902.GA3834@apache.rbscorp.ru> <4ED36878.2010701@csdoc.com> Message-ID: <1094358627.20111128181330@ngs.ru> Здравствуйте, Gena. Вы писали 28 ноября 2011 г., 17:54:48: > On 28.11.2011 0:03, Алексей Сундуков wrote: >> Имхо, вопрос с доступам к файлам это не та часть, которую должен >> разруливать nginx. Иначе получится какой то php-ный safe mode. Запуск >> того же php с правами нужного юзера и выставление на папку с конфигами >> прав 700 решает проблему симлинков. > это решает проблему симлинков, но появляется другая проблема - > как в таких условиях отдавать статику через nginx, не запуская > каждому пользователю свой собственный экземпляр веб-сервера. А тут всё просто. На скрипты - 700, на шаредное файло, раздаваемое с помощью Nginx - 644. Только вот кто такой прецизионной расстановкой прав займется ? -- С уважением, Pavel mailto:pavel2000 на ngs.ru From neo на miritec.com Mon Nov 28 11:16:29 2011 From: neo на miritec.com (=?KOI8-R?B?4NLJyiDnz87ewdLP1w==?=) Date: Mon, 28 Nov 2011 13:16:29 +0200 Subject: =?UTF-8?B?UmU6INCh0LvQvtC20L3Ri9C5INGA0LXQstGA0LDQudGC?= In-Reply-To: <201111281419.45099.ne@vbart.ru> References: <201111252316.37747.ne@vbart.ru> <201111281419.45099.ne@vbart.ru> Message-ID: Счас так: location ~ ^(/[^/]+)/ { try_files $uri $1/front.php /public/front.php =405; proxy_pass http://127.0.0.1:8885; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 100m; client_body_buffer_size 128k; proxy_connect_timeout 900; proxy_send_timeout 900; proxy_read_timeout 900; proxy_buffer_size 16k; proxy_buffers 16 64k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } Никаких других location нет Пробую загружать http://domain.com/blabla strace делаю на PID nginx-а stat64("/usr/local/nginx/html/public/front.php", 0xbfcc2dc0) = -1 ENOENT (No such file or directory) stat64("/usr/local/nginx/html/public/front.php", 0xbfcc2dc0) = -1 ENOENT (No such file or directory) stat64("/usr/local/nginx/html/public/front.php", 0xbfcc2dc0) = -1 ENOENT (No such file or directory) Соответственно ведет себя также само, бросает на 404 Не проксирует, пытаться отдать как статитику из своего дефолтного root 28 ноября 2011 г. 12:19 пользователь Валентин Бартенев написал: > On Monday 28 November 2011 13:49:01 Юрий Гончаров wrote: >> У меня apache+mod_php на бекенде. >> Если рассматривать вариант: >> >> location ~ ^(/[^/]+)/ { >>     try_files $uri $1/front.php /public/front.php =404; >>   } >> >> То /public/front.php будет пытаться читаться с корня >> /usr/local/nginx/html/ а не проксироваться на апач согласно другому >> location: >> >>         location / { >>             proxy_pass         http://127.0.0.1:8885; >>             proxy_redirect     off; >>             proxy_set_header   Host             $host; >>             proxy_set_header   X-Real-IP        $remote_addr; >>             proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for; >>             client_max_body_size       100m; >>             client_body_buffer_size    128k; >>             proxy_connect_timeout      900; >>             proxy_send_timeout         900; >>             proxy_read_timeout         900; >>             proxy_buffer_size          16k; >>             proxy_buffers              16 64k; >>             proxy_busy_buffers_size    64k; >>             proxy_temp_file_write_size 64k; >> } >> >> Если в location что Вы предложили допишу root - то он же будет >> отдавать как статику. >> Как сделать так чтобы php файлы которые получаются из try files >> проксировались в итоге согласно другого location >> > > >    location ~ ^(/[^/]+)/ { >            try_files $uri $1/front.php /public/front.php =404; > >            proxy_pass         http://127.0.0.1:8885; >            proxy_redirect     off; >            proxy_set_header   Host             $host; >            proxy_set_header   X-Real-IP        $remote_addr; >            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for; >            client_max_body_size       100m; >            client_body_buffer_size    128k; >            proxy_connect_timeout      900; >            proxy_send_timeout         900; >            proxy_read_timeout         900; >            proxy_buffer_size          16k; >            proxy_buffers              16 64k; >            proxy_busy_buffers_size    64k; >            proxy_temp_file_write_size 64k; >    } > > -- > Валентин Бартенев > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From gmm на csdoc.com Mon Nov 28 11:24:40 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Mon, 28 Nov 2011 13:24:40 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <1094358627.20111128181330@ngs.ru> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111126051920.GR3769@apache.rbscorp.ru> <413943734.20111126172804@ngs.ru> <20111127130902.GA3834@apache.rbscorp.ru> <4ED36878.2010701@csdoc.com> <1094358627.20111128181330@ngs.ru> Message-ID: <4ED36F78.5030408@csdoc.com> On 28.11.2011 13:13, Pavel V. wrote: >>> Имхо, вопрос с доступам к файлам это не та часть, которую должен >>> разруливать nginx. Иначе получится какой то php-ный safe mode. Запуск >>> того же php с правами нужного юзера и выставление на папку с конфигами >>> прав 700 решает проблему симлинков. >> это решает проблему симлинков, но появляется другая проблема - >> как в таких условиях отдавать статику через nginx, не запуская >> каждому пользователю свой собственный экземпляр веб-сервера. > А тут всё просто. На скрипты - 700, на шаредное файло, раздаваемое с помощью Nginx - 644. > Только вот кто такой прецизионной расстановкой прав займется ? это нереально. если у пользователей что-то не работает / глючит, первым делом они делают chmod 777 на все файлы в надежде решить свою проблему - неоднократно такое уже видел. поэтому - нужна защита от скачивания чужих конфигов через симлинки именно на уровне веб-сервера, который занимается раздачей статики. -- Best regards, Gena From ru на nginx.com Mon Nov 28 11:57:15 2011 From: ru на nginx.com (Ruslan Ermilov) Date: Mon, 28 Nov 2011 15:57:15 +0400 Subject: =?UTF-8?B?UmU6IGVycm9yX2xvZyDQsiDQtNC+0LrRg9C80LXQvdGC0LDRhtC40Lg=?= In-Reply-To: <4ED36760.2070400@bestmx.ru> References: <4ED34A0A.5010504@gsc-game.kiev.ua> <4ED34C96.5010605@gsc-game.kiev.ua> <324A5E9A-CE54-4FE9-B70E-5DB1524A064F@nginx.com> <4ED36760.2070400@bestmx.ru> Message-ID: <20111128115715.GC1529@lo0.su> On Mon, Nov 28, 2011 at 01:50:08PM +0300, Andrey N. Oktyabrski wrote: > On 28.11.11 12:01, Andrew Alexeev wrote: > > On Nov 28, 2011, at 12:55 PM, Serguei I. Ivantsov wrote: > > > >> Grand merci! :) > >> ИМХО, стоит и в русские доки её добавить. А то непорядок: директива - > >> есть, описания - нет :) > > > > В процессе, но пока на все не хватает рук. Сейчас мы пишем > > аутентичную английскую документацию, сводя все многочисленные > > источники знаний в один. Появляются главы по мере готовности здесь > > http://nginx.org/en/docs > > Англичане/америкосы пишут? Кто и что пишет можно всегда посмотреть тут: http://trac.nginx.org/nginx/browser/nginx_org > Блин, была одна софтинка с хорошей русской документашкой, и той не будет :-( Русская документация будет поддерживаться в актуальном состоянии. Просто пока документацию по ngx_http_core_module я ещё не подтянул. From ne на vbart.ru Mon Nov 28 12:31:48 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Mon, 28 Nov 2011 16:31:48 +0400 Subject: =?UTF-8?B?UmU6INCh0LvQvtC20L3Ri9C5INGA0LXQstGA0LDQudGC?= In-Reply-To: References: <201111281419.45099.ne@vbart.ru> Message-ID: <201111281631.48264.ne@vbart.ru> On Monday 28 November 2011 15:16:29 Юрий Гончаров wrote: > Счас так: > > location ~ ^(/[^/]+)/ { > try_files $uri $1/front.php /public/front.php =405; > proxy_pass http://127.0.0.1:8885; > proxy_redirect off; > proxy_set_header Host $host; > proxy_set_header X-Real-IP $remote_addr; > proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; > client_max_body_size 100m; > client_body_buffer_size 128k; > proxy_connect_timeout 900; > proxy_send_timeout 900; > proxy_read_timeout 900; > proxy_buffer_size 16k; > proxy_buffers 16 64k; > proxy_busy_buffers_size 64k; > proxy_temp_file_write_size 64k; > } > > > Никаких других location нет > > Пробую загружать http://domain.com/blabla > > strace делаю на PID nginx-а > > stat64("/usr/local/nginx/html/public/front.php", 0xbfcc2dc0) = -1 > ENOENT (No such file or directory) > stat64("/usr/local/nginx/html/public/front.php", 0xbfcc2dc0) = -1 > ENOENT (No such file or directory) > stat64("/usr/local/nginx/html/public/front.php", 0xbfcc2dc0) = -1 > ENOENT (No such file or directory) > > Соответственно ведет себя также само, бросает на 404 > > Не проксирует, пытаться отдать как статитику из своего дефолтного root > Оно не пытается отдать как статику. Прочитайте документацию: http://nginx.org/ru/docs/http/ngx_http_core_module.html#try_files Естественно если файла root + /public/front.php нет, то и обрабатывать нечего. Будет возвращена 404. Если вас такое поведение не устраивает, то можно, например, так: location ~ ^(/[^/]+)/ { try_files $uri $1/front.php @front; proxy_pass http://127.0.0.1:8885; etc... } location @front { proxy_pass http://127.0.0.1:8885/public/front.php; etc... } Но, почему бы все-таки не почитать наконец документацию? -- Валентин Бартенев From unera на uvw.ru Mon Nov 28 12:53:21 2011 From: unera на uvw.ru (Dmitry E. Oboukhov) Date: Mon, 28 Nov 2011 16:53:21 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <4ED36780.5030801@csdoc.com> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111126051920.GR3769@apache.rbscorp.ru> <413943734.20111126172804@ngs.ru> <20111127130902.GA3834@apache.rbscorp.ru> <4ED36780.5030801@csdoc.com> Message-ID: <20111128125321.GB20363@apache.rbscorp.ru> >> 1. пользователь может создавать симлинки (= имеет доступ к файловой >> системе от своего имени) >> 2. пользовтатель - один из пользователей шаред вебхостинга. то есть >> может при желании запустить произвольный скрипт от имени вебсервера. >> таким образом ограничение на хождение по симлинкам итп - лишь >> сокращение удобных способов получить чужой конфиг. > да, это нужно для того, чтобы закрыть возможность > пользователям shared hosting`а получить чужой конфиг. но это не закрывает эту возможность. пользователи современных хостингов могут использовать для этой цели помимо ninx: php, perl, просто CGI итп >> если этот чужой конфиг должен читать вебсервер, то единственный путь >> его защитить - индивидуальный а не шаред вебсервер. > если "индивидуальный вебсервер" - это уже не будет shared hosting. ну а shared hosting отдающий только статику нынче не является хостингом. туда никакой клиент не пойдет. и если кто-то делает ln -s /path/to name а потом читает name как статику, он же может сделать: open my $fh, '<', /path/to; print "Content-Type: application/octet-stream\n\n"; print $_ while <$fh>; >> а костыли вида "не пойдет по симлинку" - лишь закрытие одного из сотен >> путей > все остальные "удобные пути" можно закрыть корректной настройкой apache, > FollowSymLinks, SymLinksIfOwnerMatch, php_admin_value open_basedir > и корректной настройкой прав доступа к каталогам пользователей. Ну и как закрыть вышеприведенный путь настройкой апача? не давать пользователю shared-хостинга юзать динамический контент? и сколько пользователей будет завтра на этом хостинге? -- . ''`. Dmitry E. Oboukhov : :? : email: unera на debian.org jabber://UNera на uvw.ru `. `~? GPGKey: 1024D / F8E26537 2006-11-21 `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537 ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: Digital signature URL: From gmm на csdoc.com Mon Nov 28 13:07:31 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Mon, 28 Nov 2011 15:07:31 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <20111128125321.GB20363@apache.rbscorp.ru> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111126051920.GR3769@apache.rbscorp.ru> <413943734.20111126172804@ngs.ru> <20111127130902.GA3834@apache.rbscorp.ru> <4ED36780.5030801@csdoc.com> <20111128125321.GB20363@apache.rbscorp.ru> Message-ID: <4ED38793.2040803@csdoc.com> On 28.11.2011 14:53, Dmitry E. Oboukhov wrote: >>> таким образом ограничение на хождение по симлинкам итп - лишь >>> сокращение удобных способов получить чужой конфиг. >> да, это нужно для того, чтобы закрыть возможность >> пользователям shared hosting`а получить чужой конфиг. > но это не закрывает эту возможность. пользователи современных > хостингов могут использовать для этой цели помимо ninx: php, perl, > просто CGI итп mod_perl стоит дороже, потому что в этом случае пользователю будет выделен отдельный экземпляр апача. если CGI скрипты запускаются с правами пользователя-владельца файлов - он через них не сможет получить доступ к чужим файлам, куда может доступиться только другой пользователь и веб-сервер. >>> если этот чужой конфиг должен читать вебсервер, то единственный путь >>> его защитить - индивидуальный а не шаред вебсервер. >> если "индивидуальный вебсервер" - это уже не будет shared hosting. > ну а shared hosting отдающий только статику нынче не является > хостингом. туда никакой клиент не пойдет. очень многие shared hosting`и для экономии ресурсов отдают статику через nginx напрямую, без двойного проксирования статики через апач. > и если кто-то делает ln -s /path/to name а потом читает name как > статику, он же может сделать: > > open my $fh, '<', /path/to; > print "Content-Type: application/octet-stream\n\n"; > print $_ while<$fh>; пользователь не имеет прямого доступа к этим чужим файлам. только nginx и apache. в apache можно закрыть "удобные пути" получения доступа к чужим файлам, а в nginx - нет такого способа. >>> а костыли вида "не пойдет по симлинку" - лишь закрытие одного из сотен >>> путей >> все остальные "удобные пути" можно закрыть корректной настройкой apache, >> FollowSymLinks, SymLinksIfOwnerMatch, php_admin_value open_basedir >> и корректной настройкой прав доступа к каталогам пользователей. > Ну и как закрыть вышеприведенный путь настройкой апача? не давать > пользователю shared-хостинга юзать динамический контент? и сколько > пользователей будет завтра на этом хостинге? наверное этот вопрос про апач Вам следует задать в списке рассылки для пользователей дебиана. думаю, что там есть и те, кто знает ответ на этот Ваш вопрос. в этом списке рассылки по nginx вопросы корректной настройки apache+php для shared hosting`а наверное являются оффтопиком. -- Best regards, Gena From neo на miritec.com Mon Nov 28 13:10:27 2011 From: neo на miritec.com (=?KOI8-R?B?4NLJyiDnz87ewdLP1w==?=) Date: Mon, 28 Nov 2011 15:10:27 +0200 Subject: =?UTF-8?B?UmU6INCh0LvQvtC20L3Ri9C5INGA0LXQstGA0LDQudGC?= In-Reply-To: <201111281631.48264.ne@vbart.ru> References: <201111281419.45099.ne@vbart.ru> <201111281631.48264.ne@vbart.ru> Message-ID: Спасибо за Ваши замечания. Понял где тупил. Да теперь все ок, но проблема другая. /public/front.php существует всегда, с этим норм но если я пробую http://domain.com/blabla который не существует, то nginx через try files все таки находит /public/front.php но в итоге получаю апачевское 404, ведь проксируется не то что в try files (/public/front.php) а blabla/ которого нет По условию должен выполнятся реврайт в таком же порядке как в try files (если нет URI тогда $1/front.php , а если тоже нет то /public/front.php) 28 ноября 2011 г. 14:31 пользователь Валентин Бартенев написал: > On Monday 28 November 2011 15:16:29 Юрий Гончаров wrote: >> Счас так: >> >>    location ~ ^(/[^/]+)/ { >>            try_files $uri $1/front.php /public/front.php =405; >>            proxy_pass         http://127.0.0.1:8885; >>            proxy_redirect     off; >>            proxy_set_header   Host             $host; >>            proxy_set_header   X-Real-IP        $remote_addr; >>            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for; >>            client_max_body_size       100m; >>            client_body_buffer_size    128k; >>            proxy_connect_timeout      900; >>            proxy_send_timeout         900; >>            proxy_read_timeout         900; >>            proxy_buffer_size          16k; >>            proxy_buffers              16 64k; >>            proxy_busy_buffers_size    64k; >>            proxy_temp_file_write_size 64k; >>    } >> >> >> Никаких других location нет >> >> Пробую загружать http://domain.com/blabla >> >> strace делаю на PID nginx-а >> >> stat64("/usr/local/nginx/html/public/front.php", 0xbfcc2dc0) = -1 >> ENOENT (No such file or directory) >> stat64("/usr/local/nginx/html/public/front.php", 0xbfcc2dc0) = -1 >> ENOENT (No such file or directory) >> stat64("/usr/local/nginx/html/public/front.php", 0xbfcc2dc0) = -1 >> ENOENT (No such file or directory) >> >> Соответственно ведет себя также само, бросает на 404 >> >> Не проксирует, пытаться отдать как статитику из своего дефолтного root >> > > Оно не пытается отдать как статику. Прочитайте документацию: > http://nginx.org/ru/docs/http/ngx_http_core_module.html#try_files > > Естественно если файла root + /public/front.php нет, то и обрабатывать нечего. > Будет возвращена 404. > > Если вас такое поведение не устраивает, то можно, например, так: > >  location ~ ^(/[^/]+)/ { >    try_files $uri $1/front.php @front; >    proxy_pass         http://127.0.0.1:8885; >    etc... >  } > >  location @front { >        proxy_pass         http://127.0.0.1:8885/public/front.php; >        etc... >  } > > Но, почему бы все-таки не почитать наконец документацию? > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From ne на vbart.ru Mon Nov 28 13:45:50 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Mon, 28 Nov 2011 17:45:50 +0400 Subject: =?UTF-8?B?UmU6INCh0LvQvtC20L3Ri9C5INGA0LXQstGA0LDQudGC?= In-Reply-To: References: <201111281631.48264.ne@vbart.ru> Message-ID: <201111281745.50949.ne@vbart.ru> On Monday 28 November 2011 17:10:27 Юрий Гончаров wrote: > Спасибо за Ваши замечания. Понял где тупил. > Да теперь все ок, но проблема другая. > /public/front.php существует всегда, с этим норм но > > если я пробую http://domain.com/blabla который не существует, > то nginx через try files все таки находит /public/front.php но в итоге > получаю апачевское 404, ведь проксируется не то что в try files > (/public/front.php) а blabla/ которого нет > [...] Попробуйте заменить: proxy_pass http://127.0.0.1:8885; на: proxy_pass http://127.0.0.1:8885$uri; -- Валентин Бартенев From postmaster на softsearch.ru Mon Nov 28 13:47:39 2011 From: postmaster на softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Mon, 28 Nov 2011 17:47:39 +0400 Subject: =?UTF-8?B?UmU6ICpfcGFzcyDQuCB1cHN0cmVhbSfRiyDQv9C+IElQdjY=?= In-Reply-To: <1322424716.3645.13.camel@N900> References: <4ED24982.5050502@csdoc.com> <1322423961.3645.4.camel@N900> <1322424716.3645.13.camel@N900> Message-ID: <1763971575.20111128174739@softsearch.ru> Здравствуйте, Мисбах-Соловьeв. > А ни в курсе ли уважаемые участники рассылки, планируется ли > когда-нибудь допилить *_pass и server в upstream {} (ну и в прочих > местах) чтобы они работали с бекендами по IPv6 и не провоцировали > 502? ;) А то поддержка IPv6 добавлена уже 1000 лет назад, а работать > с бекендами по IPv6 всё ещё никак... Вы хотите в инет проксировать или в локальной сетке? Интересно, есть ли сайты, которые только по ipv6 доступны. -- С уважением, Михаил mailto:postmaster на softsearch.ru From neo на miritec.com Mon Nov 28 13:49:52 2011 From: neo на miritec.com (=?KOI8-R?B?4NLJyiDnz87ewdLP1w==?=) Date: Mon, 28 Nov 2011 15:49:52 +0200 Subject: =?UTF-8?B?UmU6INCh0LvQvtC20L3Ri9C5INGA0LXQstGA0LDQudGC?= In-Reply-To: <201111281745.50949.ne@vbart.ru> References: <201111281631.48264.ne@vbart.ru> <201111281745.50949.ne@vbart.ru> Message-ID: Всё супер, Вы мой спаситель. Последний нюанс location ~ ^(/[^/]+)/ под этот location походу не матчится например http://domain.com/blabla (надо в конце именно слеш ставить, поэтому до $uri/ дело не доходит) Как это исправить? Спасибо! 28 ноября 2011 г. 15:45 пользователь Валентин Бартенев написал: > On Monday 28 November 2011 17:10:27 Юрий Гончаров wrote: >> Спасибо за Ваши замечания. Понял где тупил. >> Да теперь все ок, но проблема другая. >> /public/front.php существует всегда, с этим норм но >> >> если я пробую http://domain.com/blabla который не существует, >> то nginx через try files все таки находит /public/front.php но в итоге >> получаю апачевское 404, ведь проксируется не то что в try files >> (/public/front.php) а blabla/ которого нет >> > [...] > > Попробуйте заменить: > proxy_pass         http://127.0.0.1:8885; > > на: > proxy_pass         http://127.0.0.1:8885$uri; > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From ne на vbart.ru Mon Nov 28 13:55:04 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Mon, 28 Nov 2011 17:55:04 +0400 Subject: =?UTF-8?B?UmU6INCh0LvQvtC20L3Ri9C5INGA0LXQstGA0LDQudGC?= In-Reply-To: References: <201111281745.50949.ne@vbart.ru> Message-ID: <201111281755.04861.ne@vbart.ru> On Monday 28 November 2011 17:49:52 Юрий Гончаров wrote: > Всё супер, Вы мой спаситель. > Последний нюанс > > location ~ ^(/[^/]+)/ > > под этот location походу не матчится например http://domain.com/blabla > (надо в конце именно слеш ставить, поэтому до $uri/ дело не доходит) > Как это исправить? [...] location ~ ^(/[^/]+) { ... } Стоит познакомиться с регулярными выражениями. Вообще говоря, без них что-либо администрировать трудно, ибо используются они повсеместно. -- Валентин Бартенев From neo на miritec.com Mon Nov 28 13:56:51 2011 From: neo на miritec.com (=?KOI8-R?B?4NLJyiDnz87ewdLP1w==?=) Date: Mon, 28 Nov 2011 15:56:51 +0200 Subject: =?UTF-8?B?UmU6INCh0LvQvtC20L3Ri9C5INGA0LXQstGA0LDQudGC?= In-Reply-To: References: <201111281631.48264.ne@vbart.ru> <201111281745.50949.ne@vbart.ru> Message-ID: Все-все уже догнал, прошу прощения. Слеш просто убрал из location Спасибо Вам за помощь, Валентин. 28 ноября 2011 г. 15:49 пользователь Юрий Гончаров написал: > Всё супер, Вы мой спаситель. > Последний нюанс > > location ~ ^(/[^/]+)/ > > под этот location походу не матчится например http://domain.com/blabla > (надо в конце именно слеш ставить, поэтому до $uri/ дело не доходит) > Как это исправить? > Спасибо! > > 28 ноября 2011 г. 15:45 пользователь Валентин Бартенев написал: >> On Monday 28 November 2011 17:10:27 Юрий Гончаров wrote: >>> Спасибо за Ваши замечания. Понял где тупил. >>> Да теперь все ок, но проблема другая. >>> /public/front.php существует всегда, с этим норм но >>> >>> если я пробую http://domain.com/blabla который не существует, >>> то nginx через try files все таки находит /public/front.php но в итоге >>> получаю апачевское 404, ведь проксируется не то что в try files >>> (/public/front.php) а blabla/ которого нет >>> >> [...] >> >> Попробуйте заменить: >> proxy_pass         http://127.0.0.1:8885; >> >> на: >> proxy_pass         http://127.0.0.1:8885$uri; >> >> -- >> Валентин Бартенев >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > From petr.shevtsov на gmail.com Mon Nov 28 14:22:04 2011 From: petr.shevtsov на gmail.com (=?KOI8-R?B?8KPU0iD7xdfDz9c=?=) Date: Mon, 28 Nov 2011 20:22:04 +0600 Subject: =?UTF-8?B?0J/RgNC+0LHQu9C10LzQsCDRgSBwcm94eV9wYXNz?= Message-ID: Приветствую! При проксировании на apache мне необходимо отправлять все запросы на index.php (ЧПУ). На сегодняшний день всё это реализовано следующими конфигами (показаны лишь относящиеся к проблеме директивы) nginx.conf: server { listen 80; server_name my_server_name.tld; root /path/to/www; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { proxy_pass http://127.0.0.1:88; proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_connect_timeout 120; proxy_send_timeout 120; proxy_read_timeout 180; } } httpd.conf: RewriteEngine on RewriteRule . index.php Возможно ли избавиться от Rewrite'ов на стороне Apache? Спасибо. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From onokonem на gmail.com Mon Nov 28 14:45:56 2011 From: onokonem на gmail.com (Daniel Podolsky) Date: Mon, 28 Nov 2011 18:45:56 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <4ED36F78.5030408@csdoc.com> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111126051920.GR3769@apache.rbscorp.ru> <413943734.20111126172804@ngs.ru> <20111127130902.GA3834@apache.rbscorp.ru> <4ED36878.2010701@csdoc.com> <1094358627.20111128181330@ngs.ru> <4ED36F78.5030408@csdoc.com> Message-ID: > нужна защита от скачивания чужих конфигов через симлинки есть еще хардлинки. я вот раньше не задумывался над вопросом - я не пасу shared hosting. но по результатам обсуждения мне лично очевидно - помочь может только размещение docroot на fs без линков вообще. соответственно - патчить nginx никто не будет, в этом просто нет смысла. From mdounin на mdounin.ru Mon Nov 28 16:08:14 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 28 Nov 2011 20:08:14 +0400 Subject: nginx-1.1.9 Message-ID: <20111128160814.GR67687@mdounin.ru> Изменения в nginx 1.1.9 28.11.2011 *) Изменение: теперь двойные кавычки экранируется при выводе SSI-командой echo. Спасибо Зауру Абасмирзоеву. *) Добавление: параметр valid в директиве resolver. По умолчанию теперь используется TTL, возвращённый DNS-сервером. Спасибо Кириллу Коринскому. *) Исправление: nginx мог перестать отвечать, если рабочий процесс завершался аварийно. *) Исправление: в рабочем процессе мог произойти segmentation fault, если использовалось SNI; ошибка появилась в 1.1.2. *) Исправление: в директиве keepalive_disable; ошибка появилась в 1.1.8. Спасибо Александру Усову. *) Исправление: сигнал SIGWINCH переставал работать после первого обновления исполняемого файла; ошибка появилась в 1.1.1. *) Исправление: теперь ответы бэкендов, длина которых не соответствует заголовку Content-Length, не кэширутся. *) Исправление: в директиве scgi_param при использовании составных параметров. *) Исправление: в методе epoll. Спасибо Yichun Zhang. *) Исправление: в модуле ngx_http_flv_module. Спасибо Piotr Sikora. *) Исправление: в модуле ngx_http_mp4_module. *) Исправление: теперь nginx понимает IPv6-адреса в строке запроса и в заголовке Host. *) Исправление: директивы add_header и expires не работали для ответов с кодом 206, если запрос проксировался. *) Исправление: nginx не собирался на FreeBSD 10. *) Исправление: nginx не собирался на AIX. Maxim Dounin From public-mail на alekciy.ru Mon Nov 28 16:15:16 2011 From: public-mail на alekciy.ru (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0KHRg9C90LTRg9C60L7Qsg==?=) Date: Mon, 28 Nov 2011 20:15:16 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <4ED36F78.5030408@csdoc.com> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111126051920.GR3769@apache.rbscorp.ru> <413943734.20111126172804@ngs.ru> <20111127130902.GA3834@apache.rbscorp.ru> <4ED36878.2010701@csdoc.com> <1094358627.20111128181330@ngs.ru> <4ED36F78.5030408@csdoc.com> Message-ID: Да, сам подобное не раз наблюдал. Но если человек сам себе стреляет в голову, проблема ли это производителя? 28 ноября 2011 г. 15:24 пользователь Gena Makhomed написал: > On 28.11.2011 13:13, Pavel V. wrote: > это нереально. если у пользователей что-то не работает / глючит, > первым делом они делают chmod 777 на все файлы в надежде решить > свою проблему - неоднократно такое уже видел. > > поэтому - нужна защита от скачивания чужих конфигов через симлинки > именно на уровне веб-сервера, который занимается раздачей статики. > > -- > Best regards, >  Gena > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From hell-for-yahoo на umail.ru Mon Nov 28 17:16:43 2011 From: hell-for-yahoo на umail.ru (Andrey Repin) Date: Mon, 28 Nov 2011 21:16:43 +0400 Subject: необходимость подмены заголовков запроса в fastcgi In-Reply-To: <1322423961.3645.4.camel@N900> References: <4ED24982.5050502@csdoc.com> <1322423961.3645.4.camel@N900> Message-ID: <1141480103.20111128211643@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) Мисбах-Соловьeв Вадим! МСВ> А проблема зачастую заключается в том, что приложение вместо того, чтобы МСВ> работать с HTTP_HOST берёт и делает 301 на урл типа МСВ> SERVER_NAME:SERVER_PORT/uri (mediawiki, например, не раз попадалась на таком). Это не проблема. В HTTP_HOST может быть любая бредятина. На него можно ориентироваться только в ограниченном числе случаев. И как ваше сообщение относится к стримингу mp4 ? -- С уважением Andrey Repin (hell-for-yahoo на umail.ru) понедельник, 28.11.2011, <21:15> From hell-for-yahoo на umail.ru Mon Nov 28 17:09:03 2011 From: hell-for-yahoo на umail.ru (Andrey Repin) Date: Mon, 28 Nov 2011 21:09:03 +0400 Subject: Помогите разобраться откуда берутся левые get-запросы In-Reply-To: References: <4ECE911A.2060309@csdoc.com> <10447e3dc4a779f012fdf884126a953d.NginxMailingListRussian@forum.nginx.org> Message-ID: <584927386.20111128210903@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) valet! >>>>Не будут, если в редиректе поставишь v> правильный код. v> Какой, 301-ый? http://tools.ietf.org/html/rfc2616#section-10.3.2 -- С уважением Andrey Repin (hell-for-yahoo на umail.ru) понедельник, 28.11.2011, <21:08> From peter на vereshagin.org Mon Nov 28 17:58:43 2011 From: peter на vereshagin.org (Peter Vereshagin) Date: Mon, 28 Nov 2011 21:58:43 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <4ED36780.5030801@csdoc.com> Message-ID: <20111128175843.GC5363@external.screwed.box> Hello. 2011/11/28 10:50:50 +0000 nginx-ru-request на nginx.org => To nginx-ru на nginx.org : > если "индивидуальный вебсервер" - это уже не будет shared hosting. > > > а костыли вида "не пойдет по симлинку" - лишь закрытие одного из сотен > > путей > > все остальные "удобные пути" можно закрыть корректной настройкой apache, > FollowSymLinks, SymLinksIfOwnerMatch, php_admin_value open_basedir > и корректной настройкой прав доступа к каталогам пользователей. Чересчур много условий. Я б рекомендовал сказать --- и отрезать: - юзерам чтобы не выкладывали коды своих банковских карточек ( & etc. ) на шареный виртхостинг - девелоперам nginx что уродливое (No)FollowSymlinks(IfOwnerMatch) не нужно. В перспективе --- ждать, пока в o/s появятся nosymfollowifownernotmatch для mount. А вообще, шареный хостинг не нужен, есть облачные платформы, панельки к ним приделал да продавай. Воистину задачка для школоты на GCI: http://www.theregister.co.uk/2011/06/14/activestate_buys_teen_programmer/ BTW, как дела с поддержкой nginx в панельках управления шареными хостингами? Если никак, то это лишний гвоздь в крышку гроба тем наподобие 'NoSymFollow для nginx', 'htaccess для nginx'. Ибо $shared_hosting === $apache_httpd. RFC на запуск php-демона следующим образом: линковка бинарников, в дальнейшем форки с раздельными ивент-лупами под разными uid'ами на разные чруты и порты/локалсокеты ( per uid, например ). Кол-во форков per uid можно сделать переменным, дабы адаптивно менялось под slashdotting-нагрузки per uid. При этом проблема объединения persistent-кеша для одинаковых php-исходников у разных uid может быть решена посредством отдельного мемкеш-лайк демона, хранящего пары вида "чексумма php-блоба - скомпилированный опкод". Хороший способ сэкономить толпу ресурсов и таки разнести php-демоны по uid'ам и chroot'ам. -- Peter Vereshagin (http://vereshagin.org) pgp: A0E26627 From ano на bestmx.ru Mon Nov 28 19:21:42 2011 From: ano на bestmx.ru (Andrey N. Oktyabrski) Date: Mon, 28 Nov 2011 22:21:42 +0300 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111126051920.GR3769@apache.rbscorp.ru> <413943734.20111126172804@ngs.ru> <20111127130902.GA3834@apache.rbscorp.ru> <4ED36878.2010701@csdoc.com> <1094358627.20111128181330@ngs.ru> <4ED36F78.5030408@csdoc.com> Message-ID: <4ED3DF46.9050902@bestmx.ru> On 28.11.11 19:15, Алексей Сундуков wrote: > Да, сам подобное не раз наблюдал. Но если человек сам себе стреляет в > голову, проблема ли это производителя? Да, к великому сожалению. From gmm на csdoc.com Mon Nov 28 19:26:45 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Mon, 28 Nov 2011 21:26:45 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <20111128175843.GC5363@external.screwed.box> References: <20111128175843.GC5363@external.screwed.box> Message-ID: <4ED3E075.4060602@csdoc.com> On 28.11.2011 19:58, Peter Vereshagin wrote: >> все остальные "удобные пути" можно закрыть корректной настройкой apache, >> FollowSymLinks, SymLinksIfOwnerMatch, php_admin_value open_basedir >> и корректной настройкой прав доступа к каталогам пользователей. > > Чересчур много условий. Я б рекомендовал сказать --- и отрезать: > > - юзерам чтобы не выкладывали коды своих банковских карточек (& etc. ) на > шареный виртхостинг проблема в том, что таким образом любой сайт на shared hosting`е может быть легко/тривиально превращен в источник внедоносного кода, вирусов/троянов и т.п. - в самых тяжелых случаях пользователю вообще не надо ничего запускать, достаточно просто открыть сайт в браузере, и все - его локальная машина уже будет заражена вирусами/троянами, и уже у пользователя будут воровать коды банковских карточек и т.п. > - девелоперам nginx что уродливое (No)FollowSymlinks(IfOwnerMatch) не нужно. уродливое не нужно. нужно нормальное. даже опция для открытия файлов с флагом O_NOFOLLOW устранит 99% проблем, если не больше. > В перспективе --- ждать, пока в o/s появятся nosymfollowifownernotmatch для > mount. этого ждать можно вечно. проще будет сделать еще один форк nginx. > А вообще, шареный хостинг не нужен, есть облачные платформы какой-то беспредметный разговор получается. если лично Вам shared hosting не нужен - не пользуйтесь, в чем проблема? > $shared_hosting === $apache_httpd много кода на PHP, и много программистов, которые зарабатывают созданием сайтов на PHP. и как результат - много клиентов которые хотят сайт на PHP и чтобы его потом можно было дешево разместить в интернете. пока что конкурентов PHP нет и не наблюдается в плане возможности максимально плотно упаковать разные виртуальные хосты на один физический сервер. > RFC на запуск php-демона следующим образом: линковка бинарников, в дальнейшем > форки с раздельными ивент-лупами под разными uid'ами на разные чруты и > порты/локалсокеты ( per uid, например ). Кол-во форков per uid > можно сделать переменным, дабы адаптивно менялось под slashdotting-нагрузки > per uid. При этом проблема объединения persistent-кеша для одинаковых > php-исходников у разных uid может быть решена посредством отдельного > мемкеш-лайк демона, хранящего пары вида "чексумма php-блоба - скомпилированный > опкод". Хороший способ сэкономить толпу ресурсов и таки разнести php-демоны по > uid'ам и chroot'ам. в результате - для каждого виртуального хоста всегда будет активен как минимум один PHP-демон, который будет занимать и память и процессор. использование ресурсов гораздо выше по сравнению с shared hosting`ом. тем более, что очень много сайтов просто не будут нормально работать без .htaccess файла и директив апачевского mod_rewrite внутри. кроме того, вопрос был не про PHP, вопрос был про отдачу статики. тут ведь кроме отдельного экземпляра PHP для каждого пользователя - надо будет внутри chroot`ов запускать и по отдельному экземпляру nginx. и это уже тоже по определению совсем не shared hosting будет, что находится очень далеко за пределамы обсуждаемой сейчас темы (nginx + возможность прочитать чужие файлы на shared hosting). -- Best regards, Gena From vugluskr на vugluskr.org.ua Mon Nov 28 20:02:42 2011 From: vugluskr на vugluskr.org.ua (=?KOI8-R?Q?=E2=CF=C7=D5=CE_=E4=CD=C9=D4=D2=C9=CA?=) Date: Mon, 28 Nov 2011 22:02:42 +0200 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0YDQsNC30L7QsdGA0LDRgtGM0YHRjyDQvtGC?= =?UTF-8?B?0LrRg9C00LAg0LHQtdGA0YPRgtGB0Y8g0LvQtdCy0YvQtSBnZXQt0LfQsNC/?= =?UTF-8?B?0YDQvtGB0Ys=?= In-Reply-To: <84b659c31a46884a2bba8115e606a1a6.NginxMailingListRussian@forum.nginx.org> References: <4ECE911A.2060309@csdoc.com> <10447e3dc4a779f012fdf884126a953d.NginxMailingListRussian@forum.nginx.org> <84b659c31a46884a2bba8115e606a1a6.NginxMailingListRussian@forum.nginx.org> Message-ID: <4ED3E8E2.3090305@vugluskr.org.ua> 25.11.2011 22:53, valet пишет: >>>> то даже > через 3 месяца видел запросы по старым > ссылком от гуглового бота и это > при том, что там отвечали 404, а если > ботам отвечать на такие страницы > 200 - то они просто обязаны за ними > приходить вновь и вновь. > Структура запрашиваемых страниц > такая: > site1.ru/id1-odna-novost-s-site2.html > ... > site1.ru/idn-drugaja-novost-s-site2.html > А если 301 отдавать и редиректить на > другую страницу с этим id? > То есть например страницу > site1.ru/idn-drugaja-novost-s-site2.html редиректить на > site1.ru/idn-novost-s-site1-s-etim-id.html > > Редиректные страницы должны же > выпасть? Они и выпали, после того как redirct добавился, там из-за ошибки первое время redirect'а не было, а было 404. По повдоу выпадения 404-х общался с поддержкой андекса, но так и не смог добится от них внятного срока, после которого такие страницы выпадают из проверки бота. -- Богун Дмитрий aka vugluskr From peter на vereshagin.org Mon Nov 28 22:45:27 2011 From: peter на vereshagin.org (Peter Vereshagin) Date: Tue, 29 Nov 2011 02:45:27 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <4ED3E075.4060602@csdoc.com> Message-ID: <20111128224527.GA5181@external.screwed.box> Hello. 2011/11/28 20:03:02 +0000 nginx-ru-request на nginx.org => To nginx-ru на nginx.org : > проблема в том, что таким образом любой сайт на shared hosting`е > может быть легко/тривиально превращен в источник внедоносного кода, > вирусов/троянов и т.п. - в самых тяжелых случаях пользователю вообще > не надо ничего запускать, достаточно просто открыть сайт в браузере, > и все - его локальная машина уже будет заражена вирусами/троянами, > и уже у пользователя будут воровать коды банковских карточек и т.п. Как будто без Follow Symlinks If Owner Match на shared hosting и так нельзя положить источник ВНЕ ДОНОСНОГО кода... (= > > - девелоперам nginx что уродливое (No)FollowSymlinks(IfOwnerMatch) не нужно. > уродливое не нужно. нужно нормальное. даже опция для открытия файлов > с флагом O_NOFOLLOW устранит 99% проблем, если не больше. Чересчур иллюзорно. После такого "устранения" оставшийся 1% становится всеми 100%, это так радужно. (= а где написано что мол nginx предназначено для замены apache на shared hostings? > > В перспективе --- ждать, пока в o/s появятся nosymfollowifownernotmatch для > > mount. > этого ждать можно вечно. проще будет сделать еще один форк nginx. Бесперспективно. > > А вообще, шареный хостинг не нужен, есть облачные платформы > какой-то беспредметный разговор получается. хотите предметы --- скипайте квоту аккуратнее. Что там про панельки было? Ключевое слово --- "в перспективе". > если лично Вам shared hosting не нужен - не пользуйтесь, в чем проблема? спасибо за разрешение. > > $shared_hosting === $apache_httpd > пока что конкурентов PHP нет и не наблюдается не наблюдается != нет > в плане возможности максимально плотно упаковать > разные виртуальные хосты на один физический сервер. выбор технологии (PHP или не PHP) как может быть связан с параметром 'отношение кол-ва доменов per сервер'? а на парковках этот параметр ещё больше, и что? там тоже в наличии корреляция? и вообще, физические сервера не нужны, есть облака, рекомендую. (= > > RFC на запуск php-демона следующим образом: линковка бинарников, в дальнейшем > > форки с раздельными ивент-лупами под разными uid'ами на разные чруты и > > порты/локалсокеты ( per uid, например ). Кол-во форков per uid > > можно сделать переменным, дабы адаптивно менялось под slashdotting-нагрузки > > per uid. При этом проблема объединения persistent-кеша для одинаковых > > php-исходников у разных uid может быть решена посредством отдельного > > мемкеш-лайк демона, хранящего пары вида "чексумма php-блоба - скомпилированный > > опкод". Хороший способ сэкономить толпу ресурсов и таки разнести php-демоны по > > uid'ам и chroot'ам. > > в результате - для каждого виртуального хоста всегда будет активен как > минимум один PHP-демон, который будет занимать и память Copy On Write уже отменили? > и процессор. ивент-лупа преимущественно в состоянии ожидания? Вы делаете мне всё смешнее. > использование ресурсов гораздо выше по сравнению с shared hosting`ом. > тем более, что очень много сайтов просто не будут нормально работать > без .htaccess файла и директив апачевского mod_rewrite внутри. А ещё mod_access и всех mod_*. Welcome back into the future. Вы там может уже apache3 изобрели а я и не знаю? (= > кроме того, вопрос был не про PHP, вопрос был про отдачу статики. Однако, про PHP здесь где-то было. а где написано, что мол nginx задуман для раздачи статики с shared hostings? > тут ведь кроме отдельного экземпляра PHP для каждого пользователя - > надо будет внутри chroot`ов запускать и по отдельному экземпляру nginx. а они, вроде, всё равно мапятся все в один участок памяти по типу memory mapping, нет? если бинарники все в одних и тех же inodes сидят. > и это уже тоже по определению совсем не shared hosting будет, > что находится очень далеко за пределамы обсуждаемой сейчас темы > (nginx + возможность прочитать чужие файлы на shared hosting). в этих ваших shared_hosting ради кол-ва абонов кол-во whistles & bells настолько велико, что устранять саму возможность всё равно бесполезно. Да и незачем, ведь там всё равно всё выложено в публичный доступ. Или кто-то забывает сей пункт вложить быдлоюзеру (кто ж ещё в наши дни пользует заведомо устаревшую услугу шареного хостинга) на подпись в SA? -- Peter Vereshagin (http://vereshagin.org) pgp: A0E26627 From roman.vasilyev на yousendit.com Mon Nov 28 22:53:48 2011 From: roman.vasilyev на yousendit.com (Roman Vasilyev) Date: Mon, 28 Nov 2011 14:53:48 -0800 Subject: =?UTF-8?B?bW9kX3Jld3JpdGUg0Lgg0YLQuNC/0Ysg0LTQsNC90L3Ri9GF?= Message-ID: <4ED410FC.8010807@yousendit.com> Есть ли возможность в mod_rewrite работать с переменными с приведением типов? Тоесть что то типа: if ( $_int_a > $_int_b) { return 405; } просто ради такой мелочи так нехочется писать опять какой то левый модуль :( Или здесь лучше всего подойдет embedded perl? From nginx-forum на nginx.us Tue Nov 29 04:05:40 2011 From: nginx-forum на nginx.us (locojohn) Date: Mon, 28 Nov 2011 23:05:40 -0500 Subject: =?UTF-8?B?UmU6IG1vZCByZXdyaXRlINC4INGC0LjQv9GLINC00LDQvdC90YvRhQ==?= In-Reply-To: <4ED410FC.8010807@yousendit.com> References: <4ED410FC.8010807@yousendit.com> Message-ID: <9cb4c32ea415b5075b55b3416419d2c9.NginxMailingListRussian@forum.nginx.org> Привет, насколько я понял, правда не углублялся, для такой задачи ещё может подойти nginx-lua модуль: https://github.com/chaoslawful/lua-nginx-module Андрей Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219243,219249#msg-219249 From nginx-forum на nginx.us Tue Nov 29 04:59:38 2011 From: nginx-forum на nginx.us (INF[SZ]) Date: Mon, 28 Nov 2011 23:59:38 -0500 Subject: Nginx 1.1.9 Linux AIO segfault Message-ID: Nginx 1.1.9 OS: CentOS 5.7 x86_64 при сборке с --with-file-aio если в конфиге используется aio on; стабильно вижу в messages Nov 28 23:58:29 localhost kernel: nginx[9938]: segfault at 0000000000000008 rip 000000000042c9d4 rsp 00007fff541fce50 error 4 в error.log 2011/11/28 23:58:48 [alert] 31926#0: worker process 13976 exited on signal 11 Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219250,219250#msg-219250 From ano на bestmx.ru Tue Nov 29 06:29:56 2011 From: ano на bestmx.ru (Andrey N. Oktyabrski) Date: Tue, 29 Nov 2011 09:29:56 +0300 Subject: =?UTF-8?B?UmU6INGE0LjQt9C40YfQtdGB0LrQuNC1INGB0LXRgNCy0LXRgNCwINC90LUg0L0=?= =?UTF-8?B?0YPQttC90YssINC10YHRgtGMINC+0LHQu9Cw0LrQsA==?= In-Reply-To: <20111128224527.GA5181@external.screwed.box> References: <20111128224527.GA5181@external.screwed.box> Message-ID: <4ED47BE4.6070009@bestmx.ru> On 29.11.11 01:45, Peter Vereshagin wrote: > и вообще, физические сервера не нужны, есть облака, рекомендую. (= Когда цена у них станет сравнимой с keyweb.ru & rootbsd.ru, тогда можно об этом говорить. Не раньше. From unera на uvw.ru Tue Nov 29 05:58:00 2011 From: unera на uvw.ru (Dmitry E. Oboukhov) Date: Tue, 29 Nov 2011 09:58:00 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <4ED38793.2040803@csdoc.com> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111126051920.GR3769@apache.rbscorp.ru> <413943734.20111126172804@ngs.ru> <20111127130902.GA3834@apache.rbscorp.ru> <4ED36780.5030801@csdoc.com> <20111128125321.GB20363@apache.rbscorp.ru> <4ED38793.2040803@csdoc.com> Message-ID: <20111129055759.GE27740@apache.rbscorp.ru> >> и если кто-то делает ln -s /path/to name а потом читает name как >> статику, он же может сделать: >> >> open my $fh, '<', '/path/to'; >> print "Content-Type: application/octet-stream\n\n"; >> print $_ while<$fh>; > пользователь не имеет прямого доступа к этим чужим файлам. > только nginx и apache. в apache можно закрыть "удобные пути" > получения доступа к чужим файлам, а в nginx - нет такого способа. 1. вебсервер имеет прямой доступ к этим файлам 2. вебсервер - разделяем между кучей пользователей 3. В апаче нельзя закрыть удобные пути. Вышеприведенный пример - всего три строки кода. >>>> а костыли вида "не пойдет по симлинку" - лишь закрытие одного из сотен >>>> путей >>> все остальные "удобные пути" можно закрыть корректной настройкой apache, >>> FollowSymLinks, SymLinksIfOwnerMatch, php_admin_value open_basedir >>> и корректной настройкой прав доступа к каталогам пользователей. >> Ну и как закрыть вышеприведенный путь настройкой апача? не давать >> пользователю shared-хостинга юзать динамический контент? и сколько >> пользователей будет завтра на этом хостинге? > наверное этот вопрос про апач Вам следует задать в списке рассылки > для пользователей дебиана. думаю, что там есть и те, кто знает ответ > на этот Ваш вопрос. в этом списке рассылки по nginx вопросы корректной > настройки apache+php для shared hosting`а наверное являются оффтопиком. я говорю о том что не имеет смысла закрывать одну из тысяч дырочек в решете. если эта проблема насущна, то пользователю shared-хостинга надо задуматься над собственным хостингом. благо нынче они дешевые -- . ''`. Dmitry E. Oboukhov : :? : email: unera на debian.org jabber://UNera на uvw.ru `. `~? GPGKey: 1024D / F8E26537 2006-11-21 `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537 ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: Digital signature URL: From unera на uvw.ru Tue Nov 29 06:02:27 2011 From: unera на uvw.ru (Dmitry E. Oboukhov) Date: Tue, 29 Nov 2011 10:02:27 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <4ED36F78.5030408@csdoc.com> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111126051920.GR3769@apache.rbscorp.ru> <413943734.20111126172804@ngs.ru> <20111127130902.GA3834@apache.rbscorp.ru> <4ED36878.2010701@csdoc.com> <1094358627.20111128181330@ngs.ru> <4ED36F78.5030408@csdoc.com> Message-ID: <20111129060226.GF27740@apache.rbscorp.ru> >>>> Имхо, вопрос с доступам к файлам это не та часть, которую должен >>>> разруливать nginx. Иначе получится какой то php-ный safe mode. Запуск >>>> того же php с правами нужного юзера и выставление на папку с конфигами >>>> прав 700 решает проблему симлинков. >>> это решает проблему симлинков, но появляется другая проблема - >>> как в таких условиях отдавать статику через nginx, не запуская >>> каждому пользователю свой собственный экземпляр веб-сервера. >> А тут всё просто. На скрипты - 700, на шаредное файло, раздаваемое с помощью Nginx - 644. >> Только вот кто такой прецизионной расстановкой прав займется ? > это нереально. если у пользователей что-то не работает / глючит, > первым делом они делают chmod 777 на все файлы в надежде решить > свою проблему - неоднократно такое уже видел. > поэтому - нужна защита от скачивания чужих конфигов через симлинки > именно на уровне веб-сервера, который занимается раздачей статики. если пользователь сделал 777 на все файлы, то как ему поможет защита от скачивания через симлинки? -- . ''`. Dmitry E. Oboukhov : :? : email: unera на debian.org jabber://UNera на uvw.ru `. `~? GPGKey: 1024D / F8E26537 2006-11-21 `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537 ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: Digital signature URL: From igor на sysoev.ru Tue Nov 29 07:18:21 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Tue, 29 Nov 2011 11:18:21 +0400 Subject: Nginx 1.1.9 Linux AIO segfault In-Reply-To: References: Message-ID: <20111129071821.GB22752@nginx.com> On Mon, Nov 28, 2011 at 11:59:38PM -0500, INF[SZ] wrote: > Nginx 1.1.9 > OS: CentOS 5.7 x86_64 > > при сборке с --with-file-aio > > если в конфиге используется aio on; > стабильно вижу в messages > > Nov 28 23:58:29 localhost kernel: nginx[9938]: segfault at > 0000000000000008 rip > 000000000042c9d4 rsp 00007fff541fce50 error 4 > > в error.log > > 2011/11/28 23:58:48 [alert] 31926#0: worker process 13976 exited on > signal 11 А можно сделать coredump и его backtrace ? -- Игорь Сысоев http://sysoev.ru From peter на vereshagin.org Tue Nov 29 07:46:30 2011 From: peter на vereshagin.org (Peter Vereshagin) Date: Tue, 29 Nov 2011 11:46:30 +0400 Subject: =?UTF-8?B?UmU6INGE0LjQt9C40YfQtdGB0LrQuNC1INGB0LXRgNCy0LXRgNCwINC90LUg0L0=?= =?UTF-8?B?0YPQttC90YssINC10YHRgtGMINC+0LHQu9Cw0LrQsA==?= In-Reply-To: <4ED47BE4.6070009@bestmx.ru> Message-ID: <20111129074630.GD5181@external.screwed.box> Hello. 2011/11/29 06:02:34 +0000 nginx-ru-request на nginx.org => To nginx-ru на nginx.org : > > и вообще, физические сервера не нужны, есть облака, рекомендую. (= > Когда цена у них станет сравнимой с keyweb.ru & rootbsd.ru, тогда можно > об этом говорить. Не раньше. Смотря насколько часто их меняете. -- Peter Vereshagin (http://vereshagin.org) pgp: A0E26627 From mdounin на mdounin.ru Tue Nov 29 09:39:39 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 29 Nov 2011 13:39:39 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <20111129060226.GF27740@apache.rbscorp.ru> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111126051920.GR3769@apache.rbscorp.ru> <413943734.20111126172804@ngs.ru> <20111127130902.GA3834@apache.rbscorp.ru> <4ED36878.2010701@csdoc.com> <1094358627.20111128181330@ngs.ru> <4ED36F78.5030408@csdoc.com> <20111129060226.GF27740@apache.rbscorp.ru> Message-ID: <20111129093939.GX67687@mdounin.ru> Hello! On Tue, Nov 29, 2011 at 10:02:27AM +0400, Dmitry E. Oboukhov wrote: > > >>>> Имхо, вопрос с доступам к файлам это не та часть, которую должен > >>>> разруливать nginx. Иначе получится какой то php-ный safe mode. Запуск > >>>> того же php с правами нужного юзера и выставление на папку с конфигами > >>>> прав 700 решает проблему симлинков. > > >>> это решает проблему симлинков, но появляется другая проблема - > >>> как в таких условиях отдавать статику через nginx, не запуская > >>> каждому пользователю свой собственный экземпляр веб-сервера. > > >> А тут всё просто. На скрипты - 700, на шаредное файло, раздаваемое с помощью Nginx - 644. > >> Только вот кто такой прецизионной расстановкой прав займется ? > > > это нереально. если у пользователей что-то не работает / глючит, > > первым делом они делают chmod 777 на все файлы в надежде решить > > свою проблему - неоднократно такое уже видел. > > > поэтому - нужна защита от скачивания чужих конфигов через симлинки > > именно на уровне веб-сервера, который занимается раздачей статики. > > если пользователь сделал 777 на все файлы, то как ему поможет защита > от скачивания через симлинки? На свой домашний каталог сделать 777 ему на shared хостинге никто не даст. Maxim Dounin From nginx-forum на nginx.us Tue Nov 29 11:03:43 2011 From: nginx-forum на nginx.us (INF[SZ]) Date: Tue, 29 Nov 2011 06:03:43 -0500 Subject: Nginx 1.1.9 Linux AIO segfault In-Reply-To: References: Message-ID: <46e4922d63152e2b8fe5eec69d665652.NginxMailingListRussian@forum.nginx.org> Игорь, вот 4 гига core dump меньше чем за минуту http://centos.alt.ru/pub/temp/nginx/core/ Проблема 100% повторяема при одновременном наличии двух опций в одной локации 1. aio on; 2. directio 512; Пример location /repository { root /var/ftp/pub; autoindex on; aio on; directio 256; } В Nginx 1.1.8 проблема отсутствует. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219250,219268#msg-219268 From gmm на csdoc.com Tue Nov 29 11:07:50 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Tue, 29 Nov 2011 13:07:50 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <20111128224527.GA5181@external.screwed.box> References: <20111128224527.GA5181@external.screwed.box> Message-ID: <4ED4BD06.2070505@csdoc.com> On 29.11.2011 0:45, Peter Vereshagin wrote: >> проблема в том, что таким образом любой сайт на shared hosting`е >> может быть легко/тривиально превращен в источник внедоносного кода, >> вирусов/троянов и т.п. - в самых тяжелых случаях пользователю вообще >> не надо ничего запускать, достаточно просто открыть сайт в браузере, >> и все - его локальная машина уже будет заражена вирусами/троянами, >> и уже у пользователя будут воровать коды банковских карточек и т.п. > Как будто без Follow Symlinks If Owner Match на shared hosting и так нельзя > положить источник ВНЕ ДОНОСНОГО кода... (= а как, если php не может выйти за пределы своего домашнего каталога из-за ограничения open_basedir, а запуск внешних программ запрещен? http://ua.php.net/manual/en/ini.core.php#ini.open-basedir единственный оставшийся способ - это через симлинки получить доступ к чужим конфигам на чтение, если статика раздается через nginx. (а зная все пароли из конфигов - дальше - это уже дело техники) > а где написано что мол nginx предназначено для замены apache на shared hostings? а где написано что nginx нельзя использовать на shared hosting ? >>> А вообще, шареный хостинг не нужен, есть облачные платформы >> какой-то беспредметный разговор получается. > хотите предметы --- скипайте квоту аккуратнее. Что там про панельки было? > Ключевое слово --- "в перспективе". клиенты не готовы ждать несколько лет, им сайт в интернете нужен был еще вчера. >>> $shared_hosting === $apache_httpd >> пока что конкурентов PHP нет и не наблюдается > не наблюдается != нет для того чтобы поставить знак '!=' необходимо привести хотя бы один контрпример. а пока что их нет, и поэтому их и не наблюдается. >> в плане возможности максимально плотно упаковать >> разные виртуальные хосты на один физический сервер. > выбор технологии (PHP или не PHP) как может быть связан с параметром 'отношение кол-ва доменов per сервер'? не доменов, а сайтов. с динамически генерируемым контентом. > и вообще, физические сервера не нужны, есть облака, рекомендую. (= и это после того, как недавно все эти облака глючили одно за другим? >> в результате - для каждого виртуального хоста всегда будет активен как >> минимум один PHP-демон, который будет занимать и память > > Copy On Write уже отменили? вот именно из-за 'Write' он и будет занимать память. > а где написано, что мол nginx задуман для раздачи статики с shared hostings? а где написано, что это запрещено делать? >> тут ведь кроме отдельного экземпляра PHP для каждого пользователя - >> надо будет внутри chroot`ов запускать и по отдельному экземпляру nginx. > а они, вроде, всё равно мапятся все в один участок памяти по типу memory > mapping, нет? если бинарники все в одних и тех же inodes сидят. у них разделяемым между экземплярами будет только сегмент кода, сегмент с данными будет уникальным для каждого экземпляра. буфера опять же, будут занимать немало оперативной памяти. > в этих ваших shared_hosting ради кол-ва абонов кол-во whistles& bells > настолько велико, что устранять саму возможность всё равно бесполезно. Да и > незачем, ведь там всё равно всё выложено в публичный доступ. Или кто-то > забывает сей пункт вложить быдлоюзеру (кто ж ещё в наши дни пользует заведомо > устаревшую услугу шареного хостинга) на подпись в SA? зачем закрывать уязвимости - об этом я уже говорил, чтобы нельзя было так легко и просто как сейчас превратить сайты на shared hosting`ах в рассадники вирусов и троянов. и nginx может в этом помочь. сейчас же - или не использовать nginx на shared hosting`ах, или иметь проблемы с безопасностью у всех клиентских сайтов. -- Best regards, Gena From gmm на csdoc.com Tue Nov 29 11:17:20 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Tue, 29 Nov 2011 13:17:20 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <20111129055759.GE27740@apache.rbscorp.ru> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111126051920.GR3769@apache.rbscorp.ru> <413943734.20111126172804@ngs.ru> <20111127130902.GA3834@apache.rbscorp.ru> <4ED36780.5030801@csdoc.com> <20111128125321.GB20363@apache.rbscorp.ru> <4ED38793.2040803@csdoc.com> <20111129055759.GE27740@apache.rbscorp.ru> Message-ID: <4ED4BF40.9090607@csdoc.com> On 29.11.2011 7:58, Dmitry E. Oboukhov wrote: >>> и если кто-то делает ln -s /path/to name а потом читает name как >>> статику, он же может сделать: >>> >>> open my $fh, '<', '/path/to'; >>> print "Content-Type: application/octet-stream\n\n"; >>> print $_ while<$fh>; > >> пользователь не имеет прямого доступа к этим чужим файлам. >> только nginx и apache. в apache можно закрыть "удобные пути" >> получения доступа к чужим файлам, а в nginx - нет такого способа. > > 1. вебсервер имеет прямой доступ к этим файлам > 2. вебсервер - разделяем между кучей пользователей > 3. В апаче нельзя закрыть удобные пути. Вышеприведенный пример - всего > три строки кода. CGI-скрипты могут быть или вообще запрещены (сейчас не 1993 год уже) или могут работать с правами пользователя, а не веб-сервера и поэтому доступа к чужим файлам получить не смогут, ни по симлинку ни напрямую. >>> Ну и как закрыть вышеприведенный путь настройкой апача? не давать >>> пользователю shared-хостинга юзать динамический контент? и сколько >>> пользователей будет завтра на этом хостинге? >> наверное этот вопрос про апач Вам следует задать в списке рассылки >> для пользователей дебиана. думаю, что там есть и те, кто знает ответ >> на этот Ваш вопрос. в этом списке рассылки по nginx вопросы корректной >> настройки apache+php для shared hosting`а наверное являются оффтопиком. > я говорю о том что не имеет смысла закрывать одну из тысяч дырочек в > решете. если эта проблема насущна, то пользователю shared-хостинга надо > задуматься над собственным хостингом. благо нынче они дешевые все остальные способы закрыть можно. как закрыть доступ к чужим файлам через симлинки, если статика там раздается напрямую через nginx, а операционная система является POSIX-совместимой - я не знаю. On 29.11.2011 8:02, Dmitry E. Oboukhov wrote: > если пользователь сделал 777 на все файлы, > то как ему поможет защита от скачивания через симлинки? он не сможет изменить права доступа к своему домашнему каталогу, потому что у него нет права записи в каталог /home, потому что владельцем каталога /home является root:root, права доступа 0755. -- Best regards, Gena From unera на uvw.ru Tue Nov 29 11:40:28 2011 From: unera на uvw.ru (Dmitry E. Oboukhov) Date: Tue, 29 Nov 2011 15:40:28 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <4ED4BF40.9090607@csdoc.com> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111126051920.GR3769@apache.rbscorp.ru> <413943734.20111126172804@ngs.ru> <20111127130902.GA3834@apache.rbscorp.ru> <4ED36780.5030801@csdoc.com> <20111128125321.GB20363@apache.rbscorp.ru> <4ED38793.2040803@csdoc.com> <20111129055759.GE27740@apache.rbscorp.ru> <4ED4BF40.9090607@csdoc.com> Message-ID: <20111129114027.GD7050@apache.rbscorp.ru> >>>> и если кто-то делает ln -s /path/to name а потом читает name как >>>> статику, он же может сделать: >>>> >>>> open my $fh, '<', '/path/to'; >>>> print "Content-Type: application/octet-stream\n\n"; >>>> print $_ while<$fh>; >> >>> пользователь не имеет прямого доступа к этим чужим файлам. >>> только nginx и apache. в apache можно закрыть "удобные пути" >>> получения доступа к чужим файлам, а в nginx - нет такого способа. >> >> 1. вебсервер имеет прямой доступ к этим файлам >> 2. вебсервер - разделяем между кучей пользователей >> 3. В апаче нельзя закрыть удобные пути. Вышеприведенный пример - всего >> три строки кода. > CGI-скрипты могут быть или вообще запрещены (сейчас не 1993 год уже) > или могут работать с правами пользователя, а не веб-сервера и поэтому > доступа к чужим файлам получить не смогут, ни по симлинку ни напрямую. и mod-perl запретить. и mod-python и всякие плакхендлеры итп че уж там. >> я говорю о том что не имеет смысла закрывать одну из тысяч дырочек в >> решете. если эта проблема насущна, то пользователю shared-хостинга надо >> задуматься над собственным хостингом. благо нынче они дешевые > все остальные способы закрыть можно. нельзя. иначе на этот шаред хостинг никто не пойдет >> если пользователь сделал 777 на все файлы, >> то как ему поможет защита от скачивания через симлинки? > он не сможет изменить права доступа к своему домашнему каталогу, > потому что у него нет права записи в каталог /home, потому что > владельцем каталога /home является root:root, права доступа 0755. тут тоже ошибочка. apache:[~]$ ls -ld /home drwxr-xr-x 7 root root 12288 Июл 29 12:30 /home apache:[~]$ ls -ld `pwd` drwxr-xr-x 177 dimka dimka 20480 Ноя 29 15:38 /home/dimka apache:[~]$ chmod 0700 `pwd` apache:[~]$ ls -ld `pwd` drwx------ 177 dimka dimka 20480 Ноя 29 15:38 /home/dimka apache:[~]$ chmod 0755 `pwd` apache:[~]$ ls -ld `pwd` drwxr-xr-x 177 dimka dimka 20480 Ноя 29 15:38 /home/dimka -- . ''`. Dmitry E. Oboukhov : :? : email: unera на debian.org jabber://UNera на uvw.ru `. `~? GPGKey: 1024D / F8E26537 2006-11-21 `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537 ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: Digital signature URL: From unera на uvw.ru Tue Nov 29 12:00:11 2011 From: unera на uvw.ru (Dmitry E. Oboukhov) Date: Tue, 29 Nov 2011 16:00:11 +0400 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <20111129093939.GX67687@mdounin.ru> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111126051920.GR3769@apache.rbscorp.ru> <413943734.20111126172804@ngs.ru> <20111127130902.GA3834@apache.rbscorp.ru> <4ED36878.2010701@csdoc.com> <1094358627.20111128181330@ngs.ru> <4ED36F78.5030408@csdoc.com> <20111129060226.GF27740@apache.rbscorp.ru> <20111129093939.GX67687@mdounin.ru> Message-ID: <20111129120011.GE7050@apache.rbscorp.ru> >> если пользователь сделал 777 на все файлы, то как ему поможет защита >> от скачивания через симлинки? > На свой домашний каталог сделать 777 ему на shared хостинге никто > не даст. В смысле шелла ему не дадут? -- . ''`. Dmitry E. Oboukhov : :? : email: unera на debian.org jabber://UNera на uvw.ru `. `~? GPGKey: 1024D / F8E26537 2006-11-21 `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537 ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: Digital signature URL: From gmm на csdoc.com Tue Nov 29 12:17:16 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Tue, 29 Nov 2011 14:17:16 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <20111129114027.GD7050@apache.rbscorp.ru> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111126051920.GR3769@apache.rbscorp.ru> <413943734.20111126172804@ngs.ru> <20111127130902.GA3834@apache.rbscorp.ru> <4ED36780.5030801@csdoc.com> <20111128125321.GB20363@apache.rbscorp.ru> <4ED38793.2040803@csdoc.com> <20111129055759.GE27740@apache.rbscorp.ru> <4ED4BF40.9090607@csdoc.com> <20111129114027.GD7050@apache.rbscorp.ru> Message-ID: <4ED4CD4C.3020407@csdoc.com> On 29.11.2011 13:40, Dmitry E. Oboukhov wrote: >> CGI-скрипты могут быть или вообще запрещены (сейчас не 1993 год уже) >> или могут работать с правами пользователя, а не веб-сервера и поэтому >> доступа к чужим файлам получить не смогут, ни по симлинку ни напрямую. > и mod-perl запретить. и mod-python и всякие плакхендлеры итп че уж там. на shared hosting`ах естественно что mod_perl запрещен. а mod_python - это уже очень давно устаревшая технология. если кто-то предоставляет такую услугу как mod_perl - там пользователю выделяется отдельный экземпляр апача. >>> я говорю о том что не имеет смысла закрывать одну из тысяч дырочек в >>> решете. если эта проблема насущна, то пользователю shared-хостинга надо >>> задуматься над собственным хостингом. благо нынче они дешевые >> все остальные способы закрыть можно. > нельзя. иначе на этот шаред хостинг никто не пойдет а пойдут туда, где любой желающий может править их сайт? не верю. >>> если пользователь сделал 777 на все файлы, >>> то как ему поможет защита от скачивания через симлинки? >> он не сможет изменить права доступа к своему домашнему каталогу, >> потому что у него нет права записи в каталог /home, потому что >> владельцем каталога /home является root:root, права доступа 0755. > тут тоже ошибочка. > apache:[~]$ ls -ld /home > drwxr-xr-x 7 root root 12288 Июл 29 12:30 /home > > apache:[~]$ ls -ld `pwd` > drwxr-xr-x 177 dimka dimka 20480 Ноя 29 15:38 /home/dimka > > apache:[~]$ chmod 0700 `pwd` > > apache:[~]$ ls -ld `pwd` > drwx------ 177 dimka dimka 20480 Ноя 29 15:38 /home/dimka > > apache:[~]$ chmod 0755 `pwd` > > apache:[~]$ ls -ld `pwd` > drwxr-xr-x 177 dimka dimka 20480 Ноя 29 15:38 /home/dimka да, тут я ошибся. но эту уязвимость можно закрыть, создавая домашний каталог пользователя не в /home, а в подкаталоге /home, права доступа на который пользователь уже не сможет изменить самостоятельно, даже имея доступ к своему домашнему каталогу через ssh. насколько я помню, на shared hosting`ах именно так и делают, или каким-то другим способом закрывают эту уязвимость. -- Best regards, Gena From mva на mva.name Tue Nov 29 14:05:00 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Tue, 29 Nov 2011 21:05:00 +0700 Subject: =?UTF-8?B?0JLRi9Cy0L7QtCBuZ2lueCAtVg==?= In-Reply-To: <4ED4CD4C.3020407@csdoc.com> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <20111126051920.GR3769@apache.rbscorp.ru> <413943734.20111126172804@ngs.ru> <20111127130902.GA3834@apache.rbscorp.ru> <4ED36780.5030801@csdoc.com> <20111128125321.GB20363@apache.rbscorp.ru> <4ED38793.2040803@csdoc.com> <20111129055759.GE27740@apache.rbscorp.ru> <4ED4BF40.9090607@csdoc.com> <20111129114027.GD7050@apache.rbscorp.ru> <4ED4CD4C.3020407@csdoc.com> Message-ID: <1322575500.10903.6.camel@N900> Не хочу быть навязчивым, но всё-таки... Игорь, нет ли планов в ближайших релизах взять и таки переделать вывод nginx -V, чтобы там, например, выводились названия модулей, а не пути до директории, где при сборке лежали эти модули? ;) А то как-то уже надоело при сборке прилеплять костыле-патч, увеличивающий NGX_MAX_ERROR_STR и все равно потом парсить названия модулей. Хотя, NGX_MAX_ERROR_STR, наверное, всё равно неплохо бы увеличить прямо у вас, в апстриме ;) From ne на vbart.ru Tue Nov 29 14:31:25 2011 From: ne на vbart.ru (=?utf-8?b?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Tue, 29 Nov 2011 18:31:25 +0400 Subject: =?UTF-8?B?UmU6INCS0YvQstC+0LQgbmdpbnggLVY=?= In-Reply-To: <1322575500.10903.6.camel@N900> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <4ED4CD4C.3020407@csdoc.com> <1322575500.10903.6.camel@N900> Message-ID: <201111291831.25461.ne@vbart.ru> On Tuesday 29 November 2011 18:05:00 Мисбах-Соловь?в Вадим wrote: > Не хочу быть навязчивым, но всё-таки... > > Игорь, нет ли планов в ближайших релизах взять и таки переделать вывод > nginx -V, чтобы там, например, выводились названия модулей, а не пути до > директории, где при сборке лежали эти модули? ;) А то как-то уже надоело > при сборке прилеплять костыле-патч, увеличивающий NGX_MAX_ERROR_STR и все > равно потом парсить названия модулей. Хотя, NGX_MAX_ERROR_STR, наверное, > всё равно неплохо бы увеличить прямо у вас, в апстриме ;) > Так исправлено же уже, ещё в 1.1.8 -- Валентин Бартенев From mdounin на mdounin.ru Tue Nov 29 14:38:56 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 29 Nov 2011 18:38:56 +0400 Subject: Nginx 1.1.9 Linux AIO segfault In-Reply-To: <46e4922d63152e2b8fe5eec69d665652.NginxMailingListRussian@forum.nginx.org> References: <46e4922d63152e2b8fe5eec69d665652.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111129143855.GA67687@mdounin.ru> Hello! On Tue, Nov 29, 2011 at 06:03:43AM -0500, INF[SZ] wrote: > Игорь, вот 4 гига core dump меньше чем за > минуту http://centos.alt.ru/pub/temp/nginx/core/ > > Проблема 100% повторяема при > одновременном наличии двух опций в > одной локации > > 1. aio on; > 2. directio 512; > > Пример > > location /repository { > root /var/ftp/pub; > autoindex on; > aio on; > directio 256; > } > > > В Nginx 1.1.8 проблема отсутствует. Патч прилагается. Maxim Dounin -------------- next part -------------- # HG changeset patch # User Maxim Dounin # Date 1322577234 -10800 # Node ID 22cdd4c1a352f25fa3c5a2ece4f1613da5cf815b # Parent 583a3cd2773c95a8741a8e5c15f1afc61307b87e Fixed AIO on Linux, broken in r4306. Events from eventfd do not have c->write set, and the stale event check added in r4306 causes null pointer dereference. diff --git a/src/event/modules/ngx_epoll_module.c b/src/event/modules/ngx_epoll_module.c --- a/src/event/modules/ngx_epoll_module.c +++ b/src/event/modules/ngx_epoll_module.c @@ -681,19 +681,19 @@ ngx_epoll_process_events(ngx_cycle_t *cy wev = c->write; - if (c->fd == -1 || wev->instance != instance) { + if ((revents & EPOLLOUT) && wev->active) { - /* - * the stale event from a file descriptor - * that was just closed in this iteration - */ + if (c->fd == -1 || wev->instance != instance) { - ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, - "epoll: stale event %p", c); - continue; - } + /* + * the stale event from a file descriptor + * that was just closed in this iteration + */ - if ((revents & EPOLLOUT) && wev->active) { + ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, + "epoll: stale event %p", c); + continue; + } if (flags & NGX_POST_THREAD_EVENTS) { wev->posted_ready = 1; From nginx-forum на nginx.us Tue Nov 29 14:39:17 2011 From: nginx-forum на nginx.us (igor.goncharenko) Date: Tue, 29 Nov 2011 09:39:17 -0500 Subject: php-fpm upstream pool In-Reply-To: References: Message-ID: <522a74ad7d8bd78c85c70109fc5867e4.NginxMailingListRussian@forum.nginx.org> Никто не делает больших fcgi-пулов? :( Хотя бы тогда с этим логом разобраться: 10.0.0.1 - - [25/Nov/2011:15:41:54 +0000] "GET /fcgi-proxy/ HTTP/1.1" 502 1205 "-" "JoeDog/1.00 [en] (X11; I; Siege 2.70)" "-" "10.0.0.77:9000, fcgi_proxy : 10.0.0.12:80 504, 502 : 404 - 30.013, 0.000 : 0.093" 30.106 SSL:-/- "gzip:-" откуда название апстрима fcgi_proxy в "10.0.0.77:9000, fcgi_proxy : 10.0.0.12:80"? --- Igor Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219032,219280#msg-219280 From voron на amhost.net Tue Nov 29 14:42:02 2011 From: voron на amhost.net (Alex Vorona) Date: Tue, 29 Nov 2011 16:42:02 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <4ED4BD06.2070505@csdoc.com> References: <20111128224527.GA5181@external.screwed.box> <4ED4BD06.2070505@csdoc.com> Message-ID: <4ED4EF3A.2050808@amhost.net> 29.11.2011 13:07, Gena Makhomed wrote: > сейчас же - или не использовать nginx на shared hosting`ах, > или иметь проблемы с безопасностью у всех клиентских сайтов. Используйте mod_aclr для 2-го апача(написав например его) или полное проксирование. Прямая отдача статики, пусть даже и конфигурируемая пользователем через панель(а есть такая?), выключенная по дефолту - смысла не имеет, а включенная - создаст проблем. Масс-хостинг - залил по фтп и поехал, в рассчете на апач. И не надо никому объяснять про прямую отдачу статики и как её выключить. Она пользователям не нужна. Не устраивают эти варианты - please make an inquiry at nginx-inquiries на nginx.com From pavel2000 на ngs.ru Tue Nov 29 14:55:39 2011 From: pavel2000 на ngs.ru (Pavel V.) Date: Tue, 29 Nov 2011 21:55:39 +0700 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <4ED4EF3A.2050808@amhost.net> References: <20111128224527.GA5181@external.screwed.box> <4ED4BD06.2070505@csdoc.com> <4ED4EF3A.2050808@amhost.net> Message-ID: <1855983734.20111129215539@ngs.ru> Здравствуйте, Alex. Вы писали 29 ноября 2011 г., 21:42:02: > 29.11.2011 13:07, Gena Makhomed wrote: >> сейчас же - или не использовать nginx на shared hosting`ах, >> или иметь проблемы с безопасностью у всех клиентских сайтов. > Используйте mod_aclr для 2-го апача(написав например его) или полное проксирование. При написании mod_aclr2 надо не забыть фильтровать редиректы, отдаваемые не модулем aclr2, а скриптом злоумышленника. Т.е., я про то, что схема просто удлинится на 1 шаг - обращаться не к файлу(симлинку) напрямую, а к скрипту, который выдаст internal redirect на симлинк. Ну и, в общем и целом, решение не 100%, поскольку точка проверки прав доступа/FollowIfOwnerMatch всего лишь сместится на код Apache, где есть race. -- С уважением, Pavel mailto:pavel2000 на ngs.ru From mdounin на mdounin.ru Tue Nov 29 15:14:20 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 29 Nov 2011 19:14:20 +0400 Subject: php-fpm upstream pool In-Reply-To: <522a74ad7d8bd78c85c70109fc5867e4.NginxMailingListRussian@forum.nginx.org> References: <522a74ad7d8bd78c85c70109fc5867e4.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111129151420.GE67687@mdounin.ru> Hello! On Tue, Nov 29, 2011 at 09:39:17AM -0500, igor.goncharenko wrote: > Никто не делает больших fcgi-пулов? :( > > Хотя бы тогда с этим логом разобраться: > > 10.0.0.1 - - [25/Nov/2011:15:41:54 +0000] "GET /fcgi-proxy/ HTTP/1.1" > 502 1205 "-" "JoeDog/1.00 [en] (X11; I; Siege 2.70)" "-" > "10.0.0.77:9000, fcgi_proxy : 10.0.0.12:80 504, 502 : 404 - 30.013, > 0.000 : 0.093" 30.106 SSL:-/- "gzip:-" > > откуда название апстрима fcgi_proxy в > "10.0.0.77:9000, fcgi_proxy : 10.0.0.12:80"? Название upstream'а в $upstream_addrs будет в том случае, если все сервера признаны негодными. В error_log'е при этом будет сообщение "no live upstreams" на уровне error. Maxim Dounin From nginx-forum на nginx.us Tue Nov 29 15:28:31 2011 From: nginx-forum на nginx.us (arty777) Date: Tue, 29 Nov 2011 10:28:31 -0500 Subject: nginx-1.1.9 In-Reply-To: <20111128160814.GR67687@mdounin.ru> References: <20111128160814.GR67687@mdounin.ru> Message-ID: Исправление: в модуле ngx_http_mp4_module. А поподробнее можно? Что исправили? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219225,219286#msg-219286 From nginx-forum на nginx.us Tue Nov 29 15:48:31 2011 From: nginx-forum на nginx.us (igor.goncharenko) Date: Tue, 29 Nov 2011 10:48:31 -0500 Subject: php-fpm upstream pool In-Reply-To: References: Message-ID: Дело в том, что так как это тестовая площадка, то я точно знаю, что один апстрим всегда живой. Мне не очень понятна логика выбора апстримов, когда многие из них лежат (по таймауту). Например: вот для этой конфигурации: upstream fcgi_proxy { server 10.0.0.77:9000 max_fails=1 fail_timeout=240s; # answer more than 60 sec server 10.0.0.77:9001 max_fails=1 fail_timeout=240s; # answer more than 60 sec server 10.0.0.77:9002 max_fails=1 fail_timeout=240s; # answer more than 60 sec server 10.0.0.73:9000 max_fails=1 fail_timeout=240s; # ok } 10.0.0.1 - - [25/Nov/2011:16:36:59 +0000] "GET /fcgi_proxy/ HTTP/1.1" 502 1205 "-" "JoeDog/1.00 [en] (X11; I; Siege 2.70)" "-" "10.0.0.77:9000, 10.0.0.77:9001, fcgi_proxy : 10.0.0.12:80 504, 504, 502 : 404 - 30.009, 30.017, 0.000 : 0.001" 60.027 SSL:-/- "gzip:-" здесь nginx пробует 2 апстрима (остальные видимо помечены как down): 10.0.0.77:9000 и 10.0.0.77:9001 (а мы знаем, что 10.0.0.73:9000 всегда живой) 10.0.0.1 - - [25/Nov/2011:16:44:03 +0000] "GET /fcgi_proxy/ HTTP/1.1" 502 1205 "-" "JoeDog/1.00 [en] (X11; I; Siege 2.70)" "-" "10.0.0.77:9000, fcgi_proxy : 10.0.0.12:80 504,502 : 404 - 30.013, 0.000 : 0.002" 30.015 SSL:-/- "gzip:-" а здесь пробует только один: 10.0.0.77:9000, хотя как я понимаю, он должен отправить запрос на 10.0.0.73:9000. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219032,219288#msg-219288 From gmm на csdoc.com Tue Nov 29 16:58:19 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Tue, 29 Nov 2011 18:58:19 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <4ED4EF3A.2050808@amhost.net> References: <20111128224527.GA5181@external.screwed.box> <4ED4BD06.2070505@csdoc.com> <4ED4EF3A.2050808@amhost.net> Message-ID: <4ED50F2B.5070109@csdoc.com> On 29.11.2011 16:42, Alex Vorona wrote: > Используйте mod_aclr для 2-го апача(написав например его) > или полное проксирование. ... > Не устраивают эти варианты - please make an inquiry at nginx-inquiries на nginx.com а можно я буду использовать OpenVZ ? и я вроде бы не просил совета что мне делать... P.S. исходное сообщение: -------- Original Message -------- Subject: чтение чужих файлов. Date: Thu, 24 Nov 2011 15:45:26 -0500 From: adept Reply-To: nginx-ru на nginx.org To: nginx-ru на nginx.org Собственно, уже не в первых раз, вижу что как-то, через nginx читают файлы других пользователей (php файлы, etc), чмод которых >=644. Как именно, пока не знаю. Тут хттпs://damagelab.org/index.php?showtopic=22153&view=findpost&p=126003 багу продают за 700$ Интересны варианты решения. Вариант расставлять всем чмод в принудительном порядке не очень устраивает. Какие будут варианты? Судя по всему, нужно ковырять исходник. ====================================== как видно, мало кто хочет делать полное проксирование и мало кто может написать свой модуль для второго апача. в результате: "через nginx читают файлы других пользователей". -- Best regards, Gena From gmm на csdoc.com Tue Nov 29 17:07:23 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Tue, 29 Nov 2011 19:07:23 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <1855983734.20111129215539@ngs.ru> References: <20111128224527.GA5181@external.screwed.box> <4ED4BD06.2070505@csdoc.com> <4ED4EF3A.2050808@amhost.net> <1855983734.20111129215539@ngs.ru> Message-ID: <4ED5114B.2020108@csdoc.com> On 29.11.2011 16:55, Pavel V. wrote: >>> сейчас же - или не использовать nginx на shared hosting`ах, >>> или иметь проблемы с безопасностью у всех клиентских сайтов. >> Используйте mod_aclr для 2-го апача(написав например его) или полное проксирование. > При написании mod_aclr2 надо не забыть фильтровать редиректы, отдаваемые не модулем aclr2, а > скриптом злоумышленника. Т.е., я про то, что схема просто удлинится на 1 шаг - обращаться не к > файлу(симлинку) напрямую, а к скрипту, который выдаст internal redirect на симлинк. > Ну и, в общем и целом, решение не 100%, поскольку точка проверки прав доступа/FollowIfOwnerMatch > всего лишь сместится на код Apache, где есть race. даже если Apache перепишут таким образом, что в нем не будет race - всеравно race останется, поскольку между тем моментом времени как Apache проверил файл/симлинк на допустимость и отдал редирект nginx`у - можно успеть подменить этот файл/симлинк на нужный злоумышленнику симлинк, и получить таким образом чужой файл с помощью nginx`а. -- Best regards, Gena From roman.vasilyev на yousendit.com Tue Nov 29 17:22:42 2011 From: roman.vasilyev на yousendit.com (Roman Vasilyev) Date: Tue, 29 Nov 2011 09:22:42 -0800 Subject: =?UTF-8?B?UmU6IG1vZCByZXdyaXRlINC4INGC0LjQv9GLINC00LDQvdC90YvRhQ==?= In-Reply-To: <9cb4c32ea415b5075b55b3416419d2c9.NginxMailingListRussian@forum.nginx.org> References: <4ED410FC.8010807@yousendit.com> <9cb4c32ea415b5075b55b3416419d2c9.NginxMailingListRussian@forum.nginx.org> Message-ID: <4ED514E2.4070405@yousendit.com> lua жутко течел внутри nginx, по крайней мере на centos. perl тоже, но хотя бы меньше. В этом то по сути и был вопрос, можно ли такие штуки делать не на скриптовом языке? Потому что embedded scripting ничего хорошего не приносит под большой нагрузкой на CentOS. On 11/28/2011 08:05 PM, locojohn wrote: > Привет, > > насколько я понял, правда не > углублялся, для такой задачи ещё может > подойти nginx-lua модуль: > > https://github.com/chaoslawful/lua-nginx-module > > Андрей > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219243,219249#msg-219249 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From voron на amhost.net Tue Nov 29 17:35:14 2011 From: voron на amhost.net (Alex Vorona) Date: Tue, 29 Nov 2011 19:35:14 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <4ED50F2B.5070109@csdoc.com> References: <20111128224527.GA5181@external.screwed.box> <4ED4BD06.2070505@csdoc.com> <4ED4EF3A.2050808@amhost.net> <4ED50F2B.5070109@csdoc.com> Message-ID: <4ED517D2.40407@amhost.net> 29.11.2011 18:58, Gena Makhomed wrote: > а можно я буду использовать OpenVZ ? А можно вы не будете утверждать >или не использовать nginx на shared hosting`ах, >или иметь проблемы с безопасностью у всех клиентских сайтов. ? From ne на vbart.ru Tue Nov 29 17:36:11 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Tue, 29 Nov 2011 21:36:11 +0400 Subject: nginx-1.1.9 In-Reply-To: References: <20111128160814.GR67687@mdounin.ru> Message-ID: <201111292136.11154.ne@vbart.ru> On Tuesday 29 November 2011 19:28:31 arty777 wrote: > Исправление: в модуле ngx_http_mp4_module. > > А поподробнее можно? Что исправили? > http://trac.nginx.org/nginx/changeset/4307/nginx -- Валентин Бартенев From zzz на zzz.org.ua Tue Nov 29 17:45:51 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Tue, 29 Nov 2011 19:45:51 +0200 Subject: =?UTF-8?B?UmU6IG1vZCByZXdyaXRlINC4INGC0LjQv9GLINC00LDQvdC90YvRhQ==?= In-Reply-To: <4ED514E2.4070405@yousendit.com> References: <4ED410FC.8010807@yousendit.com> <9cb4c32ea415b5075b55b3416419d2c9.NginxMailingListRussian@forum.nginx.org> <4ED514E2.4070405@yousendit.com> Message-ID: On Tue, Nov 29, 2011 at 7:22 PM, Roman Vasilyev wrote: > lua жутко течел внутри nginx, по крайней мере на centos. > perl тоже, но хотя бы меньше. В этом то по сути и был вопрос, можно ли такие > штуки делать не на скриптовом языке? Перл не течет, ну разве что на релоадах и то, только если с MULTIPLICIY. > Потому что embedded scripting ничего хорошего не приносит под большой > нагрузкой на CentOS. Это дает возможность быстро решить проблему и это очень хорошо. Да и на самом деле оверхед на маленьких скриптах очень маленький, незаметный даже. From roman.vasilyev на yousendit.com Tue Nov 29 17:58:33 2011 From: roman.vasilyev на yousendit.com (Roman Vasilyev) Date: Tue, 29 Nov 2011 09:58:33 -0800 Subject: =?UTF-8?B?UmU6IG1vZCByZXdyaXRlINC4INGC0LjQv9GLINC00LDQvdC90YvRhQ==?= In-Reply-To: References: <4ED410FC.8010807@yousendit.com> <9cb4c32ea415b5075b55b3416419d2c9.NginxMailingListRussian@forum.nginx.org> <4ED514E2.4070405@yousendit.com> Message-ID: <4ED51D49.9020407@yousendit.com> On 11/29/2011 09:45 AM, Alexandr Gomoliako wrote: > On Tue, Nov 29, 2011 at 7:22 PM, Roman Vasilyev > wrote: > >> lua жутко течел внутри nginx, по крайней мере на centos. >> perl тоже, но хотя бы меньше. В этом то по сути и был вопрос, можно ли такие >> штуки делать не на скриптовом языке? >> > Перл не течет, ну разве что на релоадах и то, только если с MULTIPLICIY. > Тут не соглашусь, потому что сам это безобразие наблюдал, единственно уточняю CentOS 5.5 и перл из коробки. Если люди утверждают что перл не течет внутри вообще, тогда у меня вопрос какю версию вы используете и какой дистриб? > >> Потому что embedded scripting ничего хорошего не приносит под большой >> нагрузкой на CentOS. >> > Это дает возможность быстро решить проблему и это очень хорошо. > > Да и на самом деле оверхед на маленьких скриптах очень маленький, > незаметный даже. > Полностью согласен поэтому все и всовываю сейчас в перл, что бы упрости себе жизнь, хотя наверное с AES и RSA декриптованием не будет такой шары. > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From mdounin на mdounin.ru Tue Nov 29 18:15:17 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 29 Nov 2011 22:15:17 +0400 Subject: php-fpm upstream pool In-Reply-To: References: Message-ID: <20111129181517.GL67687@mdounin.ru> Hello! On Tue, Nov 29, 2011 at 10:48:31AM -0500, igor.goncharenko wrote: > Дело в том, что так как это тестовая > площадка, то я точно знаю, что один > апстрим всегда живой. Мне не очень > понятна логика выбора апстримов, когда > многие из них лежат (по таймауту). > Например: > > вот для этой конфигурации: > > upstream fcgi_proxy { > server 10.0.0.77:9000 max_fails=1 fail_timeout=240s; # answer more than > 60 sec > server 10.0.0.77:9001 max_fails=1 fail_timeout=240s; # answer more than > 60 sec > server 10.0.0.77:9002 max_fails=1 fail_timeout=240s; # answer more than > 60 sec > server 10.0.0.73:9000 max_fails=1 fail_timeout=240s; # ok > } > > 10.0.0.1 - - [25/Nov/2011:16:36:59 +0000] "GET /fcgi_proxy/ HTTP/1.1" > 502 1205 "-" "JoeDog/1.00 [en] (X11; I; Siege 2.70)" "-" > "10.0.0.77:9000, 10.0.0.77:9001, fcgi_proxy : 10.0.0.12:80 504, 504, 502 > : 404 - 30.009, 30.017, 0.000 : 0.001" 60.027 SSL:-/- "gzip:-" > > здесь nginx пробует 2 апстрима (остальные > видимо помечены как down): 10.0.0.77:9000 и > 10.0.0.77:9001 (а мы знаем, что 10.0.0.73:9000 всегда > живой) Я бы рекомендовал начать с простого: заглянуть в error_log и поискать там "всегда живого". Maxim Dounin From zzz на zzz.org.ua Tue Nov 29 18:20:15 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Tue, 29 Nov 2011 20:20:15 +0200 Subject: =?UTF-8?B?UmU6IG1vZCByZXdyaXRlINC4INGC0LjQv9GLINC00LDQvdC90YvRhQ==?= In-Reply-To: <4ED51D49.9020407@yousendit.com> References: <4ED410FC.8010807@yousendit.com> <9cb4c32ea415b5075b55b3416419d2c9.NginxMailingListRussian@forum.nginx.org> <4ED514E2.4070405@yousendit.com> <4ED51D49.9020407@yousendit.com> Message-ID: On Tue, Nov 29, 2011 at 7:58 PM, Roman Vasilyev wrote: > Тут не соглашусь, потому что сам это безобразие наблюдал, единственно > уточняю CentOS 5.5 и перл из коробки. А какой там перл из коробки? Если 5.8.8 то да, он слишком старый и течет. Сам натыкался. Но это не страшно, есть perlbrew, он поможет поставить нормальный перл в хоум. % cpan App::perlbrew % perlbrew --force install perl-5.14.2 nginx: % ./configure ... --with-perl=/home/you/perl5/perlbrew/perls/perl-5.14.2/bin/perl А чтобы ставить модули в него соответственно: /home/you/perl5/perlbrew/perls/perl-5.14.2/bin/perl -MCPAN -e shell From pavel2000 на ngs.ru Tue Nov 29 18:47:57 2011 From: pavel2000 на ngs.ru (Pavel V.) Date: Wed, 30 Nov 2011 01:47:57 +0700 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <4ED5114B.2020108@csdoc.com> References: <20111128224527.GA5181@external.screwed.box> <4ED4BD06.2070505@csdoc.com> <4ED4EF3A.2050808@amhost.net> <1855983734.20111129215539@ngs.ru> <4ED5114B.2020108@csdoc.com> Message-ID: <1058481926.20111130014757@ngs.ru> Здравствуйте, Gena. Вы писали 30 ноября 2011 г., 0:07:23: > даже если Apache перепишут таким образом, что в нем не будет race - > всеравно race останется, поскольку между тем моментом времени как > Apache проверил файл/симлинк на допустимость и отдал редирект nginx`у > - можно успеть подменить этот файл/симлинк на нужный злоумышленнику > симлинк, и получить таким образом чужой файл с помощью nginx`а. Да, этот факт я не учел. Спасибо. -- С уважением, Pavel mailto:pavel2000 на ngs.ru From mva на mva.name Tue Nov 29 18:51:35 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Wed, 30 Nov 2011 01:51:35 +0700 Subject: =?UTF-8?B?UmU6INCS0YvQstC+0LQgbmdpbnggLVY=?= In-Reply-To: <201111291831.25461.ne@vbart.ru> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <4ED4CD4C.3020407@csdoc.com> <1322575500.10903.6.camel@N900> <201111291831.25461.ne@vbart.ru> Message-ID: <1322592695.11485.2.camel@N900> Что именно? Смотрю в вывод 1.1.9 и вижу "configure arguments" как и раньше. Возможно, конечно, размер буфера увеличили (не смотрел), но с 1.1.7, например, заметил разницу только в наличии "nginx: " перед каждой сторкой. Собственно, предлагаю-то я вместо "configure arguments" сделать просто перечисление модулей и "фич" а-ля: ... Supported: http, mail, ssl, mail_ssl, upstream_ip_hash, lua, ipv6. ... Или в таком духе On вт 29 ноя 2011 21:31:25 KRAT, Валентин Бартенев wrote: > On Tuesday 29 November 2011 18:05:00 Мисбах-Соловь?в Вадим wrote: > > Не хочу быть навязчивым, но всё-таки... > > > > Игорь, нет ли планов в ближайших релизах взять и таки переделать вывод > > nginx -V, чтобы там, например, выводились названия модулей, а не пути > > до директории, где при сборке лежали эти модули? ;) А то как-то уже > > надоело при сборке прилеплять костыле-патч, увеличивающий > > NGX_MAX_ERROR_STR и все равно потом парсить названия модулей. Хотя, > > NGX_MAX_ERROR_STR, наверное, всё равно неплохо бы увеличить прямо у > > вас, в апстриме ;) > > > > Так исправлено же уже, ещё в 1.1.8 > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, mva From voron на amhost.net Tue Nov 29 18:56:26 2011 From: voron на amhost.net (Alex Vorona) Date: Tue, 29 Nov 2011 20:56:26 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <1855983734.20111129215539@ngs.ru> References: <20111128224527.GA5181@external.screwed.box> <4ED4BD06.2070505@csdoc.com> <4ED4EF3A.2050808@amhost.net> <1855983734.20111129215539@ngs.ru> Message-ID: <4ED52ADA.8060209@amhost.net> 29.11.2011 16:55, Pavel V. wrote: > Здравствуйте, Alex. > > Вы писали 29 ноября 2011 г., 21:42:02: >> Используйте mod_aclr для 2-го апача(написав например его) или полное проксирование. > > При написании mod_aclr2 надо не забыть фильтровать редиректы, отдаваемые не модулем aclr2, а > скриптом злоумышленника. Т.е., я про то, что схема просто удлинится на 1 шаг - обращаться не к > файлу(симлинку) напрямую, а к скрипту, который выдаст internal redirect на симлинк. Совсем уж офтопик. Использование location для статики с генерированым случайным именем из 10+ символов, одинаковым в nginx и apache, не решит эту проблему? From igor на sysoev.ru Tue Nov 29 19:00:29 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Tue, 29 Nov 2011 23:00:29 +0400 Subject: =?UTF-8?B?UmU6INCS0YvQstC+0LQgbmdpbnggLVY=?= In-Reply-To: <1322592695.11485.2.camel@N900> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <4ED4CD4C.3020407@csdoc.com> <1322575500.10903.6.camel@N900> <201111291831.25461.ne@vbart.ru> <1322592695.11485.2.camel@N900> Message-ID: <20111129190029.GE33992@nginx.com> On Wed, Nov 30, 2011 at 01:51:35AM +0700, Мисбах-Соловь?в Вадим wrote: > Что именно? Смотрю в вывод 1.1.9 и вижу "configure arguments" как и раньше. > Возможно, конечно, размер буфера увеличили (не смотрел), но с 1.1.7, например, заметил разницу только в наличии "nginx: " перед каждой сторкой. В 1.1.8 для -V нет ограничения NGX_MAX_ERROR_STR. > Собственно, предлагаю-то я вместо "configure arguments" сделать просто перечисление модулей и "фич" а-ля: > ... > Supported: http, mail, ssl, mail_ssl, upstream_ip_hash, lua, ipv6. > ... > Или в таком духе -V позволяет скопировать строку для configure от старого бинарникачш и пересобрать новый. > On вт 29 ноя 2011 21:31:25 KRAT, Валентин Бартенев wrote: > > > On Tuesday 29 November 2011 18:05:00 Мисбах-Соловь?в Вадим wrote: > > > Не хочу быть навязчивым, но всё-таки... > > > > > > Игорь, нет ли планов в ближайших релизах взять и таки переделать вывод > > > nginx -V, чтобы там, например, выводились названия модулей, а не пути > > > до директории, где при сборке лежали эти модули? ;) А то как-то уже > > > надоело при сборке прилеплять костыле-патч, увеличивающий > > > NGX_MAX_ERROR_STR и все равно потом парсить названия модулей. Хотя, > > > NGX_MAX_ERROR_STR, наверное, всё равно неплохо бы увеличить прямо у > > > вас, в апстриме ;) > > > > > > > Так исправлено же уже, ещё в 1.1.8 > > > > -- > > Валентин Бартенев > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru на nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > -- > С уважением, > mva > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Игорь Сысоев http://sysoev.ru From ne на vbart.ru Tue Nov 29 19:02:12 2011 From: ne на vbart.ru (=?utf-8?b?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Tue, 29 Nov 2011 23:02:12 +0400 Subject: =?UTF-8?B?UmU6INCS0YvQstC+0LQgbmdpbnggLVY=?= In-Reply-To: <1322592695.11485.2.camel@N900> References: <1594eadc003bdfe5ebd902833d5d7c93.NginxMailingListRussian@forum.nginx.org> <201111291831.25461.ne@vbart.ru> <1322592695.11485.2.camel@N900> Message-ID: <201111292302.12420.ne@vbart.ru> On Tuesday 29 November 2011 22:51:35 Мисбах-Соловь?в Вадим wrote: > Что именно? Смотрю в вывод 1.1.9 и вижу "configure arguments" как и раньше. [...] Проблему с обрезанием configure arguments исправили. -- Валентин Бартенев From roman.vasilyev на yousendit.com Tue Nov 29 19:04:56 2011 From: roman.vasilyev на yousendit.com (Roman Vasilyev) Date: Tue, 29 Nov 2011 11:04:56 -0800 Subject: =?UTF-8?B?UmU6IG1vZCByZXdyaXRlINC4INGC0LjQv9GLINC00LDQvdC90YvRhQ==?= In-Reply-To: References: <4ED410FC.8010807@yousendit.com> <9cb4c32ea415b5075b55b3416419d2c9.NginxMailingListRussian@forum.nginx.org> <4ED514E2.4070405@yousendit.com> <4ED51D49.9020407@yousendit.com> Message-ID: <4ED52CD8.4000507@yousendit.com> On 11/29/2011 10:20 AM, Alexandr Gomoliako wrote: > On Tue, Nov 29, 2011 at 7:58 PM, Roman Vasilyev > wrote: > >> Тут не соглашусь, потому что сам это безобразие наблюдал, единственно >> уточняю CentOS 5.5 и перл из коробки. >> > А какой там перл из коробки? Если 5.8.8 то да, он слишком старый и течет. > Сам натыкался. > > Но это не страшно, есть perlbrew, он поможет поставить нормальный > перл в хоум. > > % cpan App::perlbrew > % perlbrew --force install perl-5.14.2 > > nginx: > % ./configure ... > --with-perl=/home/you/perl5/perlbrew/perls/perl-5.14.2/bin/perl > > А чтобы ставить модули в него соответственно: > /home/you/perl5/perlbrew/perls/perl-5.14.2/bin/perl -MCPAN -e shell > это все хорошо, но не для крупной кампании где перейти на другой дистриб, просто тихий ужас.... поэтому мыши плачут колются и продолжают жрать кактус :( > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From zzz на zzz.org.ua Tue Nov 29 19:12:02 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Tue, 29 Nov 2011 21:12:02 +0200 Subject: =?UTF-8?B?UmU6IG1vZCByZXdyaXRlINC4INGC0LjQv9GLINC00LDQvdC90YvRhQ==?= In-Reply-To: <4ED52CD8.4000507@yousendit.com> References: <4ED410FC.8010807@yousendit.com> <9cb4c32ea415b5075b55b3416419d2c9.NginxMailingListRussian@forum.nginx.org> <4ED514E2.4070405@yousendit.com> <4ED51D49.9020407@yousendit.com> <4ED52CD8.4000507@yousendit.com> Message-ID: On Tue, Nov 29, 2011 at 9:04 PM, Roman Vasilyev wrote: > это все хорошо, но не для крупной кампании где перейти на другой дистриб, > просто тихий ужас.... Так я и не предлагал же менять, а чисто для нджинкса себе в хоум поставить. Т.е. как в луа модуле, только там еще и по дефолту собирается луа. А здесь самому надо. From gmm на csdoc.com Tue Nov 29 19:14:29 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Tue, 29 Nov 2011 21:14:29 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <4ED517D2.40407@amhost.net> References: <20111128224527.GA5181@external.screwed.box> <4ED4BD06.2070505@csdoc.com> <4ED4EF3A.2050808@amhost.net> <4ED50F2B.5070109@csdoc.com> <4ED517D2.40407@amhost.net> Message-ID: <4ED52F15.2060509@csdoc.com> On 29.11.2011 19:35, Alex Vorona wrote: > А можно вы не будете утверждать >> или не использовать nginx на shared hosting`ах, >> или иметь проблемы с безопасностью у всех клиентских сайтов. > ? =================================================================== или не использовать nginx на shared hosting`ах для отдачи статики, или иметь проблемы с безопасностью у всех клиентских сайтов. =================================================================== такой вариант Вас устроит? или это мы тоже не имеем права утверждать? даже если я ничего не буду говорить - в интернетах всеравно будут публиковать информацию о том, как с помощью nginx на shared hosting`ах получают доступ к чужим конфигам, и получится отрицательный PR для nginx P.S. "полное проксирование" будет иметь смысл и даст ускорение работы сервера только если в конфиге nginx указать proxy_max_temp_file_size 0; и тогда все запросы к статике проксировать на apache и обрабатывать им. -- Best regards, Gena From gmm на csdoc.com Tue Nov 29 19:22:19 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Tue, 29 Nov 2011 21:22:19 +0200 Subject: =?UTF-8?B?UmU6INGH0YLQtdC90LjQtSDRh9GD0LbQuNGFINGE0LDQudC70L7Qsjog0L3QtSA=?= =?UTF-8?B?0YHRgtC+0LjRgiDQv9Cw0YLRh9C40YLRjA==?= In-Reply-To: <4ED52ADA.8060209@amhost.net> References: <20111128224527.GA5181@external.screwed.box> <4ED4BD06.2070505@csdoc.com> <4ED4EF3A.2050808@amhost.net> <1855983734.20111129215539@ngs.ru> <4ED52ADA.8060209@amhost.net> Message-ID: <4ED530EB.50602@csdoc.com> On 29.11.2011 20:56, Alex Vorona wrote: >>> Используйте mod_aclr для 2-го апача(написав например его) или полное проксирование. >> При написании mod_aclr2 надо не забыть фильтровать редиректы, отдаваемые не модулем aclr2, а >> скриптом злоумышленника. Т.е., я про то, что схема просто удлинится на 1 шаг - обращаться не к >> файлу(симлинку) напрямую, а к скрипту, который выдаст internal redirect на симлинк. > Совсем уж офтопик. Использование location для статики с генерированым случайным именем из > 10+ символов, одинаковым в nginx и apache, не решит эту проблему? нет, потому что имя этого локейшина передается backend`у в заголовке X-Accel-Internal и прочитать его из PHP скрипта не составляет проблем. если мы здесь все еще говорим про mod_aclr http://miksir.maker.ru/?r=72 или его версию для второго апача с публично не доступными исходниками. -- Best regards, Gena From nginx-forum на nginx.us Tue Nov 29 21:44:09 2011 From: nginx-forum на nginx.us (saxon) Date: Tue, 29 Nov 2011 16:44:09 -0500 Subject: =?UTF-8?B?0J/QviDQvdC1INC/0L7QvdGP0YLQvdGL0Lwg0L/QsNC00LDQtdGCIHBocC1jZ2k=?= Message-ID: <9d8b56e6f2e9b5672d67e62b331dd21d.NginxMailingListRussian@forum.nginx.org> Есть такая конфигурация: Win7 nginx 1.1.2 php - 5.3.8 ts vc9 memcached mysql 5.x Предистория Есть очередь сообщений на PHP. Класс в деструкторе и конструкторе загружает/сохраняет данные в memcached. методы get, set и т.д. каждый клиент периодически делает запрос get - получает список сообщений, которые ему отправили другие клиенты или система. Клиент сделан на js. аяксом каждые 2 секунды отправляет запрос get. Проблема в том, что если запустить несколько клиентов, то уже после 20-40 запросов все инстансы php-cgi падают. Пишу сюда, потому что на конфигурации с apache работает помогите, пожалуйста, разобраться с проблемой. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219313,219313#msg-219313 From nginx-forum на nginx.us Tue Nov 29 21:49:53 2011 From: nginx-forum на nginx.us (yokodzun) Date: Tue, 29 Nov 2011 16:49:53 -0500 Subject: alias issue again Message-ID: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> Нарисовал следующую конструкцию для добавления алиаса для pma location / { root /usr/local/www; index index.html index.htm index.php; } location ~ \.php$ { fastcgi_pass unix:/tmp/php-fpm.sock; fastcgi_index index.php; fastcgi_param DOCUMENT_ROOT /usr/local/www; fastcgi_param SCRIPT_FILENAME /usr/local/www$fastcgi_script_name; include fastcgi_params; } location /pma/ { alias /usr/local/www/phpMyAdmin; index index.php; } location ~ ^/pma/(.*\.php)$ { fastcgi_pass unix:/tmp/php-fpm.sock; fastcgi_index index.php; fastcgi_param DOCUMENT_ROOT /usr/local/www/phpMyAdmin; fastcgi_param SCRIPT_FILENAME /usr/local/www/phpMyAdmin$fastcgi_script_name; include fastcgi_params; } } но при обращении к странице, получаю: [error] 77500#0: *6 directory index of "/usr/local/www/phpMyAdmin" is forbidden, client: 2.2.2.2, server: localhost, request: "GET /pma/ HTTP/1.1", host: "1.1.1.1" Я не так использую alias-ы? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219314,219314#msg-219314 From nginx-forum на nginx.us Tue Nov 29 22:33:01 2011 From: nginx-forum на nginx.us (Craken) Date: Tue, 29 Nov 2011 17:33:01 -0500 Subject: =?UTF-8?B?UmU6INCf0L4g0L3QtSDQv9C+0L3Rj9GC0L3Ri9C8INC/0LDQtNCw0LXRgiBwaHAt?= =?UTF-8?B?Y2dp?= In-Reply-To: <9d8b56e6f2e9b5672d67e62b331dd21d.NginxMailingListRussian@forum.nginx.org> References: <9d8b56e6f2e9b5672d67e62b331dd21d.NginxMailingListRussian@forum.nginx.org> Message-ID: <67a9ed94430972861d9e88f3b580f2f1.NginxMailingListRussian@forum.nginx.org> А в логах самого пхп что-то есть? Они там обычно много полезного пишут! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219313,219320#msg-219320 From nginx-forum на nginx.us Tue Nov 29 23:03:40 2011 From: nginx-forum на nginx.us (saxon) Date: Tue, 29 Nov 2011 18:03:40 -0500 Subject: =?UTF-8?B?UmU6INCf0L4g0L3QtSDQv9C+0L3Rj9GC0L3Ri9C8INC/0LDQtNCw0LXRgiBwaHAt?= =?UTF-8?B?Y2dp?= In-Reply-To: <67a9ed94430972861d9e88f3b580f2f1.NginxMailingListRussian@forum.nginx.org> References: <9d8b56e6f2e9b5672d67e62b331dd21d.NginxMailingListRussian@forum.nginx.org> <67a9ed94430972861d9e88f3b580f2f1.NginxMailingListRussian@forum.nginx.org> Message-ID: <67afdab05fcc8257797ceaea72ed3449.NginxMailingListRussian@forum.nginx.org> Нет, в логах ничего нет эдакого. единственное, что есть какие-то записи couldn't read/write file .../mysql/temp/..... но это из другой области. все остальное чисто. сейчас интересная вещь: оставил только 1 php-cgi процесс и пока все работает нормально. в принципе, нагрузки никакой не будет, чтобы несколько процессов ставить. больше интересно, в чем проблема Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219313,219321#msg-219321 From nginx-forum на nginx.us Tue Nov 29 23:04:27 2011 From: nginx-forum на nginx.us (saxon) Date: Tue, 29 Nov 2011 18:04:27 -0500 Subject: =?UTF-8?B?UmU6INCf0L4g0L3QtSDQv9C+0L3Rj9GC0L3Ri9C8INC/0LDQtNCw0LXRgiBwaHAt?= =?UTF-8?B?Y2dp?= In-Reply-To: <67afdab05fcc8257797ceaea72ed3449.NginxMailingListRussian@forum.nginx.org> References: <9d8b56e6f2e9b5672d67e62b331dd21d.NginxMailingListRussian@forum.nginx.org> <67a9ed94430972861d9e88f3b580f2f1.NginxMailingListRussian@forum.nginx.org> <67afdab05fcc8257797ceaea72ed3449.NginxMailingListRussian@forum.nginx.org> Message-ID: <303e5627bc0bf2f9678dbd84e8585ea1.NginxMailingListRussian@forum.nginx.org> нет, сглазил. упал php-cgi процесс. правда, подольше продержался на этот раз... Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219313,219322#msg-219322 From nginx-forum на nginx.us Tue Nov 29 23:58:00 2011 From: nginx-forum на nginx.us (J3FF3) Date: Tue, 29 Nov 2011 18:58:00 -0500 Subject: =?UTF-8?B?cmV3cml0ZSDQsiDRgtC+0YfQvdC+0YHRgtC4INC60LDQuiDRgyDQsNC/0LDRh9Cw?= Message-ID: <7cb95bb663d8876a3a6c83dea2330816.NginxMailingListRussian@forum.nginx.org> День добрый. Делал когда-то давно такой реврайт в апаче: RewriteRule ^some/img/banners/([0-9]{1,4})-([0-5]).png$ some/file.php?id=$1&type=$2 [L] Если в адресной строке браузера ввести чтото по типу site.com/some/img/banners/1-2.png - происходит вызов скрипта (file.php) и передача ему параметров. При этом, адресная строка не меняется (также и остается адрес site.com/some/img/banners/1-2.png, как будто это действительно картинка). В nginx делал подобное: rewite ^img.gif file.php permanent; Но в отличии от апача происходит перенаправление на ту страницу. То есть сам адрес в адресной строке браузера меняется на конечный. Конечно, не столько важный нюанс, но интересует, возможно ли повторить поведение апача в подобном редиректе? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219323,219323#msg-219323 From zzz на zzz.org.ua Wed Nov 30 00:07:25 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Wed, 30 Nov 2011 02:07:25 +0200 Subject: =?UTF-8?B?UmU6IHJld3JpdGUg0LIg0YLQvtGH0L3QvtGB0YLQuCDQutCw0Log0YMg0LDQv9Cw?= =?UTF-8?B?0YfQsA==?= In-Reply-To: <7cb95bb663d8876a3a6c83dea2330816.NginxMailingListRussian@forum.nginx.org> References: <7cb95bb663d8876a3a6c83dea2330816.NginxMailingListRussian@forum.nginx.org> Message-ID: On Wed, Nov 30, 2011 at 1:58 AM, J3FF3 wrote: > RewriteRule ^some/img/banners/([0-9]{1,4})-([0-5]).png$ > some/file.php?id=$1&type=$2 [L] > возможно ли повторить поведение апача > в подобном редиректе? Зависит от того, как вы на php проксируете. Не уверен, но дуамаю меня поправят, если не так: location /some/img/banners/ { location ~ ^/some/img/banners/([0-9]{1,4})-([0-5]).png$ { fastcgi_param SCRIPT_FILENAME /some/file.php; fastcgi_param QUERY_STRING "id=$1&type=$2"; ... fastcgi_pass ... } } From nginx-forum на nginx.us Wed Nov 30 00:32:14 2011 From: nginx-forum на nginx.us (INF[SZ]) Date: Tue, 29 Nov 2011 19:32:14 -0500 Subject: Nginx 1.1.9 Linux AIO segfault In-Reply-To: References: Message-ID: <9a193b541828b20bb4a37fc53ab792d5.NginxMailingListRussian@forum.nginx.org> Работает. Спасибо. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219250,219325#msg-219325 From mva на mva.name Wed Nov 30 03:17:09 2011 From: mva на mva.name (=?UTF-8?Q?=D0=9C=D0=B8=D1=81=D0=B1=D0=B0=D1=85-=D0=A1=D0=BE=D0=BB=D0=BE?= =?UTF-8?Q?=D0=B2=D1=8C=C3=AB=D0=B2_?= =?koi8-r?Q?=F7=C1=C4=C9=CD?=) Date: Wed, 30 Nov 2011 10:17:09 +0700 Subject: =?UTF-8?B?UmU6IHJld3JpdGUg0LIg0YLQvtGH0L3QvtGB0YLQuCDQutCw0Log0YMg0LDQv9Cw?= =?UTF-8?B?0YfQsA==?= In-Reply-To: References: <7cb95bb663d8876a3a6c83dea2330816.NginxMailingListRussian@forum.nginx.org> Message-ID: <1322623029.11485.5.camel@N900> Ну, или менее любимый Игорем стиль реврайтов: location ~ ^/some/img/banners/ { try_files $uri $uri/ @banner; } location @banner { rewrite ^/([0-9]{1,4})-([0-5]).png$ /file.php?id=$1&type=$2; } Ну и вообще... Я бы посоветовал автору для начала убрать "permanent" из своего изначального варианта, потом пойти почитать доку по реврайтам, чтобы увидель в чем отличие last от permanent, например. Потом быть счастливым благодаря заработавшему реврайту. ;)) On ср 30 ноя 2011 07:07:25 KRAT, Alexandr Gomoliako wrote: > On Wed, Nov 30, 2011 at 1:58 AM, J3FF3 wrote: > > > RewriteRule ^some/img/banners/([0-9]{1,4})-([0-5]).png$ > > some/file.php?id=$1&type=$2 [L] > > > возможно ли повторить поведение апача > > в подобном редиректе? > > Зависит от того, как вы на php проксируете. > Не уверен, но дуамаю меня поправят, если не так: > > location /some/img/banners/ { >        location ~ ^/some/img/banners/([0-9]{1,4})-([0-5]).png$ { >                fastcgi_param  SCRIPT_FILENAME /some/file.php; >                fastcgi_param  QUERY_STRING "id=$1&type=$2"; >                ... >                fastcgi_pass  ... >        } > } > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, mva From nginx-forum на nginx.us Wed Nov 30 05:43:36 2011 From: nginx-forum на nginx.us (Craken) Date: Wed, 30 Nov 2011 00:43:36 -0500 Subject: =?UTF-8?B?UmU6INCf0L4g0L3QtSDQv9C+0L3Rj9GC0L3Ri9C8INC/0LDQtNCw0LXRgiBwaHAt?= =?UTF-8?B?Y2dp?= In-Reply-To: <9d8b56e6f2e9b5672d67e62b331dd21d.NginxMailingListRussian@forum.nginx.org> References: <9d8b56e6f2e9b5672d67e62b331dd21d.NginxMailingListRussian@forum.nginx.org> Message-ID: Когда-то сталкивался с такой же проблемой! Не понятно почему просто резко умирал пхп (fast-cgi)! Я так и не разобрался в чем была проблема, поскольку заменили сервер - и все глюки таинственно исчезли! Внимательно посмотрите или не выключены у Вас в пхп именно еррор логи, потому что у меня он прекращал работать из-за сегфаултов! И на всяк пожарный, попробуйте nginx error_log перевести в режим debug, может там что-то будет! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219313,219333#msg-219333 From nginx-forum на nginx.us Wed Nov 30 05:58:00 2011 From: nginx-forum на nginx.us (Craken) Date: Wed, 30 Nov 2011 00:58:00 -0500 Subject: alias issue again In-Reply-To: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> References: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> Message-ID: location /pma/ { root /usr/local/www/phpMyAdmin; index index.php; } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219314,219335#msg-219335 From nginx-forum на nginx.us Wed Nov 30 06:01:02 2011 From: nginx-forum на nginx.us (Craken) Date: Wed, 30 Nov 2011 01:01:02 -0500 Subject: alias issue again In-Reply-To: References: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> Message-ID: <189fecf57c3d104a74309702d058eaa4.NginxMailingListRussian@forum.nginx.org> По сути этот локейшн Вам вообще не нужен! По идее без него все будет отлично работать. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219314,219336#msg-219336 From nginx-forum на nginx.us Wed Nov 30 06:23:15 2011 From: nginx-forum на nginx.us (saxon) Date: Wed, 30 Nov 2011 01:23:15 -0500 Subject: =?UTF-8?B?UmU6INCf0L4g0L3QtSDQv9C+0L3Rj9GC0L3Ri9C8INC/0LDQtNCw0LXRgiBwaHAt?= =?UTF-8?B?Y2dp?= In-Reply-To: References: <9d8b56e6f2e9b5672d67e62b331dd21d.NginxMailingListRussian@forum.nginx.org> Message-ID: <4d61e1fab54a6c186bb729f8ad55f478.NginxMailingListRussian@forum.nginx.org> Ничего подходящего не нашел в логах. Идет нормальный запрос на 200 ОК, после него сразу ошибочный "504: Gateway timeout...." А какие есть альтернативы? apache слишком монструозный. и нужен такой, который по лицензии можно с собой таскать (в бинарном виде) Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219313,219338#msg-219338 From nginx-forum на nginx.us Wed Nov 30 08:08:58 2011 From: nginx-forum на nginx.us (igor.goncharenko) Date: Wed, 30 Nov 2011 03:08:58 -0500 Subject: php-fpm upstream pool In-Reply-To: References: Message-ID: Поискал, действительно, этот апстрим иногда отваливается по timed out, хотя непонятно почему, php-fpm справляется, все эти апстримы это виртуальные машины, часть в виртуалбоксе, сам nginx - в вмваре, но все рядом. 2011/11/25 12:38:26 [error] 39431#0: *260947 upstream timed out (60: Operation timed out) while reading response header from upstream, client: 10.0.0.1, server: fcgi.loc1, request: "GET /fcgi_proxy/ HTTP/1.1", upstream: "fastcgi://10.0.0.73:9000", host: "fcgi.loc1" Допустим, что это сетевая проблема моего виртуального окружения (у кого-нибудь были подобные проблемы?), тогда получается что в какой-то момент, все апстримы признаются негодными и тогда nginx идет за ошибкой на бэкенд, отдает эту ошибку клиенту и должен ждать 240 сек? --- Igor Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219032,219341#msg-219341 From ne на vbart.ru Wed Nov 30 08:14:34 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Wed, 30 Nov 2011 12:14:34 +0400 Subject: alias issue again In-Reply-To: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> References: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> Message-ID: <201111301214.34521.ne@vbart.ru> On Wednesday 30 November 2011 01:49:53 yokodzun wrote: [...] > > location /pma/ { > alias /usr/local/www/phpMyAdmin; > index index.php; > } [...] Попробуйте: alias /usr/local/www/phpMyAdmin; заменить на: alias /usr/local/www/phpMyAdmin/; -- Валентин Бартенев From nginx-forum на nginx.us Wed Nov 30 08:27:10 2011 From: nginx-forum на nginx.us (yokodzun) Date: Wed, 30 Nov 2011 03:27:10 -0500 Subject: alias issue again In-Reply-To: <189fecf57c3d104a74309702d058eaa4.NginxMailingListRussian@forum.nginx.org> References: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> <189fecf57c3d104a74309702d058eaa4.NginxMailingListRussian@forum.nginx.org> Message-ID: Да, действительно, он лишний. Оставил только, location /pma/ { alias /usr/local/www/phpMyAdmin; index index.php; } Получаю все ту же ошибку: 80114#0: *14 directory index of "/usr/local/www/phpMyAdmin" is forbidden, client: 2.2.2.2, server: localhost, request: "GET /pma/ HTTP/1.1", host: "1.1.1.1" Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219314,219345#msg-219345 From nginx-forum на nginx.us Wed Nov 30 08:28:22 2011 From: nginx-forum на nginx.us (yokodzun) Date: Wed, 30 Nov 2011 03:28:22 -0500 Subject: alias issue again In-Reply-To: <201111301214.34521.ne@vbart.ru> References: <201111301214.34521.ne@vbart.ru> Message-ID: >Попробуйте: >alias /usr/local/www/phpMyAdmin; >заменить на: >alias /usr/local/www/phpMyAdmin/; в таком случае получаю от броузера: Oops! This link appears to be broken. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219314,219346#msg-219346 From ne на vbart.ru Wed Nov 30 08:38:16 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Wed, 30 Nov 2011 12:38:16 +0400 Subject: alias issue again In-Reply-To: References: <201111301214.34521.ne@vbart.ru> Message-ID: <201111301238.17121.ne@vbart.ru> On Wednesday 30 November 2011 12:28:22 yokodzun wrote: > >Попробуйте: > >alias /usr/local/www/phpMyAdmin; > >заменить на: > >alias /usr/local/www/phpMyAdmin/; > > в таком случае получаю от броузера: > > Oops! This link appears to be broken. > Nginx таких ошибок не выдает, а что имел ввиду ваш браузер мне не понятно. Если всё-таки в error_log посмотреть? -- Валентин Бартенев From latypoff на yandex.ru Wed Nov 30 09:11:14 2011 From: latypoff на yandex.ru (Denis F. Latypoff) Date: Wed, 30 Nov 2011 16:11:14 +0700 Subject: =?UTF-8?B?UmU6IHJld3JpdGUg0LIg0YLQvtGH0L3QvtGB0YLQuCDQutCw0Log0YMg0LDQv9Cw?= =?UTF-8?B?0YfQsA==?= In-Reply-To: <1322623029.11485.5.camel@N900> References: <7cb95bb663d8876a3a6c83dea2330816.NginxMailingListRussian@forum.nginx.org> <1322623029.11485.5.camel@N900> Message-ID: <336411322644274@web33.yandex.ru> 30.11.2011, 10:17, "Мисбах-Соловь?в Вадим" : > Ну, или менее любимый Игорем стиль реврайтов: > location ~ ^/some/img/banners/ { > try_files $uri $uri/ @banner; > } > зачем лишний stat(2)? > location @banner { >    rewrite ^/([0-9]{1,4})-([0-5]).png$ /file.php?id=$1&type=$2; > } > > Ну и вообще... Я бы посоветовал автору для начала убрать "permanent" из своего изначального варианта, потом пойти почитать доку по реврайтам, чтобы увидель в чем отличие last от permanent, например. Потом быть счастливым благодаря заработавшему реврайту. ;)) А я бы посоветовал автору с переходом на nginx забыть про рерайты вообще. А вам бы посоветовал советовать новичкам то, что я посоветовал )) В 99% случаях они не нужны вообще. Для статики есть alias, для редиректов есть return, для всего остального *_pass. > > On ср 30 ноя 2011 07:07:25 KRAT, Alexandr Gomoliako wrote: > >>  On Wed, Nov 30, 2011 at 1:58 AM, J3FF3 wrote: >>>  RewriteRule ^some/img/banners/([0-9]{1,4})-([0-5]).png$ >>>  some/file.php?id=$1&type=$2 [L] >>>  возможно ли повторить поведение апача >>>  в подобном редиректе? >>  Зависит от того, как вы на php проксируете. >>  Не уверен, но дуамаю меня поправят, если не так: >> >>  location /some/img/banners/ { >>          location ~ ^/some/img/banners/([0-9]{1,4})-([0-5]).png$ { >>                  fastcgi_param   SCRIPT_FILENAME /some/file.php; >>                  fastcgi_param   QUERY_STRING "id=$1&type=$2"; >>                  ... >>                  fastcgi_pass   ... >>          } >>  } > -- > С уважением, > mva > -- br, Denis F. Latypoff. From nginx-forum на nginx.us Wed Nov 30 09:11:37 2011 From: nginx-forum на nginx.us (yokodzun) Date: Wed, 30 Nov 2011 04:11:37 -0500 Subject: alias issue again In-Reply-To: <201111301238.17121.ne@vbart.ru> References: <201111301238.17121.ne@vbart.ru> Message-ID: Валентин Бартенев Wrote: > Nginx таких ошибок не выдает, > а что имел ввиду ваш > браузер мне не понятно. > > Если всё-таки в error_log > посмотреть? > При конфигурации с закрывающим слешем, в error.log - пусто. в access.log следующее: 1.1.1.1 - - [30/Nov/2011:16:04:54 +0700] "GET /pma/ HTTP/1.1" 404 5 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2" 1.1.1.1 - - [30/Nov/2011:16:04:55 +0700] "GET /favicon.ico HTTP/1.1" 200 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2" 1.1.1.1 - - [30/Nov/2011:16:05:04 +0700] "-" 400 0 "-" "-" 1.1.1.1 - - [30/Nov/2011:16:05:04 +0700] "-" 400 0 "-" "-" Без слеша - Forbiden, как я писал выше. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219314,219348#msg-219348 From ne на vbart.ru Wed Nov 30 09:46:20 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Wed, 30 Nov 2011 13:46:20 +0400 Subject: alias issue again In-Reply-To: References: <201111301238.17121.ne@vbart.ru> Message-ID: <201111301346.20571.ne@vbart.ru> On Wednesday 30 November 2011 13:11:37 yokodzun wrote: > При конфигурации с закрывающим слешем, > в error.log - пусто. > > в access.log следующее: > > > 1.1.1.1 - - [30/Nov/2011:16:04:54 +0700] "GET /pma/ HTTP/1.1" 404 5 "-" > "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.2 > (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2" > 1.1.1.1 - - [30/Nov/2011:16:04:55 +0700] "GET /favicon.ico HTTP/1.1" 200 > 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.2 > (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2" > 1.1.1.1 - - [30/Nov/2011:16:05:04 +0700] "-" 400 0 "-" "-" > 1.1.1.1 - - [30/Nov/2011:16:05:04 +0700] "-" 400 0 "-" "-" > > Без слеша - Forbiden, как я писал выше. > 404 видимо возвращает ваш php-fpm. Чтобы в этом удостовериться можно включить debug log в Nginx. -- Валентин Бартенев From nginx-forum на nginx.us Wed Nov 30 09:53:17 2011 From: nginx-forum на nginx.us (c0re) Date: Wed, 30 Nov 2011 04:53:17 -0500 Subject: =?UTF-8?B?0JfQsNC80LXQvdCwIGJ1c3lsb2NrJ9Cw0Lwg0LTQu9GPIHByb3h5IGNhY2hlINC4?= =?UTF-8?B?IHByb3h5IHN0b3Jl?= Message-ID: Пробема поднималась неоднократно и у нас и у буржуев. Кто не понимает о чем речь - ищите по 'nginx busylocks'. workaround для proxy_cache: http{ proxy_cache_path /cache keys_zone=localcache:10m; limit_zone perUri $uri 10m; } server { location /remote/ { try_files $uri @fake @proxy-remote; } location @fake { root /notexists; } location @proxy-remote { limit_conn perUri 1; proxy_cache localcache; proxy_cache_valid any 999d; proxy_cache_key "remote$request_uri"; # тут пилить под свои задачи proxy_set_header Range ""; # обрезаем Range в этой секции, иначе не закэширует proxy_pass upstream; error_page 503 = @locked-remote; } location @locked-remote { # тут пилить под свои задачи. один из вариантов такой: proxy_buffering off; proxy_pass upstream; } # по необходимости плодим локейшены по образу и подобию (@fake можно оставить общим для всех) } для удобства конфиг продублирован на http://pastie.org/private/q49fwnwruatcyvzxwbomcg Для proxy_store то же самое, только без @fake и с правильным root в /remote/ Естественно это только концепт, который надо дальше пилить под свои задачи. Как это неудивительно - работает. Воистину, возможности nginx'а неисповедимы. Если есть вопросы - добро пожаловать. icq: 3016467, skype: imperial.roaming Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219351,219351#msg-219351 From mdounin на mdounin.ru Wed Nov 30 10:33:37 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 30 Nov 2011 14:33:37 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQvNC10L3QsCBidXN5bG9jayfQsNC8INC00LvRjyBwcm94eSBjYWNo?= =?UTF-8?B?ZSDQuCBwcm94eSBzdG9yZQ==?= In-Reply-To: References: Message-ID: <20111130103337.GO67687@mdounin.ru> Hello! On Wed, Nov 30, 2011 at 04:53:17AM -0500, c0re wrote: > Пробема поднималась неоднократно и у > нас и у буржуев. > Кто не понимает о чем речь - ищите по 'nginx > busylocks'. > > workaround для proxy_cache: > > http{ > proxy_cache_path /cache keys_zone=localcache:10m; > limit_zone perUri $uri 10m; > } > server { > location /remote/ { > try_files $uri @fake @proxy-remote; > } > location @fake { > root /notexists; > } > location @proxy-remote { > limit_conn perUri 1; > proxy_cache localcache; > proxy_cache_valid any 999d; > proxy_cache_key "remote$request_uri"; # тут > пилить под свои задачи > proxy_set_header Range ""; # обрезаем Range в > этой секции, иначе не закэширует > proxy_pass upstream; > error_page 503 = @locked-remote; > } > location @locked-remote { > # тут пилить под свои задачи. > один из вариантов такой: > proxy_buffering off; > proxy_pass upstream; > } > # по необходимости плодим > локейшены по образу и подобию (@fake можно > оставить общим для всех) > } > > для удобства конфиг продублирован на > http://pastie.org/private/q49fwnwruatcyvzxwbomcg > > Для proxy_store то же самое, только без @fake и с > правильным root в /remote/ > > Естественно это только концепт, > который надо дальше пилить под свои > задачи. > Как это неудивительно - работает. > Воистину, возможности nginx'а > неисповедимы. > Если есть вопросы - добро пожаловать. К сожалению, это плохой, негодный дят^Wworkaround. Таким образом лимитируется в том числе количество отдаваемых из кеша ответов. Т.е. если у вас горячий файл на 4G (и он уже есть в кеше), то первый клиент его будет качать из кеша, а остальные - пойдут на бекенд. Maxim Dounin From nginx-forum на nginx.us Wed Nov 30 10:49:41 2011 From: nginx-forum на nginx.us (c0re) Date: Wed, 30 Nov 2011 05:49:41 -0500 Subject: =?UTF-8?B?UmU6INCX0LDQvNC10L3QsCBidXN5bG9jayfQsNC8INC00LvRjyBwcm94eSBjYWNo?= =?UTF-8?B?ZSDQuCBwcm94eSBzdG9yZQ==?= In-Reply-To: <20111130103337.GO67687@mdounin.ru> References: <20111130103337.GO67687@mdounin.ru> Message-ID: Подтверждаю. Пробовал в @fake добавить proxy_pass на 127.0.0.1 отдающий 404. Результат тот же. В таком случае для proxy_cache решения до сих пор нет. Правильно работает только для proxy_store. Может есть идеи, как без сторонних модулей определить для proxy_cache есть ли уже ответ в кэше или нет? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219356,219357#msg-219357 From mdounin на mdounin.ru Wed Nov 30 10:49:55 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 30 Nov 2011 14:49:55 +0400 Subject: nginx-1.1.10 Message-ID: <20111130104954.GP67687@mdounin.ru> Изменения в nginx 1.1.10 30.11.2011 *) Исправление: при использовании AIO на Linux в рабочем процессе происходил segmentation fault; ошибка появилась в 1.1.9. Maxim Dounin From mdounin на mdounin.ru Wed Nov 30 11:12:58 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 30 Nov 2011 15:12:58 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQvNC10L3QsCBidXN5bG9jayfQsNC8INC00LvRjyBwcm94eSBjYWNo?= =?UTF-8?B?ZSDQuCBwcm94eSBzdG9yZQ==?= In-Reply-To: References: <20111130103337.GO67687@mdounin.ru> Message-ID: <20111130111258.GT67687@mdounin.ru> Hello! On Wed, Nov 30, 2011 at 05:49:41AM -0500, c0re wrote: > Подтверждаю. > Пробовал в @fake добавить proxy_pass на 127.0.0.1 > отдающий 404. > Результат тот же. > В таком случае для proxy_cache решения до сих > пор нет. > Правильно работает только для proxy_store. Можно попробовать после 503 тоже включать cache, но с proxy_no_cache, будет приблизительно то, что пытается делать исходный конфиг. Ну или дополнительные уровень проксирования, а там "add_header X-Accel-Expires 0", если больше одного соединения. Хотя по прежнему не решается проблема bandwidth reduction (i.e. один запрос идёт на бекенд, остальные ждут появления ответа в кеше). > Может есть идеи, как без сторонних > модулей определить для > proxy_cache есть ли уже ответ в кэше или нет? См. варианты выше. Maxim Dounin From mdounin на mdounin.ru Wed Nov 30 11:15:13 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 30 Nov 2011 15:15:13 +0400 Subject: Nginx 1.1.9 Linux AIO segfault In-Reply-To: <9a193b541828b20bb4a37fc53ab792d5.NginxMailingListRussian@forum.nginx.org> References: <9a193b541828b20bb4a37fc53ab792d5.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111130111513.GU67687@mdounin.ru> Hello! On Tue, Nov 29, 2011 at 07:32:14PM -0500, INF[SZ] wrote: > Работает. Спасибо. Пожалуйста. JFYI: вышел 1.1.10 с этим патчем. Maxim Dounin From nginx-forum на nginx.us Wed Nov 30 11:15:59 2011 From: nginx-forum на nginx.us (yokodzun) Date: Wed, 30 Nov 2011 06:15:59 -0500 Subject: alias issue again In-Reply-To: <201111301346.20571.ne@vbart.ru> References: <201111301346.20571.ne@vbart.ru> Message-ID: Валентин Бартенев Wrote: > > 404 видимо возвращает ваш > php-fpm. Чтобы в этом > удостовериться можно > включить > debug log в Nginx. > Включил, errlog 2011/11/30 18:06:36 [notice] 80579#0: start worker process 80580 2011/11/30 18:09:12 [info] 80580#0: *3 client closed prematurely connection while reading client request line, client: 213.133.166.70, server: localhost 2011/11/30 18:09:12 [info] 80580#0: *2 client closed prematurely connection while reading client request line, client: 213.133.166.70, server: localhost 2011/11/30 18:09:12 [info] 80580#0: *5 client closed prematurely connection while reading client request line, client: 213.133.166.70, server: localhost access 213.133.166.70 - - [30/Nov/2011:18:10:43 +0700] "GET /pma/ HTTP/1.1" 404 5 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2" 213.133.166.70 - - [30/Nov/2011:18:11:02 +0700] "-" 400 0 "-" "-" 213.133.166.70 - - [30/Nov/2011:18:11:02 +0700] "-" 400 0 "-" "-" При этом, полный путь - работает как часы. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219314,219365#msg-219365 From gmm на csdoc.com Wed Nov 30 13:23:11 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Wed, 30 Nov 2011 15:23:11 +0200 Subject: =?UTF-8?B?0YHQuNC80LLQvtC7ICcvJyDQsiDQutC+0L3RhtC1INC/0YPRgtC4INCyINC00Lg=?= =?UTF-8?B?0YDQtdC60YLQuNCy0LDRhSBhbGlhcyDQuCByb290?= In-Reply-To: <201111301214.34521.ne@vbart.ru> References: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> <201111301214.34521.ne@vbart.ru> Message-ID: <4ED62E3F.90600@csdoc.com> On 30.11.2011 10:14, Валентин Бартенев wrote: >> location /pma/ { >> alias /usr/local/www/phpMyAdmin; >> index index.php; >> } > Попробуйте: > alias /usr/local/www/phpMyAdmin; > заменить на: > alias /usr/local/www/phpMyAdmin/; а в чем разница между этими двумя вариантами alias, с символом '/' в конце указанного пути и без него? для proxy_pass разница в '/' есть и она описана в документации, а для директивы root судя по всему, никакой разницы в '/' нет? документацию по директивам alias и root смотрел, ответа там нет. -- Best regards, Gena From nginx-forum на nginx.us Wed Nov 30 13:25:24 2011 From: nginx-forum на nginx.us (c0re) Date: Wed, 30 Nov 2011 08:25:24 -0500 Subject: =?UTF-8?B?UmU6INCX0LDQvNC10L3QsCBidXN5bG9jayfQsNC8INC00LvRjyBwcm94eSBjYWNo?= =?UTF-8?B?ZSDQuCBwcm94eSBzdG9yZQ==?= In-Reply-To: <20111130111258.GT67687@mdounin.ru> References: <20111130111258.GT67687@mdounin.ru> Message-ID: <21f4ce362032b2f3ba5b54ff77b85aab.NginxMailingListRussian@forum.nginx.org> Спасибо за советы. > Хотя по прежнему не > решается проблема bandwidth > reduction (i.e. > один запрос идёт на бекенд, > остальные ждут появления > ответа в > кеше). Реализация нативных busylock'ов для proxy_cache в nginx'е эту проблему тоже никак не решит. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219356,219368#msg-219368 From igor на sysoev.ru Wed Nov 30 13:30:44 2011 From: igor на sysoev.ru (Igor Sysoev) Date: Wed, 30 Nov 2011 17:30:44 +0400 Subject: =?UTF-8?B?UmU6INGB0LjQvNCy0L7QuyAnLycg0LIg0LrQvtC90YbQtSDQv9GD0YLQuCDQsiA=?= =?UTF-8?B?0LTQuNGA0LXQutGC0LjQstCw0YUgYWxpYXMg0Lggcm9vdA==?= In-Reply-To: <4ED62E3F.90600@csdoc.com> References: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> <201111301214.34521.ne@vbart.ru> <4ED62E3F.90600@csdoc.com> Message-ID: <20111130133044.GA62596@nginx.com> On Wed, Nov 30, 2011 at 03:23:11PM +0200, Gena Makhomed wrote: > On 30.11.2011 10:14, Валентин Бартенев wrote: > > >> location /pma/ { > >> alias /usr/local/www/phpMyAdmin; > >> index index.php; > >> } > > > Попробуйте: > > alias /usr/local/www/phpMyAdmin; > > заменить на: > > alias /usr/local/www/phpMyAdmin/; > > а в чем разница между этими двумя вариантами alias, > с символом '/' в конце указанного пути и без него? > > для proxy_pass разница в '/' есть и она описана в документации, > а для директивы root судя по всему, никакой разницы в '/' нет? > > документацию по директивам alias и root смотрел, ответа там нет. Для root нет разницы, более того, если '/' указан, то nginx его всё равно убирает. alias - это буквальная замена префикса в location. Если запрос /pma/index.html, то в первом варианте путь будет /usr/local/www/phpMyAdminindex.html, а во втором - /usr/local/www/phpMyAdmin/index.html. -- Игорь Сысоев http://sysoev.ru From ano на bestmx.ru Wed Nov 30 14:38:32 2011 From: ano на bestmx.ru (Andrey N. Oktyabrski) Date: Wed, 30 Nov 2011 17:38:32 +0300 Subject: =?UTF-8?B?UmU6INGB0LjQvNCy0L7QuyAnLycg0LIg0LrQvtC90YbQtSDQv9GD0YLQuCDQsiA=?= =?UTF-8?B?0LTQuNGA0LXQutGC0LjQstCw0YUgYWxpYXMg0Lggcm9vdA==?= In-Reply-To: <20111130133044.GA62596@nginx.com> References: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> <201111301214.34521.ne@vbart.ru> <4ED62E3F.90600@csdoc.com> <20111130133044.GA62596@nginx.com> Message-ID: <4ED63FE8.8050103@bestmx.ru> On 30.11.11 16:30, Igor Sysoev wrote: > On Wed, Nov 30, 2011 at 03:23:11PM +0200, Gena Makhomed wrote: >> On 30.11.2011 10:14, Валентин Бартенев wrote: >> >>>> location /pma/ { >>>> alias /usr/local/www/phpMyAdmin; >>>> index index.php; >>>> } >> >>> Попробуйте: >>> alias /usr/local/www/phpMyAdmin; >>> заменить на: >>> alias /usr/local/www/phpMyAdmin/; >> >> а в чем разница между этими двумя вариантами alias, >> с символом '/' в конце указанного пути и без него? >> >> для proxy_pass разница в '/' есть и она описана в документации, >> а для директивы root судя по всему, никакой разницы в '/' нет? >> >> документацию по директивам alias и root смотрел, ответа там нет. > > Для root нет разницы, более того, если '/' указан, то nginx его всё равно > убирает. alias - это буквальная замена префикса в location. > > Если запрос /pma/index.html, то в первом варианте путь будет > /usr/local/www/phpMyAdminindex.html, а во втором - > /usr/local/www/phpMyAdmin/index.html. Так это же ОБЯЗАТЕЛЬНО надо в документашку! From nginx-forum на nginx.us Wed Nov 30 13:38:31 2011 From: nginx-forum на nginx.us (c0re) Date: Wed, 30 Nov 2011 08:38:31 -0500 Subject: =?UTF-8?B?UmU6INCX0LDQvNC10L3QsCBidXN5bG9jayfQsNC8INC00LvRjyBwcm94eSBjYWNo?= =?UTF-8?B?ZSDQuCBwcm94eSBzdG9yZQ==?= In-Reply-To: <20111130103337.GO67687@mdounin.ru> References: <20111130103337.GO67687@mdounin.ru> Message-ID: <7a3a36ebb97eaa0621134337e3d5a99f.NginxMailingListRussian@forum.nginx.org> В смысле так же придется выбирать - или ждать пока ответ ляжет в кэш (а контент может быть очень большой), или параллельно что-то делать, например проксировать напрямую клиентам. То что при этом ничего лишнего не будет ложиться в proxy_temp - уже радость. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219356,219370#msg-219370 From ne на vbart.ru Wed Nov 30 14:33:05 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Wed, 30 Nov 2011 18:33:05 +0400 Subject: alias issue again In-Reply-To: References: <201111301346.20571.ne@vbart.ru> Message-ID: <201111301833.05803.ne@vbart.ru> On Wednesday 30 November 2011 15:15:59 yokodzun wrote: > Валентин Бартенев Wrote: > > 404 видимо возвращает ваш > > php-fpm. Чтобы в этом > > удостовериться можно > > включить > > debug log в Nginx. > > Включил, errlog > > 2011/11/30 18:06:36 [notice] 80579#0: start worker process 80580 > 2011/11/30 18:09:12 [info] 80580#0: *3 client closed prematurely > connection while reading client request line, client: 213.133.166.70, > server: localhost > 2011/11/30 18:09:12 [info] 80580#0: *2 client closed prematurely > connection while reading client request line, client: 213.133.166.70, > server: localhost > 2011/11/30 18:09:12 [info] 80580#0: *5 client closed prematurely > connection while reading client request line, client: 213.133.166.70, > server: localhost > > access > > > 213.133.166.70 - - [30/Nov/2011:18:10:43 +0700] "GET /pma/ HTTP/1.1" 404 > 5 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.2 > (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2" > 213.133.166.70 - - [30/Nov/2011:18:11:02 +0700] "-" 400 0 "-" "-" > 213.133.166.70 - - [30/Nov/2011:18:11:02 +0700] "-" 400 0 "-" "-" > > > При этом, полный путь - работает как > часы. > debug log: http://nginx.org/ru/docs/debugging_log.html -- Валентин Бартенев From mdounin на mdounin.ru Wed Nov 30 14:34:23 2011 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 30 Nov 2011 18:34:23 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQvNC10L3QsCBidXN5bG9jayfQsNC8INC00LvRjyBwcm94eSBjYWNo?= =?UTF-8?B?ZSDQuCBwcm94eSBzdG9yZQ==?= In-Reply-To: <21f4ce362032b2f3ba5b54ff77b85aab.NginxMailingListRussian@forum.nginx.org> References: <20111130111258.GT67687@mdounin.ru> <21f4ce362032b2f3ba5b54ff77b85aab.NginxMailingListRussian@forum.nginx.org> Message-ID: <20111130143423.GV67687@mdounin.ru> Hello! On Wed, Nov 30, 2011 at 08:25:24AM -0500, c0re wrote: > Спасибо за советы. > > > Хотя по прежнему не > > решается проблема bandwidth > > reduction (i.e. > > один запрос идёт на бекенд, > > остальные ждут появления > > ответа в > > кеше). > > Реализация нативных busylock'ов для proxy_cache > в nginx'е эту проблему тоже никак не решит. Решит, по крайней мере попытается. http://sysoev.ru/mod_accel/readme.html#busylocks Maxim Dounin From nginx-forum на nginx.us Wed Nov 30 14:43:24 2011 From: nginx-forum на nginx.us (Craken) Date: Wed, 30 Nov 2011 09:43:24 -0500 Subject: alias issue again In-Reply-To: References: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> <189fecf57c3d104a74309702d058eaa4.NginxMailingListRussian@forum.nginx.org> Message-ID: <93a5d045e1f6a142839a672e6a9ec89a.NginxMailingListRussian@forum.nginx.org> yokodzun Пишет: ------------------------------------------------------- > Да, действительно, он > лишний. > Оставил только, > > location /pma/ { > alias /usr/local/www/phpMyAdmin; > index index.php; > } > > > Получаю все ту же ошибку: > > 80114#0: *14 directory index of > "/usr/local/www/phpMyAdmin" is forbidden, client: > 2.2.2.2, server: localhost, request: "GET /pma/ > HTTP/1.1", host: "1.1.1.1" Я имел виду что достаточно будет только этого: location ~ ^/pma/(.*\.php)$ { fastcgi_pass unix:/tmp/php-fpm.sock; fastcgi_index index.php; fastcgi_param DOCUMENT_ROOT /usr/local/www/phpMyAdmin; fastcgi_param SCRIPT_FILENAME /usr/local/www/phpMyAdmin$fastcgi_script_name; include fastcgi_params; } } Попробуйте убрать только это: location /pma/ { alias /usr/local/www/phpMyAdmin; index index.php; } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219314,219374#msg-219374 From nginx-forum на nginx.us Wed Nov 30 15:22:44 2011 From: nginx-forum на nginx.us (Craken) Date: Wed, 30 Nov 2011 10:22:44 -0500 Subject: alias issue again In-Reply-To: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> References: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> Message-ID: Если у Вас в конфиге для этого сервера есть локейшн, который обрабатывает ".пхп" файлы, то по идее можно просто: location /pma/$ { root /usr/local/www/phpMyAdmin; index index.php; } в общем чтобы делать какие-то выводы - покажите весь конфиг для этого сервера! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219314,219375#msg-219375 From ne на vbart.ru Wed Nov 30 15:28:53 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Wed, 30 Nov 2011 19:28:53 +0400 Subject: alias issue again In-Reply-To: References: <201111301346.20571.ne@vbart.ru> Message-ID: <201111301928.54148.ne@vbart.ru> On Wednesday 30 November 2011 15:15:59 yokodzun wrote: [...] > > При этом, полный путь - работает как > часы. > Так, а этот index.php у вас вообще где находится? Тут: /usr/local/www/phpMyAdmin/index.php или все-таки тут: /usr/local/www/phpMyAdmin/pma/index.php ? -- Валентин Бартенев From nginx-forum на nginx.us Wed Nov 30 15:53:44 2011 From: nginx-forum на nginx.us (yokodzun) Date: Wed, 30 Nov 2011 10:53:44 -0500 Subject: alias issue again In-Reply-To: References: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> Message-ID: Craken Wrote: ------------------------------------------------------- > Если у Вас в конфиге для > этого сервера есть локейшн, > который обрабатывает ".пхп" > файлы, то по идее можно > просто: > > location /pma/$ { > root /usr/local/www/phpMyAdmin; > index index.php; > } > в таком случае сервер пытается лезть в /usr/local/www/pma/ > в общем чтобы делать > какие-то выводы - покажите > весь конфиг для этого > сервера! Конфиг практически дефолтный, вот он: http://pastie.org/2944617 Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219314,219377#msg-219377 From nginx-forum на nginx.us Wed Nov 30 15:55:32 2011 From: nginx-forum на nginx.us (yokodzun) Date: Wed, 30 Nov 2011 10:55:32 -0500 Subject: alias issue again In-Reply-To: <201111301928.54148.ne@vbart.ru> References: <201111301928.54148.ne@vbart.ru> Message-ID: Валентин Бартенев Wrote: > Тут: > /usr/local/www/phpMyAdmin/index.php как выше, вот тут: # pwd /usr/local/www/phpMyAdmin Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219314,219378#msg-219378 From ne на vbart.ru Wed Nov 30 16:03:15 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Wed, 30 Nov 2011 20:03:15 +0400 Subject: alias issue again In-Reply-To: References: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> Message-ID: <201111302003.15448.ne@vbart.ru> On Wednesday 30 November 2011 19:53:44 yokodzun wrote: [...] > > Конфиг практически дефолтный, вот он: > > http://pastie.org/2944617 > Замечательно. По ссылке совсем не то, что вы привели в своем первом сообщении. location /pma/$ { alias /usr/local/www/phpMyAdmin/; index index.php; } откуда тут взялся '$' ? Это не регулярное выражение. Запрос в этот локейшн попадет только если uri и правда начинается с "/pma/$". -location /pma/$ { +location /pma/ { -- Валентин Бартенев From bediev на gmail.com Wed Nov 30 16:17:37 2011 From: bediev на gmail.com (p1gmale0n) Date: Wed, 30 Nov 2011 22:17:37 +0600 Subject: alias issue again In-Reply-To: <201111302003.15448.ne@vbart.ru> References: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> <201111302003.15448.ne@vbart.ru> Message-ID: 2011/11/30 Валентин Бартенев > Запрос в этот локейшн попадет только если uri и правда начинается с > "/pma/$". *поправка заканчивается -- Marat Bediev, System Administrator _________________________ Tel: +996555990584 E-mail: bediev на gmail.com Skype: p1gmale0n Twitter: @p1gmale0n ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ne на vbart.ru Wed Nov 30 16:20:12 2011 From: ne на vbart.ru (=?utf-8?b?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 30 Nov 2011 20:20:12 +0400 Subject: alias issue again In-Reply-To: References: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> <201111302003.15448.ne@vbart.ru> Message-ID: <201111302020.13099.ne@vbart.ru> On Wednesday 30 November 2011 20:17:37 p1gmale0n wrote: > 2011/11/30 Валентин Бартенев > > > Запрос в этот локейшн попадет только если uri и правда начинается с > > "/pma/$". > > *поправка > заканчивается Ошибаетесь. Начинается. Это НЕ регулярное выражение, там нету модификатора "~" или "~*", поэтому это префикс. По ссылке: "location /pma/$ {" -- Валентин Бартенев From bediev на gmail.com Wed Nov 30 16:21:57 2011 From: bediev на gmail.com (p1gmale0n) Date: Wed, 30 Nov 2011 22:21:57 +0600 Subject: alias issue again In-Reply-To: <201111302020.13099.ne@vbart.ru> References: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> <201111302003.15448.ne@vbart.ru> <201111302020.13099.ne@vbart.ru> Message-ID: и правда.. проглядел( извиняюсь :) -- Marat Bediev, System Administrator _________________________ Tel: +996555990584 E-mail: bediev на gmail.com Skype: p1gmale0n Twitter: @p1gmale0n ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ne на vbart.ru Wed Nov 30 16:31:52 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Wed, 30 Nov 2011 20:31:52 +0400 Subject: alias issue again In-Reply-To: <201111302003.15448.ne@vbart.ru> References: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> <201111302003.15448.ne@vbart.ru> Message-ID: <201111302031.52942.ne@vbart.ru> On Wednesday 30 November 2011 20:03:15 Валентин Бартенев wrote: [...] > > Запрос в этот локейшн попадет только если uri и правда начинается с > "/pma/$". > > -location /pma/$ { > +location /pma/ { > > Да и это ещё не всё. Даже исправить указанную мной проблему, то после того, как он в этот локейшн попадет, то произойдет внутренний редирект на /pma/index.php Файл у вас лежит тут: /usr/local/www/phpMyAdmin/index.php а location ~ \.php$ c fastcgi_pass передаст: fastcgi_param SCRIPT_FILENAME /usr/local/www$fastcgi_script_name; т.е. /usr/local/www/pma/index.php Сдается мне, rewrite ^/pma/(.+)$ /phpMyAdmin/$1 - это именно то, что вы вообще хотите. Попробуйте так: server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root /usr/local/www; index index.html index.htm index.php; } location ~ \.php$ { rewrite ^/pma/(.+)$ /phpMyAdmin/$1 break; fastcgi_pass unix:/tmp/php-fpm.sock; fastcgi_index index.php; fastcgi_param DOCUMENT_ROOT /usr/local/www; fastcgi_param SCRIPT_FILENAME /usr/local/www$fastcgi_script_name; include fastcgi_params; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/local/www/nginx-dist; } } -- Валентин Бартенев From ne на vbart.ru Wed Nov 30 16:46:35 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Wed, 30 Nov 2011 20:46:35 +0400 Subject: proxy_redirect & $vars In-Reply-To: <20101109114228.GA17847@tahiti.vinf.ru> References: <20101109114228.GA17847@tahiti.vinf.ru> Message-ID: <201111302046.35748.ne@vbart.ru> On Tuesday 09 November 2010 14:42:28 Alex L. Demidov wrote: [...] > > Возможно ли отпатчить сам nginx чтобы он понимал $vars в > первом параметре proxy_redirect и нет ли каких-то принципиальных > ограничений для этого? Готовый патч: http://www.nginx.org/patches/patch.proxy_redirect-vars_and_re.txt Учит Nginx понимать переменные в первом аргументе директивы proxy_redirect, а также добавляет поддержку регулярный выражение. Примеры использования: proxy_redirect http://example.com:$var/ http://$var.example.com/; proxy_redirect ~^http://[^/]+/(.*)$ /new_loc/$1; proxy_redirect ~*(.+)/index\.php$ $1/; Кто желает, можете протестировать. -- Валентин Бартенев / NGINX Team From roman.vasilyev на yousendit.com Wed Nov 30 17:15:49 2011 From: roman.vasilyev на yousendit.com (Roman Vasilyev) Date: Wed, 30 Nov 2011 09:15:49 -0800 Subject: =?UTF-8?B?UmU6IHJld3JpdGUg0LIg0YLQvtGH0L3QvtGB0YLQuCDQutCw0Log0YMg0LDQv9Cw?= =?UTF-8?B?0YfQsA==?= In-Reply-To: <7cb95bb663d8876a3a6c83dea2330816.NginxMailingListRussian@forum.nginx.org> References: <7cb95bb663d8876a3a6c83dea2330816.NginxMailingListRussian@forum.nginx.org> Message-ID: <4ED664C5.10800@yousendit.com> On 11/29/2011 03:58 PM, J3FF3 wrote: > День добрый. Делал когда-то давно такой > реврайт в апаче: > > RewriteRule ^some/img/banners/([0-9]{1,4})-([0-5]).png$ > some/file.php?id=$1&type=$2 [L] > > Если в адресной строке браузера ввести > чтото по типу site.com/some/img/banners/1-2.png - > происходит вызов скрипта (file.php) и > передача ему параметров. При этом, > адресная строка не меняется (также и > остается адрес site.com/some/img/banners/1-2.png, как > будто это действительно картинка). > В nginx делал подобное: > > rewite ^img.gif file.php permanent; > может быть вам нужен просто: rewite ^img.gif file.php last; > Но в отличии от апача происходит > перенаправление на ту страницу. То есть > сам адрес в адресной строке браузера > меняется на конечный. Конечно, не > столько важный нюанс, но интересует, > возможно ли повторить поведение апача > в подобном редиректе? > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,219323,219323#msg-219323 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From gmm на csdoc.com Wed Nov 30 17:40:35 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Wed, 30 Nov 2011 19:40:35 +0200 Subject: alias issue again In-Reply-To: <201111302031.52942.ne@vbart.ru> References: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> <201111302003.15448.ne@vbart.ru> <201111302031.52942.ne@vbart.ru> Message-ID: <4ED66A93.7090802@csdoc.com> On 30.11.2011 18:31, Валентин Бартенев wrote: >> -location /pma/$ { >> +location /pma/ { > Да и это ещё не всё. > > Даже исправить указанную мной проблему, то после того, как он в этот локейшн > попадет, то произойдет внутренний редирект на /pma/index.php > > Файл у вас лежит тут: /usr/local/www/phpMyAdmin/index.php > > а location ~ \.php$ c fastcgi_pass передаст: > > fastcgi_param SCRIPT_FILENAME /usr/local/www$fastcgi_script_name; > > т.е. /usr/local/www/pma/index.php > > Сдается мне, rewrite ^/pma/(.+)$ /phpMyAdmin/$1 - это именно то, что вы вообще > хотите. скорее всего ему не только /pma/ нужно будет на сервере, но и другие locations тоже. поэтому наверное - лучше изначально писать легко масштабируемую конфигурацию, используя вложенные locations, т.е. примерно так: server { ... location /pma/ { ... location ~ \.php$ { ... } } } тогда все другие locations на глобальном уровне конфига будут никак не связаны с location ~ \.php$ внутри location /pma/ и их можно будет конфигурировать полностью независимо друг от друга. > Попробуйте так: > > server { > listen 80; > server_name localhost; > > #charset koi8-r; > > #access_log logs/host.access.log main; > > location / { > root /usr/local/www; > index index.html index.htm index.php; > } > > location ~ \.php$ { > rewrite ^/pma/(.+)$ /phpMyAdmin/$1 break; > > fastcgi_pass unix:/tmp/php-fpm.sock; > fastcgi_index index.php; > fastcgi_param DOCUMENT_ROOT /usr/local/www; > fastcgi_param SCRIPT_FILENAME /usr/local/www$fastcgi_script_name; > include fastcgi_params; > } > > error_page 500 502 503 504 /50x.html; > location = /50x.html { > root /usr/local/www/nginx-dist; > } > } я представляю во что превратится конфиг, если надо будет добавить кроме /pma/ еще и другие какие-то location`ы и как это все потом поддерживать. вместо rewrite ^/pma/(.+)$ /phpMyAdmin/$1 break; в конфиге наверное лучше использовать alias все-таки. судя по документации именно для этого директива alias и придумана. -- Best regards, Gena From ne на vbart.ru Wed Nov 30 18:28:57 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Wed, 30 Nov 2011 22:28:57 +0400 Subject: alias issue again In-Reply-To: <4ED66A93.7090802@csdoc.com> References: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> <201111302031.52942.ne@vbart.ru> <4ED66A93.7090802@csdoc.com> Message-ID: <201111302228.57843.ne@vbart.ru> On Wednesday 30 November 2011 21:40:35 Gena Makhomed wrote: [...] > > я представляю во что превратится конфиг, если надо будет добавить кроме > /pma/ еще и другие какие-то location`ы и как это все потом поддерживать. > > вместо rewrite ^/pma/(.+)$ /phpMyAdmin/$1 break; > в конфиге наверное лучше использовать alias все-таки. > судя по документации именно для этого директива alias и придумана. Ну так помогите автору топика, напишите готовый конфиг. Вы же видите, что судя по всему, он сам не справится с подобной задачей. Иначе, всей этой длинной дискуссии на пустом месте - не было бы. -- Валентин Бартенев From gmm на csdoc.com Wed Nov 30 19:05:07 2011 From: gmm на csdoc.com (Gena Makhomed) Date: Wed, 30 Nov 2011 21:05:07 +0200 Subject: alias issue again In-Reply-To: <201111302228.57843.ne@vbart.ru> References: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> <201111302031.52942.ne@vbart.ru> <4ED66A93.7090802@csdoc.com> <201111302228.57843.ne@vbart.ru> Message-ID: <4ED67E63.1000408@csdoc.com> On 30.11.2011 20:28, Валентин Бартенев wrote: >> я представляю во что превратится конфиг, если надо будет добавить кроме >> /pma/ еще и другие какие-то location`ы и как это все потом поддерживать. >> вместо rewrite ^/pma/(.+)$ /phpMyAdmin/$1 break; >> в конфиге наверное лучше использовать alias все-таки. >> судя по документации именно для этого директива alias и придумана. > Ну так помогите автору топика, напишите готовый конфиг. Вы же видите, что судя по > всему, он сам не справится с подобной задачей. Иначе, всей этой длинной дискуссии > на пустом месте - не было бы. в исходном конфиге location / {} location ~ \.php$ {} location /pma/ {} location ~ ^/pma/(.*\.php)$ {} я не смог визуально найти причину, почему появляется ошибка 'directory index of "/usr/local/www/phpMyAdmin" is forbidden' и он не просил вместо него написать конфиг, он просил ответить на вопрос о причине этой ошибки - "Я не так использую alias-ы?" мои вопросы касались уже исключительно того варианта конфига, который получился в результате, и который имхо будет гораздо хуже для поддержки, чем его исходный конфиг с 4-мя разными locations. возможно вариант с вложенными location`ами будет все-таки еще лучше? - это по большей части был вопрос с моей стороны, чем утверждение. -- Best regards, Gena From ne на vbart.ru Wed Nov 30 19:36:08 2011 From: ne на vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Wed, 30 Nov 2011 23:36:08 +0400 Subject: alias issue again In-Reply-To: <4ED67E63.1000408@csdoc.com> References: <69f7fb1eab58c64bb8a74774a7ae91b2.NginxMailingListRussian@forum.nginx.org> <201111302228.57843.ne@vbart.ru> <4ED67E63.1000408@csdoc.com> Message-ID: <201111302336.08564.ne@vbart.ru> On Wednesday 30 November 2011 23:05:07 Gena Makhomed wrote: > > в исходном конфиге > > location / {} > location ~ \.php$ {} > location /pma/ {} > location ~ ^/pma/(.*\.php)$ {} > > я не смог визуально найти причину, почему появляется ошибка > 'directory index of "/usr/local/www/phpMyAdmin" is forbidden' > > и он не просил вместо него написать конфиг, он просил ответить > на вопрос о причине этой ошибки - "Я не так использую alias-ы?" Причина данной конкретной ошибки, как я сразу и написал: неправильный alias, без нужного в данном случае '/' на конце. И как следствие, не срабатывал index index.php; поэтому запрос обрабатывался как попытка обратиться к /usr/local/www/phpMyAdmin в текущем локэйшене. А листинг директорий у автора был запрещен, на что и указывала ошибка. > мои вопросы касались уже исключительно того варианта конфига, > который получился в результате, и который имхо будет гораздо хуже > для поддержки, чем его исходный конфиг с 4-мя разными locations. Ни я, ни вы - не знаем задач автора. И конечный вариант должен все же писаться ориентируясь на конкретные цели и самим автором, с пониманием что происходит и как работает. ИМХО Моя цель была помочь человеку, коли сам он с проблемой справиться не может и никто ему больше не написал рабочего варианта. Мой вариант конфига плох ровно настолько, насколько у меня было больное уставшее сознание после 9 часов работы и попыток понять из авторского конфига, чего же он хотел и почему же у него не работает. -- Валентин Бартенев