From kav at karagodov.name Mon Oct 1 06:01:26 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Mon, 1 Oct 2012 10:01:26 +0400 Subject: =?UTF-8?B?UmU6INCh0YLQsNGC0LjQutCwINC4IDQwNA==?= In-Reply-To: References: <9BFE61D9-5EBE-42A7-B84B-8E81F1267A77@sysoev.ru> Message-ID: <83FE8281-FB58-4837-9F5F-5E9F13CE88BB@karagodov.name> On 30.09.2012, at 14:52, Роман wrote: > потому что 404.php динамическая, а 404.html - кеш > и если что то в будущем изменится я смогу поменять все в конфиге > nginx, а не в скрипте, где указана ссылка на директорию а не на > конечный файл > А что там в директории скрипту уже будет все равно. с таким же успехом можно менять 404.html смысел в том, чтобы сообщения (в общем любые) об ашипках для своей отдачи требовали как можно меньше ресурсов. читай - были бы статикой > > 30 сентября 2012 г., 9:23 пользователь Igor Sysoev написал: >> On Sep 30, 2012, at 0:10 , Роман wrote: >> >>> Спасибо, теперь передумал схему и решил сделать так >>> нужно выдавать 404ю ссылаясь на директорию /404/ >>> и там уже можно разруливать что отдавать >>> но вот одно но, при такой схеме: >>> >>> error_page 404 /404/; >>> >>> location /404 { >>> internal; >>> root $userRoot; >>> index 404.html; >>> } >>> >>> файл 404.html будет искаться в реальной папке /404/, а хотелось бы его >>> выдавать из корня. >> >> Зачем такие сложности ? Чем не устраивает /404.html ? >> >> >> -- >> Igor Sysoev >> http://nginx.com/support.html >> >>> 28 сентября 2012 г., 21:01 пользователь Igor Sysoev написал: >>>> On Sep 28, 2012, at 20:24 , Роман wrote: >>>> >>>>> Раньше 404 отдавался скриптом с заголовком 404 >>>>> >>>>> Решил сделать статичную страницу, но при таком варианте в заголовке >>>>> отадется HTTP/1.1 200 OK, а нужно HTTP/1.1 404 Not Found >>>>> >>>>> Не пойму как отдать свой заголовк, пробовал в location вставить return >>>>> 404;, отдает 404 но не мою >>>>> >>>>> сейчас такие натсройки >>>>> >>>>> error_page 404 /404.html; >>>>> >>>>> location /404.html { >>>>> root $userRoot; >>>>> } >>>>> >>>>> Как отдать свой заголовок 404 в такой ситуации? >>>> >>>> Если запрашивать /404.html, то будет отдаваться 200. >>>> А при /несуществующая_страница - должно отдаваться 404. >>>> Вот так хитро всё устроено. >>>> >>>> А если написать >>>> >>>> location = /404.html { >>>> internal; >>>> root ... >>>> } >>>> >>>> то 404 будет всегда. >>>> >>>> >>>> -- >>>> Igor Sysoev >>>> http://nginx.com/support.html >>>> >>>> _______________________________________________ >>>> nginx-ru mailing list >>>> nginx-ru at nginx.org >>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru at nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From kolomaxes at gmail.com Mon Oct 1 16:05:40 2012 From: kolomaxes at gmail.com (mxs kolo) Date: Mon, 1 Oct 2012 20:05:40 +0400 Subject: =?UTF-8?B?UmU6IGltYWdlX2ZpbHRlcl9qcGVnX3F1YWxpdHkg0L3QtSDRgNCw0LHQvtGC0LA=?= =?UTF-8?B?0LXRgiDQsdC10Lcg0YPQutCw0LfQsNC90LjRjyBpbWFnZV9maWx0ZXIgcm90?= =?UTF-8?B?YXRlfHJlc2l6ZXxjcm9w?= Message-ID: Здравствуйте. > quality_only не очень подходящее название для опции image_filter. > > 1. crop | resize | test - глаголы, означающие действие, производимое над > изображением, а quality_only - нет. Есть еще одна проблема. Она в том, что фильтры resize, crop и rotate принимают параметры сразу в строке, а convert - нет. Ему нужны дополнительные указания. Если-бы можно было указать несколько image_filter и они-бы применялись в заданном порядке, то вся эта неопределенность в синтаксисе ушла. Например так: image_filter resize 100 200; image_filter convert quality=55 sharp=25 transparency=on; или mage_filter convert 55,25,on; image_filter rotate 90; Плохо только что к jpeg не применимо transparent перобразование, но этот момент можно отметить в документации. Что вы думаете про такой вариант конфига ? Но это явно будет патч больше что я прислал. Я пока не смотрел как сделать цепочку таких фильтров. > Я предлагаю поменять название на более общее, например, "convert" будет > неплохо. > На будущее, просьба делать diff с опцией -p, так он будет лучше читаться. Да, хорошо. b.r. Maxim Kozin From nginx-forum at nginx.us Tue Oct 2 10:25:05 2012 From: nginx-forum at nginx.us (pauc) Date: Tue, 02 Oct 2012 06:25:05 -0400 Subject: =?UTF-8?B?UmU6INCS0L7Qv9GA0L7RgSDQv9C+IG5naW54IHByb3h5ICsgcGVybA==?= In-Reply-To: <531e1b8688cbd2f93d2f9aac12f9b3b5.NginxMailingListRussian@forum.nginx.org> References: <20120926133719.GC40452@mdounin.ru> <531e1b8688cbd2f93d2f9aac12f9b3b5.NginxMailingListRussian@forum.nginx.org> Message-ID: <774cfb1de1786f9d7640f100569eab20.NginxMailingListRussian@forum.nginx.org> Я так делаю: set $fake $request_uri; # без этого в перле не будет доступна переменная $request_uri location ^~ /int_php/ { internal; proxy_pass http://127.0.0.1:8080/; } location / { set $backend /int_php; perl module::do; } в perl - $r->internal_redirect($r->variable("backend").$r->variable("request_uri")); P.S.: На именованные location internal_redirect из не работает. Что печалит =(. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,32458,231308#msg-231308 From mdounin at mdounin.ru Tue Oct 2 13:58:54 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 2 Oct 2012 17:58:54 +0400 Subject: nginx-1.3.7 Message-ID: <20121002135854.GG40452@mdounin.ru> Изменения в nginx 1.3.7 02.10.2012 *) Добавление: поддержка OCSP stapling. Спасибо Comodo, DigiCert и GlobalSign за спонсирование разработки. *) Добавление: директива ssl_trusted_certificate. *) Добавление: теперь resolver случайным образом меняет порядок возвращаемых закэшированных адресов. Спасибо Антону Жулину. *) Исправление: совместимость с OpenSSL 0.9.7. -- Maxim Dounin http://nginx.com/support.html From nginx-forum at nginx.us Tue Oct 2 15:09:47 2012 From: nginx-forum at nginx.us (abasive) Date: Tue, 02 Oct 2012 11:09:47 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQutC+0Lkg0YTQvtGA0LzQsNGCINCy0LjQtNC10L4g0LjRgdC/0L4=?= =?UTF-8?B?0LvRjNC30L7QstCw0YLRjCDQtNC70Y8g0L7RgtC00LDRh9C4INGBIG5naW54?= In-Reply-To: <-3680248427246475464@unknownmsgid> References: <-3680248427246475464@unknownmsgid> Message-ID: <2ea13b8ddfb16dba393c8c0bdfa7e076.NginxMailingListRussian@forum.nginx.org> А какой формат создает больше нагрузки на сервере? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231166,231328#msg-231328 From a.vasilishin at kpi.ua Tue Oct 2 16:43:23 2012 From: a.vasilishin at kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Tue, 02 Oct 2012 19:43:23 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQutC+0Lkg0YTQvtGA0LzQsNGCINCy0LjQtNC10L4g0LjRgdC/0L4=?= =?UTF-8?B?0LvRjNC30L7QstCw0YLRjCDQtNC70Y8g0L7RgtC00LDRh9C4INGBIG5naW54?= In-Reply-To: <2ea13b8ddfb16dba393c8c0bdfa7e076.NginxMailingListRussian@forum.nginx.org> References: <-3680248427246475464@unknownmsgid> <2ea13b8ddfb16dba393c8c0bdfa7e076.NginxMailingListRussian@forum.nginx.org> Message-ID: <506B19AB.8090303@kpi.ua> 02.10.2012 18:09, abasive пишет: > А какой формат создает больше нагрузки на сервере? mp4 -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From mdounin at mdounin.ru Tue Oct 2 16:47:08 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 2 Oct 2012 20:47:08 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQutC+0Lkg0YTQvtGA0LzQsNGCINCy0LjQtNC10L4g0LjRgdC/0L4=?= =?UTF-8?B?0LvRjNC30L7QstCw0YLRjCDQtNC70Y8g0L7RgtC00LDRh9C4INGBIG5naW54?= In-Reply-To: <2ea13b8ddfb16dba393c8c0bdfa7e076.NginxMailingListRussian@forum.nginx.org> References: <-3680248427246475464@unknownmsgid> <2ea13b8ddfb16dba393c8c0bdfa7e076.NginxMailingListRussian@forum.nginx.org> Message-ID: <20121002164708.GN40452@mdounin.ru> Hello! On Tue, Oct 02, 2012 at 11:09:47AM -0400, abasive wrote: > А какой формат создает больше нагрузки на сервере? К сожалению - тот самый, который "будет проигрываться везде", т.е. mp4. При псевдострименге mp4 - приходится читать и разбирать собственно mp4 файл, и формировать в качестве ответа новый mp4 файл, содержащий только данные начиная с заданного момента времени. Псевдостриминг же flv с точки зрения сервера - гораздо лучше, там нужно просто отдать файл начиная с заданного места (+ добавить фиксированный заголовок из нескольких байт, но это детали). Но учитывая текущую ситуацию, а равно вектор развития - flv как единственный формат сейчас малопригоден. -- Maxim Dounin http://nginx.com/support.html From nginx-forum at nginx.us Wed Oct 3 00:47:05 2012 From: nginx-forum at nginx.us (passani) Date: Tue, 02 Oct 2012 20:47:05 -0400 Subject: =?UTF-8?B?UmU6INCa0Y3RiNC40YDQvtCy0LDQvdC40LUg0LzQvtCx0LjQu9GM0L3QvtC5INCy?= =?UTF-8?B?0LXRgNGB0LjQuCDRgdCw0LnRgtCw?= In-Reply-To: References: Message-ID: <68681e247c191494e8cb82e32693a7cf.NginxMailingListRussian@forum.nginx.org> Sdrastvuitje Drusja K sajelenyou moi ruski ni ochin. Isvinitje. Lushe ia anglisky gavaryou. We released an NGINX module today in beta format. More info here: http://scientiamobile.com/blog/post/view/id/25/title/HTTP-and-Mobile%3A-The-Missing-Header- Luca Passani WURFL Creator and CTO @ScientiaMobile Posted at Nginx Forum: http://forum.nginx.org/read.php?21,227561,231344#msg-231344 From nginx-forum at nginx.us Wed Oct 3 10:09:27 2012 From: nginx-forum at nginx.us (Dmitriy Loskutov) Date: Wed, 03 Oct 2012 06:09:27 -0400 Subject: =?UTF-8?B?SWYtTW9kaWZpZWQtU2luY2Ug0LTQu9GPINGB0YLQsNGC0LjRh9C10YHQutC+0LM=?= =?UTF-8?B?0L4gaHRtbA==?= Message-ID: Генерирую фоновым процессом (из cron, НЕ из php-fpm) статический html. Есть также статический JS, обычный, созданный в vim. Для js If-Modified-Since работает, для статического html - нет. Вот конфиг (уже слегка замученный в целях отладки): #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } 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 on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 78.24.217.105:80; server_name poisk-znakomstv.ru; root /var/www/lpsearch/site; charset utf-8; if_modified_since exact; location ~ \.php$ { deny all; } location /maintenance/ { deny all; } location /xml/ { deny all; } location ~ ^\.git { deny all; } location ~ ^/$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/index.php; fastcgi_pass 127.0.0.1:9000; } location / { try_files $uri $uri/ @proxy; } location /users/ { root /var/www/lpsearch/site; } location @proxy { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/index.php; fastcgi_pass 127.0.0.1:9000; } include deny_htaccess.conf; } } Вот реальные примеры выдачи из telnet: GET /userlist/page1.html HTTP/1.0 Host: poisk-znakomstv.ru If-Modified-Since: Wed, 03 Oct 2012 09:51:30 GMT HTTP/1.1 200 OK Server: nginx/1.2.3 Date: Wed, 03 Oct 2012 09:57:38 GMT Content-Type: text/html; charset=utf-8 Connection: close X-Powered-By: PHP/5.4.5 Но при этом: GET /client/main.js HTTP/1.0 Host: poisk-znakomstv.ru If-Modified-Since: Wed, 03 Oct 2012 07:51:36 GMT HTTP/1.1 200 OK Server: nginx/1.2.3 Date: Wed, 03 Oct 2012 09:58:05 GMT Content-Type: application/x-javascript; charset=utf-8 Content-Length: 12096 Last-Modified: Wed, 03 Oct 2012 06:51:36 GMT Connection: close Accept-Ranges: bytes Что у меня в правилах неправильно? Как сделать чтобы не было перенаправления статического html на php-fpm ? fastcgi_params и deny_htaccess.conf не содержат ничего касательно перенаправления html на php-fpm. freebsd, nginx -v nginx version: nginx/1.2.3 В access.log только строка [03/Oct/2012:14:03:04 +0400] "GET /userlist/page1.html HTTP/1.0" 200 46134 "-" "-" "-" Ошибки в error.log нет. Статические файлы есть: ls -l /var/www/lpsearch/site/users/page1.html -rw-r--r-- 1 www www 46135 Jan 1 2012 /var/www/lpsearch/site/users/page1.html ls -l /var/www/lpsearch/site/client/main.js -rw-r--r-- 1 www www 12096 Oct 3 10:51 /var/www/lpsearch/site/client/main.js Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231349,231349#msg-231349 From nginx-forum at nginx.us Wed Oct 3 10:13:09 2012 From: nginx-forum at nginx.us (Dmitriy Loskutov) Date: Wed, 03 Oct 2012 06:13:09 -0400 Subject: =?UTF-8?B?UmU6IElmLU1vZGlmaWVkLVNpbmNlINC00LvRjyDRgdGC0LDRgtC40YfQtdGB0Lo=?= =?UTF-8?B?0L7Qs9C+IGh0bWw=?= In-Reply-To: References: Message-ID: <5398fcd636661291badfe2fb75280c1e.NginxMailingListRussian@forum.nginx.org> Упс.. сам тормознул, в GET был неправильный путь. Поправил, все работает: GET /users/page1.html HTTP/1.0 Host: poisk-znakomstv.ru If-Modified-Since: Wed, 03 Oct 2012 09:51:30 GMT HTTP/1.1 200 OK Server: nginx/1.2.3 Date: Wed, 03 Oct 2012 10:11:01 GMT Content-Type: text/html; charset=utf-8 Content-Length: 46135 Last-Modified: Sat, 31 Dec 2011 20:00:00 GMT Connection: close Accept-Ranges: bytes Тему можно удалить. Извините. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231349,231351#msg-231351 From nginx-forum at nginx.us Wed Oct 3 22:22:26 2012 From: nginx-forum at nginx.us (cat) Date: Wed, 03 Oct 2012 18:22:26 -0400 Subject: =?UTF-8?B?cHJveHkgcmVhZCB0aW1lb3V0INC/0L4gR0VUINC/0LDRgNCw0LzQtdGC0YDRgw==?= Message-ID: Приветствую. Хочу сделать proxy_read_timeout отличный от дефолтного для избранных пользователей, у которых начинаются проблемы с клиентом если вдруг бэкенды думают дольше обычного. Пользователь определяется GET параметром. Вот частично рабочий конфиг: upstream serversInt { server 127.0.0.1:80; } map $arg_user $timeouts { default normalTimeout; vasya lowTimeout; } server { listen 127.0.0.1:8080; error_page 504 =200 @timeoutPage; error_page 598 = @$timeouts; location / { error_page 504 =200 @timeoutPage; error_page 598 = @$timeouts; return 598; } location @lowTimeout { error_page 504 =200 @timeoutPage; proxy_read_timeout 1s; proxy_set_header Host $host; proxy_pass http://serversInt; } location @normalTimeout { error_page 504 =200 @timeoutPage; proxy_read_timeout 5s; proxy_set_header Host $host; proxy_pass http://serversInt; } location @timeoutPage { return 200 ""; } } Работает всё кроме обработки ошибки 504 при срабатывании таймаута бэкенда. Появляется страница с текстом '504 Gateway Time-out' и статусом 504 вместо ожидаемой строки со статусом 200. Хотя в access.log почему-то пишется статус 200. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231365,231365#msg-231365 From igor.vavrjin at gmail.com Thu Oct 4 03:24:32 2012 From: igor.vavrjin at gmail.com (Igor Vavrjin) Date: Thu, 04 Oct 2012 10:24:32 +0700 Subject: =?UTF-8?B?0JrQsNC6INGB0YfQuNGC0LDRgtGMINC60L7Qu9C40YfQtdGB0YLQstC+INC/0L4=?= =?UTF-8?B?0L/QsNC00LDQvdC40Lkg0LIg0LrRjdGI?= Message-ID: <506D0170.1050904@gmail.com> Можно считать анализируя логи (отсутствие значения $upstream_addr), но нехочется, было бы гораздо удобнее включить эту информацию в stub_status (опционально) или может имеется какой другой модуль с расширенной статистикой? Или может кто подскажет как еще можно считать не прибегая к анализу логов? From postmaster at softsearch.ru Thu Oct 4 08:27:18 2012 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Thu, 4 Oct 2012 12:27:18 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRgdGH0LjRgtCw0YLRjCDQutC+0LvQuNGH0LXRgdGC0LLQviA=?= =?UTF-8?B?0L/QvtC/0LDQtNCw0L3QuNC5INCyINC60Y3RiA==?= In-Reply-To: <506D0170.1050904@gmail.com> References: <506D0170.1050904@gmail.com> Message-ID: <28230699.20121004122718@softsearch.ru> Здравствуйте, Igor. > Можно считать анализируя логи (отсутствие значения $upstream_addr), но > нехочется, было бы гораздо удобнее включить эту информацию в stub_status > (опционально) или может имеется какой другой модуль с расширенной > статистикой? > Или может кто подскажет как еще можно считать не прибегая к анализу логов? у catap-а был модуль расширенного статуса вроде. -- С уважением, Михаил mailto:postmaster at softsearch.ru From panfilov at sports.ru Thu Oct 4 09:16:20 2012 From: panfilov at sports.ru (=?KOI8-R?B?7cnIwcnMIPDBzsbJzM/X?=) Date: Thu, 4 Oct 2012 13:16:20 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRgdGH0LjRgtCw0YLRjCDQutC+0LvQuNGH0LXRgdGC0LLQviA=?= =?UTF-8?B?0L/QvtC/0LDQtNCw0L3QuNC5INCyINC60Y3RiA==?= In-Reply-To: <28230699.20121004122718@softsearch.ru> References: <506D0170.1050904@gmail.com> <28230699.20121004122718@softsearch.ru> Message-ID: А была бы хорошая фича. Текущей статистики nginx_status явно маловато :(, а логи парсить не всегда удобно (особенно если они гигантские). 4 октября 2012 г., 12:27 пользователь Михаил Монашёв < postmaster at softsearch.ru> написал: > Здравствуйте, Igor. > > > Можно считать анализируя логи (отсутствие значения $upstream_addr), но > > нехочется, было бы гораздо удобнее включить эту информацию в stub_status > > (опционально) или может имеется какой другой модуль с расширенной > > статистикой? > > Или может кто подскажет как еще можно считать не прибегая к анализу > логов? > > у catap-а был модуль расширенного статуса вроде. > > -- > С уважением, > Михаил mailto:postmaster at softsearch.ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Панфилов Михаил -------------- next part -------------- An HTML attachment was scrubbed... URL: From postmaster at softsearch.ru Thu Oct 4 09:21:58 2012 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Thu, 4 Oct 2012 13:21:58 +0400 Subject: =?UTF-8?B?UmVbMl06INCa0LDQuiDRgdGH0LjRgtCw0YLRjCDQutC+0LvQuNGH0LXRgdGC0LI=?= =?UTF-8?B?0L4g0L/QvtC/0LDQtNCw0L3QuNC5INCyINC60Y3RiA==?= In-Reply-To: References: <506D0170.1050904@gmail.com> <28230699.20121004122718@softsearch.ru> Message-ID: <1722556914.20121004132158@softsearch.ru> Здравствуйте, Михаил. > А была бы хорошая фича. Текущей статистики nginx_status явно > маловато :(, а логи парсить не всегда удобно (особенно если они > гигантские). А если они гиганские, то в чём проблема? Их же надо всего один раз прочесть с диска и всё. -- С уважением, Михаил mailto:postmaster at softsearch.ru From panfilov at sports.ru Thu Oct 4 09:33:45 2012 From: panfilov at sports.ru (=?KOI8-R?B?7cnIwcnMIPDBzsbJzM/X?=) Date: Thu, 4 Oct 2012 13:33:45 +0400 Subject: =?UTF-8?B?UmU6IFJlWzJdOiDQmtCw0Log0YHRh9C40YLQsNGC0Ywg0LrQvtC70LjRh9C10YE=?= =?UTF-8?B?0YLQstC+INC/0L7Qv9Cw0LTQsNC90LjQuSDQsiDQutGN0Yg=?= In-Reply-To: <1722556914.20121004132158@softsearch.ru> References: <506D0170.1050904@gmail.com> <28230699.20121004122718@softsearch.ru> <1722556914.20121004132158@softsearch.ru> Message-ID: А вот если строить график процентного попадания в кэш (полезная штука бывает), то парсить приходиться постоянно. У меня бывают пики с 8к запросами в секунду на сервер. Парсить такое в реальном времени я не решаюсь. Парсить за прошлый день - вариант, но не удобный. Вот если можно было снимать такую статистику через nginx_status было бы удобно :)) 4 октября 2012 г., 13:21 пользователь Михаил Монашёв < postmaster at softsearch.ru> написал: > Здравствуйте, Михаил. > > > А была бы хорошая фича. Текущей статистики nginx_status явно > > маловато :(, а логи парсить не всегда удобно (особенно если они > > гигантские). > > А если они гиганские, то в чём проблема? Их же надо всего один раз > прочесть с диска и всё. > > -- > С уважением, > Михаил mailto:postmaster at softsearch.ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Панфилов Михаил Старший системный администратор www.sports.ru + 7 903 578 4067 -------------- next part -------------- An HTML attachment was scrubbed... URL: From mdounin at mdounin.ru Thu Oct 4 09:36:25 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Thu, 4 Oct 2012 13:36:25 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRgdGH0LjRgtCw0YLRjCDQutC+0LvQuNGH0LXRgdGC0LLQviA=?= =?UTF-8?B?0L/QvtC/0LDQtNCw0L3QuNC5INCyINC60Y3RiA==?= In-Reply-To: <506D0170.1050904@gmail.com> References: <506D0170.1050904@gmail.com> Message-ID: <20121004093624.GZ40452@mdounin.ru> Hello! On Thu, Oct 04, 2012 at 10:24:32AM +0700, Igor Vavrjin wrote: > Можно считать анализируя логи (отсутствие значения $upstream_addr), JFYI: есть специальная переменная $upstream_cache_status, в которую пишутся подробности работы с кешом (MISS, BYPASS, EXPIRED, STALE, UPDATING, HIT). > но нехочется, было бы гораздо удобнее включить эту информацию в > stub_status (опционально) или может имеется какой другой модуль с > расширенной статистикой? > Или может кто подскажет как еще можно считать не прибегая к анализу логов? В планах сделать возможность сбора статистики по произвольным переменным, c последующим её отображением. -- Maxim Dounin http://nginx.com/support.html From panfilov at sports.ru Thu Oct 4 09:39:41 2012 From: panfilov at sports.ru (=?KOI8-R?B?7cnIwcnMIPDBzsbJzM/X?=) Date: Thu, 4 Oct 2012 13:39:41 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRgdGH0LjRgtCw0YLRjCDQutC+0LvQuNGH0LXRgdGC0LLQviA=?= =?UTF-8?B?0L/QvtC/0LDQtNCw0L3QuNC5INCyINC60Y3RiA==?= In-Reply-To: <20121004093624.GZ40452@mdounin.ru> References: <506D0170.1050904@gmail.com> <20121004093624.GZ40452@mdounin.ru> Message-ID: Это было бы замечательно :)) 4 октября 2012 г., 13:36 пользователь Maxim Dounin написал: > Hello! > > On Thu, Oct 04, 2012 at 10:24:32AM +0700, Igor Vavrjin wrote: > > > Можно считать анализируя логи (отсутствие значения $upstream_addr), > > JFYI: есть специальная переменная $upstream_cache_status, в которую > пишутся подробности работы с кешом (MISS, BYPASS, EXPIRED, STALE, > UPDATING, HIT). > > > но нехочется, было бы гораздо удобнее включить эту информацию в > > stub_status (опционально) или может имеется какой другой модуль с > > расширенной статистикой? > > Или может кто подскажет как еще можно считать не прибегая к анализу > логов? > > В планах сделать возможность сбора статистики по произвольным > переменным, c последующим её отображением. > > -- > Maxim Dounin > http://nginx.com/support.html > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Панфилов Михаил -------------- next part -------------- An HTML attachment was scrubbed... URL: From postmaster at softsearch.ru Thu Oct 4 11:47:38 2012 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Thu, 4 Oct 2012 15:47:38 +0400 Subject: =?UTF-8?B?UmVbNF06INCa0LDQuiDRgdGH0LjRgtCw0YLRjCDQutC+0LvQuNGH0LXRgdGC0LI=?= =?UTF-8?B?0L4g0L/QvtC/0LDQtNCw0L3QuNC5INCyINC60Y3RiA==?= In-Reply-To: References: <506D0170.1050904@gmail.com> <28230699.20121004122718@softsearch.ru> <1722556914.20121004132158@softsearch.ru> Message-ID: <682265685.20121004154738@softsearch.ru> Здравствуйте, Михаил. > А вот если строить график процентного попадания в кэш (полезная > штука бывает), то парсить приходиться постоянно. У меня бывают пики > с 8к запросами в секунду на сервер. Парсить такое в реальном времени > я не решаюсь. Парсить за прошлый день - вариант, но не удобный. Вот > если можно было снимать такую статистику через nginx_status было бы > удобно :)) Можно для подобного писать отдельный лог в который будет писаться только $upstream_cache_status. Также можно настроить logrotate так, чтобы он часто ротировал этот лог и после ротации дёргал Ваш скрипт, который бы обрабатывал отротированный лог. 8000 запросов в секунду с $upstream_cache_status в логе - это в худшем случаем 100-400 килобайт лога в минуту. Но даже если бы лог был огромным, то для более-менее точной картины можно через head или tail брать только 10000 строчек лога. Так Вы получите статистику кэширования с отставанием от реальности не более, чем в одну минуту (если logrotate запускать по cron-у каждую минуту) и создающую минимальную нагрузку на систему. -- С уважением, Михаил mailto:postmaster at softsearch.ru From panfilov at sports.ru Thu Oct 4 12:10:46 2012 From: panfilov at sports.ru (=?KOI8-R?B?7cnIwcnMIPDBzsbJzM/X?=) Date: Thu, 4 Oct 2012 16:10:46 +0400 Subject: =?UTF-8?B?UmU6IFJlWzRdOiDQmtCw0Log0YHRh9C40YLQsNGC0Ywg0LrQvtC70LjRh9C10YE=?= =?UTF-8?B?0YLQstC+INC/0L7Qv9Cw0LTQsNC90LjQuSDQsiDQutGN0Yg=?= In-Reply-To: <682265685.20121004154738@softsearch.ru> References: <506D0170.1050904@gmail.com> <28230699.20121004122718@softsearch.ru> <1722556914.20121004132158@softsearch.ru> <682265685.20121004154738@softsearch.ru> Message-ID: Здравствуйте Михаил, Конкретно у нас не так всё просто: Во-первых там ssi, и лога получается больше, во-вторых в эти самые 8к запросов/сек свободных ресурсов становиться меньше. Ну в третьих когда очень нужно так и делаем, но это всё равно не удобно. Касаемо статистики хотелось бы ещё много чего, хотя бы статистику по каждому location подробную :) с счётчиками и прочее. Типа включения debug по локейшену. 4 октября 2012 г., 15:47 пользователь Михаил Монашёв < postmaster at softsearch.ru> написал: > Здравствуйте, Михаил. > > > А вот если строить график процентного попадания в кэш (полезная > > штука бывает), то парсить приходиться постоянно. У меня бывают пики > > с 8к запросами в секунду на сервер. Парсить такое в реальном времени > > я не решаюсь. Парсить за прошлый день - вариант, но не удобный. Вот > > если можно было снимать такую статистику через nginx_status было бы > > удобно :)) > > Можно для подобного писать отдельный лог в который будет писаться > только $upstream_cache_status. > > Также можно настроить logrotate так, чтобы он часто ротировал этот лог > и после ротации дёргал Ваш скрипт, который бы обрабатывал > отротированный лог. 8000 запросов в секунду с $upstream_cache_status в > логе - это в худшем случаем 100-400 килобайт лога в минуту. Но даже > если бы лог был огромным, то для более-менее точной картины можно > через head или tail брать только 10000 строчек лога. Так Вы получите > статистику кэширования с отставанием от реальности не более, чем в > одну минуту (если logrotate запускать по cron-у каждую минуту) и > создающую минимальную нагрузку на систему. > > -- > С уважением, > Михаил mailto:postmaster at softsearch.ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Панфилов Михаил -------------- next part -------------- An HTML attachment was scrubbed... URL: From neo at neo.kiev.ua Thu Oct 4 18:37:43 2012 From: neo at neo.kiev.ua (=?KOI8-R?B?4NLJyiDnz87ewdLP1w==?=) Date: Thu, 4 Oct 2012 21:37:43 +0300 Subject: nginx/1.2.4 Message-ID: Здравствуйте. Поставил из "deb http://packages.dotdeb.org squeeze all" subj и в итоге при первом же старте internal server error Оказалось причиной тому указанный неверный путь в дефолтном конфиге, который приводил потом к циклу по try_files что ли.. был root /usr/share/nginx/www; а надо было root /usr/share/nginx/html; (именно такая папка создалась) -- NEO83-RIPE -------------- next part -------------- An HTML attachment was scrubbed... URL: From ne at vbart.ru Thu Oct 4 19:00:29 2012 From: ne at vbart.ru (=?utf-8?b?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Thu, 4 Oct 2012 23:00:29 +0400 Subject: nginx/1.2.4 In-Reply-To: References: Message-ID: <201210042300.29897.ne@vbart.ru> On Thursday 04 October 2012 22:37:43 Юрий Гончаров wrote: > Здравствуйте. > Поставил из "deb http://packages.dotdeb.org squeeze all" subj > и в итоге при первом же старте internal server error > Оказалось причиной тому указанный неверный путь в дефолтном конфиге, > который приводил потом к циклу по try_files что ли.. > > был root /usr/share/nginx/www; > а надо было root /usr/share/nginx/html; (именно такая папка создалась) > Об этом имеет смысл писать на dotdeb.org, а не сюда. -- Валентин Бартенев From maksim at woyager.ru Thu Oct 4 19:50:10 2012 From: maksim at woyager.ru (Maksim Anfilatov) Date: Thu, 4 Oct 2012 23:50:10 +0400 Subject: mp4 & ranges Message-ID: Добрый день. Просматривал код модуля для mp4 и возник вопрос. Правильно ли я понял, что модуль mp4 читает весь файл в случаях, когда не указаны start/end, а обработка ranges происходит далее в ngx_http_range_filter_module? С уважением, Максим Анфилатов. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mdounin at mdounin.ru Fri Oct 5 10:29:24 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 5 Oct 2012 14:29:24 +0400 Subject: mp4 & ranges In-Reply-To: References: Message-ID: <20121005102923.GL40452@mdounin.ru> Hello! On Thu, Oct 04, 2012 at 11:50:10PM +0400, Maksim Anfilatov wrote: > Просматривал код модуля для mp4 и возник вопрос. > Правильно ли я понял, что модуль mp4 читает весь файл в случаях, когда не > указаны start/end, Модуль mp4 не читает весь файл - он читает только метаданные (а если start не указан - то вообще не читает), остальное при необходимости (если не используется sendfile) читает copy-фильтр. > а обработка ranges происходит далее в ngx_http_range_filter_module? Да, обработка range-запросов происходит в range-фильтре. На всякий случай отвечаю заодно и на не заданный вопрос: range-фильтр работает раньше copy-фильтра (порядок удобнее всего смотреть в комментарии "the filter order is important" в auto/modules), соответственно ненужные диапазоны не читаются. -- Maxim Dounin http://nginx.com/support.html From nginx-forum at nginx.us Fri Oct 5 11:29:24 2012 From: nginx-forum at nginx.us (kron) Date: Fri, 05 Oct 2012 07:29:24 -0400 Subject: =?UTF-8?B?UmU6IHByb3h5IHJlYWQgdGltZW91dCDQv9C+IEdFVCDQv9Cw0YDQsNC80LXRgtGA?= =?UTF-8?B?0YM=?= In-Reply-To: References: Message-ID: <2e57603407d2f6f1ab3783da3ab341db.NginxMailingListRussian@forum.nginx.org> посмотрите в сторону параметра proxy_intercept_errors: http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_intercept_errors Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231365,231418#msg-231418 From nginx-forum at nginx.us Fri Oct 5 11:41:20 2012 From: nginx-forum at nginx.us (varsy) Date: Fri, 05 Oct 2012 07:41:20 -0400 Subject: =?UTF-8?B?0JTQuNC90LDQvNC40YfQtdGB0LrQuNC1INCy0LjRgNGC0YPQsNC70YzQvdGL0LUg?= =?UTF-8?B?0YXQvtGB0YLRiyDRgSBIVFRQUw==?= Message-ID: Всем привет! У меня встала задача сделать динамическое проксирование запросов типа *.xxx.ru на различные бекенды с различными портами, данные по которым лежат в текстовом файле и могут редактироваться, и релоад nginx'а не желателен. Т.е. на каждый запрос нжинкс читает файл, выбирает необходимые данные и заполняет location так, как мне необходимо. Я пытаюсь реализовать это средствами Embedded Perl'а. Для 80 порта у меня все получилось, а вот для https засада. Можно ли как-нибудь динамически подсовывать сертификаты? Может я вообще неправильно это делаю, перл для этого не подходит(я использую только perl_set, хендлер я не делаю)? Посоветуйте, пожалуйста. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231420,231420#msg-231420 From onokonem at gmail.com Fri Oct 5 11:49:10 2012 From: onokonem at gmail.com (Daniel Podolsky) Date: Fri, 5 Oct 2012 15:49:10 +0400 Subject: =?UTF-8?B?UmU6INCU0LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQstC40YDRgtGD0LDQu9GM0L0=?= =?UTF-8?B?0YvQtSDRhdC+0YHRgtGLINGBIEhUVFBT?= In-Reply-To: References: Message-ID: > Можно ли как-нибудь динамически подсовывать сертификаты? Миллион раз обсуждалось. К тому времени, как можно что-то делать динамически, соединение уже установлено, и, соответственно, сертификат уже давно выбран и "подсунут". From noonesshadow at gmail.com Fri Oct 5 12:07:46 2012 From: noonesshadow at gmail.com (=?UTF-8?B?0JDQvdGC0L7QvSDQmtC+0LvQtdGB0L3QuNC6?=) Date: Fri, 5 Oct 2012 15:07:46 +0300 Subject: =?UTF-8?B?UmU6INCU0LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQstC40YDRgtGD0LDQu9GM0L0=?= =?UTF-8?B?0YvQtSDRhdC+0YHRgtGLINGBIEhUVFBT?= In-Reply-To: References: Message-ID: Есть следующий стандарт http://en.wikipedia.org/wiki/Server_Name_Indication но он не работает в WinXP 5 октября 2012 г., 14:49 пользователь Daniel Podolsky написал: > > Можно ли как-нибудь динамически подсовывать сертификаты? > Миллион раз обсуждалось. К тому времени, как можно что-то делать > динамически, соединение уже установлено, и, соответственно, сертификат > уже давно выбран и "подсунут". > _________________ > http://en.wikipedia.org/wiki/Server_Name_Indication______________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum at nginx.us Fri Oct 5 12:19:18 2012 From: nginx-forum at nginx.us (varsy) Date: Fri, 05 Oct 2012 08:19:18 -0400 Subject: =?UTF-8?B?UmU6INCU0LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQstC40YDRgtGD0LDQu9GM0L0=?= =?UTF-8?B?0YvQtSDRhdC+0YHRgtGLINGBIEhUVFBT?= In-Reply-To: References: Message-ID: <98f1a27b2cf7267ada7dace7c8d39180.NginxMailingListRussian@forum.nginx.org> Я наверно неправильно все объяснил. Сейчас у меня порядка 6000 конфиг файлов, которые соответствуют хостам типа abc.xxx.ru, def.xxx.ru и т.д. Каждый конфиг файл описывает сервер, прокси_пасс к нужному бекенду. В некоторых случаях используются сертификаты. В этой схеме я использую как раз SNI для HTTPS-соединений к этим хостам. Все конфиги генирируются автоматически скриптами по запросу. Порядка нескольких регистраций в минуту, соответственно, каждый раз нужно сделать reload нжинксу, чтобы он подхватил новые конфиги. Хочется уйти от этой схемы, потому что, рано или поздно, упремся в предел количества открытых файлов. Таким образом я в одном конфиге nginx.conf хочу сделать перловый скрипт, который будет динамически переводить запрос к нужному бекенду. Если с http проблем нет, то вот с https - вопрос. Могу ли я сделать так, чтобы нжинкс слушал 443 порт, а сертификатом обменивался после некой логики, запрограммированной на перле? Спасибо. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231420,231423#msg-231423 From mdounin at mdounin.ru Fri Oct 5 12:45:06 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 5 Oct 2012 16:45:06 +0400 Subject: =?UTF-8?B?UmU6IHByb3h5IHJlYWQgdGltZW91dCDQv9C+IEdFVCDQv9Cw0YDQsNC80LXRgtGA?= =?UTF-8?B?0YM=?= In-Reply-To: References: Message-ID: <20121005124505.GO40452@mdounin.ru> Hello! On Wed, Oct 03, 2012 at 06:22:26PM -0400, cat wrote: > Приветствую. Хочу сделать proxy_read_timeout отличный от дефолтного для > избранных пользователей, у которых начинаются проблемы с клиентом если вдруг > бэкенды думают дольше обычного. Пользователь определяется GET параметром. > Вот частично рабочий конфиг: > > upstream serversInt { > server 127.0.0.1:80; > } > > map $arg_user $timeouts { > default normalTimeout; > vasya lowTimeout; > } > > server { > > listen 127.0.0.1:8080; > error_page 504 =200 @timeoutPage; > > error_page 598 = @$timeouts; > location / > { > error_page 504 =200 @timeoutPage; > error_page 598 = @$timeouts; > return 598; Вот тут надо добавить: recursive_error_pages on; Подробности см. ниже. > } > > location @lowTimeout > { > error_page 504 =200 @timeoutPage; > proxy_read_timeout 1s; > proxy_set_header Host $host; > proxy_pass http://serversInt; > } > > location @normalTimeout > { > error_page 504 =200 @timeoutPage; > proxy_read_timeout 5s; > proxy_set_header Host $host; > proxy_pass http://serversInt; > } > > location @timeoutPage { return 200 ""; } > } > > Работает всё кроме обработки ошибки 504 при срабатывании таймаута бэкенда. > Появляется страница с текстом '504 Gateway Time-out' и статусом 504 вместо > ожидаемой строки со статусом 200. Хотя в access.log почему-то > пишется статус 200. После перенаправления по error_page - дополнительные перенаправления по error_page запрещаются. Разрешить несколько перенаправлений с помощью директивы error_page можно с помощью директивы recursive_error_pages. http://nginx.org/r/recursive_error_pages/ru -- Maxim Dounin http://nginx.com/support.html From tetsio.nainn at gmail.com Fri Oct 5 13:27:06 2012 From: tetsio.nainn at gmail.com (=?koi8-r?B?7cHSy8XMIO3PyM7B3sXX08vJyg==?=) Date: Fri, 5 Oct 2012 23:27:06 +1000 Subject: =?UTF-8?B?UmU6INCU0LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQstC40YDRgtGD0LDQu9GM0L0=?= =?UTF-8?B?0YvQtSDRhdC+0YHRgtGLINGBIEhUVFBT?= In-Reply-To: <98f1a27b2cf7267ada7dace7c8d39180.NginxMailingListRussian@forum.nginx.org> References: <98f1a27b2cf7267ada7dace7c8d39180.NginxMailingListRussian@forum.nginx.org> Message-ID: <87F28F83-1E57-4F0B-9295-98E4853E0B7D@gmail.com> А Вы пробовали смотреть в сторону БД? Как тот же mod_vhost_ldap у apache httpd. Все тот же embedded perl 05.10.2012, в 22:19, "varsy" написал(а): > Я наверно неправильно все объяснил. > Сейчас у меня порядка 6000 конфиг файлов, которые соответствуют хостам типа > abc.xxx.ru, def.xxx.ru и т.д. Каждый конфиг файл описывает сервер, > прокси_пасс к нужному бекенду. В некоторых случаях используются сертификаты. > В этой схеме я использую как раз SNI для HTTPS-соединений к этим хостам. > Все конфиги генирируются автоматически скриптами по запросу. Порядка > нескольких регистраций в минуту, соответственно, каждый раз нужно сделать > reload нжинксу, чтобы он подхватил новые конфиги. Хочется уйти от этой > схемы, потому что, рано или поздно, упремся в предел количества открытых > файлов. Таким образом я в одном конфиге nginx.conf хочу сделать перловый > скрипт, который будет динамически переводить запрос к нужному бекенду. Если > с http проблем нет, то вот с https - вопрос. Могу ли я сделать так, чтобы > нжинкс слушал 443 порт, а сертификатом обменивался после некой логики, > запрограммированной на перле? > Спасибо. > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231420,231423#msg-231423 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From gojpeg at gmail.com Fri Oct 5 14:49:40 2012 From: gojpeg at gmail.com (Peter Leonov) Date: Fri, 5 Oct 2012 18:49:40 +0400 Subject: listen unix:relative/path Message-ID: <5C887AF6-A545-4D94-AE5B-5AF96727958C@gmail.com> Добрый день! Для unix сокетов директива listen берет за основу текущую директорию, из которой зпускается nginx. Префикс, указанный ключом -p игнорируется. Приходится переходить в директорию из ключа -p, чтобы заработали относительные пути. Остальные директивы префикс учитывают. nginx -V nginx version: nginx/1.2.4 built by gcc 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) configure arguments: --error-log-path=.stderr [?] server { listen unix:var/nginx.sock; server_name back.inshaker.ru; [?] С уважением, Петр. From ne at vbart.ru Fri Oct 5 16:54:40 2012 From: ne at vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Fri, 5 Oct 2012 20:54:40 +0400 Subject: =?UTF-8?B?UmU6INCU0LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQstC40YDRgtGD0LDQu9GM0L0=?= =?UTF-8?B?0YvQtSDRhdC+0YHRgtGLINGBIEhUVFBT?= In-Reply-To: <98f1a27b2cf7267ada7dace7c8d39180.NginxMailingListRussian@forum.nginx.org> References: <98f1a27b2cf7267ada7dace7c8d39180.NginxMailingListRussian@forum.nginx.org> Message-ID: <201210052054.40704.ne@vbart.ru> On Friday 05 October 2012 16:19:18 varsy wrote: [...] > Порядка нескольких регистраций в минуту, соответственно, каждый раз нужно > сделать reload нжинксу, чтобы он подхватил новые конфиги. Хочется уйти от > этой схемы, потому что, рано или поздно, упремся в предел количества > открытых файлов. Как количество открытых файлов связано с количеством файлов конфигурации? -- Валентин Бартенев From nginx-forum at nginx.us Fri Oct 5 18:55:11 2012 From: nginx-forum at nginx.us (ak84) Date: Fri, 05 Oct 2012 14:55:11 -0400 Subject: nginx & core dump 2 Message-ID: <5971855a140d98ae95f4ba4d5e55aafd.NginxMailingListRussian@forum.nginx.org> Добрый вечер. В продолжение темы http://forum.nginx.org/read.php?21,230962 Перевёл nginx на обновлённую ОС: FreeBSD 8.2-RELEASE-p3, обновил nginx ( из портов): nginx version: nginx/1.2.4 TLS SNI support enabled configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I /usr/local/include' --with-ld-opt='-L /usr/local/lib' --conf-path=/usr/local/etc/nginx/nginx.conf --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx-error.log --user=www --group=www --with-debug --http-client-body-temp-path=/var/tmp/nginx/client_body_temp --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp --http-proxy-temp-path=/var/tmp/nginx/proxy_temp --http-scgi-temp-path=/var/tmp/nginx/scgi_temp --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp --http-log-path=/var/log/nginx-access.log --add-module=/usr/ports/www/nginx/work/agentzh-headers-more-nginx-module-6586984 --with-http_image_filter_module --add-module=/usr/ports/www/nginx/work/yaoweibin-ngx_http_substitutions_filter_module-27a01b3 --with-http_stub_status_module --with-pcre --with-http_ssl_module В dmesg вижу: pid 31627 (nginx), uid 80: exited on signal 11 (core dumped) Смотрю core-файл: Core was generated by `nginx'. Program terminated with signal 11, Segmentation fault. Reading symbols from /lib/libcrypt.so.5...done. Loaded symbols for /lib/libcrypt.so.5 Reading symbols from /usr/local/lib/libpcre.so.1...done. Loaded symbols for /usr/local/lib/libpcre.so.1 Reading symbols from /usr/lib/libssl.so.6...done. Loaded symbols for /usr/lib/libssl.so.6 Reading symbols from /lib/libcrypto.so.6...done. Loaded symbols for /lib/libcrypto.so.6 Reading symbols from /lib/libz.so.5...done. Loaded symbols for /lib/libz.so.5 Reading symbols from /usr/local/lib/libgd.so.4...done. Loaded symbols for /usr/local/lib/libgd.so.4 Reading symbols from /lib/libc.so.7...done. Loaded symbols for /lib/libc.so.7 Reading symbols from /usr/local/lib/libfontconfig.so.1...done. Loaded symbols for /usr/local/lib/libfontconfig.so.1 Reading symbols from /usr/local/lib/libiconv.so.3...done. Loaded symbols for /usr/local/lib/libiconv.so.3 Reading symbols from /usr/local/lib/libpng15.so.15...done. Loaded symbols for /usr/local/lib/libpng15.so.15 Reading symbols from /usr/local/lib/libjpeg.so.11...done. Loaded symbols for /usr/local/lib/libjpeg.so.11 Reading symbols from /usr/local/lib/libfreetype.so.9...done. Loaded symbols for /usr/local/lib/libfreetype.so.9 Reading symbols from /lib/libm.so.5...done. Loaded symbols for /lib/libm.so.5 Reading symbols from /lib/libthr.so.3...done. Loaded symbols for /lib/libthr.so.3 Reading symbols from /usr/lib/libbz2.so.4...done. Loaded symbols for /usr/lib/libbz2.so.4 Reading symbols from /usr/local/lib/libexpat.so.6...done. Loaded symbols for /usr/local/lib/libexpat.so.6 Reading symbols from /libexec/ld-elf.so.1...done. Loaded symbols for /libexec/ld-elf.so.1 #0 0x00000000004690ce in ngx_http_upstream_init_request (r=0x801f7f600) at src/http/ngx_http_upstream.c:639 639 if (uscf->peer.init(r, uscf) != NGX_OK) { [New Thread 801e041c0 (LWP 105099)] [New LWP 104549] worker вылетел в корку в src/http/ngx_http_upstream.c:639 ? (gdb) bt #0 0x00000000004690ce in ngx_http_upstream_init_request (r=0x801f7f600) at src/http/ngx_http_upstream.c:639 #1 0x0000000000468924 in ngx_http_upstream_init (r=0x801f7f600) at src/http/ngx_http_upstream.c:446 #2 0x000000000045eca3 in ngx_http_read_client_request_body (r=0x801f7f600, post_handler=0x468840 ) at src/http/ngx_http_request_body.c:59 #3 0x000000000049d9dc in ngx_http_proxy_handler (r=0x801f7f600) at src/http/modules/ngx_http_proxy_module.c:702 #4 0x00000000004469cd in ngx_http_core_content_phase (r=0x801f7f600, ph=0x8029ce718) at src/http/ngx_http_core_module.c:1396 #5 0x0000000000445502 in ngx_http_core_run_phases (r=0x801f7f600) at src/http/ngx_http_core_module.c:877 #6 0x000000000044547d in ngx_http_handler (r=0x801f7f600) at src/http/ngx_http_core_module.c:860 #7 0x0000000000453d94 in ngx_http_process_request (r=0x801f7f600) at src/http/ngx_http_request.c:1685 #8 0x0000000000452795 in ngx_http_process_request_headers (rev=0x804a018f0) at src/http/ngx_http_request.c:1135 #9 0x0000000000451f26 in ngx_http_process_request_line (rev=0x804a018f0) at src/http/ngx_http_request.c:933 #10 0x0000000000451128 in ngx_http_init_request (rev=0x804a018f0) at src/http/ngx_http_request.c:519 #11 0x000000000042d47c in ngx_event_process_posted (cycle=0x801eed050, posted=0x5f0a60) at src/event/ngx_event_posted.c:40 #12 0x000000000042af25 in ngx_process_events_and_timers (cycle=0x801eed050) at src/event/ngx_event.c:274 #13 0x0000000000438264 in ngx_worker_process_cycle (cycle=0x801eed050, data=0x0) at src/os/unix/ngx_process_cycle.c:808 #14 0x0000000000435261 in ngx_spawn_process (cycle=0x801eed050, proc=0x438070 , data=0x0, name=0x4c1869 "worker process", respawn=6) at src/os/unix/ngx_process.c:198 #15 0x0000000000437c92 in ngx_reap_children (cycle=0x801eed050) at src/os/unix/ngx_process_cycle.c:622 #16 0x00000000004369e6 in ngx_master_process_cycle (cycle=0x801eed050) at src/os/unix/ngx_process_cycle.c:181 #17 0x00000000004066d3 in main (argc=1, argv=0x7fffffffed68) at src/core/nginx.c:410 (gdb) bt full #0 0x00000000004690ce in ngx_http_upstream_init_request (r=0x801f7f600) at src/http/ngx_http_upstream.c:639 host = (ngx_str_t *) 0x801e55000 i = 34422664328 ctx = (ngx_resolver_ctx_t *) 0x7fffffffe520 temp = {next = 0x0, resolver = 0x0, udp_connection = 0x3f005fccd8, ident = 430033600514, state = 361, type = 2, name = {len = 140737488348368, data = 0x7fffffffed78 "fОЪЪЪ\177"}, naddrs = 140737488350568, addrs = 0x0, addr = 0, handler = 0x4322b5 , data = 0x0, timeout = 37, quick = 18446744073709551614, recursion = 34445727984, event = 0x80221f000} cln = (ngx_http_cleanup_t *) 0x80221efe0 u = (ngx_http_upstream_t *) 0x80221f020 clcf = (ngx_http_core_loc_conf_t *) 0x802347330 uscf = (ngx_http_upstream_srv_conf_t *) 0x0 uscfp = (ngx_http_upstream_srv_conf_t **) 0x8052018f0 umcf = (ngx_http_upstream_main_conf_t *) 0x80221eef0 #1 0x0000000000468924 in ngx_http_upstream_init (r=0x801f7f600) at src/http/ngx_http_upstream.c:446 c = (ngx_connection_t *) 0x803c02c88 #2 0x000000000045eca3 in ngx_http_read_client_request_body (r=0x801f7f600, post_handler=0x468840 ) at src/http/ngx_http_request_body.c:59 preread = 34395512832 size = 34395516400 b = (ngx_buf_t *) 0x80221e000 cl = (ngx_chain_t *) 0x7fffffffe5d0 next = (ngx_chain_t **) 0x40996a tf = (ngx_temp_file_t *) 0x100 rb = (ngx_http_request_body_t *) 0x80221eef0 clcf = (ngx_http_core_loc_conf_t *) 0x0 #3 0x000000000049d9dc in ngx_http_proxy_handler (r=0x801f7f600) at src/http/modules/ngx_http_proxy_module.c:702 rc = 140737488348704 u = (ngx_http_upstream_t *) 0x80221f020 ctx = (ngx_http_proxy_ctx_t *) 0x80221ed50 plcf = (ngx_http_proxy_loc_conf_t *) 0x802347718 #4 0x00000000004469cd in ngx_http_core_content_phase (r=0x801f7f600, ph=0x8029ce718) at src/http/ngx_http_core_module.c:1396 root = 18446744073709551611 rc = 0 path = {len = 34403575552, data = 0x801f7f600 "HTTP"} #5 0x0000000000445502 in ngx_http_core_run_phases (r=0x801f7f600) at src/http/ngx_http_core_module.c:877 rc = -2 ph = (ngx_http_phase_handler_t *) 0x8029ce628 cmcf = (ngx_http_core_main_conf_t *) 0x801eee828 #6 0x000000000044547d in ngx_http_handler (r=0x801f7f600) at src/http/ngx_http_core_module.c:860 cmcf = (ngx_http_core_main_conf_t *) 0x804a018f0 #7 0x0000000000453d94 in ngx_http_process_request (r=0x801f7f600) at src/http/ngx_http_request.c:1685 c = (ngx_connection_t *) 0x803c02c88 #8 0x0000000000452795 in ngx_http_process_request_headers (rev=0x804a018f0) at src/http/ngx_http_request.c:1135 p = (u_char *) 0x10
len = 34395512832 n = 199 rc = 0 rv = 140737488349072 h = (ngx_table_elt_t *) 0x80221e928 c = (ngx_connection_t *) 0x803c02c88 hh = (ngx_http_header_t *) 0x5d7320 r = (ngx_http_request_t *) 0x801f7f600 cscf = (ngx_http_core_srv_conf_t *) 0x802323f50 cmcf = (ngx_http_core_main_conf_t *) 0x801eee828 #9 0x0000000000451f26 in ngx_http_process_request_line (rev=0x804a018f0) at src/http/ngx_http_request.c:933 host = (u_char *) 0x80221e000 "ЬО!\002\b" n = 304 rc = 0 rv = 672 c = (ngx_connection_t *) 0x803c02c88 r = (ngx_http_request_t *) 0x801f7f600 cscf = (ngx_http_core_srv_conf_t *) 0x80221e568 #10 0x0000000000451128 in ngx_http_init_request (rev=0x804a018f0) at src/http/ngx_http_request.c:519 tp = (ngx_time_t *) 0x5ee4c0 i = 2361183241434822607 c = (ngx_connection_t *) 0x803c02c88 r = (ngx_http_request_t *) 0x801f7f600 sin = (struct sockaddr_in *) 0x3cb port = (ngx_http_port_t *) 0x8039ef238 addr = (ngx_http_in_addr_t *) 0x8039ef248 ctx = (ngx_http_log_ctx_t *) 0x8022339a0 addr_conf = (ngx_http_addr_conf_t *) 0x8039ef250 hc = (ngx_http_connection_t *) 0x8022339b8 cscf = (ngx_http_core_srv_conf_t *) 0x802323f50 clcf = (ngx_http_core_loc_conf_t *) 0x802324178 cmcf = (ngx_http_core_main_conf_t *) 0x801eee828 #11 0x000000000042d47c in ngx_event_process_posted (cycle=0x801eed050, posted=0x5f0a60) at src/event/ngx_event_posted.c:40 ev = (ngx_event_t *) 0x804a018f0 #12 0x000000000042af25 in ngx_process_events_and_timers (cycle=0x801eed050) at src/event/ngx_event.c:274 flags = 3 timer = 3971 delta = 0 #13 0x0000000000438264 in ngx_worker_process_cycle (cycle=0x801eed050, data=0x0) at src/os/unix/ngx_process_cycle.c:808 i = 1 c = (ngx_connection_t *) 0x7fffffffe990 #14 0x0000000000435261 in ngx_spawn_process (cycle=0x801eed050, proc=0x438070 , data=0x0, name=0x4c1869 "worker process", respawn=6) at src/os/unix/ngx_process.c:198 on = 1 pid = 0 s = 6 #15 0x0000000000437c92 in ngx_reap_children (cycle=0x801eed050) at src/os/unix/ngx_process_cycle.c:622 i = 6 n = 8 live = 1 ch = {command = 2, pid = 31558, slot = 6, fd = -1} ccf = (ngx_core_conf_t *) 0x506f0c27 #16 0x00000000004369e6 in ngx_master_process_cycle (cycle=0x801eed050) at src/os/unix/ngx_process_cycle.c:181 title = 0x80226bfb4 "master process /usr/local/sbin/nginx" p = (u_char *) 0x80226bfd8 "" size = 37 i = 1 n = 6 sigio = 0 set = {__bits = {0, 0, 0, 0}} itv = {it_interval = {tv_sec = 0, tv_usec = 0}, it_value = {tv_sec = 0, tv_usec = 0}} live = 1 delay = 0 ls = (ngx_listening_t *) 0x6 ccf = (ngx_core_conf_t *) 0x801eee050 #17 0x00000000004066d3 in main (argc=1, argv=0x7fffffffed68) at src/core/nginx.c:410 i = 52 log = (ngx_log_t *) 0x5ee040 cycle = (ngx_cycle_t *) 0x801e55050 init_cycle = {conf_ctx = 0x0, pool = 0x801e49800, log = 0x5ee040, 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 = 0x0, nelts = 0, size = 0, nalloc = 0, pool = 0x0}, 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 = 31, data = 0x4bd9f0 "/usr/local/etc/nginx/nginx.conf"}, conf_param = {len = 0, data = 0x0}, conf_prefix = {len = 21, data = 0x4bd9f0 "/usr/local/etc/nginx/nginx.conf"}, prefix = {len = 21, data = 0x4bd9d8 "/usr/local/etc/nginx/"}, lock_file = {len = 0, data = 0x0}, hostname = {len = 0, data = 0x0}} ccf = (ngx_core_conf_t *) 0x801e56040 Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231434,231434#msg-231434 From nginx-forum at nginx.us Sat Oct 6 13:03:32 2012 From: nginx-forum at nginx.us (cat) Date: Sat, 06 Oct 2012 09:03:32 -0400 Subject: =?UTF-8?B?UmU6IHByb3h5IHJlYWQgdGltZW91dCDQv9C+IEdFVCDQv9Cw0YDQsNC80LXRgtGA?= =?UTF-8?B?0YM=?= In-Reply-To: <20121005124505.GO40452@mdounin.ru> References: <20121005124505.GO40452@mdounin.ru> Message-ID: <89bc2ab34dd8fb36218f68ba410c07bb.NginxMailingListRussian@forum.nginx.org> Maxim Dounin Wrote: ------------------------------------------------------- > > location / > > { > > error_page 504 =200 @timeoutPage; > > error_page 598 = @$timeouts; > > return 598; > > Вот тут надо добавить: > > recursive_error_pages on; > > Подробности см. ниже. > Да, теперь всё работает как надо. Благодарю. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231425,231443#msg-231443 From nginx-forum at nginx.us Sat Oct 6 13:49:21 2012 From: nginx-forum at nginx.us (ak84) Date: Sat, 06 Oct 2012 09:49:21 -0400 Subject: nginx & core dump 2 In-Reply-To: <5971855a140d98ae95f4ba4d5e55aafd.NginxMailingListRussian@forum.nginx.org> References: <5971855a140d98ae95f4ba4d5e55aafd.NginxMailingListRussian@forum.nginx.org> Message-ID: Пробовал отключать сторонние модули - ситуация такая же.. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231434,231444#msg-231444 From nginx-forum at nginx.us Sat Oct 6 15:25:28 2012 From: nginx-forum at nginx.us (memento) Date: Sat, 06 Oct 2012 11:25:28 -0400 Subject: =?UTF-8?B?0Lgg0YHQvdC+0LLQsCAzMDEg0YDQtdC00LjRgNC10LrRgg==?= Message-ID: <7a9c231ee13321a0af6b374c0c830ecc.NginxMailingListRussian@forum.nginx.org> Добрый день, прошу помощи с настройкой 301 редиректа. Ситуация такая, нужно чтобы на любом поддомене отдавался контент главной страницы, мои настройки: server { listen ip_host:80; server_name www.site.ru; rewrite ^ http://site.ru$request_uri? permanent; #301 redirect } server { listen ip_host:80; server_name .site.ru; location / { proxy_pass http://ip_host:8080/; proxy_set_header Host $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 120; } } Дело в том, что как и задумывалось на поддоменах отдается контент главной страницы, а вот если зайти на www.site.ru происходит редирект на site.ru и браузер выдает сообщение что страница, сайт не найден. Помогите pls/ Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231445,231445#msg-231445 From kaa at zvuki.ru Sat Oct 6 15:30:59 2012 From: kaa at zvuki.ru (Andrey Kopeyko) Date: Sat, 06 Oct 2012 19:30:59 +0400 Subject: =?UTF-8?B?UmU6INC4INGB0L3QvtCy0LAgMzAxINGA0LXQtNC40YDQtdC60YI=?= In-Reply-To: <7a9c231ee13321a0af6b374c0c830ecc.NginxMailingListRussian@forum.nginx.org> References: <7a9c231ee13321a0af6b374c0c830ecc.NginxMailingListRussian@forum.nginx.org> Message-ID: <50704EB3.7040303@zvuki.ru> 06.10.2012 19:25, memento пишет: > Добрый день, прошу помощи с настройкой 301 редиректа. > > Ситуация такая, нужно чтобы на любом поддомене отдавался контент главной > страницы, мои настройки: > > server { > listen ip_host:80; > server_name www.site.ru; > rewrite ^ http://site.ru$request_uri? permanent; #301 redirect > } + server { + server_name site.ru; + ... + } > server { > listen ip_host:80; > server_name .site.ru; > > location / { > proxy_pass http://ip_host:8080/; > proxy_set_header Host $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 120; > } > } > > Дело в том, что как и задумывалось на поддоменах отдается контент главной > страницы, а вот если зайти на www.site.ru происходит редирект на site.ru и > браузер выдает сообщение что страница, сайт не найден. Вы описали все домены, кроме "site.ru" - оттого и ошибка. -- Best regards, Andrey Kopeyko From nginx-forum at nginx.us Sat Oct 6 15:46:17 2012 From: nginx-forum at nginx.us (memento) Date: Sat, 06 Oct 2012 11:46:17 -0400 Subject: =?UTF-8?B?UmU6INC4INGB0L3QvtCy0LAgMzAxINGA0LXQtNC40YDQtdC60YI=?= In-Reply-To: <50704EB3.7040303@zvuki.ru> References: <50704EB3.7040303@zvuki.ru> Message-ID: <945d9182ece670620c0996b2eee41268.NginxMailingListRussian@forum.nginx.org> Попробовал добавить server { server_name site.ru; } Результат тот же ( Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231445,231447#msg-231447 From kaa at zvuki.ru Sat Oct 6 16:46:44 2012 From: kaa at zvuki.ru (Andrey Kopeyko) Date: Sat, 06 Oct 2012 20:46:44 +0400 Subject: =?UTF-8?B?UmU6INC4INGB0L3QvtCy0LAgMzAxINGA0LXQtNC40YDQtdC60YI=?= In-Reply-To: <945d9182ece670620c0996b2eee41268.NginxMailingListRussian@forum.nginx.org> References: <50704EB3.7040303@zvuki.ru> <945d9182ece670620c0996b2eee41268.NginxMailingListRussian@forum.nginx.org> Message-ID: <50706074.7040808@zvuki.ru> 06.10.2012 19:46, memento пишет: > Попробовал добавить > > server { > server_name site.ru; > > } Вот прям это и добавили? Теперь попробуйте почитать - документацию - логи -- Best regards, Andrey Kopeyko From nginx-forum at nginx.us Sat Oct 6 17:05:09 2012 From: nginx-forum at nginx.us (memento) Date: Sat, 06 Oct 2012 13:05:09 -0400 Subject: =?UTF-8?B?UmU6INC4INGB0L3QvtCy0LAgMzAxINGA0LXQtNC40YDQtdC60YI=?= In-Reply-To: <7a9c231ee13321a0af6b374c0c830ecc.NginxMailingListRussian@forum.nginx.org> References: <7a9c231ee13321a0af6b374c0c830ecc.NginxMailingListRussian@forum.nginx.org> Message-ID: <3684978bc4d1adcbc08611e10c37e6c2.NginxMailingListRussian@forum.nginx.org> В общем вопрос разрешился, настройки все правильные, нужно было добавить запись в DNS Тип А, *.site.ru Теперь все работает так как и задумывалось. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231445,231450#msg-231450 From hell-for-yahoo at umail.ru Sun Oct 7 03:12:40 2012 From: hell-for-yahoo at umail.ru (Andrey Repin) Date: Sun, 7 Oct 2012 07:12:40 +0400 Subject: listen unix:relative/path In-Reply-To: <5C887AF6-A545-4D94-AE5B-5AF96727958C@gmail.com> References: <5C887AF6-A545-4D94-AE5B-5AF96727958C@gmail.com> Message-ID: <508312160.20121007071240@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) Peter Leonov! PL> Добрый день! PL> Для unix сокетов директива listen берет за основу текущую директорию, из которой зпускается nginx. Префикс, указанный ключом -p игнорируется. Приходится переходить в директорию из ключа -p, чтобы PL> заработали относительные пути. PL> Остальные директивы префикс учитывают. PL> nginx -V PL> nginx version: nginx/1.2.4 PL> built by gcc 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) PL> configure arguments: --error-log-path=.stderr PL> [┘] PL> server PL> { - listen unix:var/nginx.sock; + listen unix:/var/nginx.sock; PL> server_name back.inshaker.ru; PL> [┘] Головой тоже иногда думать надо. Сокеты по жизни указывались с полным путём. -- С уважением Andrey Repin (hell-for-yahoo at umail.ru) воскресенье, 07.10.2012, <07:11> From ne at vbart.ru Sun Oct 7 12:41:40 2012 From: ne at vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Sun, 7 Oct 2012 16:41:40 +0400 Subject: =?UTF-8?B?UmU6IGltYWdlX2ZpbHRlcl9qcGVnX3F1YWxpdHkgINC90LUg0YDQsNCx0L7RgtCw?= =?UTF-8?B?0LXRgiDQsdC10Lcg0YPQutCw0LfQsNC90LjRjyBpbWFnZV9maWx0ZXIgcm90?= =?UTF-8?B?YXRlfHJlc2l6ZXxjcm9w?= In-Reply-To: References: Message-ID: <201210071641.40435.ne@vbart.ru> On Monday 01 October 2012 20:05:40 mxs kolo wrote: > Здравствуйте. > > > quality_only не очень подходящее название для опции image_filter. > > > > 1. crop | resize | test - глаголы, означающие действие, производимое над > > > > изображением, а quality_only - нет. > > Есть еще одна проблема. > Она в том, что фильтры resize, crop и rotate принимают параметры > сразу в строке, а > convert - нет. Ему нужны дополнительные указания. Потому, что эти параметры имеют отношение только к этим фильтрам, в то время, как такие параметры как jpeg-сжатие, резкость и пр. применяются к результату независимо от фильтра. > Если-бы можно было указать несколько image_filter и они-бы > применялись в заданном порядке, то вся эта неопределенность в > синтаксисе ушла. Какая именно неопределенность? Нет смысла делать сначала resize, а потом crop, потому, что resize - это сравнительно дорогая операция, цена которой пропорциональна размеру изображения. quality и sharp тоже имеют смысл только по отношению к результату всех преобразований. Поэтому порядок тут может быть только один. Следовательно единственное, что тут может иметь смысл - это возможность применять crop и resize одновременно. > Например так: > image_filter resize 100 200; > image_filter convert quality=55 sharp=25 transparency=on; > или > mage_filter convert 55,25,on; > image_filter rotate 90; В данном случае я вижу лишь попытку заменить нескольких директив с простым синтаксисом на одну с очень сложным. Это явно ухудшает читабельность. Также стоит иметь ввиду, что nginx старается следовать декларативному стилю конфигурации. > Но это явно будет патч больше что я прислал. Я пока не смотрел как > сделать цепочку таких фильтров. Please note, вероятность принятия патча в код nginx обратно пропорциональна размеру патча. -- Валентин Бартенев From postmaster at softsearch.ru Sun Oct 7 13:06:55 2012 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Sun, 7 Oct 2012 17:06:55 +0400 Subject: =?UTF-8?B?UmVbMl06IGltYWdlX2ZpbHRlcl9qcGVnX3F1YWxpdHkgINC90LUg0YDQsNCx0L4=?= =?UTF-8?B?0YLQsNC10YIg0LHQtdC3INGD0LrQsNC30LDQvdC40Y8gaW1hZ2VfZmlsdGVy?= =?UTF-8?B?IHJvdGF0ZXxyZXNpemV8Y3JvcA==?= In-Reply-To: <201210071641.40435.ne@vbart.ru> References: <201210071641.40435.ne@vbart.ru> Message-ID: <919079191.20121007170655@softsearch.ru> Здравствуйте, Валентин. > Please note, По-русски: "на заметку". -- С уважением, Михаил mailto:postmaster at softsearch.ru From nginx-forum at nginx.us Sun Oct 7 22:58:04 2012 From: nginx-forum at nginx.us (Fader) Date: Sun, 07 Oct 2012 18:58:04 -0400 Subject: wordpress + cloudflare CDN for images Message-ID: Доброго времени суток. Проблема вроде простая, но требует изящного решения. Итак, у меня несколько фотоблогов wordpress. Изображений много в т.ч. тяжелых. Для облегчения работы сервера использую связку Wordpress WP-SuperCache plugin + cloudflare CDN. Через CDN пропускаю только изображения которые средствами вышеуказанного плагина блоги раздают с поддоменов cdn.someblog.ru, cdn1.someblog.ru, cdn2.someblog.ru и т.д. (Пример: http://cdn1.someblog.ru/gallery/dir1/thumbs/thumbs23.jpg) Таким образом виртуальные хосты nginx способны отвечать с любого поддомена: server { listen 80; server_name .someblog.ru; ... } Всю малину портят боты-охотники всяких фотохостингов и фотостоков которые парсят мои фотоблоги, заходя по адресам вида cdn.someblog.ru, cdn1.someblog.ru, cdn2.someblog.ru и т.д. Wordpress не справляется с нагрузкой, WP-SuperCache начинает плодить по сути зеркала страниц основного адреса фотоблога. php бэкенд съедает ресурсы системы. сервер падает. Подозреваю что меня спасет ngx_http_rewrite_module. Но не догоняю как выразить в настройках так чтобы изображения оставались доступными на поддоменах, а блоги отвечали только по определенным именам. Скажем someblog.ru (также у некоторых есть зеркала: mirrorblog.ru) Буду благодарен за развернутый ответ. Спасибо. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231460,231460#msg-231460 From mdounin at mdounin.ru Mon Oct 8 08:13:15 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Mon, 8 Oct 2012 12:13:15 +0400 Subject: nginx & core dump 2 In-Reply-To: <5971855a140d98ae95f4ba4d5e55aafd.NginxMailingListRussian@forum.nginx.org> References: <5971855a140d98ae95f4ba4d5e55aafd.NginxMailingListRussian@forum.nginx.org> Message-ID: <20121008081315.GX40452@mdounin.ru> Hello! On Fri, Oct 05, 2012 at 02:55:11PM -0400, ak84 wrote: > Добрый вечер. > В продолжение темы http://forum.nginx.org/read.php?21,230962 > Перевёл nginx на обновлённую ОС: FreeBSD 8.2-RELEASE-p3, обновил nginx ( из > портов): > nginx version: nginx/1.2.4 > TLS SNI support enabled > configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I > /usr/local/include' --with-ld-opt='-L /usr/local/lib' > --conf-path=/usr/local/etc/nginx/nginx.conf > --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid > --error-log-path=/var/log/nginx-error.log --user=www --group=www > --with-debug --http-client-body-temp-path=/var/tmp/nginx/client_body_temp > --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp > --http-proxy-temp-path=/var/tmp/nginx/proxy_temp > --http-scgi-temp-path=/var/tmp/nginx/scgi_temp > --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp > --http-log-path=/var/log/nginx-access.log > --add-module=/usr/ports/www/nginx/work/agentzh-headers-more-nginx-module-6586984 > --with-http_image_filter_module > --add-module=/usr/ports/www/nginx/work/yaoweibin-ngx_http_substitutions_filter_module-27a01b3 > --with-http_stub_status_module --with-pcre --with-http_ssl_module > > В dmesg вижу: > pid 31627 (nginx), uid 80: exited on signal 11 (core dumped) > Смотрю core-файл: [...] > #0 0x00000000004690ce in ngx_http_upstream_init_request (r=0x801f7f600) at > src/http/ngx_http_upstream.c:639 > 639 if (uscf->peer.init(r, uscf) != NGX_OK) { [...] > uscf = (ngx_http_upstream_srv_conf_t *) 0x0 [...] Найти в конфиге конструкцию вида location /crash { set $true 1; if ($true) { # fastcgi_pass here fastcgi_pass 127.0.0.1:9000; } if ($true) { # no handler here } } и изжить. Подробнее см. http://wiki.nginx.org/IfIsEvil, это четвёртый по счёту пример. -- Maxim Dounin http://nginx.com/support.html From nginx-forum at nginx.us Mon Oct 8 08:38:24 2012 From: nginx-forum at nginx.us (buylov) Date: Mon, 08 Oct 2012 04:38:24 -0400 Subject: =?UTF-8?Q?proxy_pass_=D0=B8_urlencode_url=27s?= Message-ID: <35d9ee658b8ceda47d526e0f078953e6.NginxMailingListRussian@forum.nginx.org> Здравствуйте. Есть open proxy на nginx , имеет следующий вид location ~ /proxy/ { resolver 8.8.8.8; rewrite ^/proxy/(.*)$ /$1 break; proxy_pass http://$1; } При запросах на urlencode url's, в частности содержащие %20, иногда возвращается 404 ошибка. При тестировании на своей стороне - все в порядке, но при запросе через прокси в лог попадает без %20, то есть пишется просто " ". Судя по тексту ошибки ,другой сервер воспринимает запрос до первого пробела. Что с этим можно сделать? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231467,231467#msg-231467 From nginx-forum at nginx.us Mon Oct 8 08:44:09 2012 From: nginx-forum at nginx.us (ak84) Date: Mon, 08 Oct 2012 04:44:09 -0400 Subject: nginx & core dump 2 In-Reply-To: <20121008081315.GX40452@mdounin.ru> References: <20121008081315.GX40452@mdounin.ru> Message-ID: Максим, добрый день. Спасибо за ответ. Может быть можно как-то добавить отладочный вывод, из-за какой конструкции и в каком конфиге валится в core dump ? Т.к. конфигов довольно приличное колличество. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231434,231468#msg-231468 From ne at vbart.ru Mon Oct 8 09:08:02 2012 From: ne at vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Mon, 8 Oct 2012 13:08:02 +0400 Subject: nginx & core dump 2 In-Reply-To: References: <20121008081315.GX40452@mdounin.ru> Message-ID: <201210081308.02574.ne@vbart.ru> On Monday 08 October 2012 12:44:09 ak84 wrote: > Максим, добрый день. > Спасибо за ответ. > Может быть можно как-то добавить отладочный вывод, из-за какой конструкции > и в каком конфиге валится в core dump ? Т.к. конфигов довольно приличное > колличество. > http://nginx.org/ru/docs/debugging_log.html -- Валентин Бартенев From nginx-forum at nginx.us Mon Oct 8 09:49:15 2012 From: nginx-forum at nginx.us (varsy) Date: Mon, 08 Oct 2012 05:49:15 -0400 Subject: =?UTF-8?B?UmU6INCU0LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQstC40YDRgtGD0LDQu9GM0L0=?= =?UTF-8?B?0YvQtSDRhdC+0YHRgtGLINGBIEhUVFBT?= In-Reply-To: <201210052054.40704.ne@vbart.ru> References: <201210052054.40704.ne@vbart.ru> Message-ID: <4b138af9cda2ee1a3e7ef765fd2c5fa0.NginxMailingListRussian@forum.nginx.org> В свое время уже возникала такая проблема, http://www.lexa.ru/nginx-ru/msg39473.html Решение было найдено, но в скором времени мы упремся в нее еще раз. Хочется обойти проблему не методом подпорок и костылей, а на качественно другом уровне. Динамическая генерация конфигов - хорошая штука, но вопрос с сертификатами остается открытым. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231420,231472#msg-231472 From nginx-forum at nginx.us Mon Oct 8 09:50:06 2012 From: nginx-forum at nginx.us (varsy) Date: Mon, 08 Oct 2012 05:50:06 -0400 Subject: =?UTF-8?B?UmU6INCU0LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQstC40YDRgtGD0LDQu9GM0L0=?= =?UTF-8?B?0YvQtSDRhdC+0YHRgtGLINGBIEhUVFBT?= In-Reply-To: <87F28F83-1E57-4F0B-9295-98E4853E0B7D@gmail.com> References: <87F28F83-1E57-4F0B-9295-98E4853E0B7D@gmail.com> Message-ID: <4a8c2fd7a065c3d58273502feb33973a.NginxMailingListRussian@forum.nginx.org> А не могли бы вы по-подробнее описать? Документацию на апачевский mod_ldap_vhost я нашел, а вот аналогов для nginx'а пока не встретил. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231420,231473#msg-231473 From nginx-forum at nginx.us Mon Oct 8 09:50:32 2012 From: nginx-forum at nginx.us (varsy) Date: Mon, 08 Oct 2012 05:50:32 -0400 Subject: =?UTF-8?B?UmU6INCU0LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQstC40YDRgtGD0LDQu9GM0L0=?= =?UTF-8?B?0YvQtSDRhdC+0YHRgtGLINGBIEhUVFBT?= In-Reply-To: References: Message-ID: <759c344d61e001fa17c905fd82873abb.NginxMailingListRussian@forum.nginx.org> SNI давно и успешно используется, немного не та проблема. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231420,231474#msg-231474 From gmm at csdoc.com Mon Oct 8 10:00:36 2012 From: gmm at csdoc.com (Gena Makhomed) Date: Mon, 08 Oct 2012 13:00:36 +0300 Subject: =?UTF-8?B?UmU6INCU0LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQstC40YDRgtGD0LDQu9GM0L0=?= =?UTF-8?B?0YvQtSDRhdC+0YHRgtGLINGBIEhUVFBT?= In-Reply-To: <4b138af9cda2ee1a3e7ef765fd2c5fa0.NginxMailingListRussian@forum.nginx.org> References: <201210052054.40704.ne@vbart.ru> <4b138af9cda2ee1a3e7ef765fd2c5fa0.NginxMailingListRussian@forum.nginx.org> Message-ID: <5072A444.2080708@csdoc.com> On 08.10.2012 12:49, varsy wrote: > В свое время уже возникала такая проблема, > http://www.lexa.ru/nginx-ru/msg39473.html > Решение было найдено, но в скором времени мы упремся в нее еще раз. Хочется > обойти проблему не методом подпорок и костылей, а на качественно другом > уровне. http://www.lexa.ru/nginx-ru/msg39475.html -- Best regards, Gena From mdounin at mdounin.ru Mon Oct 8 10:08:25 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Mon, 8 Oct 2012 14:08:25 +0400 Subject: =?UTF-8?Q?Re=3A_proxy_pass_=D0=B8_urlencode_url=27s?= In-Reply-To: <35d9ee658b8ceda47d526e0f078953e6.NginxMailingListRussian@forum.nginx.org> References: <35d9ee658b8ceda47d526e0f078953e6.NginxMailingListRussian@forum.nginx.org> Message-ID: <20121008100825.GZ40452@mdounin.ru> Hello! On Mon, Oct 08, 2012 at 04:38:24AM -0400, buylov wrote: > Здравствуйте. > Есть open proxy на nginx , имеет следующий вид > > location ~ /proxy/ { > resolver 8.8.8.8; > rewrite ^/proxy/(.*)$ /$1 break; > proxy_pass http://$1; > } > При запросах на urlencode url's, в частности содержащие %20, иногда > возвращается 404 ошибка. > При тестировании на своей стороне - все в порядке, но при запросе через > прокси в лог попадает без %20, то есть пишется просто " ". Судя по тексту > ошибки ,другой сервер воспринимает запрос до первого пробела. Что с этим > можно сделать? Если вы указываете proxy_pass с переменными, то правильно сформировать URL - это ваша задача. Поскольку $1 в вашем случае не url-encoded - наблюдается то, что наблюдается. Наиболее правильный путь решения проблемы - не делать так. Но если очень хочется, то можно попробовать воспользоваться одним из предложенных ниже вариантов решения: 1) Использовать то, что сформировала директива rewrite, благо она должна всё заэкранировать. Для этого следует в proxy_pass указывать *только* имя хоста, и убедится, что использется свежий nginx (1.1.12+, если не ошибаюсь). Конфиг будет какой-то такой: rewrite ^/proxy/(?[^/]+)(/.*)$ $2 break; proxy_pass http://$h; 2) Брать исходно полученный от клиента $request_uri (соотвтетсвенно - url-encoded клиентом) и работать с ним. set $d ""; if ($request_uri ~ "^/proxy/(.*)") { set $d $1; } proxy_pass http://$d; -- Maxim Dounin http://nginx.com/support.html From nginx-forum at nginx.us Mon Oct 8 10:14:06 2012 From: nginx-forum at nginx.us (varsy) Date: Mon, 08 Oct 2012 06:14:06 -0400 Subject: =?UTF-8?B?UmU6INCU0LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQstC40YDRgtGD0LDQu9GM0L0=?= =?UTF-8?B?0YvQtSDRhdC+0YHRgtGLINGBIEhUVFBT?= In-Reply-To: <5072A444.2080708@csdoc.com> References: <5072A444.2080708@csdoc.com> Message-ID: Спасибо, вашим способом я пользуюсь по сей день, он отлично работает. Но не хочется быть ограниченным неким числом, потому что количество конфигов виртуальных хостов будет расти ежечасно. Хочется реализовать это не файловым методом, а с использованием некоей БД(файл или реальная БД, не важно). Важно понять, можно ли сделать такую схему с динамическим подсовыванием SSL сертификатов или нет. Если это невозможно, то тогда мне нужно будет смотреть в другом направлении. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231420,231477#msg-231477 From mdounin at mdounin.ru Mon Oct 8 10:21:17 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Mon, 8 Oct 2012 14:21:17 +0400 Subject: nginx & core dump 2 In-Reply-To: References: <20121008081315.GX40452@mdounin.ru> Message-ID: <20121008102117.GA40452@mdounin.ru> Hello! On Mon, Oct 08, 2012 at 04:44:09AM -0400, ak84 wrote: > Максим, добрый день. > Спасибо за ответ. > Может быть можно как-то добавить отладочный вывод, из-за какой конструкции и > в каком конфиге валится в core dump ? Т.к. конфигов довольно приличное > колличество. В gdb скажите "p *r", оно как минимум host покажет однозначно. -- Maxim Dounin http://nginx.com/support.html From gmm at csdoc.com Mon Oct 8 10:37:39 2012 From: gmm at csdoc.com (Gena Makhomed) Date: Mon, 08 Oct 2012 13:37:39 +0300 Subject: =?UTF-8?B?UmU6INCU0LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQstC40YDRgtGD0LDQu9GM0L0=?= =?UTF-8?B?0YvQtSDRhdC+0YHRgtGLINGBIEhUVFBT?= In-Reply-To: References: <5072A444.2080708@csdoc.com> Message-ID: <5072ACF3.9060709@csdoc.com> On 08.10.2012 13:14, varsy wrote: > Спасибо, вашим способом я пользуюсь по сей день, он отлично работает. > Но не хочется быть ограниченным неким числом, потому что количество конфигов > виртуальных хостов будет расти ежечасно. > Хочется реализовать это не файловым методом, а с использованием некоей > БД(файл или реальная БД, не важно). можно конфигурацию держать в базе данных, и скриптом на основании этой информации генерировать один конфигурационный файл nginx, в котором будут описаны server{ ... } для всех виртуальных хостов. главное только использовать атомарную операцию записи/переименования (писать в файл со случайным именем файла и потом переименовывать) тогда параметр ulimit -n вообще не надо будет трогать, хватит и дефолтового лимита в 1024 открытых файла для master. если новые виртуальные хосты добавляются/удаляются очень часто в базу данных - тогда встроить в свой скрипт генерации конфига nginx логику для rate limit, например, делать service nginx reload не чаще, чем 1 раз в 45 секунд, или динамически ограничивать количество reload`ов в зависимости от количества работающих worker-процесов nginx. -- Best regards, Gena From ne at vbart.ru Mon Oct 8 10:59:13 2012 From: ne at vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Mon, 8 Oct 2012 14:59:13 +0400 Subject: =?UTF-8?B?UmU6INCU0LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQstC40YDRgtGD0LDQu9GM0L0=?= =?UTF-8?B?0YvQtSDRhdC+0YHRgtGLINGBIEhUVFBT?= In-Reply-To: <5072ACF3.9060709@csdoc.com> References: <5072A444.2080708@csdoc.com> <5072ACF3.9060709@csdoc.com> Message-ID: <201210081459.14039.ne@vbart.ru> On Monday 08 October 2012 14:37:39 Gena Makhomed wrote: > On 08.10.2012 13:14, varsy wrote: > > Спасибо, вашим способом я пользуюсь по сей день, он отлично работает. > > Но не хочется быть ограниченным неким числом, потому что количество > > конфигов виртуальных хостов будет расти ежечасно. > > Хочется реализовать это не файловым методом, а с использованием некоей > > БД(файл или реальная БД, не важно). > > можно конфигурацию держать в базе данных, и скриптом на основании > этой информации генерировать один конфигурационный файл nginx, > в котором будут описаны server{ ... } для всех виртуальных хостов. > > главное только использовать атомарную операцию записи/переименования > (писать в файл со случайным именем файла и потом переименовывать) > > тогда параметр ulimit -n вообще не надо будет трогать, > хватит и дефолтового лимита в 1024 открытых файла для master. > > если новые виртуальные хосты добавляются/удаляются очень часто > в базу данных - тогда встроить в свой скрипт генерации конфига > nginx логику для rate limit, например, делать service nginx reload > не чаще, чем 1 раз в 45 секунд, или динамически ограничивать количество > reload`ов в зависимости от количества работающих worker-процесов nginx. Nginx читает конфигурационные файлы по очереди и их количество едва ли связано с указанным лимитом. Проблема скорее всего в том, что человек упирается в количество открытых лог-файлов, что совершенно ортогонально обсуждаемому вопросу. -- Валентин Бартенев From ne at vbart.ru Mon Oct 8 11:16:00 2012 From: ne at vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Mon, 8 Oct 2012 15:16:00 +0400 Subject: =?UTF-8?B?UmU6INCU0LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQstC40YDRgtGD0LDQu9GM0L0=?= =?UTF-8?B?0YvQtSDRhdC+0YHRgtGLINGBIEhUVFBT?= In-Reply-To: <201210081459.14039.ne@vbart.ru> References: <5072A444.2080708@csdoc.com> <5072ACF3.9060709@csdoc.com> <201210081459.14039.ne@vbart.ru> Message-ID: <201210081516.01060.ne@vbart.ru> On Monday 08 October 2012 14:59:13 Валентин Бартенев wrote: > [...] > Nginx читает конфигурационные файлы по очереди и их количество едва ли > связано с указанным лимитом. Проблема скорее всего в том, что человек > упирается в количество открытых лог-файлов, что совершенно ортогонально > обсуждаемому вопросу. > Причем автор того топика сам это подтвердил: http://www.lexa.ru/nginx-ru/msg39486.html Количество конфигурационных файлов тут абсолютно не причем. Если хочется открывать access_log динамически на каждый запрос, расходуя ресурсы на дополнительную парочку сисколов, то стоит добавить в путь переменную. http://nginx.org/r/access_log/ru -- Валентин Бартенев http://nginx.com/support.html From dsimonov at gmail.com Mon Oct 8 12:59:53 2012 From: dsimonov at gmail.com (Dmitry Simonov) Date: Mon, 8 Oct 2012 16:59:53 +0400 Subject: =?UTF-8?B?0JTQvtC60LvQsNC0INC90LAg0YXQsNC50LvQvtCw0LQ6IHBzcWwgZnM=?= Message-ID: Привет! Готовим весьма неожиданный доклад на ХайЛоад про использование в качестве файл-стореджа PostgreSQL. Речь идёт про объём начиная 0.5 тб, средний размер файла 65кб, суммарное количество файло более 7.5 млн. Тема сложная и изобилующая местами для троллинга. Все желающие послушать тестовый прогон, на котором можно знатно потроллить докладчика приглашаются в личку. Да, сверху отдатчика файлов стоит Nginx. --- Dmitriy V. Simonov, Perl & Python programmer From nginx-forum at nginx.us Mon Oct 8 13:01:28 2012 From: nginx-forum at nginx.us (Fader) Date: Mon, 08 Oct 2012 09:01:28 -0400 Subject: wordpress + cloudflare CDN for images In-Reply-To: References: Message-ID: В голове крутится еще один вариант: # основной vhost блога server { listen 80; server_name someblog1.ru mirrorofsomeblog1.ru; root /var/www/someblog1.ru; index index.php index.html index.htm ... } # vhost для раздачи изображений из папки /gallery на поддоменах server { listen 80; server_name cdn?.someblog1.ru; location ~* /gallery/\(.*).(?:ico|css|js|gif|jpe?g|png)$ { expires max; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; } } прошу помочь привести в надлежащий вид чтобы работало. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231460,231483#msg-231483 From unlexx at gmail.com Mon Oct 8 13:02:26 2012 From: unlexx at gmail.com (Un Lexx) Date: Mon, 8 Oct 2012 19:02:26 +0600 Subject: =?UTF-8?B?UmU6INCU0L7QutC70LDQtCDQvdCwINGF0LDQudC70L7QsNC0OiBwc3FsIGZz?= In-Reply-To: References: Message-ID: без троллинга мне интересно 8 октября 2012 г., 18:59 пользователь Dmitry Simonov написал: > Привет! > > Готовим весьма неожиданный доклад на ХайЛоад про использование в > качестве файл-стореджа PostgreSQL. Речь идёт про объём начиная 0.5 тб, > средний размер файла 65кб, суммарное количество файло более 7.5 млн. > > Тема сложная и изобилующая местами для троллинга. Все желающие > послушать тестовый прогон, на котором можно знатно потроллить > докладчика приглашаются в личку. > > Да, сверху отдатчика файлов стоит Nginx. > > --- > Dmitriy V. Simonov, > Perl & Python programmer > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From swood at fotofor.biz Mon Oct 8 13:03:00 2012 From: swood at fotofor.biz (Anton Kiryushkin) Date: Mon, 8 Oct 2012 17:03:00 +0400 Subject: =?UTF-8?B?UmU6INCU0L7QutC70LDQtCDQvdCwINGF0LDQudC70L7QsNC0OiBwc3FsIGZz?= In-Reply-To: References: Message-ID: И где? В Москве? 8 октября 2012 г., 17:02 пользователь Un Lexx написал: > без троллинга мне интересно > > 8 октября 2012 г., 18:59 пользователь Dmitry Simonov написал: > > Привет! >> >> Готовим весьма неожиданный доклад на ХайЛоад про использование в >> качестве файл-стореджа PostgreSQL. Речь идёт про объём начиная 0.5 тб, >> средний размер файла 65кб, суммарное количество файло более 7.5 млн. >> >> Тема сложная и изобилующая местами для троллинга. Все желающие >> послушать тестовый прогон, на котором можно знатно потроллить >> докладчика приглашаются в личку. >> >> Да, сверху отдатчика файлов стоит Nginx. >> >> --- >> Dmitriy V. Simonov, >> Perl & Python programmer >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Best regards, Anton Kiryushkin -------------- next part -------------- An HTML attachment was scrubbed... URL: From dsimonov at gmail.com Mon Oct 8 13:09:11 2012 From: dsimonov at gmail.com (Dmitry Simonov) Date: Mon, 8 Oct 2012 17:09:11 +0400 Subject: =?UTF-8?B?UmU6INCU0L7QutC70LDQtCDQvdCwINGF0LDQudC70L7QsNC0OiBwc3FsIGZz?= In-Reply-To: References: Message-ID: Все подробности по тестовому прогону я напишу заранее. Мы пока выбираем, - толи прогон будет в виде вебинара, то ли соберём всех в офисе в Москве. Пока можно набрасывать интересующие вопросы. --- Dmitriy V. Simonov, Perl & Python programmer 2012/10/8 Anton Kiryushkin : > И где? В Москве? > > 8 октября 2012 г., 17:02 пользователь Un Lexx написал: > >> без троллинга мне интересно >> >> 8 октября 2012 г., 18:59 пользователь Dmitry Simonov >> написал: >> >>> Привет! >>> >>> Готовим весьма неожиданный доклад на ХайЛоад про использование в >>> качестве файл-стореджа PostgreSQL. Речь идёт про объём начиная 0.5 тб, >>> средний размер файла 65кб, суммарное количество файло более 7.5 млн. >>> >>> Тема сложная и изобилующая местами для троллинга. Все желающие >>> послушать тестовый прогон, на котором можно знатно потроллить >>> докладчика приглашаются в личку. >>> >>> Да, сверху отдатчика файлов стоит Nginx. >>> >>> --- >>> Dmitriy V. Simonov, >>> Perl & Python programmer >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru at nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > -- > Best regards, > Anton Kiryushkin > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From bochkov.sergey at gmail.com Mon Oct 8 13:10:34 2012 From: bochkov.sergey at gmail.com (Sergey Bochkov) Date: Mon, 8 Oct 2012 17:10:34 +0400 Subject: =?UTF-8?B?UmU6INCU0L7QutC70LDQtCDQvdCwINGF0LDQudC70L7QsNC0OiBwc3FsIGZz?= In-Reply-To: References: Message-ID: Очень интересно. 8 октября 2012 г., 17:09 пользователь Dmitry Simonov написал: > Все подробности по тестовому прогону я напишу заранее. Мы пока > выбираем, - толи прогон будет в виде вебинара, то ли соберём всех в > офисе в Москве. > > Пока можно набрасывать интересующие вопросы. > > --- > Dmitriy V. Simonov, > Perl & Python programmer > > > 2012/10/8 Anton Kiryushkin : > > И где? В Москве? > > > > 8 октября 2012 г., 17:02 пользователь Un Lexx > написал: > > > >> без троллинга мне интересно > >> > >> 8 октября 2012 г., 18:59 пользователь Dmitry Simonov < > dsimonov at gmail.com> > >> написал: > >> > >>> Привет! > >>> > >>> Готовим весьма неожиданный доклад на ХайЛоад про использование в > >>> качестве файл-стореджа PostgreSQL. Речь идёт про объём начиная 0.5 тб, > >>> средний размер файла 65кб, суммарное количество файло более 7.5 млн. > >>> > >>> Тема сложная и изобилующая местами для троллинга. Все желающие > >>> послушать тестовый прогон, на котором можно знатно потроллить > >>> докладчика приглашаются в личку. > >>> > >>> Да, сверху отдатчика файлов стоит Nginx. > >>> > >>> --- > >>> Dmitriy V. Simonov, > >>> Perl & Python programmer > >>> _______________________________________________ > >>> nginx-ru mailing list > >>> nginx-ru at nginx.org > >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru > >> > >> > >> > >> _______________________________________________ > >> nginx-ru mailing list > >> nginx-ru at nginx.org > >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > > > > > -- > > Best regards, > > Anton Kiryushkin > > > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru at nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From a.vasilishin at kpi.ua Mon Oct 8 13:12:28 2012 From: a.vasilishin at kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Mon, 08 Oct 2012 16:12:28 +0300 Subject: =?UTF-8?B?UmU6INCU0L7QutC70LDQtCDQvdCwINGF0LDQudC70L7QsNC0OiBwc3FsIGZz?= In-Reply-To: References: Message-ID: <5072D13C.80405@kpi.ua> 08.10.2012 15:59, Dmitry Simonov пишет: > Привет! > > Готовим весьма неожиданный доклад на ХайЛоад про использование в > качестве файл-стореджа PostgreSQL. Речь идёт про объём начиная 0.5 тб, > средний размер файла 65кб, суммарное количество файло более 7.5 млн. > > Тема сложная и изобилующая местами для троллинга. Все желающие > послушать тестовый прогон, на котором можно знатно потроллить > докладчика приглашаются в личку. > > Да, сверху отдатчика файлов стоит Nginx. > Это типа файлы хранить в базе? А нгинкс с каким-нибудь прокси-стор или прокси-кеш? -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From unlexx at gmail.com Mon Oct 8 13:13:54 2012 From: unlexx at gmail.com (Un Lexx) Date: Mon, 8 Oct 2012 19:13:54 +0600 Subject: =?UTF-8?B?UmU6INCU0L7QutC70LDQtCDQvdCwINGF0LDQudC70L7QsNC0OiBwc3FsIGZz?= In-Reply-To: References: Message-ID: я так понимаю шарды постгре которые выбирает nginx в зависимости от запрашиваемого файла если все так то интересны только числовые характеристики - какова утилизация сколько времени занимает добаление нового шарда и файла в шард итд если есть резервирование и тем более динамическое то интересно как именно оно реализовано и во сколько обошлось (хотя бы порядок цифр) 8 октября 2012 г., 19:10 пользователь Sergey Bochkov < bochkov.sergey at gmail.com> написал: > Очень интересно. > > 8 октября 2012 г., 17:09 пользователь Dmitry Simonov написал: > > Все подробности по тестовому прогону я напишу заранее. Мы пока >> выбираем, - толи прогон будет в виде вебинара, то ли соберём всех в >> офисе в Москве. >> >> Пока можно набрасывать интересующие вопросы. >> >> --- >> Dmitriy V. Simonov, >> Perl & Python programmer >> >> >> 2012/10/8 Anton Kiryushkin : >> > И где? В Москве? >> > >> > 8 октября 2012 г., 17:02 пользователь Un Lexx >> написал: >> > >> >> без троллинга мне интересно >> >> >> >> 8 октября 2012 г., 18:59 пользователь Dmitry Simonov < >> dsimonov at gmail.com> >> >> написал: >> >> >> >>> Привет! >> >>> >> >>> Готовим весьма неожиданный доклад на ХайЛоад про использование в >> >>> качестве файл-стореджа PostgreSQL. Речь идёт про объём начиная 0.5 тб, >> >>> средний размер файла 65кб, суммарное количество файло более 7.5 млн. >> >>> >> >>> Тема сложная и изобилующая местами для троллинга. Все желающие >> >>> послушать тестовый прогон, на котором можно знатно потроллить >> >>> докладчика приглашаются в личку. >> >>> >> >>> Да, сверху отдатчика файлов стоит Nginx. >> >>> >> >>> --- >> >>> Dmitriy V. Simonov, >> >>> Perl & Python programmer >> >>> _______________________________________________ >> >>> nginx-ru mailing list >> >>> nginx-ru at nginx.org >> >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> >> >> >> >> >> >> _______________________________________________ >> >> nginx-ru mailing list >> >> nginx-ru at nginx.org >> >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > >> > >> > >> > >> > -- >> > Best regards, >> > Anton Kiryushkin >> > >> > >> > _______________________________________________ >> > nginx-ru mailing list >> > nginx-ru at nginx.org >> > http://mailman.nginx.org/mailman/listinfo/nginx-ru >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum at nginx.us Mon Oct 8 13:16:22 2012 From: nginx-forum at nginx.us (kabelsea) Date: Mon, 08 Oct 2012 09:16:22 -0400 Subject: Request Header Or Cookie Too Large Message-ID: <36fc1441940feed09c0e0d4be0e2eb2d.NginxMailingListRussian@forum.nginx.org> Собственно сабж. Проблема замечена только при прокси редиректе с одного домена на другой, в access log валится один и тот же запрос в огромном кол-ве. В error log пустота. server { .... location / { proxy_pass http://...; proxy_redirect off; } } Куда копать? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231491,231491#msg-231491 From swood at fotofor.biz Mon Oct 8 13:20:09 2012 From: swood at fotofor.biz (Anton Kiryushkin) Date: Mon, 8 Oct 2012 17:20:09 +0400 Subject: =?UTF-8?B?UmU6INCU0L7QutC70LDQtCDQvdCwINGF0LDQudC70L7QsNC0OiBwc3FsIGZz?= In-Reply-To: References: Message-ID: Все же самым гибким было бы вебинар, так как аудитория могла бы вас послушать и за пределами Москвы. 8 октября 2012 г., 17:09 пользователь Dmitry Simonov написал: > Все подробности по тестовому прогону я напишу заранее. Мы пока > выбираем, - толи прогон будет в виде вебинара, то ли соберём всех в > офисе в Москве. > > Пока можно набрасывать интересующие вопросы. > > --- > Dmitriy V. Simonov, > Perl & Python programmer > > > 2012/10/8 Anton Kiryushkin : > > И где? В Москве? > > > > 8 октября 2012 г., 17:02 пользователь Un Lexx > написал: > > > >> без троллинга мне интересно > >> > >> 8 октября 2012 г., 18:59 пользователь Dmitry Simonov < > dsimonov at gmail.com> > >> написал: > >> > >>> Привет! > >>> > >>> Готовим весьма неожиданный доклад на ХайЛоад про использование в > >>> качестве файл-стореджа PostgreSQL. Речь идёт про объём начиная 0.5 тб, > >>> средний размер файла 65кб, суммарное количество файло более 7.5 млн. > >>> > >>> Тема сложная и изобилующая местами для троллинга. Все желающие > >>> послушать тестовый прогон, на котором можно знатно потроллить > >>> докладчика приглашаются в личку. > >>> > >>> Да, сверху отдатчика файлов стоит Nginx. > >>> > >>> --- > >>> Dmitriy V. Simonov, > >>> Perl & Python programmer > >>> _______________________________________________ > >>> nginx-ru mailing list > >>> nginx-ru at nginx.org > >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru > >> > >> > >> > >> _______________________________________________ > >> nginx-ru mailing list > >> nginx-ru at nginx.org > >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > > > > > -- > > Best regards, > > Anton Kiryushkin > > > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru at nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Best regards, Anton Kiryushkin -------------- next part -------------- An HTML attachment was scrubbed... URL: From panfilov at sports.ru Mon Oct 8 13:22:44 2012 From: panfilov at sports.ru (=?KOI8-R?B?7cnIwcnMIPDBzsbJzM/X?=) Date: Mon, 8 Oct 2012 17:22:44 +0400 Subject: =?UTF-8?B?UmU6INCU0L7QutC70LDQtCDQvdCwINGF0LDQudC70L7QsNC0OiBwc3FsIGZz?= In-Reply-To: References: Message-ID: Нам тоже очень интересно. Есть ли какая-то информация по числам, датам? 8 октября 2012 г., 17:20 пользователь Anton Kiryushkin написал: > Все же самым гибким было бы вебинар, так как аудитория могла бы вас > послушать и за пределами Москвы. > > 8 октября 2012 г., 17:09 пользователь Dmitry Simonov написал: > > Все подробности по тестовому прогону я напишу заранее. Мы пока >> выбираем, - толи прогон будет в виде вебинара, то ли соберём всех в >> офисе в Москве. >> >> Пока можно набрасывать интересующие вопросы. >> >> --- >> Dmitriy V. Simonov, >> Perl & Python programmer >> >> >> 2012/10/8 Anton Kiryushkin : >> > И где? В Москве? >> > >> > 8 октября 2012 г., 17:02 пользователь Un Lexx >> написал: >> > >> >> без троллинга мне интересно >> >> >> >> 8 октября 2012 г., 18:59 пользователь Dmitry Simonov < >> dsimonov at gmail.com> >> >> написал: >> >> >> >>> Привет! >> >>> >> >>> Готовим весьма неожиданный доклад на ХайЛоад про использование в >> >>> качестве файл-стореджа PostgreSQL. Речь идёт про объём начиная 0.5 тб, >> >>> средний размер файла 65кб, суммарное количество файло более 7.5 млн. >> >>> >> >>> Тема сложная и изобилующая местами для троллинга. Все желающие >> >>> послушать тестовый прогон, на котором можно знатно потроллить >> >>> докладчика приглашаются в личку. >> >>> >> >>> Да, сверху отдатчика файлов стоит Nginx. >> >>> >> >>> --- >> >>> Dmitriy V. Simonov, >> >>> Perl & Python programmer >> >>> _______________________________________________ >> >>> nginx-ru mailing list >> >>> nginx-ru at nginx.org >> >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> >> >> >> >> >> >> _______________________________________________ >> >> nginx-ru mailing list >> >> nginx-ru at nginx.org >> >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > >> > >> > >> > >> > -- >> > Best regards, >> > Anton Kiryushkin >> > >> > >> > _______________________________________________ >> > nginx-ru mailing list >> > nginx-ru at nginx.org >> > http://mailman.nginx.org/mailman/listinfo/nginx-ru >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > > -- > Best regards, > Anton Kiryushkin > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Панфилов Михаил Старший системный администратор www.sports.ru + 7 903 578 4067 -------------- next part -------------- An HTML attachment was scrubbed... URL: From a.vasilishin at kpi.ua Mon Oct 8 13:25:02 2012 From: a.vasilishin at kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Mon, 08 Oct 2012 16:25:02 +0300 Subject: =?UTF-8?B?UmU6INCU0L7QutC70LDQtCDQvdCwINGF0LDQudC70L7QsNC0OiBwc3FsIGZz?= In-Reply-To: References: Message-ID: <5072D42E.60102@kpi.ua> Очень интересует реализация чтения файла с произвольного места ranges -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From kav at karagodov.name Mon Oct 8 13:26:24 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Mon, 8 Oct 2012 17:26:24 +0400 Subject: =?UTF-8?B?UmU6INCU0L7QutC70LDQtCDQvdCwINGF0LDQudC70L7QsNC0OiBwc3FsIGZz?= In-Reply-To: References: Message-ID: <846590F5-C148-4EFC-96BD-5EC0A6B2B666@karagodov.name> On 08.10.2012, at 17:22, Михаил Панфилов wrote: > Нам тоже очень интересно. > Есть ли какая-то информация по числам, датам? +1 From onokonem at gmail.com Mon Oct 8 15:13:44 2012 From: onokonem at gmail.com (Daniel Podolsky) Date: Mon, 8 Oct 2012 19:13:44 +0400 Subject: =?UTF-8?B?UmU6INCU0L7QutC70LDQtCDQvdCwINGF0LDQudC70L7QsNC0OiBwc3FsIGZz?= In-Reply-To: <5072D13C.80405@kpi.ua> References: <5072D13C.80405@kpi.ua> Message-ID: > Это типа файлы хранить в базе? А нгинкс с каким-нибудь прокси-стор или > прокси-кеш? совсем другие проблемы решались From antoney at devel.bbfinance.net Mon Oct 8 15:57:42 2012 From: antoney at devel.bbfinance.net (Anton Zaytsev) Date: Mon, 08 Oct 2012 18:57:42 +0300 Subject: =?UTF-8?B?0JfQsNC/0LjRgdGMINC/0LXRgNC10LzQtdC90L3QvtC5INCyINGE0LDQudC7?= Message-ID: <5072F7F6.6030903@devel.bbfinance.net> Здравствуйте! Подскажите, пожалуйста, можно ли записать значение переменной в файл? Идея - по определенным условиям записывать IP, для последующей блокировки в iptables. Или если есть какое-то более красивое решение... Спасибо Антон From igor at sysoev.ru Mon Oct 8 16:01:54 2012 From: igor at sysoev.ru (Igor Sysoev) Date: Mon, 8 Oct 2012 20:01:54 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQv9C40YHRjCDQv9C10YDQtdC80LXQvdC90L7QuSDQsiDRhNCw0Lk=?= =?UTF-8?B?0Ls=?= In-Reply-To: <5072F7F6.6030903@devel.bbfinance.net> References: <5072F7F6.6030903@devel.bbfinance.net> Message-ID: On Oct 8, 2012, at 19:57 , Anton Zaytsev wrote: > Здравствуйте! > > Подскажите, пожалуйста, можно ли записать значение переменной в файл? > Идея - по определенным условиям записывать IP, для последующей блокировки в iptables. > > Или если есть какое-то более красивое решение... http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log -- Igor Sysoev http://nginx.com/support.html From ne at vbart.ru Mon Oct 8 16:19:34 2012 From: ne at vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Mon, 8 Oct 2012 20:19:34 +0400 Subject: Request Header Or Cookie Too Large In-Reply-To: <36fc1441940feed09c0e0d4be0e2eb2d.NginxMailingListRussian@forum.nginx.org> References: <36fc1441940feed09c0e0d4be0e2eb2d.NginxMailingListRussian@forum.nginx.org> Message-ID: <201210082019.34225.ne@vbart.ru> On Monday 08 October 2012 17:16:22 kabelsea wrote: > Собственно сабж. > > Проблема замечена только при прокси редиректе с одного домена на другой, в > access log валится один и тот же запрос в огромном кол-ве. > В error log пустота. > > server { > .... > location / { > proxy_pass http://...; > proxy_redirect off; > } > } > > Куда копать? > В сторону запроса. Ошибка говорит сама за себя. -- Валентин Бартенев http://nginx.com/support.html From nginx-forum at nginx.us Mon Oct 8 23:52:36 2012 From: nginx-forum at nginx.us (Ar3s) Date: Mon, 08 Oct 2012 19:52:36 -0400 Subject: =?UTF-8?B?0LfQsNGJ0LjRgtCwINGB0YHRi9C70L7Qug==?= Message-ID: <45600e8cfb90dc3545d10ae92c0672ed.NginxMailingListRussian@forum.nginx.org> Добрый день. Прочитав статью на форуме uppod.ru/talk_2697 - решил аналогичное сделать у себя на сайте. Написал следующий конфиг: location / { root /var/www/work; index index.html index.htm index.php; rewrite ^/video/(w+)/(.+)$ /get.php?hash=$1&filename=$2last; } location /video { root /var/www/work; internal; flv; } не воркает. Система настроена по принципу nginx=>php-cgi через unix сокеты. Подскажите уважаемые знатоки где же я накосячил... Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231504,231504#msg-231504 From nginx-forum at nginx.us Tue Oct 9 06:03:14 2012 From: nginx-forum at nginx.us (kaaron) Date: Tue, 09 Oct 2012 02:03:14 -0400 Subject: =?UTF-8?B?0J3QtSDQvNC+0LPRgyDRgNCw0LfQvtCx0YDQsNGC0Ywg0YEgbG9jYXRpb24=?= Message-ID: <9798f92863d5d8c5f7b3126ca5a951e6.NginxMailingListRussian@forum.nginx.org> Добрый день! Только недавно начал разбираться с nginx и ничего не могу понять! Есть задачи на сайте закрыть доступ на все файлы например с расширение .txt но разрешить доступ к например robots.txt Я написал так location ~* \.(txt)$ { access_log off; rewrite ^ http://injapan.nevabank.com/error? permanent; } Доступ к txt файлам я закрыл но вот дать доступ на robots.txt не знаю как. Подскажите как сделать! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231513,231513#msg-231513 From igor at sysoev.ru Tue Oct 9 06:06:05 2012 From: igor at sysoev.ru (Igor Sysoev) Date: Tue, 9 Oct 2012 10:06:05 +0400 Subject: =?UTF-8?B?UmU6INCd0LUg0LzQvtCz0YMg0YDQsNC30L7QsdGA0LDRgtGMINGBIGxvY2F0aW9u?= In-Reply-To: <9798f92863d5d8c5f7b3126ca5a951e6.NginxMailingListRussian@forum.nginx.org> References: <9798f92863d5d8c5f7b3126ca5a951e6.NginxMailingListRussian@forum.nginx.org> Message-ID: <0E55CF26-D441-4912-ABE2-076FBCFDC65C@sysoev.ru> On Oct 9, 2012, at 10:03 , kaaron wrote: > Добрый день! > Только недавно начал разбираться с nginx и ничего не могу понять! > Есть задачи на сайте закрыть доступ на все файлы например с расширение .txt > но разрешить доступ к например robots.txt > > Я написал так > > location ~* \.(txt)$ { > access_log off; > rewrite ^ http://injapan.nevabank.com/error? permanent; > } > > Доступ к txt файлам я закрыл но вот дать доступ на robots.txt не знаю как. > Подскажите как сделать! location ~ \.txt$ { access_log off; return 301 http://injapan.nevabank.com/error; } location = /robots.txt { } -- Igor Sysoev http://nginx.com/support.html From kav at karagodov.name Tue Oct 9 06:07:48 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Tue, 9 Oct 2012 10:07:48 +0400 Subject: =?UTF-8?B?UmU6INCd0LUg0LzQvtCz0YMg0YDQsNC30L7QsdGA0LDRgtGMINGBIGxvY2F0aW9u?= In-Reply-To: <9798f92863d5d8c5f7b3126ca5a951e6.NginxMailingListRussian@forum.nginx.org> References: <9798f92863d5d8c5f7b3126ca5a951e6.NginxMailingListRussian@forum.nginx.org> Message-ID: location = /robots.txt { root /etc; } внимательно читаем http://nginx.org/ru/docs/http/ngx_http_core_module.html#location On 09.10.2012, at 10:03, kaaron wrote: > Добрый день! > Только недавно начал разбираться с nginx и ничего не могу понять! > Есть задачи на сайте закрыть доступ на все файлы например с расширение .txt > но разрешить доступ к например robots.txt > > Я написал так > > location ~* \.(txt)$ { > access_log off; > rewrite ^ http://injapan.nevabank.com/error? permanent; > } > > Доступ к txt файлам я закрыл но вот дать доступ на robots.txt не знаю как. > Подскажите как сделать! > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231513,231513#msg-231513 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Tue Oct 9 06:14:47 2012 From: nginx-forum at nginx.us (kaaron) Date: Tue, 09 Oct 2012 02:14:47 -0400 Subject: =?UTF-8?B?UmU6INCd0LUg0LzQvtCz0YMg0YDQsNC30L7QsdGA0LDRgtGMINGBIGxvY2F0aW9u?= In-Reply-To: References: Message-ID: Выдает 404 Not Found я боюсь что так поисковые боты не индексируют сайт Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231513,231516#msg-231516 From kav at karagodov.name Tue Oct 9 06:15:58 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Tue, 9 Oct 2012 10:15:58 +0400 Subject: =?UTF-8?B?UmU6INCd0LUg0LzQvtCz0YMg0YDQsNC30L7QsdGA0LDRgtGMINGBIGxvY2F0aW9u?= In-Reply-To: References: Message-ID: <3CD4868B-C988-48EA-B0DF-433BACE3C887@karagodov.name> там, куда у Вас указывает root должен лежать искомый файл и логи посмотреть было бы хорошо On 09.10.2012, at 10:14, kaaron wrote: > Выдает 404 Not Found я боюсь что так поисковые боты не индексируют сайт > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231513,231516#msg-231516 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From ewgraf at gmail.com Tue Oct 9 06:31:43 2012 From: ewgraf at gmail.com (Sokolov Evgeniy) Date: Tue, 9 Oct 2012 12:31:43 +0600 Subject: =?UTF-8?B?UmU6INCU0L7QutC70LDQtCDQvdCwINGF0LDQudC70L7QsNC0OiBwc3FsIGZz?= In-Reply-To: References: <5072D13C.80405@kpi.ua> Message-ID: Хотелось бы послушать в качестве вебинара, присутствовать очно нет возможности, тема интересная 8 октября 2012 г., 21:13 пользователь Daniel Podolsky написал: > > Это типа файлы хранить в базе? А нгинкс с каким-нибудь прокси-стор или > > прокси-кеш? > совсем другие проблемы решались > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- -- С уважением, Соколов Евгений -------------- next part -------------- An HTML attachment was scrubbed... URL: From newbiecraft at gmail.com Tue Oct 9 06:33:29 2012 From: newbiecraft at gmail.com (=?KOI8-R?B?7snLz8zByiDtxc7E0cXX?=) Date: Tue, 9 Oct 2012 10:33:29 +0400 Subject: =?UTF-8?B?UmU6INCU0L7QutC70LDQtCDQvdCwINGF0LDQudC70L7QsNC0OiBwc3FsIGZz?= In-Reply-To: References: <5072D13C.80405@kpi.ua> Message-ID: Интересно. Подпишусь на это дело. 9 октября 2012 г., 10:31 пользователь Sokolov Evgeniy написал: > Хотелось бы послушать в качестве вебинара, присутствовать очно нет > возможности, тема интересная > > 8 октября 2012 г., 21:13 пользователь Daniel Podolsky написал: > > > Это типа файлы хранить в базе? А нгинкс с каким-нибудь прокси-стор или >> > прокси-кеш? >> совсем другие проблемы решались >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > > -- > -- > С уважением, Соколов Евгений > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum at nginx.us Tue Oct 9 06:54:04 2012 From: nginx-forum at nginx.us (kaaron) Date: Tue, 09 Oct 2012 02:54:04 -0400 Subject: =?UTF-8?B?UmU6INCd0LUg0LzQvtCz0YMg0YDQsNC30L7QsdGA0LDRgtGMINGBIGxvY2F0aW9u?= In-Reply-To: <3CD4868B-C988-48EA-B0DF-433BACE3C887@karagodov.name> References: <3CD4868B-C988-48EA-B0DF-433BACE3C887@karagodov.name> Message-ID: А скажите если у меня например несколько таких файлов в разных директориях сайта и нада чтоб они все были доступны можно ли указывать несколько root Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231513,231520#msg-231520 From kav at karagodov.name Tue Oct 9 07:01:02 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Tue, 9 Oct 2012 11:01:02 +0400 Subject: =?UTF-8?B?UmU6INCd0LUg0LzQvtCz0YMg0YDQsNC30L7QsdGA0LDRgtGMINGBIGxvY2F0aW9u?= In-Reply-To: References: <3CD4868B-C988-48EA-B0DF-433BACE3C887@karagodov.name> Message-ID: <6EF09B19-D3FC-43FD-914B-12928032F312@karagodov.name> On 09.10.2012, at 10:54, "kaaron" wrote: > А скажите если у меня например несколько таких файлов в разных директориях > сайта и нада чтоб они все были доступны можно ли указывать несколько root до лампочки сколько у каждого сайта обычно свой root и в конфиг каждого сайта можно за-include-ить: location = /robots.txt { } location ~ \.txt$ { access_log off; return 301 http://injapan.nevabank.com/error; } > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231513,231520#msg-231520 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From postmaster at softsearch.ru Tue Oct 9 11:16:24 2012 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Tue, 9 Oct 2012 15:16:24 +0400 Subject: =?UTF-8?B?UmU6INC30LDRidC40YLQsCDRgdGB0YvQu9C+0Lo=?= In-Reply-To: <45600e8cfb90dc3545d10ae92c0672ed.NginxMailingListRussian@forum.nginx.org> References: <45600e8cfb90dc3545d10ae92c0672ed.NginxMailingListRussian@forum.nginx.org> Message-ID: <1627412547.20121009151624@softsearch.ru> Здравствуйте, Ar3s. http://nginx.org/ru/docs/http/ngx_http_secure_link_module.html ? -- С уважением, Михаил mailto:postmaster at softsearch.ru From a.vasilishin at kpi.ua Tue Oct 9 11:54:57 2012 From: a.vasilishin at kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Tue, 09 Oct 2012 14:54:57 +0300 Subject: =?UTF-8?B?UmU6INC30LDRidC40YLQsCDRgdGB0YvQu9C+0Lo=?= In-Reply-To: <45600e8cfb90dc3545d10ae92c0672ed.NginxMailingListRussian@forum.nginx.org> References: <45600e8cfb90dc3545d10ae92c0672ed.NginxMailingListRussian@forum.nginx.org> Message-ID: <50741091.1060104@kpi.ua> 09.10.2012 2:52, Ar3s пишет: > Добрый день. Прочитав статью на форуме uppod.ru/talk_2697 - решил > аналогичное сделать у себя на сайте. > Написал следующий конфиг: > > location / { > root /var/www/work; > index index.html index.htm index.php; > rewrite ^/video/(w+)/(.+)$ > /get.php?hash=$1&filename=$2last; > } > > location /video { > root /var/www/work; > internal; > flv; > } > > не воркает. Система настроена по принципу nginx=>php-cgi через unix сокеты. > Подскажите уважаемые знатоки где же я накосячил... В том куске конфига что Вы привели как раз не видно обращения к php-cgi. Опять же не понятно что у Вас в скрипте get.php А вообще, http://nginx.org/ru/docs/ngx_core_module.html#debug_connection очень помогает -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From nginx-forum at nginx.us Tue Oct 9 13:18:48 2012 From: nginx-forum at nginx.us (kaaron) Date: Tue, 09 Oct 2012 09:18:48 -0400 Subject: =?UTF-8?B?UmU6INCd0LUg0LzQvtCz0YMg0YDQsNC30L7QsdGA0LDRgtGMINGBIGxvY2F0aW9u?= =?UTF-8?B?MQ==?= In-Reply-To: <3CD4868B-C988-48EA-B0DF-433BACE3C887@karagodov.name> References: <3CD4868B-C988-48EA-B0DF-433BACE3C887@karagodov.name> Message-ID: <0745f984219588e728b9df64d4a2e732.NginxMailingListRussian@forum.nginx.org> А скажите если у меня например несколько таких файлов в разных директориях сайта и нада чтоб они все были доступны можно ли указывать несколько root Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231513,231521#msg-231521 From vsjcfm at gmail.com Tue Oct 9 13:28:00 2012 From: vsjcfm at gmail.com (Sayetsky Anton) Date: Tue, 9 Oct 2012 16:28:00 +0300 Subject: =?UTF-8?B?UmU6INCd0LUg0LzQvtCz0YMg0YDQsNC30L7QsdGA0LDRgtGMINGBIGxvY2F0aW9u?= =?UTF-8?B?MQ==?= In-Reply-To: <0745f984219588e728b9df64d4a2e732.NginxMailingListRussian@forum.nginx.org> References: <3CD4868B-C988-48EA-B0DF-433BACE3C887@karagodov.name> <0745f984219588e728b9df64d4a2e732.NginxMailingListRussian@forum.nginx.org> Message-ID: Во втором классе следует русский язык учить, а не вебсерверы настраивать. From nginx-forum at nginx.us Tue Oct 9 13:55:26 2012 From: nginx-forum at nginx.us (varsy) Date: Tue, 09 Oct 2012 09:55:26 -0400 Subject: =?UTF-8?B?UmU6INCU0LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQstC40YDRgtGD0LDQu9GM0L0=?= =?UTF-8?B?0YvQtSDRhdC+0YHRgtGLINGBIEhUVFBT?= In-Reply-To: <201210081516.01060.ne@vbart.ru> References: <201210081516.01060.ne@vbart.ru> Message-ID: Да, это параллельная проблема, но ее можно обойти, задавая логфайлы не для каждого хоста, а, например, один логфайл на группу хостов. Но это не решает основную проблему - можно ли сделать динамическую "выдачу" нужного сертификата, в зависимости от запроса? Все мои попытки подсунуть переменную в директиву ssl_certificate не увенчались успехом, nginx не желает делать reload. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231420,231537#msg-231537 From igor at sysoev.ru Tue Oct 9 13:56:44 2012 From: igor at sysoev.ru (Igor Sysoev) Date: Tue, 9 Oct 2012 17:56:44 +0400 Subject: =?UTF-8?B?UmU6INCU0LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQstC40YDRgtGD0LDQu9GM0L0=?= =?UTF-8?B?0YvQtSDRhdC+0YHRgtGLINGBIEhUVFBT?= In-Reply-To: References: <201210081516.01060.ne@vbart.ru> Message-ID: <3782C187-BD22-4ABA-A298-6569B125BB8C@sysoev.ru> On Oct 9, 2012, at 17:55 , varsy wrote: > Да, это параллельная проблема, но ее можно обойти, задавая логфайлы не для > каждого хоста, а, например, один логфайл на группу хостов. > > Но это не решает основную проблему - можно ли сделать динамическую "выдачу" > нужного сертификата, в зависимости от запроса? Все мои попытки подсунуть > переменную в директиву ssl_certificate не увенчались успехом, nginx не > желает делать reload. Сейчас - нельзя. -- Igor Sysoev http://nginx.com/support.html From nginx-forum at nginx.us Tue Oct 9 15:02:06 2012 From: nginx-forum at nginx.us (lazycommit) Date: Tue, 09 Oct 2012 11:02:06 -0400 Subject: nginx+php5-fpm = 404 In-Reply-To: <1a5060c6182218b916dfda667c3cf9b5.NginxMailingListRussian@forum.nginx.org> References: <1c797cce661365f46e819325bf6ed25d.NginxMailingListRussian@forum.nginx.org> <1a5060c6182218b916dfda667c3cf9b5.NginxMailingListRussian@forum.nginx.org> Message-ID: <6d894197f4c442f00e67b6fb7340d06e.NginxMailingListRussian@forum.nginx.org> А где именно он был неправильный тяжело написать. Но за хелпом лезем. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,212964,231544#msg-231544 From swood at fotofor.biz Tue Oct 9 17:53:07 2012 From: swood at fotofor.biz (Anton Kiryushkin) Date: Tue, 9 Oct 2012 21:53:07 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQv9C40YHRjCDQv9C10YDQtdC80LXQvdC90L7QuSDQsiDRhNCw0Lk=?= =?UTF-8?B?0Ls=?= In-Reply-To: <5072F7F6.6030903@devel.bbfinance.net> References: <5072F7F6.6030903@devel.bbfinance.net> Message-ID: Можно через access_log писать $remote_addr в лог. Лично я написал на lua скрипт для динамического блока на уровне nginx. 08.10.2012 19:58 пользователь "Anton Zaytsev" написал: > Здравствуйте! > > Подскажите, пожалуйста, можно ли записать значение переменной в файл? > Идея - по определенным условиям записывать IP, для последующей блокировки > в iptables. > > Или если есть какое-то более красивое решение... > > Спасибо > Антон > > ______________________________**_________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/**mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum at nginx.us Tue Oct 9 18:27:48 2012 From: nginx-forum at nginx.us (Ar3s) Date: Tue, 09 Oct 2012 14:27:48 -0400 Subject: =?UTF-8?B?UmU6INC30LDRidC40YLQsCDRgdGB0YvQu9C+0Lo=?= In-Reply-To: <50741091.1060104@kpi.ua> References: <50741091.1060104@kpi.ua> Message-ID: <05ae2e35ce96a598d591a3bc089817cd.NginxMailingListRussian@forum.nginx.org> nginx server { listen 80; server_name site.ru; access_log /dev/null; location / { root /var/www/work; index index.html index.htm index.php; # rewrite ^/video/(w+)/(.+)$ /get.php?hash=$1&filename=$2last; rewrite ^/video/(\w+)/(.+)$ /get.php?hash=$1&filename=$2 last; } # location /video { location ~ ^/video/.*\.flv$ { root /var/www/work; internal; flv; } location ~ \.php$ { fastcgi_pass unix:/tmp/.fastcgi.www-data/socket; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/work/$fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; include fastcgi_params; proxy_send_timeout 360; proxy_read_timeout 360; } ------------------------------------------------------------------------------------------------------- get.php -------------------------------------------------------------------------------------------- нарыл уже в сети кучу примеров. Но не работает хоть тресни. Подозреваю что дело либо в php скрипте либо в моих настройках либо в моих руках... Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231504,231550#msg-231550 From a.vasilishin at kpi.ua Tue Oct 9 20:34:02 2012 From: a.vasilishin at kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Tue, 09 Oct 2012 23:34:02 +0300 Subject: =?UTF-8?B?UmU6INC30LDRidC40YLQsCDRgdGB0YvQu9C+0Lo=?= In-Reply-To: <05ae2e35ce96a598d591a3bc089817cd.NginxMailingListRussian@forum.nginx.org> References: <50741091.1060104@kpi.ua> <05ae2e35ce96a598d591a3bc089817cd.NginxMailingListRussian@forum.nginx.org> Message-ID: <50748A3A.30100@kpi.ua> 09.10.2012 21:27, Ar3s пишет: > nginx > > server { > listen 80; > server_name site.ru; > > access_log /dev/null; > > location / { > root /var/www/work; > index index.html index.htm index.php; > # rewrite ^/video/(w+)/(.+)$ > /get.php?hash=$1&filename=$2last; > rewrite ^/video/(\w+)/(.+)$ /get.php?hash=$1&filename=$2 > last; > } > > # location /video { > location ~ ^/video/.*\.flv$ { > root /var/www/work; > internal; > flv; > } > location ~ \.php$ { > fastcgi_pass unix:/tmp/.fastcgi.www-data/socket; > fastcgi_index index.php; > fastcgi_param SCRIPT_FILENAME > /var/www/work/$fastcgi_script_name; > fastcgi_param QUERY_STRING $query_string; > fastcgi_param REQUEST_METHOD $request_method; > fastcgi_param CONTENT_TYPE $content_type; > fastcgi_param CONTENT_LENGTH $content_length; > include fastcgi_params; > proxy_send_timeout 360; > proxy_read_timeout 360; > } > > ------------------------------------------------------------------------------------------------------- > get.php > $hash =$_GET['hash']; > $filename = $_GET['filename']; > $ip = md5($_SERVER['REMOTE_ADDR'].'key'); > if ($hash == $ip){ > $url=$_SERVER['REQUEST_URI']; > $url=explode('?',$url); > $url=$url[1]; > if (isset($url)){$filename .='?'.$url;} > header('Content-Type: video/x-flv'); > header('X-Accel-Redirect:/video/'.$filename); > die(); > } > echo 'NO'; > ?> > -------------------------------------------------------------------------------------------- > нарыл уже в сети кучу примеров. Но не работает хоть тресни. Подозреваю что > дело либо в php скрипте либо в моих настройках либо в моих руках... > > Повторюсь еще раз, включите дебаг лог для своего айпи, с виду все нормально. Первое что может быть, не правильно считается хеш потому что $_SERVER['REMOTE_ADDR'] будет всегда 127.0.0.1, надо либо передавать на бекенд каким-нибудь заголовком типа X-Real-IP REMOTE_ADDR и соответвенно скрипт подправить, либо ставить апачи mod_rpaf. Для чисто раздающего сервера разницы в потребляемых ресурсах между php-cgi и апачи на этом скрипте не будет никакой. Второе, проблема с путем,в дебаг логе это будет отчетливо видно, но по конфигам вроде этой проблемы не должно быть. -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From server_inc at list.ru Tue Oct 9 23:21:16 2012 From: server_inc at list.ru (=?KOI8-R?Q?=F3=D4=C1=CE=C9=D3=CC=C1=D7?=) Date: Wed, 10 Oct 2012 02:21:16 +0300 Subject: =?UTF-8?B?UmU6INC30LDRidC40YLQsCDRgdGB0YvQu9C+0Lo=?= In-Reply-To: <50748A3A.30100@kpi.ua> References: <50741091.1060104@kpi.ua> <05ae2e35ce96a598d591a3bc089817cd.NginxMailingListRussian@forum.nginx.org> <50748A3A.30100@kpi.ua> Message-ID: <5074B16C.5040003@list.ru> 09.10.2012 23:34, Андрей Василишин пишет: > [...] > Первое что может быть, не правильно считается хеш потому что > $_SERVER['REMOTE_ADDR'] будет всегда 127.0.0.1, О чем вы говорите? У него же fcgi протокол. $_SERVER['REMOTE_ADDR'] будет нормально отрабатывать. Это при использовании proxy практически нет смысла юзать $_SERVER['REMOTE_ADDR'] . From nginx-forum at nginx.us Wed Oct 10 05:36:08 2012 From: nginx-forum at nginx.us (kaaron) Date: Wed, 10 Oct 2012 01:36:08 -0400 Subject: =?UTF-8?B?0J3Rg9C20L3QsCDQv9C+0LzQvtGJ0Ywg0YEgbG9jYXRpb24=?= Message-ID: <2a49eaaa55b60d46fdc6664d66f26b76.NginxMailingListRussian@forum.nginx.org> Добрый день! Скажите есть такая задача: Есть сайт в связка Apache+nginx необходимо на nginx закрыть доступ на все файлы на сайте с расширениями (txt, log),необходимо чтоб nginx отдавал все статику кроме запрещенных, а апач обрабатывал все динамику (php). Подскажите как написать подобные location или как это сделать? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231559,231559#msg-231559 From nginx-forum at nginx.us Wed Oct 10 05:44:11 2012 From: nginx-forum at nginx.us (kaaron) Date: Wed, 10 Oct 2012 01:44:11 -0400 Subject: =?UTF-8?B?UmU6INCd0YPQttC90LAg0L/QvtC80L7RidGMINGBIGxvY2F0aW9u?= In-Reply-To: <2a49eaaa55b60d46fdc6664d66f26b76.NginxMailingListRussian@forum.nginx.org> References: <2a49eaaa55b60d46fdc6664d66f26b76.NginxMailingListRussian@forum.nginx.org> Message-ID: <142c9d7cedb162116d561c14ff033f06.NginxMailingListRussian@forum.nginx.org> поясню точнее ! Например запрещается доступ на все файлы кроме перечисленных в location. php обрабатывается apache Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231559,231560#msg-231560 From kav at karagodov.name Wed Oct 10 06:31:56 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Wed, 10 Oct 2012 10:31:56 +0400 Subject: =?UTF-8?B?UmU6INCd0YPQttC90LAg0L/QvtC80L7RidGMINGBIGxvY2F0aW9u?= In-Reply-To: <142c9d7cedb162116d561c14ff033f06.NginxMailingListRussian@forum.nginx.org> References: <2a49eaaa55b60d46fdc6664d66f26b76.NginxMailingListRussian@forum.nginx.org> <142c9d7cedb162116d561c14ff033f06.NginxMailingListRussian@forum.nginx.org> Message-ID: <706EC126-48BA-427B-8DE8-AFE7FDF6EBDE@karagodov.name> т.е. доки читать лень? и в рассылке поискать тоже лень? http://nginx.org/ru/docs/example.html http://nginx.org/ru/docs/http/request_processing.html и тд http://nginx.org/ru/ On 10.10.2012, at 09:44, kaaron wrote: > поясню точнее ! > Например запрещается доступ на все файлы кроме перечисленных в location. > php обрабатывается apache > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231559,231560#msg-231560 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From pavel2000 at ngs.ru Wed Oct 10 06:33:47 2012 From: pavel2000 at ngs.ru (Pavel V.) Date: Wed, 10 Oct 2012 13:33:47 +0700 Subject: =?UTF-8?B?UmU6INCd0YPQttC90LAg0L/QvtC80L7RidGMINGBIGxvY2F0aW9u?= In-Reply-To: <142c9d7cedb162116d561c14ff033f06.NginxMailingListRussian@forum.nginx.org> References: <2a49eaaa55b60d46fdc6664d66f26b76.NginxMailingListRussian@forum.nginx.org> <142c9d7cedb162116d561c14ff033f06.NginxMailingListRussian@forum.nginx.org> Message-ID: <44527189.20121010133347@ngs.ru> Здравствуйте, kaaron. Вы писали 10 октября 2012 г., 12:44:11: > поясню точнее ! > Например запрещается доступ на все файлы кроме перечисленных в location. > php обрабатывается apache Документация содержит внятные примеры, например тут: http://nginx.org/ru/docs/http/ngx_http_core_module.html#location . Разницы, где читать - в листе рассылки или на официальном сайте - нет. -- С уважением, Pavel mailto:pavel2000 at ngs.ru From v.v.biriukov at gmail.com Wed Oct 10 10:43:18 2012 From: v.v.biriukov at gmail.com (Viacheslav Biriukov) Date: Wed, 10 Oct 2012 13:43:18 +0300 Subject: =?UTF-8?B?0KHQuNC90YXRgNC+0L3QuNC30LDRhtC40Y8gbmdpbngg0YHQvtC10LTQuNC90LU=?= =?UTF-8?B?0L3QuNC5?= Message-ID: Привет. Есть кластер active/passive из двух nginx балансеров. Хочется, что бы при переезде VIP с активной на пассивную (к примеру для апдейта ядра, ребута и т.д.) не терялись соединения. Большие файлы продолжали отдаваться клиентам. Подскажите пожалуйста как это правильно реализовать. -- Viacheslav Biriukov BR -------------- next part -------------- An HTML attachment was scrubbed... URL: From pr1 at pr1.ru Wed Oct 10 10:46:41 2012 From: pr1 at pr1.ru (Andrey Feldman) Date: Wed, 10 Oct 2012 14:46:41 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: Message-ID: Привет. Это умеет делать, например, LVS, у него по-дефолту включена синхронизация соединений, если я не ошибаюсь. Ставить его, понятное дело, надо перед nginx-ом. 2012/10/10 Viacheslav Biriukov : > Привет. > > Есть кластер active/passive из двух nginx балансеров. Хочется, что бы при > переезде VIP с активной на пассивную (к примеру для апдейта ядра, ребута и > т.д.) не терялись соединения. Большие файлы продолжали отдаваться клиентам. > > Подскажите пожалуйста как это правильно реализовать. > > > -- > Viacheslav Biriukov > BR > > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- -- Andrey Feldman From v.v.biriukov at gmail.com Wed Oct 10 10:58:56 2012 From: v.v.biriukov at gmail.com (Viacheslav Biriukov) Date: Wed, 10 Oct 2012 13:58:56 +0300 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: Message-ID: Спасибо, смотрел на него. С ним не совсем понятно, как работает его master и backup. К примеру: если master падает -> обслуживать клиентов начинает backup -> подымается master -> падает backup. Будут ли в этом случае норльмано синхронизироваться коннекты? Или нужно натсраивать по два демона master-backup на двух нодах с разными --syncid? Спасибо 10 октября 2012 г., 13:46 пользователь Andrey Feldman написал: > Привет. > Это умеет делать, например, LVS, у него по-дефолту включена > синхронизация соединений, если я не ошибаюсь. Ставить его, понятное > дело, надо перед nginx-ом. > > 2012/10/10 Viacheslav Biriukov : > > Привет. > > > > Есть кластер active/passive из двух nginx балансеров. Хочется, что бы при > > переезде VIP с активной на пассивную (к примеру для апдейта ядра, ребута > и > > т.д.) не терялись соединения. Большие файлы продолжали отдаваться > клиентам. > > > > Подскажите пожалуйста как это правильно реализовать. > > > > > > -- > > Viacheslav Biriukov > > BR > > > > > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru at nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > -- > -- > Andrey Feldman > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Viacheslav Biriukov BR http://biriukov.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From ak at kdj.ru Wed Oct 10 11:47:40 2012 From: ak at kdj.ru (ak@kdj,ru) Date: Wed, 10 Oct 2012 15:47:40 +0400 Subject: =?UTF-8?B?0YPQv9GA0LDQstC70LXQvdC40LUgZmFzdGNnaV9wYXNzX2hlYWRlciAg0YfQtdGA?= =?UTF-8?B?0LXQtyDQv9C10YDQtdC80LXQvdC90YPRjiDQuCDRg9GB0LvQvtCy0LjQtSBp?= =?UTF-8?B?ZigkYXJnXyk=?= Message-ID: <5075605C.30703@kdj.ru> nginx version: nginx/1.2.4 приветствую подскажите пож-ста как реализовать слудеющее настроен кеш мне нужно при наличии GET аргумента nocache=1 осуществить BYPASS в бекенд - с этим разобрался и разрешить Set-Cookie, т.е. fastcgi_pass_header Set-Cookie; при if ($arg_nocache) - это ни как не получается ниже привожу конфиг где fastcgi_no_cache $no_cache; fastcgi_cache_bypass $no_cache; - работают а fastcgi_pass_header $pass_header; - нет fastcgi_cache my_cache; fastcgi_cache_key "$request_method|$host|$request_uri"; fastcgi_hide_header Set-Cookie; fastcgi_ignore_headers Cache-Control Expires Set-Cookie; set $no_cache ""; set $pass_header ""; if ($arg_nocache){ set $no_cache "1"; set $pass_header "Set-Cookie"; } fastcgi_no_cache $no_cache; fastcgi_cache_bypass $no_cache; fastcgi_pass_header $pass_header; спасибо From pr1 at pr1.ru Wed Oct 10 12:04:59 2012 From: pr1 at pr1.ru (Andrey Feldman) Date: Wed, 10 Oct 2012 16:04:59 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: Message-ID: Если вкратце, то можно останоновить на бэкап сервере бэкап-синкер и запустить мастер-синкер. После чего сделать эту машину primary в конфиге. Когда мастер поднимится - на нем надо залить конфиг с секондари машины, после чего запустить бэкап-синкер. Туда начнут синхронизироваться свежие коннекты, через некоторое время можно будет вернуть primary на место. http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.server_state_sync_demon.html п. 38.2. В любом случае, синхронизация коннектов это не задача nginx :) 2012/10/10 Viacheslav Biriukov : > Спасибо, смотрел на него. > С ним не совсем понятно, как работает его master и backup. > К примеру: если master падает -> обслуживать клиентов начинает backup -> > подымается master -> падает backup. Будут ли в этом случае норльмано > синхронизироваться коннекты? Или нужно натсраивать по два демона > master-backup на двух нодах с разными --syncid? > > Спасибо > > 10 октября 2012 г., 13:46 пользователь Andrey Feldman написал: >> >> Привет. >> Это умеет делать, например, LVS, у него по-дефолту включена >> синхронизация соединений, если я не ошибаюсь. Ставить его, понятное >> дело, надо перед nginx-ом. >> >> 2012/10/10 Viacheslav Biriukov : >> > Привет. >> > >> > Есть кластер active/passive из двух nginx балансеров. Хочется, что бы >> > при >> > переезде VIP с активной на пассивную (к примеру для апдейта ядра, ребута >> > и >> > т.д.) не терялись соединения. Большие файлы продолжали отдаваться >> > клиентам. >> > >> > Подскажите пожалуйста как это правильно реализовать. >> > >> > >> > -- >> > Viacheslav Biriukov >> > BR >> > >> > >> > >> > _______________________________________________ >> > nginx-ru mailing list >> > nginx-ru at nginx.org >> > http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> >> >> -- >> -- >> Andrey Feldman >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > -- > Viacheslav Biriukov > BR > http://biriukov.com > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- -- Andrey Feldman From nginx-forum at nginx.us Wed Oct 10 14:40:00 2012 From: nginx-forum at nginx.us (varsy) Date: Wed, 10 Oct 2012 10:40:00 -0400 Subject: =?UTF-8?B?UmU6INCU0LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQstC40YDRgtGD0LDQu9GM0L0=?= =?UTF-8?B?0YvQtSDRhdC+0YHRgtGLINGBIEhUVFBT?= In-Reply-To: <3782C187-BD22-4ABA-A298-6569B125BB8C@sysoev.ru> References: <3782C187-BD22-4ABA-A298-6569B125BB8C@sysoev.ru> Message-ID: Спасибо за ответы, отличная поддержка! Буду думать дальше, как лучше все реализовать. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231420,231582#msg-231582 From v.v.biriukov at gmail.com Wed Oct 10 14:47:45 2012 From: v.v.biriukov at gmail.com (Viacheslav Biriukov) Date: Wed, 10 Oct 2012 17:47:45 +0300 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: Message-ID: Спасибо за совет. Я понимаю, что не задача nginх, хотелось бы услышать мнение профессионалов в этой области. Спасибо ещё раз. 10 октября 2012 г., 15:04 пользователь Andrey Feldman написал: > Если вкратце, то можно останоновить на бэкап сервере бэкап-синкер и > запустить мастер-синкер. После чего сделать эту машину primary в > конфиге. Когда мастер поднимится - на нем надо залить конфиг с > секондари машины, после чего запустить бэкап-синкер. Туда начнут > синхронизироваться свежие коннекты, через некоторое время можно будет > вернуть primary на место. > > > http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.server_state_sync_demon.html > п. 38.2. > > В любом случае, синхронизация коннектов это не задача nginx :) > > 2012/10/10 Viacheslav Biriukov : > > Спасибо, смотрел на него. > > С ним не совсем понятно, как работает его master и backup. > > К примеру: если master падает -> обслуживать клиентов начинает backup -> > > подымается master -> падает backup. Будут ли в этом случае норльмано > > синхронизироваться коннекты? Или нужно натсраивать по два демона > > master-backup на двух нодах с разными --syncid? > > > > Спасибо > > > > 10 октября 2012 г., 13:46 пользователь Andrey Feldman > написал: > >> > >> Привет. > >> Это умеет делать, например, LVS, у него по-дефолту включена > >> синхронизация соединений, если я не ошибаюсь. Ставить его, понятное > >> дело, надо перед nginx-ом. > >> > >> 2012/10/10 Viacheslav Biriukov : > >> > Привет. > >> > > >> > Есть кластер active/passive из двух nginx балансеров. Хочется, что бы > >> > при > >> > переезде VIP с активной на пассивную (к примеру для апдейта ядра, > ребута > >> > и > >> > т.д.) не терялись соединения. Большие файлы продолжали отдаваться > >> > клиентам. > >> > > >> > Подскажите пожалуйста как это правильно реализовать. > >> > > >> > > >> > -- > >> > Viacheslav Biriukov > >> > BR > >> > > >> > > >> > > >> > _______________________________________________ > >> > nginx-ru mailing list > >> > nginx-ru at nginx.org > >> > http://mailman.nginx.org/mailman/listinfo/nginx-ru > >> > >> > >> > >> -- > >> -- > >> Andrey Feldman > >> _______________________________________________ > >> nginx-ru mailing list > >> nginx-ru at nginx.org > >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > > > > > -- > > Viacheslav Biriukov > > BR > > http://biriukov.com > > > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru at nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > -- > -- > Andrey Feldman > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Viacheslav Biriukov BR http://biriukov.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum at nginx.us Wed Oct 10 15:27:00 2012 From: nginx-forum at nginx.us (Ar3s) Date: Wed, 10 Oct 2012 11:27:00 -0400 Subject: =?UTF-8?B?UmU6INC30LDRidC40YLQsCDRgdGB0YvQu9C+0Lo=?= In-Reply-To: <5074B16C.5040003@list.ru> References: <5074B16C.5040003@list.ru> Message-ID: <00ddb0b9f4c5ad5cc7b600d4c66aca57.NginxMailingListRussian@forum.nginx.org> Совершенно верно. Апача на сервере нет совсем. Установлен nginx из репозитория и php-cgi. Забыл добавить, ось - Debian 6 32 bit. Возможно это важно. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231504,231588#msg-231588 From snar at snar.spb.ru Wed Oct 10 15:37:01 2012 From: snar at snar.spb.ru (Alexandre Snarskii) Date: Wed, 10 Oct 2012 19:37:01 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: Message-ID: <20121010153701.GE74804@snar.spb.ru> On Wed, Oct 10, 2012 at 01:43:18PM +0300, Viacheslav Biriukov wrote: > Привет. > > Есть кластер active/passive из двух nginx балансеров. Хочется, что бы при > переезде VIP с активной на пассивную (к примеру для апдейта ядра, ребута и > т.д.) не терялись соединения. Большие файлы продолжали отдаваться клиентам. В рамках nginx - не реализуемо по очень простой причине: переезд VIP'а на другую машину не означает переезда на нее состояния tcp-сессий, в результате получение "новой" машиной TCP ACK, предназначенного "старой" машине, будет вызывать обрыв tcp-соединения. PS: решать задачу можно самыми разными способами. Один из простых - вынести тяжелый [статический] контент на отдельный субдомен, который резолвится не в VIP а в "персональные адреса" машин, причем сразу в несколько, и перед плановым выводом машины на обслуживание просто заблаговременно убираете её персональный адрес из пула... -- In theory, there is no difference between theory and practice. But, in practice, there is. From nginx-forum at nginx.us Wed Oct 10 19:45:53 2012 From: nginx-forum at nginx.us (ProxyKZ) Date: Wed, 10 Oct 2012 15:45:53 -0400 Subject: =?UTF-8?B?Tmdpbngg0LzQtdC00LvQtdC90L3QviDQvtGC0LTQsNC10YIg0YHRgtCw0YLQuNC6?= =?UTF-8?B?0YMg0LzQtdC00LvQtdC90L3Ri9C8INC60LvQuNC10L3RgtCw0Lwh?= Message-ID: Есть сервер хостинга Xeon 2,4GHz QuadCore / RAM 2Gb / SAS 500Gb работает около 100 сайтов клиентов с посещаемостью по 50-100 в день и 7-10 сайтов по 1000-2000 в день. Nginx/0.6.32 раздает статику и стоит перед Apache. Раньше Apache либо съедал всю память и nginx не могу до него дсотучаться выдавая 502 и т.п. ошибки, потом ограничили в конфиге Апача MaxClient до 25 и стало стабильнее. Но после прописывания бОльшей части сайтов в Nginx - сайты эти которых статику начал отдавать nginx стали тормозить - сильно азметно на медленных клиентах. После нескольких запросов как будто пауза образуется, то есть чем чаще обращение к сайту тем тормозит сильнее - на странице прямо видно что недогружаются картинки и js и css, отладчик барузера часто ругается на файлы что их нет (404), тут же если обновить страницу они могут успешно загрузиться. У клиентов на широких каналах от 1MBit/s все леатет и тормоза почти незаметны, а на медленных каждое 3-5-ое открытие любого сайта замедляется от 10 секунд до даже минут иногда. Это конфиг Apache: ----------------------------- ServerRoot "/etc/apache2" LockFile /var/lock/apache2/accept.lock PidFile ${APACHE_PID_FILE} Timeout 15 KeepAlive Off MaxKeepAliveRequests 400 KeepAliveTimeout 3 ExtendedStatus On StartServers 1 MinSpareServers 2 MaxSpareServers 10 MaxClients 25 MaxRequestsPerChild 1000 StartServers 2 MaxClients 50 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 1000 # These need to be set in /etc/apache2/envvars User ${APACHE_RUN_USER} Group ${APACHE_RUN_GROUP} AccessFileName .htaccess # # The following lines prevent .htaccess and .htpasswd files from being # viewed by Web clients. # Order allow,deny Deny from all DefaultType text/plain HostnameLookups Off ErrorLog /var/log/apache2/error.log LogLevel info Include /etc/apache2/mods-enabled/*.load Include /etc/apache2/mods-enabled/*.conf Include /etc/apache2/httpd.conf Include /etc/apache2/ports.conf LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent Include /etc/apache2/conf.d/ NameVirtualHost *:443 ServerName example.com:443 SSLEngine on SSLCertificateFile /etc/apache2/ssl.crt/server.crt SSLCertificateKeyFile /etc/apache2/ssl.key/server.key Include /usr/local/ispmgr/etc/ispmgr.inc AllowOverride all php_admin_value open_basedir "/home/user:." ----------------------------- и т.д. описаны все хосты Это конфиг Nginx: ----------------------------- user www-data; worker_processes 4; worker_rlimit_nofile 16384; error_log /var/log/nginx/error.log error; pid /var/run/nginx.pid; events { worker_connections 1024; use epoll; } http { include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; #expires 30d; sendfile on; tcp_nopush on; tcp_nodelay on; client_max_body_size 10m; client_body_buffer_size 16k; proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; proxy_buffer_size 64k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 10m; gzip on; gzip_comp_level 3; gzip_proxied any; gzip_min_length 1000; gzip_types application/x-javascript text/css; gzip_disable "MSIE [1-6]\.(?!.*SV1)"; keepalive_timeout 35; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; log_format isp '$bytes_sent $request_length'; server { listen 82.200.198.10:80; server_name example.com www.example.com; rewrite ^(/manager/.*)$ https://$host$1 permanent; error_page 404 = @fallback; location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/|pgadmin/) { proxy_pass http://82.200.198.10:81; proxy_redirect http://example.com:81/ /; 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://82.200.198.10:81; proxy_redirect http://example.com:81/ /; 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|swf)$ { root /home/user/www/example.com; access_log /home/httpd-logs/example.com.access.log ; access_log /home/nginx-logs/user isp; } location @fallback { proxy_pass http://82.200.198.10:81; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } } ----------------------------- и т.д. в таком же ключе еще 100 хостов прописано. Изменял по разному в конфиге Nginx следующие ключи: worker_connections worker_processes sendfile proxy_connect_timeout proxy_send_timeout proxy_read_timeout gzip_proxied gzip_comp_level ничего не приводит к заметному результату, как тормозил у медленных клиентов так и тормозит. Apache Server Status показывает максимум до 10 Request, то есть заметно что нагрузка на него упала (раньше бывало до 20-25), но почему nginx стал так медленно работать? в Top-е nginx почти не вылезает иногда до 2% CPU кушает, в основном кушают CPU процессы Apache 3-4 штуки бывает под 30-70% но всего лишь на несколько секунд и MySQL обычно кушает 20-30% , бывает 50-70% но тоже на считанные секунды. В целом RAM и CPU не загружены когда проявляются тормоза. Складывает такое ощущение, что nginx зажат какими то лимитами и не может быстро раздавать статику, хотя ресурсы сервера еще позволяют это сделать. У меня админ уволился, найти грамотного не могу, вот пытаюсь сам поддерживать сервер... Огромная просьба к бывалым хостерам - помогите советом!!! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231602,231602#msg-231602 From nginx-forum at nginx.us Thu Oct 11 04:54:08 2012 From: nginx-forum at nginx.us (ProxyKZ) Date: Thu, 11 Oct 2012 00:54:08 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC80LXQtNC70LXQvdC90L4g0L7RgtC00LDQtdGCINGB0YLQsNGC?= =?UTF-8?B?0LjQutGDINC80LXQtNC70LXQvdC90YvQvCDQutC70LjQtdC90YLQsNC8IQ==?= In-Reply-To: References: Message-ID: <2c5394eb79c01251da1ac84074c53b69.NginxMailingListRussian@forum.nginx.org> Все IP адреса, пути и пр. вымышленные, прошу не обижаться если на чей похож. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231602,231613#msg-231613 From alexey.bobok at gmail.com Thu Oct 11 05:14:11 2012 From: alexey.bobok at gmail.com (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0JHQvtCx0L7Qug==?=) Date: Thu, 11 Oct 2012 08:14:11 +0300 Subject: =?UTF-8?B?UmU6IE5naW54INC80LXQtNC70LXQvdC90L4g0L7RgtC00LDQtdGCINGB0YLQsNGC?= =?UTF-8?B?0LjQutGDINC80LXQtNC70LXQvdC90YvQvCDQutC70LjQtdC90YLQsNC8IQ==?= In-Reply-To: <2c5394eb79c01251da1ac84074c53b69.NginxMailingListRussian@forum.nginx.org> References: <2c5394eb79c01251da1ac84074c53b69.NginxMailingListRussian@forum.nginx.org> Message-ID: <-5229112391013002958@unknownmsgid> Может Вы просто упираетесь в это? worker_connections 1024; Увеличьте в 2 раза, например. -- Best regards, Alexey Bobok 11.10.2012, в 7:54, ProxyKZ написал(а): > Все IP адреса, пути и пр. вымышленные, прошу не обижаться если на чей похож. > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231602,231613#msg-231613 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From kav at karagodov.name Thu Oct 11 05:57:48 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Thu, 11 Oct 2012 09:57:48 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: <20121010153701.GE74804@snar.spb.ru> References: <20121010153701.GE74804@snar.spb.ru> Message-ID: а при обновлении разве старые вокеры не ждут закрытия своих коннектов перед смертью? On 10.10.2012, at 19:37, Alexandre Snarskii wrote: > On Wed, Oct 10, 2012 at 01:43:18PM +0300, Viacheslav Biriukov wrote: >> Привет. >> >> Есть кластер active/passive из двух nginx балансеров. Хочется, что бы при >> переезде VIP с активной на пассивную (к примеру для апдейта ядра, ребута и >> т.д.) не терялись соединения. Большие файлы продолжали отдаваться клиентам. > > В рамках nginx - не реализуемо по очень простой причине: переезд > VIP'а на другую машину не означает переезда на нее состояния > tcp-сессий, в результате получение "новой" машиной TCP ACK, > предназначенного "старой" машине, будет вызывать обрыв tcp-соединения. > > PS: решать задачу можно самыми разными способами. Один из простых - > вынести тяжелый [статический] контент на отдельный субдомен, который > резолвится не в VIP а в "персональные адреса" машин, причем сразу в > несколько, и перед плановым выводом машины на обслуживание просто > заблаговременно убираете её персональный адрес из пула... > > -- > In theory, there is no difference between theory and practice. > But, in practice, there is. > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Thu Oct 11 06:19:05 2012 From: nginx-forum at nginx.us (ProxyKZ) Date: Thu, 11 Oct 2012 02:19:05 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC80LXQtNC70LXQvdC90L4g0L7RgtC00LDQtdGCINGB0YLQsNGC?= =?UTF-8?B?0LjQutGDINC80LXQtNC70LXQvdC90YvQvCDQutC70LjQtdC90YLQsNC8IQ==?= In-Reply-To: <-5229112391013002958@unknownmsgid> References: <-5229112391013002958@unknownmsgid> Message-ID: <4d5e13d9cb1f7a0ce0028d4a543f8951.NginxMailingListRussian@forum.nginx.org> Нет, дело точно не в worker_connections , увеличивал в 2 раза это значение, а также увеличивал и уменьшал значение worker_processes 4; в диапазоне от 2 до 8 - результата нет. Еще заметил что nginx.conf уже весит 175Kb - туда пишутся конфиги всех хостов, которых более 130 - может nginx-у трудно (долго) находить записи нужного хоста?? showjumper Wrote: ------------------------------------------------------- > Может Вы просто упираетесь в это? > worker_connections 1024; > Увеличьте в 2 раза, например. > > -- > Best regards, > Alexey Bobok > > 11.10.2012, в 7:54, ProxyKZ написал(а): > > > Все IP адреса, пути и пр. вымышленные, прошу не обижаться если на > чей похож. > > > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,231602,231613#msg-231613 > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru at nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231602,231620#msg-231620 From ano at bestmx.ru Thu Oct 11 06:37:01 2012 From: ano at bestmx.ru (Andrey N. Oktyabrski) Date: Thu, 11 Oct 2012 10:37:01 +0400 Subject: =?UTF-8?B?UmU6IE5naW54INC80LXQtNC70LXQvdC90L4g0L7RgtC00LDQtdGCINGB0YLQsNGC?= =?UTF-8?B?0LjQutGDINC80LXQtNC70LXQvdC90YvQvCDQutC70LjQtdC90YLQsNC8IQ==?= In-Reply-To: References: Message-ID: <5076690D.8090908@bestmx.ru> On 10/10/2012 11:45 PM, ProxyKZ wrote: > sendfile on; > tcp_nopush on; > tcp_nodelay on; Вот это попробуйте подёргать. Может помочь. From nginx-forum at nginx.us Thu Oct 11 07:02:03 2012 From: nginx-forum at nginx.us (aquarius) Date: Thu, 11 Oct 2012 03:02:03 -0400 Subject: =?UTF-8?B?UmV3cml0ZSDQvtGC0YDQsNCx0LDRgtGL0LLQsNC10YIg0LTQviBhdXRoIGJhc2lj?= Message-ID: <4787c41e01ff5127a7faebb23ed203c0.NginxMailingListRussian@forum.nginx.org> location /admin { auth_basic "admin location"; auth_basic_user_file conf.d/htpasswd; rewrite ^/([^\/]+)$ /index.php?api=$1; index index.php; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/htdocs/domain.ru$fastcgi_script_name; 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_cache nginxcache; fastcgi_cache_valid 200 301 302 304 3s; fastcgi_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri"; fastcgi_ignore_headers "Cache-Control" "Expires" "Set-Cookie"; fastcgi_cache_bypass $nocache; fastcgi_no_cache $nocache; include /etc/nginx/fastcgi_params; } location / { rewrite ^/([^\/]+)$ /index.php?api=$1; index index.php; } если rewrite исключить из локейшена admin, то пароль просит, но ведет не туда куда надо. Как я понимаю, rewrite отрабатывает раньше auth, куда копать? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231622,231622#msg-231622 From nginx at anes.su Thu Oct 11 07:14:58 2012 From: nginx at anes.su (Anes Mukhametov) Date: Thu, 11 Oct 2012 11:14:58 +0400 Subject: =?UTF-8?B?UmU6IE5naW54INC80LXQtNC70LXQvdC90L4g0L7RgtC00LDQtdGCINGB0YLQsNGC?= =?UTF-8?B?0LjQutGDINC80LXQtNC70LXQvdC90YvQvCDQutC70LjQtdC90YLQsNC8IQ==?= Message-ID: <2369997124c39c7bf9f3e0ead68fed2a@logol.ru> С 2-я ГБ памяти машина может элементарно свопиться даже на небольшои числе запросов к прожорливым CGI скриптам. Посмотрите на своп. ProxyKZ писал 2012-10-10 23:45: > Есть сервер хостинга Xeon 2,4GHz QuadCore / RAM 2Gb / SAS 500Gb > работает > около 100 сайтов клиентов с посещаемостью по 50-100 в день и 7-10 > сайтов по > 1000-2000 в день. Nginx/0.6.32 раздает статику и стоит перед Apache. > Раньше > Apache либо съедал всю память и nginx не могу до него дсотучаться > выдавая > 502 и т.п. ошибки, потом ограничили в конфиге Апача MaxClient до 25 и > стало > стабильнее. Но после прописывания бОльшей части сайтов в Nginx - > сайты эти > которых статику начал отдавать nginx стали тормозить - сильно азметно > на > медленных клиентах. После нескольких запросов как будто пауза > образуется, то > есть чем чаще обращение к сайту тем тормозит сильнее - на странице > прямо > видно что недогружаются картинки и js и css, отладчик барузера часто > ругается на файлы что их нет (404), тут же если обновить страницу они > могут > успешно загрузиться. У клиентов на широких каналах от 1MBit/s все > леатет и > тормоза почти незаметны, а на медленных каждое 3-5-ое открытие любого > сайта > замедляется от 10 секунд до даже минут иногда. > > Это конфиг Apache: > ----------------------------- > ServerRoot "/etc/apache2" > > LockFile /var/lock/apache2/accept.lock > > PidFile ${APACHE_PID_FILE} > > Timeout 15 > KeepAlive Off > MaxKeepAliveRequests 400 > KeepAliveTimeout 3 > > ExtendedStatus On > > > StartServers 1 > MinSpareServers 2 > MaxSpareServers 10 > MaxClients 25 > MaxRequestsPerChild 1000 > > > > StartServers 2 > MaxClients 50 > MinSpareThreads 25 > MaxSpareThreads 75 > ThreadsPerChild 25 > MaxRequestsPerChild 1000 > > > # These need to be set in /etc/apache2/envvars > User ${APACHE_RUN_USER} > Group ${APACHE_RUN_GROUP} > > AccessFileName .htaccess > > # > # The following lines prevent .htaccess and .htpasswd files from > being > # viewed by Web clients. > # > > Order allow,deny > Deny from all > > > DefaultType text/plain > > HostnameLookups Off > ErrorLog /var/log/apache2/error.log > LogLevel info > > Include /etc/apache2/mods-enabled/*.load > Include /etc/apache2/mods-enabled/*.conf > > Include /etc/apache2/httpd.conf > > Include /etc/apache2/ports.conf > > LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" > \"%{User-Agent}i\"" vhost_combined > LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" > \"%{User-Agent}i\"" > combined > LogFormat "%h %l %u %t \"%r\" %>s %b" common > LogFormat "%{Referer}i -> %U" referer > LogFormat "%{User-agent}i" agent > > Include /etc/apache2/conf.d/ > > NameVirtualHost *:443 > > ServerName example.com:443 > SSLEngine on > SSLCertificateFile /etc/apache2/ssl.crt/server.crt > SSLCertificateKeyFile /etc/apache2/ssl.key/server.key > > > Include /usr/local/ispmgr/etc/ispmgr.inc > > > AllowOverride all > php_admin_value open_basedir "/home/user:." > > ----------------------------- > и т.д. описаны все хосты > > > Это конфиг Nginx: > ----------------------------- > user www-data; > worker_processes 4; > worker_rlimit_nofile 16384; > > error_log /var/log/nginx/error.log error; > pid /var/run/nginx.pid; > > events { > worker_connections 1024; > use epoll; > } > > http { > include /etc/nginx/mime.types; > default_type application/octet-stream; > > access_log /var/log/nginx/access.log; > #expires 30d; > sendfile on; > tcp_nopush on; > tcp_nodelay on; > client_max_body_size 10m; > client_body_buffer_size 16k; > proxy_connect_timeout 60s; > proxy_send_timeout 60s; > proxy_read_timeout 60s; > proxy_buffer_size 64k; > proxy_buffers 4 32k; > proxy_busy_buffers_size 64k; > proxy_temp_file_write_size 10m; > > gzip on; > gzip_comp_level 3; > gzip_proxied any; > gzip_min_length 1000; > gzip_types application/x-javascript text/css; > gzip_disable "MSIE [1-6]\.(?!.*SV1)"; > > keepalive_timeout 35; > > > include /etc/nginx/conf.d/*.conf; > include /etc/nginx/sites-enabled/*; > log_format isp '$bytes_sent $request_length'; > server { > listen 82.200.198.10:80; > server_name example.com www.example.com; > rewrite ^(/manager/.*)$ https://$host$1 permanent; > error_page 404 = @fallback; > location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/|pgadmin/) > { > proxy_pass http://82.200.198.10:81; > proxy_redirect http://example.com:81/ /; > 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://82.200.198.10:81; > proxy_redirect http://example.com:81/ /; > 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|swf)$ > { > root /home/user/www/example.com; > access_log /home/httpd-logs/example.com.access.log ; > access_log /home/nginx-logs/user isp; > } > location @fallback { > proxy_pass http://82.200.198.10:81; > proxy_set_header Host $host; > proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; > proxy_set_header X-Real-IP $remote_addr; > } > } > ----------------------------- > и т.д. в таком же ключе еще 100 хостов прописано. > > Изменял по разному в конфиге Nginx следующие ключи: > worker_connections > worker_processes > sendfile > proxy_connect_timeout > proxy_send_timeout > proxy_read_timeout > gzip_proxied > gzip_comp_level > ничего не приводит к заметному результату, как тормозил у медленных > клиентов > так и тормозит. > > Apache Server Status показывает максимум до 10 Request, то есть > заметно что > нагрузка на него упала (раньше бывало до 20-25), но почему nginx стал > так > медленно работать? > > в Top-е nginx почти не вылезает иногда до 2% CPU кушает, в основном > кушают > CPU процессы Apache 3-4 штуки бывает под 30-70% но всего лишь на > несколько > секунд и MySQL обычно кушает 20-30% , бывает 50-70% но тоже на > считанные > секунды. В целом RAM и CPU не загружены когда проявляются тормоза. > Складывает такое ощущение, что nginx зажат какими то лимитами и не > может > быстро раздавать статику, хотя ресурсы сервера еще позволяют это > сделать. > > У меня админ уволился, найти грамотного не могу, вот пытаюсь сам > поддерживать сервер... > Огромная просьба к бывалым хостерам - помогите советом!!! > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,231602,231602#msg-231602 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From kaa at zvuki.ru Thu Oct 11 08:06:15 2012 From: kaa at zvuki.ru (Andrey Kopeyko) Date: Thu, 11 Oct 2012 12:06:15 +0400 Subject: =?UTF-8?B?UmU6IFJld3JpdGUg0L7RgtGA0LDQsdCw0YLRi9Cy0LDQtdGCINC00L4gYXV0aCBi?= =?UTF-8?B?YXNpYw==?= In-Reply-To: <4787c41e01ff5127a7faebb23ed203c0.NginxMailingListRussian@forum.nginx.org> References: <4787c41e01ff5127a7faebb23ed203c0.NginxMailingListRussian@forum.nginx.org> Message-ID: <50767DF7.5050104@zvuki.ru> 11.10.2012 11:02, aquarius пишет: > ... > если rewrite исключить из локейшена admin, то пароль просит, но ведет не > туда куда надо. Как я понимаю, rewrite отрабатывает раньше auth, куда > копать? Вам нужно описать отдельный location /admin/index.php { со своими параметрами auth_* и fastcgi_* -- Best regards, Andrey Kopeyko From chipitsine at gmail.com Thu Oct 11 08:26:52 2012 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Thu, 11 Oct 2012 14:26:52 +0600 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: Message-ID: а какая у вас нагрузка ? в запросах/секунду и в байтах/секунду ? 10 октября 2012 г., 16:43 пользователь Viacheslav Biriukov < v.v.biriukov at gmail.com> написал: > Привет. > > Есть кластер active/passive из двух nginx балансеров. Хочется, что бы при > переезде VIP с активной на пассивную (к примеру для апдейта ядра, ребута и > т.д.) не терялись соединения. Большие файлы продолжали отдаваться клиентам. > > Подскажите пожалуйста как это правильно реализовать. > > > -- > Viacheslav Biriukov > BR > > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From v.v.biriukov at gmail.com Thu Oct 11 08:52:53 2012 From: v.v.biriukov at gmail.com (Viacheslav Biriukov) Date: Thu, 11 Oct 2012 11:52:53 +0300 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: Message-ID: Ну скажем, 50 Мбит. Как это влияет? Если я не хочу потерять ни одного коннекта. Я понимаю, что это задача не nginx'а. Хотел узнать как можно обновлять ядра и производить перезагрузку ноды с nginx'ом и не боятся потерять соединения. 11 октября 2012 г., 11:26 пользователь Илья Шипицин написал: > а какая у вас нагрузка ? в запросах/секунду и в байтах/секунду ? > > 10 октября 2012 г., 16:43 пользователь Viacheslav Biriukov < > v.v.biriukov at gmail.com> написал: > >> Привет. >> >> Есть кластер active/passive из двух nginx балансеров. Хочется, что бы при >> переезде VIP с активной на пассивную (к примеру для апдейта ядра, ребута и >> т.д.) не терялись соединения. Большие файлы продолжали отдаваться клиентам. >> >> Подскажите пожалуйста как это правильно реализовать. >> >> >> -- >> Viacheslav Biriukov >> BR >> >> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Viacheslav Biriukov BR http://biriukov.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From kav at karagodov.name Thu Oct 11 08:56:49 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Thu, 11 Oct 2012 12:56:49 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: Message-ID: "просить" нгинх "медленно и печально" "умереть" загодя On 11.10.2012, at 12:52, Viacheslav Biriukov wrote: > Ну скажем, 50 Мбит. Как это влияет? Если я не хочу потерять ни одного коннекта. > Я понимаю, что это задача не nginx'а. Хотел узнать как можно обновлять ядра и производить перезагрузку ноды с nginx'ом и не боятся потерять соединения. > > > > 11 октября 2012 г., 11:26 пользователь Илья Шипицин написал: > а какая у вас нагрузка ? в запросах/секунду и в байтах/секунду ? > > 10 октября 2012 г., 16:43 пользователь Viacheslav Biriukov написал: > Привет. > > Есть кластер active/passive из двух nginx балансеров. Хочется, что бы при переезде VIP с активной на пассивную (к примеру для апдейта ядра, ребута и т.д.) не терялись соединения. Большие файлы продолжали отдаваться клиентам. > > Подскажите пожалуйста как это правильно реализовать. > > > -- > Viacheslav Biriukov > BR > > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > -- > Viacheslav Biriukov > BR > http://biriukov.com > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From v.v.biriukov at gmail.com Thu Oct 11 09:26:33 2012 From: v.v.biriukov at gmail.com (Viacheslav Biriukov) Date: Thu, 11 Oct 2012 12:26:33 +0300 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: Message-ID: И как это поможет? А кто будет новые соединения обрабатывать ? Проблема в переносе ip адресса. Тут предложили правильное решение с ipvsadm. 11 октября 2012 г., 11:56 пользователь Alexey V. Karagodov < kav at karagodov.name> написал: > "просить" нгинх "медленно и печально" "умереть" загодя > > On 11.10.2012, at 12:52, Viacheslav Biriukov > wrote: > > Ну скажем, 50 Мбит. Как это влияет? Если я не хочу потерять ни одного > коннекта. > Я понимаю, что это задача не nginx'а. Хотел узнать как можно обновлять > ядра и производить перезагрузку ноды с nginx'ом и не боятся потерять > соединения. > > > > 11 октября 2012 г., 11:26 пользователь Илья Шипицин написал: > >> а какая у вас нагрузка ? в запросах/секунду и в байтах/секунду ? >> >> 10 октября 2012 г., 16:43 пользователь Viacheslav Biriukov < >> v.v.biriukov at gmail.com> написал: >> >>> Привет. >>> >>> Есть кластер active/passive из двух nginx балансеров. Хочется, что бы >>> при переезде VIP с активной на пассивную (к примеру для апдейта ядра, >>> ребута и т.д.) не терялись соединения. Большие файлы продолжали отдаваться >>> клиентам. >>> >>> Подскажите пожалуйста как это правильно реализовать. >>> >>> >>> -- >>> Viacheslav Biriukov >>> BR >>> >>> >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru at nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > > -- > Viacheslav Biriukov > BR > http://biriukov.com > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Viacheslav Biriukov BR http://biriukov.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum at nginx.us Thu Oct 11 09:34:12 2012 From: nginx-forum at nginx.us (aquarius) Date: Thu, 11 Oct 2012 05:34:12 -0400 Subject: =?UTF-8?B?UmU6IFJld3JpdGUg0L7RgtGA0LDQsdCw0YLRi9Cy0LDQtdGCINC00L4gYXV0aCBi?= =?UTF-8?B?YXNpYw==?= In-Reply-To: <50767DF7.5050104@zvuki.ru> References: <50767DF7.5050104@zvuki.ru> Message-ID: <96b2428b2d4e16b04cca073a2e1cc56b.NginxMailingListRussian@forum.nginx.org> Andrey Kopeyko Wrote: ------------------------------------------------------- > 11.10.2012 11:02, aquarius пишет: > > > ... > > если rewrite исключить из локейшена admin, то пароль просит, но > ведет не > > туда куда надо. Как я понимаю, rewrite отрабатывает раньше auth, > куда > > копать? > > Вам нужно описать отдельный > location /admin/index.php { > со своими параметрами auth_* и fastcgi_* > > > -- > Best regards, > Andrey Kopeyko > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru В том то и дело, что location /admin/index.php будет неверным. Так как admin и все что после него следует, по правилу реврайта передается к index.php который в корне сайта и там он разбирается. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231626,231633#msg-231633 From citrin at citrin.ru Thu Oct 11 09:43:14 2012 From: citrin at citrin.ru (Anton Yuzhaninov) Date: Thu, 11 Oct 2012 13:43:14 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: Message-ID: <507694B2.8000405@citrin.ru> On 10.10.2012 14:43, Viacheslav Biriukov wrote: > > Есть кластер active/passive из двух nginx балансеров. Хочется, что бы при > переезде VIP с активной на пассивную (к примеру для апдейта ядра, ребута и т.д.) > не терялись соединения. Большие файлы продолжали отдаваться клиентам. Плавной миграции локального tcp соединения с одного хоста на другой AFAIK пока нигде не реализовали. Теоретически это возможно (нужна поддержка в ядре OS), но достаточно сложно в реализации. Как уже писали выше можно заранее убирать IP из DNS, но это долго - запросы все равно будут идти даже после того как истечет DNS TTL, да и сам TTL маленьким делать плохо. Лучше перед серверами с nginx поставить еще пару балансировщиков. Это могут быть либо два сервера с Linux/FreeBSD либо аппаратные решения, например Cisco SLB. Тгда перед выклюение одного из сервера с nginx надо на балансировщике один из серверов пометить как неактивный, чтобы новые запросы на него не поступали, но старые продолжали работать. После этого нужно дождаться завершения текущих запросов, и сервер с nginx можно перезагружать. -- Anton Yuzhaninov From kav at karagodov.name Thu Oct 11 10:00:54 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Thu, 11 Oct 2012 14:00:54 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: Message-ID: <63F68F0D-0421-4072-9C55-EAFD37573C83@karagodov.name> On 11.10.2012, at 13:26, Viacheslav Biriukov wrote: > И как это поможет? А кто будет новые соединения обрабатывать ? Проблема в переносе ip адресса. Тут предложили правильное решение с ipvsadm. либо Cisco ASA либо другой балансировщик, программный или аппаратный, не важно либо балансер сам будет определять, что убиваемый нгинх уже не принимает соединения, либо ручками > > 11 октября 2012 г., 11:56 пользователь Alexey V. Karagodov написал: > "просить" нгинх "медленно и печально" "умереть" загодя > > On 11.10.2012, at 12:52, Viacheslav Biriukov wrote: > >> Ну скажем, 50 Мбит. Как это влияет? Если я не хочу потерять ни одного коннекта. >> Я понимаю, что это задача не nginx'а. Хотел узнать как можно обновлять ядра и производить перезагрузку ноды с nginx'ом и не боятся потерять соединения. >> >> >> >> 11 октября 2012 г., 11:26 пользователь Илья Шипицин написал: >> а какая у вас нагрузка ? в запросах/секунду и в байтах/секунду ? >> >> 10 октября 2012 г., 16:43 пользователь Viacheslav Biriukov написал: >> Привет. >> >> Есть кластер active/passive из двух nginx балансеров. Хочется, что бы при переезде VIP с активной на пассивную (к примеру для апдейта ядра, ребута и т.д.) не терялись соединения. Большие файлы продолжали отдаваться клиентам. >> >> Подскажите пожалуйста как это правильно реализовать. >> >> >> -- >> Viacheslav Biriukov >> BR >> >> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> >> >> -- >> Viacheslav Biriukov >> BR >> http://biriukov.com >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > -- > Viacheslav Biriukov > BR > http://biriukov.com > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From azovmash at ukr.net Thu Oct 11 10:22:32 2012 From: azovmash at ukr.net (azovmash at ukr.net) Date: Thu, 11 Oct 2012 13:22:32 +0300 Subject: =?UTF-8?B?UmVbMl06INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC0?= =?UTF-8?B?0LjQvdC10L3QuNC5?= In-Reply-To: <63F68F0D-0421-4072-9C55-EAFD37573C83@karagodov.name> References: <63F68F0D-0421-4072-9C55-EAFD37573C83@karagodov.name> Message-ID: <1029.1349950952.3674954323315916800@ffe12.ukr.net> Извените что вмешиваюсь но в рассылке уже не раз упоминался HaProxy. http://myforce.ru/tehnologii/haproxy/ --- Исходное сообщение --- От кого: "Alexey V. Karagodov" Кому: nginx-ru at nginx.org Дата: 11 октября 2012, 13:01:05 Тема: Re: Синхронизация nginx соединений > > On 11.10.2012, at 13:26, Viacheslav Biriukov wrote: > И как это поможет? А кто будет новые соединения обрабатывать ? Проблема в переносе ip адресса. Тут предложили правильное решение с ipvsadm. > либо Cisco ASA либо другой балансировщик, программный или аппаратный, не важно либо балансер сам будет определять, что убиваемый нгинх уже не принимает соединения, либо ручками > > 11 октября 2012 г., 11:56 пользователь Alexey V. Karagodov написал: > "просить" нгинх "медленно и печально" "умереть" загодя > On 11.10.2012, at 12:52, Viacheslav Biriukov wrote: > Ну скажем, 50 Мбит. Как это влияет? Если я не хочу потерять ни одного коннекта. Я понимаю, что это задача не nginx'а. Хотел узнать как можно обновлять ядра и производить перезагрузку ноды с nginx'ом и не боятся потерять соединения. > > > 11 октября 2012 г., 11:26 пользователь Илья Шипицин написал: > а какая у вас нагрузка ? в запросах/секунду и в байтах/секунду ? > > 10 октября 2012 г., 16:43 пользователь Viacheslav Biriukov написал: > Привет. > Есть кластер active/passive из двух nginx балансеров. Хочется, что бы при переезде VIP с активной на пассивную (к примеру для апдейта ядра, ребута и т.д.) не терялись соединения. Большие файлы продолжали отдаваться клиентам. > Подскажите пожалуйста как это правильно реализовать. > > -- > Viacheslav Biriukov > BR > > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > -- > Viacheslav Biriukov > BR > http://biriukov.com > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > -- > Viacheslav Biriukov > BR > http://biriukov.com > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From azovmash at ukr.net Thu Oct 11 10:25:25 2012 From: azovmash at ukr.net (azovmash at ukr.net) Date: Thu, 11 Oct 2012 13:25:25 +0300 Subject: =?UTF-8?B?UmVbMl06INCU0L7QutC70LDQtCDQvdCwINGF0LDQudC70L7QsNC0OiBwc3FsIGZz?= In-Reply-To: References: <5072D13C.80405@kpi.ua> Message-ID: <39693.1349951125.6203052531347161088@ffe8.ukr.net> Тема интересная. Вообще если бд не решает каких то дополнительных задач то связка бд+фс будет медленнее чем просто фс. --- Исходное сообщение --- От кого: "Николай Мендяев" Кому: nginx-ru at nginx.org Дата: 9 октября 2012, 09:33:33 Тема: Re: Доклад на хайлоад: psql fs > Интересно. Подпишусь на это дело. > > 9 октября 2012 г., 10:31 пользователь Sokolov Evgeniy написал: > Хотелось бы послушать в качестве вебинара, присутствовать очно нет возможности, тема интересная > > 8 октября 2012 г., 21:13 пользователь Daniel Podolsky написал: > > Это типа файлы хранить в базе? А нгинкс с каким-нибудь прокси-стор или > > прокси-кеш? > совсем другие проблемы решались > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > -- > -- > С уважением, Соколов Евгений > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From v.v.biriukov at gmail.com Thu Oct 11 10:40:05 2012 From: v.v.biriukov at gmail.com (Viacheslav Biriukov) Date: Thu, 11 Oct 2012 13:40:05 +0300 Subject: =?UTF-8?B?UmU6IFJlWzJdOiDQodC40L3RhdGA0L7QvdC40LfQsNGG0LjRjyBuZ2lueCDRgdC+?= =?UTF-8?B?0LXQtNC40L3QtdC90LjQuQ==?= In-Reply-To: <1029.1349950952.3674954323315916800@ffe12.ukr.net> References: <63F68F0D-0421-4072-9C55-EAFD37573C83@karagodov.name> <1029.1349950952.3674954323315916800@ffe12.ukr.net> Message-ID: Спасибо. С железками понятно: они могут прозрачно обновляться, делать прозрачный switch-over и тд и тп. Да и стоят они дороже =). Хочется такого же, но на опенсорсе (ipvsadm полностью их может заменить в этом плане). По поводу haproxy - а как на нём ядро обновлять и ребутать сервак? =) 11 октября 2012 г., 13:22 пользователь написал: > Извените что вмешиваюсь но в рассылке уже не раз упоминался HaProxy. > > http://myforce.ru/tehnologii/haproxy/ > > > --- Исходное сообщение --- > От кого: "Alexey V. Karagodov" > Кому: nginx-ru at nginx.org > Дата: 11 октября 2012, 13:01:05 > Тема: Re: Синхронизация nginx соединений > > > > > On 11.10.2012, at 13:26, Viacheslav Biriukov > wrote: > > И как это поможет? А кто будет новые соединения обрабатывать ? Проблема в > переносе ip адресса. Тут предложили правильное решение с ipvsadm. > > либо Cisco ASA > либо другой балансировщик, программный или аппаратный, не важно > либо балансер сам будет определять, что убиваемый нгинх уже не принимает > соединения, либо ручками > > > 11 октября 2012 г., 11:56 пользователь Alexey V. Karagodov < > kav at karagodov.name> написал: > > "просить" нгинх "медленно и печально" "умереть" загодя > > On 11.10.2012, at 12:52, Viacheslav Biriukov > wrote: > > Ну скажем, 50 Мбит. Как это влияет? Если я не хочу потерять ни одного > коннекта. > Я понимаю, что это задача не nginx'а. Хотел узнать как можно обновлять > ядра и производить перезагрузку ноды с nginx'ом и не боятся потерять > соединения. > > > > 11 октября 2012 г., 11:26 пользователь Илья Шипицин > написал: > > а какая у вас нагрузка ? в запросах/секунду и в байтах/секунду ? > > 10 октября 2012 г., 16:43 пользователь Viacheslav Biriukov < > v.v.biriukov at gmail.com> написал: > > Привет. > > Есть кластер active/passive из двух nginx балансеров. Хочется, что бы > при переезде VIP с активной на пассивную (к примеру для апдейта ядра, > ребута и т.д.) не терялись соединения. Большие файлы продолжали отдаваться > клиентам. > > Подскажите пожалуйста как это правильно реализовать. > > > -- > Viacheslav Biriukov > BR > > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > -- > Viacheslav Biriukov > BR > http://biriukov.com > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > -- > Viacheslav Biriukov > BR > http://biriukov.com > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Viacheslav Biriukov BR http://biriukov.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From onokonem at gmail.com Thu Oct 11 10:40:09 2012 From: onokonem at gmail.com (Daniel Podolsky) Date: Thu, 11 Oct 2012 14:40:09 +0400 Subject: =?UTF-8?B?UmU6IFJlWzJdOiDQlNC+0LrQu9Cw0LQg0L3QsCDRhdCw0LnQu9C+0LDQtDogcHNx?= =?UTF-8?B?bCBmcw==?= In-Reply-To: <39693.1349951125.6203052531347161088@ffe8.ukr.net> References: <5072D13C.80405@kpi.ua> <39693.1349951125.6203052531347161088@ffe8.ukr.net> Message-ID: > Вообще если бд не решает каких то дополнительных задач то связка бд+фс > будет медленнее чем просто фс. это очень распространенное, но неверное мнение. хотите - померяйте сами. формирование списка наших файлов на фс занимает 6 часов, в бд - 40 секунд. From azovmash at ukr.net Thu Oct 11 10:44:35 2012 From: azovmash at ukr.net (azovmash at ukr.net) Date: Thu, 11 Oct 2012 13:44:35 +0300 Subject: =?UTF-8?B?UmVbMl06IFJlWzJdOiDQodC40L3RhdGA0L7QvdC40LfQsNGG0LjRjyBuZ2lueCA=?= =?UTF-8?B?0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: References: <1029.1349950952.3674954323315916800@ffe12.ukr.net> <63F68F0D-0421-4072-9C55-EAFD37573C83@karagodov.name> Message-ID: <58528.1349952275.16338477917649371136@ffe5.ukr.net> А вы haproxy на freebsd поставьте, там не нужно каждый день ядро обновлять. > По поводу haproxy ? а как на нём ядро обновлять и ребутать сервак? =) > > 11 октября 2012 г., 13:22 пользователь написал: > Извените что вмешиваюсь но в рассылке уже не раз упоминался HaProxy. http://myforce.ru/tehnologii/haproxy/ > --- Исходное сообщение --- > От кого: "Alexey V. Karagodov" > Кому: nginx-ru at nginx.org > Дата: 11 октября 2012, 13:01:05 > Тема: Re: Синхронизация nginx соединений > > > > > On 11.10.2012, at 13:26, Viacheslav Biriukov wrote: > И как это поможет? А кто будет новые соединения обрабатывать ? Проблема в переносе ip адресса. Тут предложили правильное решение с ipvsadm. > либо Cisco ASA либо другой балансировщик, программный или аппаратный, не важно либо балансер сам будет определять, что убиваемый нгинх уже не принимает соединения, либо ручками > > 11 октября 2012 г., 11:56 пользователь Alexey V. Karagodov написал: > "просить" нгинх "медленно и печально" "умереть" загодя > On 11.10.2012, at 12:52, Viacheslav Biriukov wrote: > Ну скажем, 50 Мбит. Как это влияет? Если я не хочу потерять ни одного коннекта. Я понимаю, что это задача не nginx'а. Хотел узнать как можно обновлять ядра и производить перезагрузку ноды с nginx'ом и не боятся потерять соединения. > > > 11 октября 2012 г., 11:26 пользователь Илья Шипицин написал: > а какая у вас нагрузка ? в запросах/секунду и в байтах/секунду ? > > 10 октября 2012 г., 16:43 пользователь Viacheslav Biriukov написал: > Привет. > Есть кластер active/passive из двух nginx балансеров. Хочется, что бы при переезде VIP с активной на пассивную (к примеру для апдейта ядра, ребута и т.д.) не терялись соединения. Большие файлы продолжали отдаваться клиентам. > Подскажите пожалуйста как это правильно реализовать. > > -- > Viacheslav Biriukov > BR > > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > -- > Viacheslav Biriukov > BR > http://biriukov.com > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > -- > Viacheslav Biriukov > BR > http://biriukov.com > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > -- > Viacheslav Biriukov > BR > http://biriukov.com > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From azovmash at ukr.net Thu Oct 11 10:49:54 2012 From: azovmash at ukr.net (azovmash at ukr.net) Date: Thu, 11 Oct 2012 13:49:54 +0300 Subject: =?UTF-8?B?UmVbMl06IFJlWzJdOiDQlNC+0LrQu9Cw0LQg0L3QsCDRhdCw0LnQu9C+0LDQtDog?= =?UTF-8?B?cHNxbCBmcw==?= In-Reply-To: References: <39693.1349951125.6203052531347161088@ffe8.ukr.net> <5072D13C.80405@kpi.ua> Message-ID: <8357.1349952594.1413350998743777280@ffe16.ukr.net> Как так получилось что у вас лежат файлы и при этом нет списка ? Если у вас лежат файлы значит где то в бд уже есть ссылки на эти файлы в виде полного пути на фс. Мне что то подсказывает что в вашем конкретном случае у некоторых файлов есть точние копии в пределах той же фс. Вы не смотрели в сторону ZFS + дедупликация ? --- Исходное сообщение --- От кого: "Daniel Podolsky" Кому: nginx-ru at nginx.org Дата: 11 октября 2012, 13:40:20 Тема: Re: Re[2]: Доклад на хайлоад: psql fs > > Вообще если бд не решает каких то дополнительных задач то связка бд+фс > > будет медленнее чем просто фс. > это очень распространенное, но неверное мнение. хотите - померяйте сами. > > формирование списка наших файлов на фс занимает 6 часов, в бд - 40 секунд. > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From citrin at citrin.ru Thu Oct 11 10:56:46 2012 From: citrin at citrin.ru (Anton Yuzhaninov) Date: Thu, 11 Oct 2012 14:56:46 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: <58528.1349952275.16338477917649371136@ffe5.ukr.net> References: <1029.1349950952.3674954323315916800@ffe12.ukr.net> <63F68F0D-0421-4072-9C55-EAFD37573C83@karagodov.name> <58528.1349952275.16338477917649371136@ffe5.ukr.net> Message-ID: <5076A5EE.6030505@citrin.ru> On 11.10.2012 14:44, azovmash at ukr.net wrote: > А вы haproxy на freebsd поставьте, там не нужно каждый день ядро обновлять. На FreeBSD можно балансировать трафик на сервера с nginx с помощью PF. Стейты между двумя машинами можно синхронизировать с помощью pfsync, ip адреса дублировать через CARP, и тогда можно одну из машин с PF перезагрузить в любой момент без обрыва текущих соединений. -- Anton Yuzhaninov From snar at snar.spb.ru Thu Oct 11 11:03:27 2012 From: snar at snar.spb.ru (Alexandre Snarskii) Date: Thu, 11 Oct 2012 15:03:27 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: <507694B2.8000405@citrin.ru> References: <507694B2.8000405@citrin.ru> Message-ID: <20121011110327.GA96144@snar.spb.ru> On Thu, Oct 11, 2012 at 01:43:14PM +0400, Anton Yuzhaninov wrote: > > Как уже писали выше можно заранее убирать IP из DNS, но это долго - запросы > все равно будут идти даже после того как истечет DNS TTL, да и сам TTL > маленьким делать плохо. ... вот только почему-то google, ;; ANSWER SECTION: google.com. 300 IN A 173.194.32.197 google.com. 300 IN A 173.194.32.198 google.com. 300 IN A 173.194.32.195 microsoft (при помощи akamai), ;; ANSWER SECTION: www.microsoft.com. 3600 IN CNAME toggle.www.ms.akadns.net. toggle.www.ms.akadns.net. 300 IN CNAME g.www.ms.akadns.net. g.www.ms.akadns.net. 300 IN CNAME lb1.www.ms.akadns.net. lb1.www.ms.akadns.net. 300 IN A 65.55.57.27 yandex, ;; ANSWER SECTION: www.yandex.ru. 900 IN A 213.180.193.3 www.yandex.ru. 900 IN A 213.180.204.3 www.yandex.ru. 900 IN A 77.88.21.3 вконтактег, ;; ANSWER SECTION: www.vkontakte.ru. 900 IN A 87.240.188.254 www.vkontakte.ru. 900 IN A 87.240.188.252 и много-много кто еще почему-то совершенно не стесняются ставить для своих сайтов достаточно низкий ttl (от 300 до 900 секунд)... Примечание: я, разумеется, не говорю что перед этими серверами нет балансировщиков, или что идея с дополнительными балансировщиками является плохой, негодной идеей. И стоит ли овчинка выделки в данном случае - решать не мне. -- In theory, there is no difference between theory and practice. But, in practice, there is. From v.v.biriukov at gmail.com Thu Oct 11 11:27:56 2012 From: v.v.biriukov at gmail.com (Viacheslav Biriukov) Date: Thu, 11 Oct 2012 14:27:56 +0300 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: <20121011110327.GA96144@snar.spb.ru> References: <507694B2.8000405@citrin.ru> <20121011110327.GA96144@snar.spb.ru> Message-ID: Я думаю, что все перечиселнные ребята используют все технологии вместе. По поводу CARP и pf -- можем ли мы делать ручной свичовер, без бутания сервера? 11 октября 2012 г., 14:03 пользователь Alexandre Snarskii написал: > On Thu, Oct 11, 2012 at 01:43:14PM +0400, Anton Yuzhaninov wrote: > > > > Как уже писали выше можно заранее убирать IP из DNS, но это долго - > запросы > > все равно будут идти даже после того как истечет DNS TTL, да и сам TTL > > маленьким делать плохо. > > ... вот только почему-то google, > > ;; ANSWER SECTION: > google.com. 300 IN A 173.194.32.197 > google.com. 300 IN A 173.194.32.198 > google.com. 300 IN A 173.194.32.195 > > microsoft (при помощи akamai), > > ;; ANSWER SECTION: > www.microsoft.com. 3600 IN CNAME toggle.www.ms.akadns.net. > toggle.www.ms.akadns.net. 300 IN CNAME g.www.ms.akadns.net. > g.www.ms.akadns.net. 300 IN CNAME lb1.www.ms.akadns.net. > lb1.www.ms.akadns.net. 300 IN A 65.55.57.27 > > yandex, > > ;; ANSWER SECTION: > www.yandex.ru. 900 IN A 213.180.193.3 > www.yandex.ru. 900 IN A 213.180.204.3 > www.yandex.ru. 900 IN A 77.88.21.3 > > вконтактег, > > ;; ANSWER SECTION: > www.vkontakte.ru. 900 IN A 87.240.188.254 > www.vkontakte.ru. 900 IN A 87.240.188.252 > > и много-много кто еще почему-то совершенно не стесняются ставить для > своих сайтов достаточно низкий ttl (от 300 до 900 секунд)... > Примечание: я, разумеется, не говорю что перед этими серверами нет > балансировщиков, или что идея с дополнительными балансировщиками > является плохой, негодной идеей. И стоит ли овчинка выделки в данном > случае - решать не мне. > > -- > In theory, there is no difference between theory and practice. > But, in practice, there is. > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Viacheslav Biriukov BR http://biriukov.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From azovmash at ukr.net Thu Oct 11 11:34:59 2012 From: azovmash at ukr.net (azovmash at ukr.net) Date: Thu, 11 Oct 2012 14:34:59 +0300 Subject: =?UTF-8?B?UmVbMl06INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC0?= =?UTF-8?B?0LjQvdC10L3QuNC5?= In-Reply-To: References: <507694B2.8000405@citrin.ru> <20121011110327.GA96144@snar.spb.ru> Message-ID: <9084.1349955299.8866059000864505856@ffe16.ukr.net> CARP это 1 ip на несколько серверов. Вы сможете перегрузить сервера по очереди. --- Исходное сообщение --- От кого: "Viacheslav Biriukov" Кому: nginx-ru at nginx.org Дата: 11 октября 2012, 14:28:11 Тема: Re: Синхронизация nginx соединений > Я думаю, что все перечиселнные ребята используют все технологии вместе. > > По поводу CARP и pf ? можем ли мы делать ручной свичовер, без бутания сервера? > > 11 октября 2012 г., 14:03 пользователь Alexandre Snarskii написал: > On Thu, Oct 11, 2012 at 01:43:14PM +0400, Anton Yuzhaninov wrote: > > > > Как уже писали выше можно заранее убирать IP из DNS, но это долго - запросы > > все равно будут идти даже после того как истечет DNS TTL, да и сам TTL > > маленьким делать плохо. > > ... вот только почему-то google, > > ;; ANSWER SECTION: > google.com. 300 IN A 173.194.32.197 > google.com. 300 IN A 173.194.32.198 > google.com. 300 IN A 173.194.32.195 > > microsoft (при помощи akamai), > > ;; ANSWER SECTION: > www.microsoft.com. 3600 IN CNAME toggle.www.ms.akadns.net. > toggle.www.ms.akadns.net. 300 IN CNAME g.www.ms.akadns.net. > g.www.ms.akadns.net. 300 IN CNAME lb1.www.ms.akadns.net. > lb1.www.ms.akadns.net. 300 IN A 65.55.57.27 > > yandex, > > ;; ANSWER SECTION: > www.yandex.ru. 900 IN A 213.180.193.3 > www.yandex.ru. 900 IN A 213.180.204.3 > www.yandex.ru. 900 IN A 77.88.21.3 > > вконтактег, > > ;; ANSWER SECTION: > www.vkontakte.ru. 900 IN A 87.240.188.254 > www.vkontakte.ru. 900 IN A 87.240.188.252 > > и много-много кто еще почему-то совершенно не стесняются ставить для > своих сайтов достаточно низкий ttl (от 300 до 900 секунд)... > Примечание: я, разумеется, не говорю что перед этими серверами нет > балансировщиков, или что идея с дополнительными балансировщиками > является плохой, негодной идеей. И стоит ли овчинка выделки в данном > случае - решать не мне. > > -- > In theory, there is no difference between theory and practice. > But, in practice, there is. > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > -- > Viacheslav Biriukov > BR > http://biriukov.com > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From kav at karagodov.name Thu Oct 11 11:36:22 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Thu, 11 Oct 2012 15:36:22 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: <9084.1349955299.8866059000864505856@ffe16.ukr.net> References: <507694B2.8000405@citrin.ru> <20121011110327.GA96144@snar.spb.ru> <9084.1349955299.8866059000864505856@ffe16.ukr.net> Message-ID: <065BD765-9524-45CC-B06F-41FEF6A6E2BD@karagodov.name> On 11.10.2012, at 15:34, azovmash at ukr.net wrote: > CARP это 1 ip на несколько серверов. Вы сможете перегрузить сервера по очереди. VRRP/HSRP/GVRP для бедных коротко говоря им можно управлять, менять мастера и тд и тп From panfilov at sports.ru Thu Oct 11 11:37:22 2012 From: panfilov at sports.ru (=?KOI8-R?B?7cnIwcnMIPDBzsbJzM/X?=) Date: Thu, 11 Oct 2012 15:37:22 +0400 Subject: =?UTF-8?B?UmU6IFJlWzJdOiDQodC40L3RhdGA0L7QvdC40LfQsNGG0LjRjyBuZ2lueCDRgdC+?= =?UTF-8?B?0LXQtNC40L3QtdC90LjQuQ==?= In-Reply-To: <9084.1349955299.8866059000864505856@ffe16.ukr.net> References: <507694B2.8000405@citrin.ru> <20121011110327.GA96144@snar.spb.ru> <9084.1349955299.8866059000864505856@ffe16.ukr.net> Message-ID: Мы, например, ушли от CARP и ДНС-переключений. Используем BGP. 11 октября 2012 г., 15:34 пользователь написал: > CARP это 1 ip на несколько серверов. Вы сможете перегрузить сервера по > очереди. > > --- Исходное сообщение --- > От кого: "Viacheslav Biriukov" > Кому: nginx-ru at nginx.org > Дата: 11 октября 2012, 14:28:11 > Тема: Re: Синхронизация nginx соединений > > > > Я думаю, что все перечиселнные ребята используют все технологии вместе. > > По поводу CARP и pf ? можем ли мы делать ручной свичовер, без бутания > сервера? > > 11 октября 2012 г., 14:03 пользователь Alexandre Snarskii < > snar at snar.spb.ru> написал: > > On Thu, Oct 11, 2012 at 01:43:14PM +0400, Anton Yuzhaninov wrote: > > > > Как уже писали выше можно заранее убирать IP из DNS, но это долго - > запросы > > все равно будут идти даже после того как истечет DNS TTL, да и сам TTL > > маленьким делать плохо. > > ... вот только почему-то google, > > ;; ANSWER SECTION: > google.com. 300 IN A 173.194.32.197 > google.com. 300 IN A 173.194.32.198 > google.com. 300 IN A 173.194.32.195 > > microsoft (при помощи akamai), > > ;; ANSWER SECTION: > www.microsoft.com. 3600 IN CNAME toggle.www.ms.akadns.net. > toggle.www.ms.akadns.net. 300 IN CNAME g.www.ms.akadns.net. > g.www.ms.akadns.net. 300 IN CNAME lb1.www.ms.akadns.net. > lb1.www.ms.akadns.net. 300 IN A 65.55.57.27 > > yandex, > > ;; ANSWER SECTION: > www.yandex.ru. 900 IN A 213.180.193.3 > www.yandex.ru. 900 IN A 213.180.204.3 > www.yandex.ru. 900 IN A 77.88.21.3 > > вконтактег, > > ;; ANSWER SECTION: > www.vkontakte.ru. 900 IN A 87.240.188.254 > www.vkontakte.ru. 900 IN A 87.240.188.252 > > и много-много кто еще почему-то совершенно не стесняются ставить для > своих сайтов достаточно низкий ttl (от 300 до 900 секунд)... > Примечание: я, разумеется, не говорю что перед этими серверами нет > балансировщиков, или что идея с дополнительными балансировщиками > является плохой, негодной идеей. И стоит ли овчинка выделки в данном > случае - решать не мне. > > -- > In theory, there is no difference between theory and practice. > But, in practice, there is. > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > -- > Viacheslav Biriukov > BR > http://biriukov.com > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Панфилов Михаил Старший системный администратор www.sports.ru + 7 903 578 4067 -------------- next part -------------- An HTML attachment was scrubbed... URL: From kav at karagodov.name Thu Oct 11 11:38:58 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Thu, 11 Oct 2012 15:38:58 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: <507694B2.8000405@citrin.ru> <20121011110327.GA96144@snar.spb.ru> <9084.1349955299.8866059000864505856@ffe16.ukr.net> Message-ID: On 11.10.2012, at 15:37, Михаил Панфилов wrote: > Мы, например, ушли от CARP и ДНС-переключений. Используем BGP. как? From panfilov at sports.ru Thu Oct 11 11:40:39 2012 From: panfilov at sports.ru (=?KOI8-R?B?7cnIwcnMIPDBzsbJzM/X?=) Date: Thu, 11 Oct 2012 15:40:39 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: <507694B2.8000405@citrin.ru> <20121011110327.GA96144@snar.spb.ru> <9084.1349955299.8866059000864505856@ffe16.ukr.net> Message-ID: Анонсим сетку с необходимым айпишником с разных железок (CDN). 11 октября 2012 г., 15:38 пользователь Alexey V. Karagodov < kav at karagodov.name> написал: > > On 11.10.2012, at 15:37, Михаил Панфилов wrote: > > > Мы, например, ушли от CARP и ДНС-переключений. Используем BGP. > > как? > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Панфилов Михаил Старший системный администратор www.sports.ru + 7 903 578 4067 -------------- next part -------------- An HTML attachment was scrubbed... URL: From kav at karagodov.name Thu Oct 11 11:42:58 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Thu, 11 Oct 2012 15:42:58 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: <507694B2.8000405@citrin.ru> <20121011110327.GA96144@snar.spb.ru> <9084.1349955299.8866059000864505856@ffe16.ukr.net> Message-ID: понятно, спасибо On 11.10.2012, at 15:40, Михаил Панфилов wrote: > Анонсим сетку с необходимым айпишником с разных железок (CDN). > > 11 октября 2012 г., 15:38 пользователь Alexey V. Karagodov написал: > > On 11.10.2012, at 15:37, Михаил Панфилов wrote: > > > Мы, например, ушли от CARP и ДНС-переключений. Используем BGP. > > как? > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > -- > Панфилов Михаил > Старший системный администратор www.sports.ru > > + 7 903 578 4067 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From snar at snar.spb.ru Thu Oct 11 11:51:01 2012 From: snar at snar.spb.ru (Alexandre Snarskii) Date: Thu, 11 Oct 2012 15:51:01 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: <507694B2.8000405@citrin.ru> <20121011110327.GA96144@snar.spb.ru> Message-ID: <20121011115101.GB96144@snar.spb.ru> On Thu, Oct 11, 2012 at 02:27:56PM +0300, Viacheslav Biriukov wrote: > Я думаю, что все перечиселнные ребята используют все технологии вместе. > > По поводу CARP и pf ? можем ли мы делать ручной свичовер, без бутания сервера? Ручной свитчовер чего ? frontend'ов (aka машин с pf/pfsync/carp) - да, сможете. backend'ов (aka машин с nginx'ами) - ручной свитчовер делать сможете выключением соответствующего хоста в pf.conf'е, а вот для автоматического переключения (в случае непланового вылета хоста) скорее всего придется дополнительно поднимать relayd: http://meinit.nl/openbsd-loadbalancing-and-failover-relayd-pf-and-carp > > 11 октября 2012 г., 14:03 пользователь Alexandre Snarskii > написал: > > On Thu, Oct 11, 2012 at 01:43:14PM +0400, Anton Yuzhaninov wrote: > > > > Как уже писали выше можно заранее убирать IP из DNS, но это долго - > запросы > > все равно будут идти даже после того как истечет DNS TTL, да и сам TTL > > маленьким делать плохо. > > ... вот только почему-то google, > > ;; ANSWER SECTION: > google.com. 300 IN A 173.194.32.197 > google.com. 300 IN A 173.194.32.198 > google.com. 300 IN A 173.194.32.195 > > microsoft (при помощи akamai), > > ;; ANSWER SECTION: > www.microsoft.com. 3600 IN CNAME toggle.www.ms.akadns.net. > toggle.www.ms..akadns.net. 300 IN CNAME g.www.ms.akadns.net. > g.www.ms.akadns.net. 300 IN CNAME lb1.www.ms.akadns..net. > lb1.www.ms.akadns.net. 300 IN A 65.55.57.27 > > yandex, > > ;; ANSWER SECTION: > www.yandex.ru. 900 IN A 213.180.193.3 > www.yandex.ru. 900 IN A 213.180.204.3 > www.yandex.ru. 900 IN A 77.88.21.3 > > вконтактег, > > ;; ANSWER SECTION: > www.vkontakte.ru. 900 IN A 87.240.188.254 > www.vkontakte.ru. 900 IN A 87.240.188.252 > > и много-много кто еще почему-то совершенно не стесняются ставить для > своих сайтов достаточно низкий ttl (от 300 до 900 секунд)... > Примечание: я, разумеется, не говорю что перед этими серверами нет > балансировщиков, или что идея с дополнительными балансировщиками > является плохой, негодной идеей. И стоит ли овчинка выделки в данном > случае - решать не мне. > > -- > In theory, there is no difference between theory and practice. > But, in practice, there is. > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > -- > Viacheslav Biriukov > BR > http://biriukov.com > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- In theory, there is no difference between theory and practice. But, in practice, there is. From chipitsine at gmail.com Thu Oct 11 11:55:43 2012 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Thu, 11 Oct 2012 17:55:43 +0600 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: Message-ID: ну смотрите. у вас есть 2 nginx-а, правильно ? и вы хотите перекидывать tcp-конекции туда-сюда ? рассмотрим ситуацию. пришел пользователь. допустим, 1-й сервер отвечает (MASTER), 2-й на подхвате (BACKUP). запрос упал в апстрим. сервер сходил на первые два бекенда, понял, что там глухо, третий бекенд ему ответил, полетели байтики "бекенд --> nginx --> пользователь". с третьего бекенда. тут происходит ая-я-я-й и 1-й nginx теряется. с точки зрения здравого смысла, у 2-го nginx-а все это время должна строиться идентичная картинка а) он должен загрейлистить 2 бекенда б) он должен понимать, что мы читаем ответ с третьего бекенда в) все это дело он должен подхватить на лету это капец. есть темы с фаирволами, например PF + pfsync или аналогичные модули синхронизации на iptables. Они синхронизируют состояния _транзитных_ tcp-сессий. Т.е. тех, которые начинаются не на нашем сервере и заканчиваются где-то там далеко. В этом случае можно сделать CARP + pf + pfsync и у вас фаирволы будут совершенно прозрачно переключаться туда-сюда. Правда, для 50 мегабитного канала надо будет заложить еще такую же пропускную способность для синхронизации. Но это именно транзитные tcp-конекции. вы же ведете речь о tcp-конекциях, которые нетранзитные, они терминируются на ваших серверах и, собственно, по факту терминации происходят всякие разные штуки, которые надо как-то распространять на второй сервер. 11 октября 2012 г., 14:52 пользователь Viacheslav Biriukov < v.v.biriukov at gmail.com> написал: > Ну скажем, 50 Мбит. Как это влияет? Если я не хочу потерять ни одного > коннекта. > Я понимаю, что это задача не nginx'а. Хотел узнать как можно обновлять > ядра и производить перезагрузку ноды с nginx'ом и не боятся потерять > соединения. > > > > 11 октября 2012 г., 11:26 пользователь Илья Шипицин написал: > > а какая у вас нагрузка ? в запросах/секунду и в байтах/секунду ? >> >> 10 октября 2012 г., 16:43 пользователь Viacheslav Biriukov < >> v.v.biriukov at gmail.com> написал: >> >>> Привет. >>> >>> Есть кластер active/passive из двух nginx балансеров. Хочется, что бы >>> при переезде VIP с активной на пассивную (к примеру для апдейта ядра, >>> ребута и т.д.) не терялись соединения. Большие файлы продолжали отдаваться >>> клиентам. >>> >>> Подскажите пожалуйста как это правильно реализовать. >>> >>> >>> -- >>> Viacheslav Biriukov >>> BR >>> >>> >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru at nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > > -- > Viacheslav Biriukov > BR > http://biriukov.com > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From chipitsine at gmail.com Thu Oct 11 12:00:17 2012 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Thu, 11 Oct 2012 18:00:17 +0600 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: <507694B2.8000405@citrin.ru> <20121011110327.GA96144@snar.spb.ru> Message-ID: да. CARP переключается руками ifconfig -g carp carpdemote 100 например, так. если будете смотреть в сторону CARP - очень хорошая реализация на FreeBSD и просто отличная на OpenBSD (у OpenBSD это киллер-фича) 300-секундные ttl-ки весьма распространены, в свое время задавался вопросом "а можно ли еще меньше", внятного ответа не нашел. 11 октября 2012 г., 17:27 пользователь Viacheslav Biriukov < v.v.biriukov at gmail.com> написал: > Я думаю, что все перечиселнные ребята используют все технологии вместе. > > По поводу CARP и pf -- можем ли мы делать ручной свичовер, без бутания > сервера? > > 11 октября 2012 г., 14:03 пользователь Alexandre Snarskii < > snar at snar.spb.ru> написал: > > On Thu, Oct 11, 2012 at 01:43:14PM +0400, Anton Yuzhaninov wrote: >> > >> > Как уже писали выше можно заранее убирать IP из DNS, но это долго - >> запросы >> > все равно будут идти даже после того как истечет DNS TTL, да и сам TTL >> > маленьким делать плохо. >> >> ... вот только почему-то google, >> >> ;; ANSWER SECTION: >> google.com. 300 IN A 173.194.32.197 >> google.com. 300 IN A 173.194.32.198 >> google.com. 300 IN A 173.194.32.195 >> >> microsoft (при помощи akamai), >> >> ;; ANSWER SECTION: >> www.microsoft.com. 3600 IN CNAME toggle.www.ms.akadns.net. >> toggle.www.ms.akadns.net. 300 IN CNAME g.www.ms.akadns.net. >> g.www.ms.akadns.net. 300 IN CNAME lb1.www.ms.akadns.net. >> lb1.www.ms.akadns.net. 300 IN A 65.55.57.27 >> >> yandex, >> >> ;; ANSWER SECTION: >> www.yandex.ru. 900 IN A 213.180.193.3 >> www.yandex.ru. 900 IN A 213.180.204.3 >> www.yandex.ru. 900 IN A 77.88.21.3 >> >> вконтактег, >> >> ;; ANSWER SECTION: >> www.vkontakte.ru. 900 IN A 87.240.188.254 >> www.vkontakte.ru. 900 IN A 87.240.188.252 >> >> и много-много кто еще почему-то совершенно не стесняются ставить для >> своих сайтов достаточно низкий ttl (от 300 до 900 секунд)... >> Примечание: я, разумеется, не говорю что перед этими серверами нет >> балансировщиков, или что идея с дополнительными балансировщиками >> является плохой, негодной идеей. И стоит ли овчинка выделки в данном >> случае - решать не мне. >> >> -- >> In theory, there is no difference between theory and practice. >> But, in practice, there is. >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > > -- > Viacheslav Biriukov > BR > http://biriukov.com > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From snar at snar.spb.ru Thu Oct 11 12:01:06 2012 From: snar at snar.spb.ru (Alexandre Snarskii) Date: Thu, 11 Oct 2012 16:01:06 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: <507694B2.8000405@citrin.ru> <20121011110327.GA96144@snar.spb.ru> <9084.1349955299.8866059000864505856@ffe16.ukr.net> Message-ID: <20121011120106.GC96144@snar.spb.ru> On Thu, Oct 11, 2012 at 03:40:39PM +0400, Михаил Панфилов wrote: > Анонсим сетку с необходимым айпишником с разных железок (CDN). А как боретесь с тем, что в результате equal cost multipath один пакет tcp-потока может прийти на одну машину, а другой - на другую ? В результате соединение в лучшем случае просто обрывается, а в худшем - вообще не устанавливается... > 11 октября 2012 г., 15:38 пользователь Alexey V. Karagodov > написал: > > > On 11.10.2012, at 15:37, Михаил Панфилов wrote: > > > Мы, например, ушли от CARP и ДНС-переключений. Используем BGP. > > как? > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > -- > Панфилов Михаил > Старший системный администратор www.sports.ru > > + 7 903 578 4067 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- In theory, there is no difference between theory and practice. But, in practice, there is. From chipitsine at gmail.com Thu Oct 11 12:04:17 2012 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Thu, 11 Oct 2012 18:04:17 +0600 Subject: =?UTF-8?B?UmU6IFJlWzJdOiDQodC40L3RhdGA0L7QvdC40LfQsNGG0LjRjyBuZ2lueCDRgdC+?= =?UTF-8?B?0LXQtNC40L3QtdC90LjQuQ==?= In-Reply-To: References: <507694B2.8000405@citrin.ru> <20121011110327.GA96144@snar.spb.ru> <9084.1349955299.8866059000864505856@ffe16.ukr.net> Message-ID: логика простая и понятная. у CARP-а время реакции 1 секунда, у BGP - 60 секунд на каждое плечо. для резервирования в "быстрых локальных сетях" - подходит CARP, для "географического резервирования, в медленных глобальных сетях" - BGP и/или DNS. 11 октября 2012 г., 17:37 пользователь Михаил Панфилов написал: > Мы, например, ушли от CARP и ДНС-переключений. Используем BGP. > > 11 октября 2012 г., 15:34 пользователь написал: > > CARP это 1 ip на несколько серверов. Вы сможете перегрузить сервера по >> очереди. >> >> --- Исходное сообщение --- >> От кого: "Viacheslav Biriukov" >> Кому: nginx-ru at nginx.org >> Дата: 11 октября 2012, 14:28:11 >> Тема: Re: Синхронизация nginx соединений >> >> >> >> Я думаю, что все перечиселнные ребята используют все технологии вместе. >> >> По поводу CARP и pf можем ли мы делать ручной свичовер, без бутания >> сервера? >> >> 11 октября 2012 г., 14:03 пользователь Alexandre Snarskii < >> snar at snar.spb.ru> написал: >> >> On Thu, Oct 11, 2012 at 01:43:14PM +0400, Anton Yuzhaninov wrote: >> > >> > Как уже писали выше можно заранее убирать IP из DNS, но это долго - >> запросы >> > все равно будут идти даже после того как истечет DNS TTL, да и сам TTL >> > маленьким делать плохо. >> >> ... вот только почему-то google, >> >> ;; ANSWER SECTION: >> google.com. 300 IN A 173.194.32.197 >> google.com. 300 IN A 173.194.32.198 >> google.com. 300 IN A 173.194.32.195 >> >> microsoft (при помощи akamai), >> >> ;; ANSWER SECTION: >> www.microsoft.com. 3600 IN CNAME toggle.www.ms.akadns.net. >> toggle.www.ms.akadns.net. 300 IN CNAME g.www.ms.akadns.net. >> g.www.ms.akadns.net. 300 IN CNAME lb1.www.ms.akadns.net. >> lb1.www.ms.akadns.net. 300 IN A 65.55.57.27 >> >> yandex, >> >> ;; ANSWER SECTION: >> www.yandex.ru. 900 IN A 213.180.193.3 >> www.yandex.ru. 900 IN A 213.180.204.3 >> www.yandex.ru. 900 IN A 77.88.21.3 >> >> вконтактег, >> >> ;; ANSWER SECTION: >> www.vkontakte.ru. 900 IN A 87.240.188.254 >> www.vkontakte.ru. 900 IN A 87.240.188.252 >> >> и много-много кто еще почему-то совершенно не стесняются ставить для >> своих сайтов достаточно низкий ttl (от 300 до 900 секунд)... >> Примечание: я, разумеется, не говорю что перед этими серверами нет >> балансировщиков, или что идея с дополнительными балансировщиками >> является плохой, негодной идеей. И стоит ли овчинка выделки в данном >> случае - решать не мне. >> >> -- >> In theory, there is no difference between theory and practice. >> But, in practice, there is. >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> >> >> >> -- >> Viacheslav Biriukov >> BR >> http://biriukov.com >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > > -- > Панфилов Михаил > Старший системный администратор www.sports.ru > > + 7 903 578 4067 > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From kav at karagodov.name Thu Oct 11 12:06:19 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Thu, 11 Oct 2012 16:06:19 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: <507694B2.8000405@citrin.ru> <20121011110327.GA96144@snar.spb.ru> Message-ID: <4319957A-579F-42A4-A019-EAB5BE3DCE9D@karagodov.name> On 11.10.2012, at 16:00, Илья Шипицин wrote: > да. CARP переключается руками > > ifconfig -g carp carpdemote 100 > > например, так. > если будете смотреть в сторону CARP - очень хорошая реализация на FreeBSD и просто отличная на OpenBSD (у OpenBSD это киллер-фича) > > 300-секундные ttl-ки весьма распространены, в свое время задавался вопросом "а можно ли еще меньше", внятного ответа не нашел. внятный ответ есть в RFC ... вроде тут http://tools.ietf.org/rfc/rfc2308.txt > 11 октября 2012 г., 17:27 пользователь Viacheslav Biriukov написал: > Я думаю, что все перечиселнные ребята используют все технологии вместе. > > По поводу CARP и pf ? можем ли мы делать ручной свичовер, без бутания сервера? > > 11 октября 2012 г., 14:03 пользователь Alexandre Snarskii написал: > > On Thu, Oct 11, 2012 at 01:43:14PM +0400, Anton Yuzhaninov wrote: > > > > Как уже писали выше можно заранее убирать IP из DNS, но это долго - запросы > > все равно будут идти даже после того как истечет DNS TTL, да и сам TTL > > маленьким делать плохо. > > ... вот только почему-то google, > > ;; ANSWER SECTION: > google.com. 300 IN A 173.194.32.197 > google.com. 300 IN A 173.194.32.198 > google.com. 300 IN A 173.194.32.195 > > microsoft (при помощи akamai), > > ;; ANSWER SECTION: > www.microsoft.com. 3600 IN CNAME toggle.www.ms.akadns.net. > toggle.www.ms.akadns.net. 300 IN CNAME g.www.ms.akadns.net. > g.www.ms.akadns.net. 300 IN CNAME lb1.www.ms.akadns.net. > lb1.www.ms.akadns.net. 300 IN A 65.55.57.27 > > yandex, > > ;; ANSWER SECTION: > www.yandex.ru. 900 IN A 213.180.193.3 > www.yandex.ru. 900 IN A 213.180.204.3 > www.yandex.ru. 900 IN A 77.88.21.3 > > вконтактег, > > ;; ANSWER SECTION: > www.vkontakte.ru. 900 IN A 87.240.188.254 > www.vkontakte.ru. 900 IN A 87.240.188.252 > > и много-много кто еще почему-то совершенно не стесняются ставить для > своих сайтов достаточно низкий ttl (от 300 до 900 секунд)... > Примечание: я, разумеется, не говорю что перед этими серверами нет > балансировщиков, или что идея с дополнительными балансировщиками > является плохой, негодной идеей. И стоит ли овчинка выделки в данном > случае - решать не мне. > > -- > In theory, there is no difference between theory and practice. > But, in practice, there is. > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > -- > Viacheslav Biriukov > BR > http://biriukov.com > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From trent.clainor at gmail.com Thu Oct 11 12:07:05 2012 From: trent.clainor at gmail.com (Albert Mikhaylov) Date: Thu, 11 Oct 2012 16:07:05 +0400 Subject: =?UTF-8?B?UmU6IFJlWzJdOiDQlNC+0LrQu9Cw0LQg0L3QsCDRhdCw0LnQu9C+0LDQtDogcHNx?= =?UTF-8?B?bCBmcw==?= In-Reply-To: References: <5072D13C.80405@kpi.ua> <39693.1349951125.6203052531347161088@ffe8.ukr.net> Message-ID: 11 октября 2012 г., 14:40 пользователь Daniel Podolsky написал: > > Вообще если бд не решает каких то дополнительных задач то связка бд+фс > > будет медленнее чем просто фс. > это очень распространенное, но неверное мнение. хотите - померяйте сами. > > формирование списка наших файлов на фс занимает 6 часов, в бд - 40 секунд. а файлы случайно не в одной директории лежат? -------------- next part -------------- An HTML attachment was scrubbed... URL: From isk at cupid.com Thu Oct 11 12:14:01 2012 From: isk at cupid.com (Olexander Shtepa) Date: Thu, 11 Oct 2012 15:14:01 +0300 Subject: =?UTF-8?B?UmU6INCU0L7QutC70LDQtCDQvdCwINGF0LDQudC70L7QsNC0OiBwc3FsIGZz?= In-Reply-To: <39693.1349951125.6203052531347161088@ffe8.ukr.net> References: <5072D13C.80405@kpi.ua> <39693.1349951125.6203052531347161088@ffe8.ukr.net> Message-ID: <20121011151401.39e9892b@isk> > Вообще если бд не решает каких то дополнительных задач то связка бд+фс > будет медленнее чем просто фс. Может приведете хоть какие-то аргументы? А то ваше утверждение похоже на "apache не нужен, php-fpm быстрее/легче/понятнее/безсервера/нахабретакнаписано". From onokonem at gmail.com Thu Oct 11 12:15:49 2012 From: onokonem at gmail.com (Daniel Podolsky) Date: Thu, 11 Oct 2012 16:15:49 +0400 Subject: =?UTF-8?B?UmU6IFJlWzJdOiDQlNC+0LrQu9Cw0LQg0L3QsCDRhdCw0LnQu9C+0LDQtDogcHNx?= =?UTF-8?B?bCBmcw==?= In-Reply-To: References: <5072D13C.80405@kpi.ua> <39693.1349951125.6203052531347161088@ffe8.ukr.net> Message-ID: > а файлы случайно не в одной директории лежат? нет. From azovmash at ukr.net Thu Oct 11 12:43:15 2012 From: azovmash at ukr.net (azovmash at ukr.net) Date: Thu, 11 Oct 2012 15:43:15 +0300 Subject: =?UTF-8?B?UmVbMl06INCU0L7QutC70LDQtCDQvdCwINGF0LDQudC70L7QsNC0OiBwc3FsIGZz?= In-Reply-To: <20121011151401.39e9892b@isk> References: <20121011151401.39e9892b@isk> <39693.1349951125.6203052531347161088@ffe8.ukr.net> <5072D13C.80405@kpi.ua> Message-ID: <31263.1349959395.1193388542502764544@ffe5.ukr.net> Если без тролинга то : 1) Сама бд стоит на фс ? 2) фс журналируемая или только метаданные, atime ? 2) бд не выступит в роли двойного кеширования ? Тут могут возникнуть аспекты о которых вы не говорите: размеры отдаваемых файлов могут быть 1к что не очень хорошо скажется на свободном пространстве, могут быть множественные копии одних и тех же объектов, в чем поможет дедупликация. --- Исходное сообщение --- От кого: "Olexander Shtepa" Кому: nginx-ru at nginx.org Дата: 11 октября 2012, 15:14:15 Тема: Re: Доклад на хайлоад: psql fs > > Вообще если бд не решает каких то дополнительных задач то связка бд+фс > > будет медленнее чем просто фс. > > Может приведете хоть какие-то аргументы? А то ваше утверждение похоже > на "apache не нужен, php-fpm > быстрее/легче/понятнее/безсервера/нахабретакнаписано". > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From chipitsine at gmail.com Thu Oct 11 12:47:28 2012 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Thu, 11 Oct 2012 18:47:28 +0600 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: <4319957A-579F-42A4-A019-EAB5BE3DCE9D@karagodov.name> References: <507694B2.8000405@citrin.ru> <20121011110327.GA96144@snar.spb.ru> <4319957A-579F-42A4-A019-EAB5BE3DCE9D@karagodov.name> Message-ID: > > > > 300-секундные ttl-ки весьма распространены, в свое время задавался > вопросом "а можно ли еще меньше", внятного ответа не нашел. > > внятный ответ есть в RFC ... > вроде тут http://tools.ietf.org/rfc/rfc2308.txt > вопрос был такой "не снесет ли у кого-нибудь башню, если я буду отдавать dns-записи с ttl=60 сек?" прочитал RFC, не нашел ответа. подскажете ? -------------- next part -------------- An HTML attachment was scrubbed... URL: From citrin at citrin.ru Thu Oct 11 12:53:43 2012 From: citrin at citrin.ru (Anton Yuzhaninov) Date: Thu, 11 Oct 2012 16:53:43 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: <507694B2.8000405@citrin.ru> <20121011110327.GA96144@snar.spb.ru> <4319957A-579F-42A4-A019-EAB5BE3DCE9D@karagodov.name> Message-ID: <5076C157.8050809@citrin.ru> On 11.10.2012 16:47, Илья Шипицин wrote: > > вопрос был такой "не снесет ли у кого-нибудь башню, если я буду отдавать > dns-записи с ttl=60 сек?" > прочитал RFC, не нашел ответа. подскажете ? TTL 60 поставить можно, но: 1. некоторые DNS сервера имеют минимальное время кеширования, наприми кэшируют как минимум на 10 минут, даже если TTL меньше. 2. Клиентам чаще придется ресолвить имя, а значит возрастет время загрузки страницы. Больше порталы типа vk или yandex могут себе позволить маленький TTL, потому что к ним постоянно ходит много посетителей и их запись почти всегда есть в кеше провайдерского DNS сервера (за одинм провайдерским ДНС сидит много посетителей данного сайта). -- Anton Yuzhaninov From kav at karagodov.name Thu Oct 11 12:53:49 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Thu, 11 Oct 2012 16:53:49 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: <507694B2.8000405@citrin.ru> <20121011110327.GA96144@snar.spb.ru> <4319957A-579F-42A4-A019-EAB5BE3DCE9D@karagodov.name> Message-ID: <99C4D342-319B-45A3-9479-551F475C6068@karagodov.name> как то имел неприятный опыт общения с nic.ru, на сколько я помню, минимум они рекомендуют 900 On 11.10.2012, at 16:47, Илья Шипицин wrote: >> >> >> 300-секундные ttl-ки весьма распространены, в свое время задавался вопросом "а можно ли еще меньше", внятного ответа не нашел. > внятный ответ есть в RFC ... > вроде тут http://tools.ietf.org/rfc/rfc2308.txt > > > вопрос был такой "не снесет ли у кого-нибудь башню, если я буду отдавать dns-записи с ttl=60 сек?" > прочитал RFC, не нашел ответа. подскажете ? > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From chipitsine at gmail.com Thu Oct 11 13:05:21 2012 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Thu, 11 Oct 2012 19:05:21 +0600 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: <5076C157.8050809@citrin.ru> References: <507694B2.8000405@citrin.ru> <20121011110327.GA96144@snar.spb.ru> <4319957A-579F-42A4-A019-EAB5BE3DCE9D@karagodov.name> <5076C157.8050809@citrin.ru> Message-ID: > >> вопрос был такой "не снесет ли у кого-нибудь башню, если я буду отдавать >> dns-записи с ttl=60 сек?" >> прочитал RFC, не нашел ответа. подскажете ? >> > > TTL 60 поставить можно, но: > 1. некоторые DNS сервера имеют минимальное время кеширования, наприми > кэшируют как минимум на 10 минут, даже если TTL меньше. > > 2. Клиентам чаще придется ресолвить имя, а значит возрастет время загрузки > страницы. > ничего из перечисленного выше не следует из приведенного RFC :-) я умом понимаю, что могу хоть 1 секунду сделать. на свой страх и риск. > > Больше порталы типа vk или yandex могут себе позволить маленький TTL, > потому что к ним постоянно ходит много посетителей и их запись почти всегда > есть в кеше провайдерского DNS сервера (за одинм провайдерским ДНС сидит > много посетителей данного сайта). 300 сек может себе позволить даже маленький портал. и даже не портал. мы уже несколько лет работаем на 300-секундых ttl-ках, просто супер. > > > -- > Anton Yuzhaninov > > > ______________________________**_________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/**mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From kred at gmx.net Thu Oct 11 13:11:10 2012 From: kred at gmx.net (Konstantin Gerasimenko) Date: Thu, 11 Oct 2012 15:11:10 +0200 Subject: =?UTF-8?B?UmU6INCU0L7QutC70LDQtCDQvdCwINGF0LDQudC70L7QsNC0OiBwc3FsIGZz?= In-Reply-To: <31263.1349959395.1193388542502764544@ffe5.ukr.net> References: <20121011151401.39e9892b@isk> <39693.1349951125.6203052531347161088@ffe8.ukr.net> <5072D13C.80405@kpi.ua> <31263.1349959395.1193388542502764544@ffe5.ukr.net> Message-ID: <5076C56E.7000101@gmx.net> Am 11.10.2012 14:43, schrieb azovmash at ukr.net: > > Если без тролинга то : > > 1) Сама бд стоит на фс ? > > 2) фс журналируемая или только метаданные, atime ? > > 2) бд не выступит в роли двойного кеширования ? > > Тут могут возникнуть аспекты о которых вы не говорите: размеры > отдаваемых файлов могут быть 1к что не очень хорошо скажется на > свободном пространстве, могут быть множественные копии одних и тех же > объектов, в чем поможет дедупликация. > > С помощу базы дынных можно легко организовать : 1) дельта-бекап (в btrfs and zfs что то подобное есть но в базе это всё уже давно вылезано ) 2) транзакционное расспространение файлов в другие зеркала (см пункт 1) 3) проблема мелких файлов. 4) дедупликация не сложно реализовать самому )) ЗЫ: Конечно доступ к ФС будет быстрее , но так ли это важно ? Например представь себе несколько датацентров в каждом одна-две "копии" базы данных и 10-20 nginx/"trafficserver" с кешем в каждом по 1ТБ на ссд. Все горячие файлы лежат в кеше (в памяти или на фс) раздающего вебсервера и отдаются мухой, а новый контент берётся с помощу бакенда из базы. В которую он попал обычной репликацией через базу. From azovmash at ukr.net Thu Oct 11 13:58:55 2012 From: azovmash at ukr.net (azovmash at ukr.net) Date: Thu, 11 Oct 2012 16:58:55 +0300 Subject: =?UTF-8?B?UmVbMl06INCU0L7QutC70LDQtCDQvdCwINGF0LDQudC70L7QsNC0OiBwc3FsIGZz?= In-Reply-To: <5076C56E.7000101@gmx.net> References: <5076C56E.7000101@gmx.net> <20121011151401.39e9892b@isk> <39693.1349951125.6203052531347161088@ffe8.ukr.net> <5072D13C.80405@kpi.ua> <31263.1349959395.1193388542502764544@ffe5.ukr.net> Message-ID: <55138.1349963935.3447751867440496640@ffe16.ukr.net> По 2 пункту в zfs это есть. В случае с zfs пункт 3 и 4 неактуальны. В случае с хостингом Amazon даже незнаю можно ли использовать ZFS ... В целом из минусов вас ждет двойная фрагментация. Что касается ssd то для важных данных mirror обязателен. Недавно интерисовался темой ssd - в двух словах: 1) не брать ssd на sendforce2 (те которые сжимают данные) 2) 30% дискового пространства оставлять в резерве. --- Исходное сообщение --- От кого: "Konstantin Gerasimenko" Кому: nginx-ru at nginx.org Дата: 11 октября 2012, 16:11:24 Тема: Re: Доклад на хайлоад: psql fs > Am 11.10.2012 14:43, schrieb azovmash at ukr.net: > > > > Если без тролинга то : > > > > 1) Сама бд стоит на фс ? > > > > 2) фс журналируемая или только метаданные, atime ? > > > > 2) бд не выступит в роли двойного кеширования ? > > > > Тут могут возникнуть аспекты о которых вы не говорите: размеры > > отдаваемых файлов могут быть 1к что не очень хорошо скажется на > > свободном пространстве, могут быть множественные копии одних и тех же > > объектов, в чем поможет дедупликация. > > > > > С помощу базы дынных можно легко организовать : > 1) дельта-бекап (в btrfs and zfs что то подобное есть но в базе это всё > уже давно вылезано ) > 2) транзакционное расспространение файлов в другие зеркала (см пункт 1) > 3) проблема мелких файлов. > 4) дедупликация не сложно реализовать самому )) > > ЗЫ: Конечно доступ к ФС будет быстрее , но так ли это важно ? > Например представь себе несколько датацентров в каждом одна-две "копии" > базы данных и 10-20 nginx/"trafficserver" с кешем в каждом по 1ТБ на ссд. > Все горячие файлы лежат в кеше (в памяти или на фс) раздающего > вебсервера и отдаются мухой, а новый контент берётся с помощу бакенда > из базы. В которую он попал обычной репликацией через базу. > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From azovmash at ukr.net Thu Oct 11 14:03:57 2012 From: azovmash at ukr.net (azovmash at ukr.net) Date: Thu, 11 Oct 2012 17:03:57 +0300 Subject: =?UTF-8?B?UmVbM106INCU0L7QutC70LDQtCDQvdCwINGF0LDQudC70L7QsNC0OiBwc3FsIGZz?= In-Reply-To: <55138.1349963935.3447751867440496640@ffe16.ukr.net> References: <39693.1349951125.6203052531347161088@ffe8.ukr.net> <55138.1349963935.3447751867440496640@ffe16.ukr.net> <5072D13C.80405@kpi.ua> <31263.1349959395.1193388542502764544@ffe5.ukr.net> <5076C56E.7000101@gmx.net> <20121011151401.39e9892b@isk> Message-ID: <89776.1349964237.11209636046813593600@ffe15.ukr.net> Прошу прощения 5-10%, дословно: "... Для нормальной работы GC и Intel и OCZ рекомендуют оставлять 5-10% неразмеченной под партиции области на диске. Это увеличивает IOPS и наработку на отказ за счёт выравнивания нагрузки на микросхемы NAND Flash..." --- Исходное сообщение --- От кого: azovmash at ukr.net Кому: nginx-ru at nginx.org Дата: 11 октября 2012, 16:59:01 Тема: Re[2]: Доклад на хайлоад: psql fs > По 2 пункту в zfs это есть. В случае с zfs пункт 3 и 4 неактуальны. В случае с хостингом Amazon даже незнаю можно ли использовать ZFS ... > В целом из минусов вас ждет двойная фрагментация. Что касается ssd то для важных данных mirror обязателен. Недавно интерисовался темой ssd - в двух словах: 1) не брать ssd на sendforce2 (те которые сжимают данные) 2) 30% дискового пространства оставлять в резерве. > > --- Исходное сообщение --- > От кого: "Konstantin Gerasimenko" > Кому: nginx-ru at nginx.org > Дата: 11 октября 2012, 16:11:24 > Тема: Re: Доклад на хайлоад: psql fs > > > > Am 11.10.2012 14:43, schrieb azovmash at ukr.net : > > > > Если без тролинга то : > > > > 1) Сама бд стоит на фс ? > > > > 2) фс журналируемая или только метаданные, atime ? > > > > 2) бд не выступит в роли двойного кеширования ? > > > > Тут могут возникнуть аспекты о которых вы не говорите: размеры > > отдаваемых файлов могут быть 1к что не очень хорошо скажется на > > свободном пространстве, могут быть множественные копии одних и тех же > > объектов, в чем поможет дедупликация. > > > > > С помощу базы дынных можно легко организовать : > 1) дельта-бекап (в btrfs and zfs что то подобное есть но в базе это всё > уже давно вылезано ) > 2) транзакционное расспространение файлов в другие зеркала (см пункт 1) > 3) проблема мелких файлов. > 4) дедупликация не сложно реализовать самому )) > > ЗЫ: Конечно доступ к ФС будет б > ыстрее , но так ли это важно ? > Например представь себе несколько датацентров в каждом одна-две "копии" > базы данных и 10-20 nginx/"trafficserver" с кешем в каждом по 1ТБ на ссд. > Все горячие файлы лежат в кеше (в памяти или на фс) раздающего > вебсервера и отдаются мухой, а новый контент берётся с помощу бакенда > из базы. В которую он попал обычной репликацией через базу. > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From arut at qip.ru Thu Oct 11 15:45:33 2012 From: arut at qip.ru (arut at qip.ru) Date: Thu, 11 Oct 2012 19:45:33 +0400 Subject: =?UTF-8?B?0KLQtdC70L4g0L/QvtC00LfQsNC/0YDQvtGB0LAg0L/RgNC4INC+0YjQuNCx0Lo=?= =?UTF-8?B?0LU=?= Message-ID: <5076E99D.2080306@qip.ru> Добрый день. Обнаружил забавный и печальный факт при попытке обработать структуру, с описанием ошибки от бекенда. При выполнении подзапроса (ngx_http_subrequest) с флагом NGX_HTTP_SUBREQUEST_IN_MEMORY тело результата не возвращается в случае ошибки. Оно возвращается только лишь в случае успешного завершения подзапроса. Не очень понятно, какая логика стоит за таким поведением. Может быть стоит сделать его опциональным? -- Роман PS: Собственно, код, который это делает: nginx_http_upstream.c:1639 if (r->subrequest_in_memory) { u->buffer.last = u->buffer.pos; } From sb at waeme.net Thu Oct 11 17:00:56 2012 From: sb at waeme.net (Sergey Budnevitch) Date: Thu, 11 Oct 2012 21:00:56 +0400 Subject: =?UTF-8?B?UmU6INCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPIG5naW54INGB0L7QtdC00Lg=?= =?UTF-8?B?0L3QtdC90LjQuQ==?= In-Reply-To: References: <507694B2.8000405@citrin.ru> <20121011110327.GA96144@snar.spb.ru> <4319957A-579F-42A4-A019-EAB5BE3DCE9D@karagodov.name> Message-ID: On 11 Oct2012, at 16:47 , Илья Шипицин wrote: >> >> >> 300-секундные ttl-ки весьма распространены, в свое время задавался вопросом "а можно ли еще меньше", внятного ответа не нашел. > внятный ответ есть в RFC ... > вроде тут http://tools.ietf.org/rfc/rfc2308.txt > > > вопрос был такой "не снесет ли у кого-нибудь башню, если я буду отдавать dns-записи с ttl=60 сек?" > прочитал RFC, не нашел ответа. подскажете ? По rfc1035 ttl может быть вообще равен нулю, что запрещает кэширование. На практике нулевой ttl приводит к разным забавным последствиям, например часть реализаций кэширует и не экспайрит ответ вовсе, часть считает его уже проэкспайрившимся. Кроме того в куче реализаций разный минимальный ttl прибит гвоздям, так что если вы считаете, что через 60 секунд запросы на старый адрес перестанут поступать, то вы заблуждаетесь. Ну и ttl нужно выбирать достаточно большим, чтобы вас не возненавидели операторы крупных кэширующих резолверов. From peter at vereshagin.org Thu Oct 11 18:13:09 2012 From: peter at vereshagin.org (Peter Vereshagin) Date: Thu, 11 Oct 2012 22:13:09 +0400 Subject: =?UTF-8?B?e24sbX0gcXVhbnRpZmllciDQsiByZWdleHA/?= Message-ID: <20121011181308.GA6687@external.screwed.box> Hello. Хочется применить это из perlre: Quantifiers [..] {n,m} Match at least n but not more than m times Делаю location ~ ^/product(/.+\.[\w\d]\{1,5\})$ { return 302 $1; } не попадает. Попадает так: location ~ ^/product(/.+\.[\w\d]+)$ { return 302 $1; } но нам туда не надо. (c) Вопрос: Как правильно экранировать квантификаторы такого вида в конфиге nginx? Если не экранировать совсем, то ошибается парсинг. ;) -- Peter Vereshagin (http://vereshagin.org) pgp: A0E26627 From a.vasilishin at kpi.ua Thu Oct 11 18:17:52 2012 From: a.vasilishin at kpi.ua (=?UTF-8?B?0JDQvdC00YDQtdC5INCS0LDRgdC40LvQuNGI0LjQvQ==?=) Date: Thu, 11 Oct 2012 21:17:52 +0300 Subject: =?UTF-8?B?UmU6IHtuLG19IHF1YW50aWZpZXIg0LIgcmVnZXhwPw==?= In-Reply-To: <20121011181308.GA6687@external.screwed.box> References: <20121011181308.GA6687@external.screwed.box> Message-ID: <50770D50.8030108@kpi.ua> 11.10.2012 21:13, Peter Vereshagin пишет: > Hello. > > Хочется применить это из perlre: > > Quantifiers > > [..] > > {n,m} Match at least n but not more than m times > > Делаю > > location ~ ^/product(/.+\.[\w\d]\{1,5\})$ { > return 302 $1; > } > > не попадает. Попадает так: > > location ~ ^/product(/.+\.[\w\d]+)$ { > return 302 $1; > } > > но нам туда не надо. (c) > > Вопрос: Как правильно экранировать квантификаторы такого вида в конфиге nginx? > Если не экранировать совсем, то ошибается парсинг. ;) > Если в регулярном выражении встречаются символы ?}? или ?;?, то всё выражение следует заключить в одинарные или двойные кавычки. -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From nginx-forum at nginx.us Thu Oct 11 19:29:15 2012 From: nginx-forum at nginx.us (ProxyKZ) Date: Thu, 11 Oct 2012 15:29:15 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC80LXQtNC70LXQvdC90L4g0L7RgtC00LDQtdGCINGB0YLQsNGC?= =?UTF-8?B?0LjQutGDINC80LXQtNC70LXQvdC90YvQvCDQutC70LjQtdC90YLQsNC8IQ==?= In-Reply-To: <2369997124c39c7bf9f3e0ead68fed2a@logol.ru> References: <2369997124c39c7bf9f3e0ead68fed2a@logol.ru> Message-ID: Заметил в Top-е значение wa обычно находится на 1-10% а иногда может скакать до 80%, зависимости от чего либо не могу заметить - непредсказуемо. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231602,231681#msg-231681 From mdounin at mdounin.ru Thu Oct 11 22:15:01 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 12 Oct 2012 02:15:01 +0400 Subject: =?UTF-8?B?UmU6INCi0LXQu9C+INC/0L7QtNC30LDQv9GA0L7RgdCwINC/0YDQuCDQvtGI0Lg=?= =?UTF-8?B?0LHQutC1?= In-Reply-To: <5076E99D.2080306@qip.ru> References: <5076E99D.2080306@qip.ru> Message-ID: <20121011221501.GX40452@mdounin.ru> Hello! On Thu, Oct 11, 2012 at 07:45:33PM +0400, arut at qip.ru wrote: > Добрый день. > > Обнаружил забавный и печальный факт при попытке обработать > структуру, с описанием ошибки от бекенда. > > При выполнении подзапроса (ngx_http_subrequest) с флагом > NGX_HTTP_SUBREQUEST_IN_MEMORY > тело результата не возвращается в случае ошибки. Оно возвращается > только лишь в случае успешного завершения подзапроса. > > Не очень понятно, какая логика стоит за таким поведением. Может быть > стоит сделать его опциональным? Его исходное предназначение - для SSI-директивы "include" с параметром "set", который: : нестандартный параметр, указывающий, что удачный результат : выполнения запроса нужно записать в заданную переменную http://nginx.org/ru/docs/http/ngx_http_ssi_module.html#commands Отсюда и идёт обнуление для "неудачных" результатов. Вообще мне лично это место ужасно не нравится не только подобными частностями, но и в целом - конструкция зависит от того, как именно обрабатывается запрос, а это неправильно. Более того, если запрос вдруг обрабатывается не так, как "должно" (а например просто попадают в статику) - на выходе получаем мусор, что совсем плохо. IMHO, имеет смысл этот отдельный режим работы upstream'а выкинуть, и какой-нибудь сохраняющий результат фильтр вместо него написать. -- Maxim Dounin http://nginx.com/support.html From nginx-forum at nginx.us Fri Oct 12 08:03:42 2012 From: nginx-forum at nginx.us (aquarius) Date: Fri, 12 Oct 2012 04:03:42 -0400 Subject: =?UTF-8?B?UmU6IFJld3JpdGUg0L7RgtGA0LDQsdCw0YLRi9Cy0LDQtdGCINC00L4gYXV0aCBi?= =?UTF-8?B?YXNpYw==?= In-Reply-To: <96b2428b2d4e16b04cca073a2e1cc56b.NginxMailingListRussian@forum.nginx.org> References: <50767DF7.5050104@zvuki.ru> <96b2428b2d4e16b04cca073a2e1cc56b.NginxMailingListRussian@forum.nginx.org> Message-ID: В результате решил проблему так: location ~* /admin { auth_basic "admin location"; auth_basic_user_file conf.d/htpasswd; root /path/to/nowhere; error_page 404 = @redirect; } location @redirect { rewrite ^/([^\/]+)$ /index.php?api=$1; index index.php; } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231626,231700#msg-231700 From igor at sysoev.ru Fri Oct 12 08:07:19 2012 From: igor at sysoev.ru (Igor Sysoev) Date: Fri, 12 Oct 2012 12:07:19 +0400 Subject: =?UTF-8?B?UmU6IFJld3JpdGUg0L7RgtGA0LDQsdCw0YLRi9Cy0LDQtdGCINC00L4gYXV0aCBi?= =?UTF-8?B?YXNpYw==?= In-Reply-To: References: <50767DF7.5050104@zvuki.ru> <96b2428b2d4e16b04cca073a2e1cc56b.NginxMailingListRussian@forum.nginx.org> Message-ID: <20121012080719.GA13991@nginx.com> On Fri, Oct 12, 2012 at 04:03:42AM -0400, aquarius wrote: > В результате решил проблему так: > > location ~* /admin { > auth_basic "admin location"; > auth_basic_user_file conf.d/htpasswd; > root /path/to/nowhere; > error_page 404 = @redirect; > } > location @redirect { > rewrite ^/([^\/]+)$ /index.php?api=$1; > index index.php; > } Sigh... -- Igor Sysoev http://nginx.com/support.html From nginx-forum at nginx.us Fri Oct 12 10:13:27 2012 From: nginx-forum at nginx.us (ProxyKZ) Date: Fri, 12 Oct 2012 06:13:27 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC80LXQtNC70LXQvdC90L4g0L7RgtC00LDQtdGCINGB0YLQsNGC?= =?UTF-8?B?0LjQutGDINC80LXQtNC70LXQvdC90YvQvCDQutC70LjQtdC90YLQsNC8IQ==?= In-Reply-To: <2369997124c39c7bf9f3e0ead68fed2a@logol.ru> References: <2369997124c39c7bf9f3e0ead68fed2a@logol.ru> Message-ID: Top показывает обычно что Своп используется лишь частично: Swap: 5831552k total, 130260k used, 5701292k free, 917452k cached MaxClient в конфиге апача мы выставили так чтобы осатвалось всегда хотя бы 50-100Mb ОЗУ Anes Mukhametov Wrote: ------------------------------------------------------- > С 2-я ГБ памяти машина может элементарно свопиться даже на небольшои > числе запросов к прожорливым CGI скриптам. Посмотрите на своп. > > ProxyKZ писал 2012-10-10 23:45: > > Есть сервер хостинга Xeon 2,4GHz QuadCore / RAM 2Gb / SAS 500Gb > > работает > > около 100 сайтов клиентов с посещаемостью по 50-100 в день и 7-10 > > сайтов по > > 1000-2000 в день. Nginx/0.6.32 раздает статику и стоит перед Apache. > > > Раньше > > Apache либо съедал всю память и nginx не могу до него дсотучаться > > выдавая > > 502 и т.п. ошибки, потом ограничили в конфиге Апача MaxClient до 25 > и > > стало > > стабильнее. Но после прописывания бОльшей части сайтов в Nginx - > > сайты эти > > которых статику начал отдавать nginx стали тормозить - сильно > азметно > > на > > медленных клиентах. После нескольких запросов как будто пауза > > образуется, то > > есть чем чаще обращение к сайту тем тормозит сильнее - на странице > > прямо > > видно что недогружаются картинки и js и css, отладчик барузера часто > > ругается на файлы что их нет (404), тут же если обновить страницу > они > > могут > > успешно загрузиться. У клиентов на широких каналах от 1MBit/s все > > леатет и > > тормоза почти незаметны, а на медленных каждое 3-5-ое открытие > любого > > сайта > > замедляется от 10 секунд до даже минут иногда. > > > > Это конфиг Apache: > > ----------------------------- > > ServerRoot "/etc/apache2" > > > > LockFile /var/lock/apache2/accept.lock > > > > PidFile ${APACHE_PID_FILE} > > > > Timeout 15 > > KeepAlive Off > > MaxKeepAliveRequests 400 > > KeepAliveTimeout 3 > > > > ExtendedStatus On > > > > > > StartServers 1 > > MinSpareServers 2 > > MaxSpareServers 10 > > MaxClients 25 > > MaxRequestsPerChild 1000 > > > > > > > > StartServers 2 > > MaxClients 50 > > MinSpareThreads 25 > > MaxSpareThreads 75 > > ThreadsPerChild 25 > > MaxRequestsPerChild 1000 > > > > > > # These need to be set in /etc/apache2/envvars > > User ${APACHE_RUN_USER} > > Group ${APACHE_RUN_GROUP} > > > > AccessFileName .htaccess > > > > # > > # The following lines prevent .htaccess and .htpasswd files from > > being > > # viewed by Web clients. > > # > > > > Order allow,deny > > Deny from all > > > > > > DefaultType text/plain > > > > HostnameLookups Off > > ErrorLog /var/log/apache2/error.log > > LogLevel info > > > > Include /etc/apache2/mods-enabled/*.load > > Include /etc/apache2/mods-enabled/*.conf > > > > Include /etc/apache2/httpd.conf > > > > Include /etc/apache2/ports.conf > > > > LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" > > \"%{User-Agent}i\"" vhost_combined > > LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" > > \"%{User-Agent}i\"" > > combined > > LogFormat "%h %l %u %t \"%r\" %>s %b" common > > LogFormat "%{Referer}i -> %U" referer > > LogFormat "%{User-agent}i" agent > > > > Include /etc/apache2/conf.d/ > > > > NameVirtualHost *:443 > > > > ServerName example.com:443 > > SSLEngine on > > SSLCertificateFile /etc/apache2/ssl.crt/server.crt > > SSLCertificateKeyFile /etc/apache2/ssl.key/server.key > > > > > > Include /usr/local/ispmgr/etc/ispmgr.inc > > > > > > AllowOverride all > > php_admin_value open_basedir "/home/user:." > > > > ----------------------------- > > и т.д. описаны все хосты > > > > > > Это конфиг Nginx: > > ----------------------------- > > user www-data; > > worker_processes 4; > > worker_rlimit_nofile 16384; > > > > error_log /var/log/nginx/error.log error; > > pid /var/run/nginx.pid; > > > > events { > > worker_connections 1024; > > use epoll; > > } > > > > http { > > include /etc/nginx/mime.types; > > default_type application/octet-stream; > > > > access_log /var/log/nginx/access.log; > > #expires 30d; > > sendfile on; > > tcp_nopush on; > > tcp_nodelay on; > > client_max_body_size 10m; > > client_body_buffer_size 16k; > > proxy_connect_timeout 60s; > > proxy_send_timeout 60s; > > proxy_read_timeout 60s; > > proxy_buffer_size 64k; > > proxy_buffers 4 32k; > > proxy_busy_buffers_size 64k; > > proxy_temp_file_write_size 10m; > > > > gzip on; > > gzip_comp_level 3; > > gzip_proxied any; > > gzip_min_length 1000; > > gzip_types application/x-javascript text/css; > > gzip_disable "MSIE [1-6]\.(?!.*SV1)"; > > > > keepalive_timeout 35; > > > > > > include /etc/nginx/conf.d/*.conf; > > include /etc/nginx/sites-enabled/*; > > log_format isp '$bytes_sent $request_length'; > > server { > > listen 82.200.198.10:80; > > server_name example.com www.example.com; > > rewrite ^(/manager/.*)$ https://$host$1 permanent; > > error_page 404 = @fallback; > > location ~* > ^/(webstat/|awstats|webmail/|myadmin/|manimg/|pgadmin/) > > { > > proxy_pass http://82.200.198.10:81; > > proxy_redirect http://example.com:81/ /; > > 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://82.200.198.10:81; > > proxy_redirect http://example.com:81/ /; > > 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|sw > f)$ > > { > > root /home/user/www/example.com; > > access_log /home/httpd-logs/example.com.access.log ; > > access_log /home/nginx-logs/user isp; > > } > > location @fallback { > > proxy_pass http://82.200.198.10:81; > > proxy_set_header Host $host; > > proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; > > proxy_set_header X-Real-IP $remote_addr; > > } > > } > > ----------------------------- > > и т.д. в таком же ключе еще 100 хостов прописано. > > > > Изменял по разному в конфиге Nginx следующие ключи: > > worker_connections > > worker_processes > > sendfile > > proxy_connect_timeout > > proxy_send_timeout > > proxy_read_timeout > > gzip_proxied > > gzip_comp_level > > ничего не приводит к заметному результату, как тормозил у медленных > > клиентов > > так и тормозит. > > > > Apache Server Status показывает максимум до 10 Request, то есть > > заметно что > > нагрузка на него упала (раньше бывало до 20-25), но почему nginx > стал > > так > > медленно работать? > > > > в Top-е nginx почти не вылезает иногда до 2% CPU кушает, в основном > > кушают > > CPU процессы Apache 3-4 штуки бывает под 30-70% но всего лишь на > > несколько > > секунд и MySQL обычно кушает 20-30% , бывает 50-70% но тоже на > > считанные > > секунды. В целом RAM и CPU не загружены когда проявляются тормоза. > > Складывает такое ощущение, что nginx зажат какими то лимитами и не > > может > > быстро раздавать статику, хотя ресурсы сервера еще позволяют это > > сделать. > > > > У меня админ уволился, найти грамотного не могу, вот пытаюсь сам > > поддерживать сервер... > > Огромная просьба к бывалым хостерам - помогите советом!!! > > > > Posted at Nginx Forum: > > http://forum.nginx.org/read.php?21,231602,231602#msg-231602 > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru at nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231602,231703#msg-231703 From nginx-forum at nginx.us Fri Oct 12 10:25:17 2012 From: nginx-forum at nginx.us (kermit32dll) Date: Fri, 12 Oct 2012 06:25:17 -0400 Subject: =?UTF-8?B?0J/RgNC+0LHQu9C10LzQsCDRgSDQutCw0YHRgtC+0LzQvdGL0LzQuCBzZW50IGh0?= =?UTF-8?B?dHAg0LfQsNCz0L7Qu9C+0LLQutCw0LzQuA==?= Message-ID: Всем доброго дня! Возникла следующая проблема. Есть фронтэнд на нгинксе, работающий как реверс прокси, за ним на бэкэнде сидит апач, на котором запускается простейший PHP скрипт. Всё, что делает скрипт - устанавливает в ответе кастомный хедер: Хедер успешно устанавливается, и в ответе Апача, и соответственно в пробросе нгинкса виден через FireBug: sc: 1 Судя по документации нгинкса, из конфига к нему можно обратиться с помощью переменной $sent_http_sc. Всё хорошо, для проверки можно сделать так: more_set_headers 'A: $sent_http_sc'; И в ответ нгинкса конечному юзеру добавится: A: 1 Но вот незадача, пытаюсь сделать вот так: set $tmp $sent_http_sc; more_set_headers 'A: $tmp'; И хедер перестаёт выводиться! В чём может быть проблема? Заранее спасибо! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231705,231705#msg-231705 From citrin at citrin.ru Fri Oct 12 10:35:26 2012 From: citrin at citrin.ru (Anton Yuzhaninov) Date: Fri, 12 Oct 2012 14:35:26 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEg0LrQsNGB0YLQvtC80L3Ri9C80Lggc2Vu?= =?UTF-8?B?dCBodHRwINC30LDQs9C+0LvQvtCy0LrQsNC80Lg=?= In-Reply-To: References: Message-ID: <5077F26E.4010001@citrin.ru> On 12.10.2012 14:25, kermit32dll wrote: > Хедер успешно устанавливается, и в ответе Апача, и соответственно в пробросе > нгинкса виден через FireBug: > > sc: 1 > > Судя по документации нгинкса, из конфига к нему можно обратиться с помощью > переменной $sent_http_sc. Для ответов от upstream можно использовать $upstream_http_sc $sent_http_sc будет доступен после того как ответ будет отправлен клиента, например при записи в лог. -- Anton Yuzhaninov From nginx-forum at nginx.us Fri Oct 12 10:49:29 2012 From: nginx-forum at nginx.us (kermit32dll) Date: Fri, 12 Oct 2012 06:49:29 -0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEg0LrQsNGB0YLQvtC80L3Ri9C80Lggc2Vu?= =?UTF-8?B?dCBodHRwINC30LDQs9C+0LvQvtCy0LrQsNC80Lg=?= In-Reply-To: <5077F26E.4010001@citrin.ru> References: <5077F26E.4010001@citrin.ru> Message-ID: <7f192aa4fa441141e5c79706a6d4af71.NginxMailingListRussian@forum.nginx.org> Спасибо за подсказуку, но тесты показали: Работает: more_set_headers 'DEBUG: $upstream_http_sc'; Не работает: set $t $upstream_http_sc; more_set_headers 'DEBUG: $t'; Если сразу же обратиться к $upstream_http_sc в if, то тоже не работает: if ($upstream_http_sc = 1) { more_set_headers 'DEBUG: Found SC header!'; } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231706,231708#msg-231708 From chipitsine at gmail.com Fri Oct 12 10:52:19 2012 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Fri, 12 Oct 2012 16:52:19 +0600 Subject: =?UTF-8?B?UmU6IE5naW54INC80LXQtNC70LXQvdC90L4g0L7RgtC00LDQtdGCINGB0YLQsNGC?= =?UTF-8?B?0LjQutGDINC80LXQtNC70LXQvdC90YvQvCDQutC70LjQtdC90YLQsNC8IQ==?= In-Reply-To: References: Message-ID: ответ от апстрима может в некоторых случаях помещаться во временный файл, особенно, если сервер отдал контент быстро, а пользователь забирает медленно. и узким местом может являться жесткий диск. iotop что показывается ? 11 октября 2012 г., 1:45 пользователь ProxyKZ написал: > Есть сервер хостинга Xeon 2,4GHz QuadCore / RAM 2Gb / SAS 500Gb работает > около 100 сайтов клиентов с посещаемостью по 50-100 в день и 7-10 сайтов по > 1000-2000 в день. Nginx/0.6.32 раздает статику и стоит перед Apache. Раньше > Apache либо съедал всю память и nginx не могу до него дсотучаться выдавая > 502 и т.п. ошибки, потом ограничили в конфиге Апача MaxClient до 25 и стало > стабильнее. Но после прописывания бОльшей части сайтов в Nginx - сайты эти > которых статику начал отдавать nginx стали тормозить - сильно азметно на > медленных клиентах. После нескольких запросов как будто пауза образуется, > то > есть чем чаще обращение к сайту тем тормозит сильнее - на странице прямо > видно что недогружаются картинки и js и css, отладчик барузера часто > ругается на файлы что их нет (404), тут же если обновить страницу они могут > успешно загрузиться. У клиентов на широких каналах от 1MBit/s все леатет и > тормоза почти незаметны, а на медленных каждое 3-5-ое открытие любого сайта > замедляется от 10 секунд до даже минут иногда. > > Это конфиг Apache: > ----------------------------- > ServerRoot "/etc/apache2" > > LockFile /var/lock/apache2/accept.lock > > PidFile ${APACHE_PID_FILE} > > Timeout 15 > KeepAlive Off > MaxKeepAliveRequests 400 > KeepAliveTimeout 3 > > ExtendedStatus On > > > StartServers 1 > MinSpareServers 2 > MaxSpareServers 10 > MaxClients 25 > MaxRequestsPerChild 1000 > > > > StartServers 2 > MaxClients 50 > MinSpareThreads 25 > MaxSpareThreads 75 > ThreadsPerChild 25 > MaxRequestsPerChild 1000 > > > # These need to be set in /etc/apache2/envvars > User ${APACHE_RUN_USER} > Group ${APACHE_RUN_GROUP} > > AccessFileName .htaccess > > # > # The following lines prevent .htaccess and .htpasswd files from being > # viewed by Web clients. > # > > Order allow,deny > Deny from all > > > DefaultType text/plain > > HostnameLookups Off > ErrorLog /var/log/apache2/error.log > LogLevel info > > Include /etc/apache2/mods-enabled/*.load > Include /etc/apache2/mods-enabled/*.conf > > Include /etc/apache2/httpd.conf > > Include /etc/apache2/ports.conf > > LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" > \"%{User-Agent}i\"" vhost_combined > LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" > combined > LogFormat "%h %l %u %t \"%r\" %>s %b" common > LogFormat "%{Referer}i -> %U" referer > LogFormat "%{User-agent}i" agent > > Include /etc/apache2/conf.d/ > > NameVirtualHost *:443 > > ServerName example.com:443 > SSLEngine on > SSLCertificateFile /etc/apache2/ssl.crt/server.crt > SSLCertificateKeyFile /etc/apache2/ssl.key/server.key > > > Include /usr/local/ispmgr/etc/ispmgr.inc > > > AllowOverride all > php_admin_value open_basedir "/home/user:." > > ----------------------------- > и т.д. описаны все хосты > > > Это конфиг Nginx: > ----------------------------- > user www-data; > worker_processes 4; > worker_rlimit_nofile 16384; > > error_log /var/log/nginx/error.log error; > pid /var/run/nginx.pid; > > events { > worker_connections 1024; > use epoll; > } > > http { > include /etc/nginx/mime.types; > default_type application/octet-stream; > > access_log /var/log/nginx/access.log; > #expires 30d; > sendfile on; > tcp_nopush on; > tcp_nodelay on; > client_max_body_size 10m; > client_body_buffer_size 16k; > proxy_connect_timeout 60s; > proxy_send_timeout 60s; > proxy_read_timeout 60s; > proxy_buffer_size 64k; > proxy_buffers 4 32k; > proxy_busy_buffers_size 64k; > proxy_temp_file_write_size 10m; > > gzip on; > gzip_comp_level 3; > gzip_proxied any; > gzip_min_length 1000; > gzip_types application/x-javascript text/css; > gzip_disable "MSIE [1-6]\.(?!.*SV1)"; > > keepalive_timeout 35; > > > include /etc/nginx/conf.d/*.conf; > include /etc/nginx/sites-enabled/*; > log_format isp '$bytes_sent $request_length'; > server { > listen 82.200.198.10:80; > server_name example.com www.example.com; > rewrite ^(/manager/.*)$ https://$host$1 permanent; > error_page 404 = @fallback; > location ~* > ^/(webstat/|awstats|webmail/|myadmin/|manimg/|pgadmin/) { > proxy_pass http://82.200.198.10:81; > proxy_redirect http://example.com:81/ /; > 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://82.200.198.10:81; > proxy_redirect http://example.com:81/ /; > 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|swf)$ { > root /home/user/www/example.com; > access_log /home/httpd-logs/example.com.access.log > ; > access_log /home/nginx-logs/user isp; > } > location @fallback { > proxy_pass http://82.200.198.10:81; > proxy_set_header Host $host; > proxy_set_header X-Forwarded-For > $proxy_add_x_forwarded_for; > proxy_set_header X-Real-IP $remote_addr; > } > } > ----------------------------- > и т.д. в таком же ключе еще 100 хостов прописано. > > Изменял по разному в конфиге Nginx следующие ключи: > worker_connections > worker_processes > sendfile > proxy_connect_timeout > proxy_send_timeout > proxy_read_timeout > gzip_proxied > gzip_comp_level > ничего не приводит к заметному результату, как тормозил у медленных > клиентов > так и тормозит. > > Apache Server Status показывает максимум до 10 Request, то есть заметно что > нагрузка на него упала (раньше бывало до 20-25), но почему nginx стал так > медленно работать? > > в Top-е nginx почти не вылезает иногда до 2% CPU кушает, в основном кушают > CPU процессы Apache 3-4 штуки бывает под 30-70% но всего лишь на несколько > секунд и MySQL обычно кушает 20-30% , бывает 50-70% но тоже на считанные > секунды. В целом RAM и CPU не загружены когда проявляются тормоза. > Складывает такое ощущение, что nginx зажат какими то лимитами и не может > быстро раздавать статику, хотя ресурсы сервера еще позволяют это сделать. > > У меня админ уволился, найти грамотного не могу, вот пытаюсь сам > поддерживать сервер... > Огромная просьба к бывалым хостерам - помогите советом!!! > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,231602,231602#msg-231602 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From andrey at kopeyko.ru Fri Oct 12 11:30:49 2012 From: andrey at kopeyko.ru (Andrey Kopeyko) Date: Fri, 12 Oct 2012 15:30:49 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEg0LrQsNGB0YLQvtC80L3Ri9C80Lggc2Vu?= =?UTF-8?B?dCBodHRwINC30LDQs9C+0LvQvtCy0LrQsNC80Lg=?= In-Reply-To: <7f192aa4fa441141e5c79706a6d4af71.NginxMailingListRussian@forum.nginx.org> References: <5077F26E.4010001@citrin.ru> <7f192aa4fa441141e5c79706a6d4af71.NginxMailingListRussian@forum.nginx.org> Message-ID: <5077FF69.4080502@kopeyko.ru> 12.10.2012 14:49, kermit32dll пишет: > > Если сразу же обратиться к $upstream_http_sc в if, то тоже не работает: Патамучта rewrite работает до proxy - и в этот момент не только ответа от бэкенда нет, но даже запрос на бэкенд ещё не передавался. > if ($upstream_http_sc = 1) { > more_set_headers 'DEBUG: Found SC header!'; > } -- Best regards, Andrey Kopeyko From mdounin at mdounin.ru Fri Oct 12 11:51:45 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 12 Oct 2012 15:51:45 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEg0LrQsNGB0YLQvtC80L3Ri9C80Lggc2Vu?= =?UTF-8?B?dCBodHRwINC30LDQs9C+0LvQvtCy0LrQsNC80Lg=?= In-Reply-To: <7f192aa4fa441141e5c79706a6d4af71.NginxMailingListRussian@forum.nginx.org> References: <5077F26E.4010001@citrin.ru> <7f192aa4fa441141e5c79706a6d4af71.NginxMailingListRussian@forum.nginx.org> Message-ID: <20121012115145.GZ40452@mdounin.ru> Hello! On Fri, Oct 12, 2012 at 06:49:29AM -0400, kermit32dll wrote: > Спасибо за подсказуку, но тесты показали: > > Работает: > > more_set_headers 'DEBUG: $upstream_http_sc'; > > Не работает: > > set $t $upstream_http_sc; > more_set_headers 'DEBUG: $t'; > > Если сразу же обратиться к $upstream_http_sc в if, то тоже не работает: > > if ($upstream_http_sc = 1) { > more_set_headers 'DEBUG: Found SC header!'; > } Директивы "set" и "if" - это директивы модуля rewrite, и выполняются они до передачи запроса бекенду. Соответственно $upstream_http_..., $sent_http_... в них использовать не имеет смысла. (Если быть совсем точным - $upstream_http_... может иметь смысл использовать, если речь идёт о обработке уже однажды отправленного на бекенд запроса после внутреннего перенаправления, e.g. при использовании X-Accel-Redirect или proxy_intercept_errors.) Подробнее про работу модуля rewrite можно прочитать тут: http://nginx.org/ru/docs/http/ngx_http_rewrite_module.html Если нужно делать какие-то преобразования данных, работающие в любой момент обработки запроса, то это можно сделать с помощью директивы map: map $upstream_http_sc $found_sc_header { default ""; 1 "Found SC header!"; } add_header Debug $found_sc_header; Такая конструкция проверит значение $upstream_http_sc только в тот момент, когда придёт время добавлять заголовок, т.е. когда заголовок ответа бекенда уже получен. При этом если от бекенда пришёл заголовк "SC" со значением "1" - будет добавлен заголовок Debug со значенем "Found SC header!". (Если же не пришёл - то переменная $found_sc_header будет пустой, и заголовок Debug добавлен не будет.) Подробнее про работу модуля map можно прочитать тут: http://nginx.org/ru/docs/http/ngx_http_map_module.html -- Maxim Dounin http://nginx.com/support.html From nginx-forum at nginx.us Fri Oct 12 12:37:51 2012 From: nginx-forum at nginx.us (kermit32dll) Date: Fri, 12 Oct 2012 08:37:51 -0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEg0LrQsNGB0YLQvtC80L3Ri9C80Lggc2Vu?= =?UTF-8?B?dCBodHRwINC30LDQs9C+0LvQvtCy0LrQsNC80Lg=?= In-Reply-To: <20121012115145.GZ40452@mdounin.ru> References: <20121012115145.GZ40452@mdounin.ru> Message-ID: Максим, спасибо, действительно, заголовок после данных манипуляций появился. Но теперь следующий вопрос - а как воспользоваться этой переменной внутри локейшешена, внутри if'a? На данный момент есть такой конфиг: map $upstream_http_sc $found_sc_header { default "0"; 1 "1"; } add_header Debug $found_sc_header; server { location / { proxy_pass http://www1; proxy_cache_methods GET HEAD POST; if ($found_sc_header = '1') { # здесь пусто, или любая директива } } } Нгинкс запускается, но соединения не принимает. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231706,231717#msg-231717 From nginx-forum at nginx.us Fri Oct 12 14:30:18 2012 From: nginx-forum at nginx.us (kermit32dll) Date: Fri, 12 Oct 2012 10:30:18 -0400 Subject: =?UTF-8?B?0KDQsNC30L3Ri9C1INGC0LjQv9GLINC60LXRiNC40YDQvtCy0LDQvdC40Y8g0LQ=?= =?UTF-8?B?0LvRjyDRgNCw0LfQvdGL0YUg0YHRgtGA0LDQvdC40YY=?= Message-ID: <6526a1e31d193b8f3bc3801102dabf21.NginxMailingListRussian@forum.nginx.org> Возникла потребность организовать кеш в нгинксе, но при этом иметь возможность управлять им из кешируемого сайта несколько нестандартным методом. Управление будет осуществляться передачей хедера "sc", например, "sc: 1" из бэкэнда в нгинкс. При получении хедера должно отработать условие в location: map $upstream_http_sc $sc { default "0"; 1 "1"; } server { .......... .......... location / { ............. ............. if ($sc = 0) { proxy_cache_key "$scheme://$proxy_host$request_uri"; } if ($sc = 1) { proxy_cache_key "$scheme://$proxy_host$request_uri|$cookie_PHPSESSID"; } ............. ............. } } Реализуемо ли это? Заранее спасибо! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231724,231724#msg-231724 From igor at sysoev.ru Fri Oct 12 14:40:02 2012 From: igor at sysoev.ru (Igor Sysoev) Date: Fri, 12 Oct 2012 18:40:02 +0400 Subject: =?UTF-8?B?UmU6INCg0LDQt9C90YvQtSDRgtC40L/RiyDQutC10YjQuNGA0L7QstCw0L3QuNGP?= =?UTF-8?B?INC00LvRjyDRgNCw0LfQvdGL0YUg0YHRgtGA0LDQvdC40YY=?= In-Reply-To: <6526a1e31d193b8f3bc3801102dabf21.NginxMailingListRussian@forum.nginx.org> References: <6526a1e31d193b8f3bc3801102dabf21.NginxMailingListRussian@forum.nginx.org> Message-ID: <0C2020E2-618B-46B1-A31F-F57F5E20137F@sysoev.ru> On Oct 12, 2012, at 18:30 , kermit32dll wrote: > Возникла потребность организовать кеш в нгинксе, но при этом иметь > возможность управлять им из кешируемого сайта несколько нестандартным > методом. Управление будет осуществляться передачей хедера "sc", например, > "sc: 1" из бэкэнда в нгинкс. При получении хедера должно отработать условие > в location: > > map $upstream_http_sc $sc { > default "0"; > 1 "1"; > } > > server { > .......... > .......... > location / { > ............. > ............. > if ($sc = 0) { > proxy_cache_key "$scheme://$proxy_host$request_uri"; > } > if ($sc = 1) { > proxy_cache_key > "$scheme://$proxy_host$request_uri|$cookie_PHPSESSID"; > } > ............. > ............. > } > } > > Реализуемо ли это? Заранее спасибо! Нет. Во-первых, "if" работает задолго до того, как nginx определяет, что будет делаться проксирование. А во-вторых, основаня проблема в том, что proxy_cache_key должен быть известен ДО обращения к бэкенду. -- Igor Sysoev http://nginx.com/support.html From nginx-forum at nginx.us Fri Oct 12 15:06:56 2012 From: nginx-forum at nginx.us (kermit32dll) Date: Fri, 12 Oct 2012 11:06:56 -0400 Subject: =?UTF-8?B?UmU6INCg0LDQt9C90YvQtSDRgtC40L/RiyDQutC10YjQuNGA0L7QstCw0L3QuNGP?= =?UTF-8?B?INC00LvRjyDRgNCw0LfQvdGL0YUg0YHRgtGA0LDQvdC40YY=?= In-Reply-To: <0C2020E2-618B-46B1-A31F-F57F5E20137F@sysoev.ru> References: <0C2020E2-618B-46B1-A31F-F57F5E20137F@sysoev.ru> Message-ID: Игорь, спасибо за комментарии! >> Нет. Во-первых, "if" работает задолго до того, как nginx определяет, что будет делаться проксирование. Так ведь и замечательно, всё, что требуется - установить для этого грядущего кеширования / проксирования его параметр. >> А во-вторых, основаня проблема в том, что proxy_cache_key должен быть известен ДО обращения к бэкенду. Насколько я понял, если весь путь целиком неизвестен, то обращение к бэкэнду будет проходить без кеша. Ведь следующая конструкция работает вполне корректно и до обращения к бэкэнду, куки же неизвестна при первом запросе. proxy_cache_key "$scheme://$proxy_host$request_uri|$cookie_PHPSESSID"; Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231724,231731#msg-231731 From hunter at comsys.com.ua Fri Oct 12 15:06:49 2012 From: hunter at comsys.com.ua (Sergey Smitienko) Date: Fri, 12 Oct 2012 18:06:49 +0300 Subject: =?UTF-8?B?UmU6INCg0LDQt9C90YvQtSDRgtC40L/RiyDQutC10YjQuNGA0L7QstCw0L3QuNGP?= =?UTF-8?B?INC00LvRjyDRgNCw0LfQvdGL0YUg0YHRgtGA0LDQvdC40YY=?= In-Reply-To: <6526a1e31d193b8f3bc3801102dabf21.NginxMailingListRussian@forum.nginx.org> References: <6526a1e31d193b8f3bc3801102dabf21.NginxMailingListRussian@forum.nginx.org> Message-ID: <50783209.1040606@comsys.com.ua> А почему у Вас вообще возникла такая потребность, можно узнать? Если Вы хотите кешировать сайт с сессиями php, то надо session_start() делать только в том случае, если от пользователя уже пришел запрос с установленной cookie сессии, или в тот момент, когда у Вас появилась необходимость что-то в сессию записать. Тогда на стороне nginx вполне хватает конструкции: proxy_cache_key "$scheme://$proxy_host$request_uri|$cookie_PHPSESSID" -- Sergey Smitienko From nginx-forum at nginx.us Fri Oct 12 15:11:38 2012 From: nginx-forum at nginx.us (worldsinyou) Date: Fri, 12 Oct 2012 11:11:38 -0400 Subject: =?UTF-8?Q?ngx_slowfs_cache_=D0=B8_mp4_streaming?= Message-ID: <8201b40bae0164de1a461dbfa9bf216a.NginxMailingListRussian@forum.nginx.org> Здравствуйте! Возникла задача сделать небольшое видео хранилище с mp4-стриммингом. Конфигурация жестких дисков следующая: 4x1Tb SATA = raid 10 2x320Gb SAS = raid 0 Планировалось сделать основное хранилище на SATA и кэш на SAS. Был выбран модуль ngx_slowfs_cache, который идеально подходил под мои задачи. Однако, он не работает с модулем ngx_http_mp4, который также необходим. Т.е. конфигурация вида: location / { slowfs_cache sascache; slowfs_cache_key $uri; slowfs_cache_valid 7d; root /mnt/storage/v/www; location ~ \.mp4$ { mp4; } } не работает как надо (кэш не создается и не используется) а такая: location / { slowfs_cache sascache; slowfs_cache_key $uri; slowfs_cache_valid 7d; root /mnt/storage/v/www; } работает успешно, но без ngx_http_mp4. Что тут можно сделать? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231733,231733#msg-231733 From nginx-forum at nginx.us Fri Oct 12 15:35:38 2012 From: nginx-forum at nginx.us (kermit32dll) Date: Fri, 12 Oct 2012 11:35:38 -0400 Subject: =?UTF-8?B?UmU6INCg0LDQt9C90YvQtSDRgtC40L/RiyDQutC10YjQuNGA0L7QstCw0L3QuNGP?= =?UTF-8?B?INC00LvRjyDRgNCw0LfQvdGL0YUg0YHRgtGA0LDQvdC40YY=?= In-Reply-To: <50783209.1040606@comsys.com.ua> References: <50783209.1040606@comsys.com.ua> Message-ID: <62f010a8518df5ae5975a03a035b0a71.NginxMailingListRussian@forum.nginx.org> Сергей, Я настраиваю некий сервис по проксированию и кешированию совершенно произвольных и незнакомых сайтов, и доступа к исходникам бэкэндов не имею. К тому же, есть дополнительные проблемы: 1) точно неизвестно, как именно сервер будет идентифицировать сессии, ведь PHPSESSID - явление чисто пхпшное, а бэкэнд может быть и на php, и на asp, и на java, и вообще на чём угодно. Эта проблема решается выдачей нгинксом спецкуки, которая будет уже не будет зависеть от бэкэнда, и точно идентифицировать клиента для кеширования динамики. 2) из пункта 2 вытекает проблема - уже не важно, включена ли сессия, или нет, т.к. кука выдаётся сразу в любом случае, и каждый клиент рассматривается как залогиненный. Соответственно, хотелось бы иметь возможность передать от лица сайта в нгинкс некий хедер, который бы сказал нгинксу, что данный урл не нужно кешировать ещё и по сессионной куке, а только по УРЛу, таким образом реализуя "общий" кеш. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231724,231736#msg-231736 From pr1 at pr1.ru Fri Oct 12 17:04:25 2012 From: pr1 at pr1.ru (Andrey Feldman) Date: Fri, 12 Oct 2012 21:04:25 +0400 Subject: =?UTF-8?Q?Re=3A_ngx_slowfs_cache_=D0=B8_mp4_streaming?= In-Reply-To: <8201b40bae0164de1a461dbfa9bf216a.NginxMailingListRussian@forum.nginx.org> References: <8201b40bae0164de1a461dbfa9bf216a.NginxMailingListRussian@forum.nginx.org> Message-ID: Есть мнение, что модуль mp4 просто использует свои методы для работы с файлами, и при использовании mp4 в локейшене slowfs игнорируется. Какая задача стоит в архитектурном плане? 2012/10/12 worldsinyou : > Здравствуйте! > > Возникла задача сделать небольшое видео хранилище с mp4-стриммингом. > > Конфигурация жестких дисков следующая: > > 4x1Tb SATA = raid 10 > > 2x320Gb SAS = raid 0 > > Планировалось сделать основное хранилище на SATA и кэш на SAS. > Был выбран модуль ngx_slowfs_cache, который идеально подходил под мои > задачи. > > Однако, он не работает с модулем ngx_http_mp4, который также необходим. > > Т.е. конфигурация вида: > > location / { > slowfs_cache sascache; > slowfs_cache_key $uri; > slowfs_cache_valid 7d; > root /mnt/storage/v/www; > location ~ \.mp4$ { mp4; } > } > > не работает как надо (кэш не создается и не используется) > > а такая: > > location / { > slowfs_cache sascache; > slowfs_cache_key $uri; > slowfs_cache_valid 7d; > root /mnt/storage/v/www; > } > > работает успешно, но без ngx_http_mp4. > > Что тут можно сделать? > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231733,231733#msg-231733 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- -- Andrey Feldman From nginx-forum at nginx.us Fri Oct 12 17:15:04 2012 From: nginx-forum at nginx.us (ak84) Date: Fri, 12 Oct 2012 13:15:04 -0400 Subject: nginx & core dump 2 In-Reply-To: <20121008102117.GA40452@mdounin.ru> References: <20121008102117.GA40452@mdounin.ru> Message-ID: Максим, VBart спасибо за помощь! Прочитал статью про if, почистил конфиги, core dump'ов практически нет Появляются ( около десятка записей в день ): pid 13382 (nginx), uid 80: exited on signal 10 (core dumped) pid 47327 (nginx), uid 80: exited on signal 11 (core dumped) pid 49007 (nginx), uid 80: exited on signal 11 pid 52523 (nginx), uid 80: exited on signal 11 (gdb) bt #0 0x00000008010c8786 in memcpy () from /lib/libc.so.7 #1 0x000000000049efa4 in ngx_http_proxy_create_request (r=0x801f83b00) at src/http/modules/ngx_http_proxy_module.c:1174 #2 0x0000000000468b91 in ngx_http_upstream_init_request (r=0x801f83b00) at src/http/ngx_http_upstream.c:505 #3 0x0000000000468924 in ngx_http_upstream_init (r=0x801f83b00) at src/http/ngx_http_upstream.c:446 #4 0x000000000045eca3 in ngx_http_read_client_request_body (r=0x801f83b00, post_handler=0x468840 ) at src/http/ngx_http_request_body.c:59 #5 0x000000000049d9dc in ngx_http_proxy_handler (r=0x801f83b00) at src/http/modules/ngx_http_proxy_module.c:702 #6 0x00000000004469cd in ngx_http_core_content_phase (r=0x801f83b00, ph=0x802542fa8) at src/http/ngx_http_core_module.c:1396 #7 0x0000000000445502 in ngx_http_core_run_phases (r=0x801f83b00) at src/http/ngx_http_core_module.c:877 #8 0x000000000044547d in ngx_http_handler (r=0x801f83b00) at src/http/ngx_http_core_module.c:860 #9 0x0000000000453d94 in ngx_http_process_request (r=0x801f83b00) at src/http/ngx_http_request.c:1685 #10 0x0000000000452795 in ngx_http_process_request_headers (rev=0x806203640) at src/http/ngx_http_request.c:1135 #11 0x0000000000451f26 in ngx_http_process_request_line (rev=0x806203640) at src/http/ngx_http_request.c:933 #12 0x0000000000451128 in ngx_http_init_request (rev=0x806203640) at src/http/ngx_http_request.c:519 #13 0x000000000042d47c in ngx_event_process_posted (cycle=0x801e55050, posted=0x5f0a60) at src/event/ngx_event_posted.c:40 #14 0x000000000042af25 in ngx_process_events_and_timers (cycle=0x801e55050) at src/event/ngx_event.c:274 #15 0x0000000000438264 in ngx_worker_process_cycle (cycle=0x801e55050, data=0x0) at src/os/unix/ngx_process_cycle.c:808 #16 0x0000000000435261 in ngx_spawn_process (cycle=0x801e55050, proc=0x438070 , data=0x0, name=0x4c1869 "worker process", respawn=2) at src/os/unix/ngx_process.c:198 #17 0x0000000000437c92 in ngx_reap_children (cycle=0x801e55050) at src/os/unix/ngx_process_cycle.c:622 #18 0x00000000004369e6 in ngx_master_process_cycle (cycle=0x801e55050) at src/os/unix/ngx_process_cycle.c:181 #19 0x00000000004066d3 in main (argc=1, argv=0x7fffffffed68) at src/core/nginx.c:410 Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231434,231697#msg-231697 From iroinname at gmail.com Fri Oct 12 23:07:12 2012 From: iroinname at gmail.com (=?KOI8-R?B?5dfHxc7JyiDiz9LPxMnO?=) Date: Sat, 13 Oct 2012 02:07:12 +0300 Subject: =?UTF-8?B?SHR0cEdlb0lQTW9kdWxlINC00LvRjyDQv9GF0L8u?= Message-ID: здравствуйте. Правильно ли я понимаю, что вычисление гео клиента будет только в случае если запрашивается файл .php ? т.е для статических файлов не будет вычисления и 2 вопрос. по дефолту стоит режим GEOIP_MEMORY_CACHE ? или это где то нужно прописывать ? From nginx-forum at nginx.us Sat Oct 13 04:34:45 2012 From: nginx-forum at nginx.us (ProxyKZ) Date: Sat, 13 Oct 2012 00:34:45 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC80LXQtNC70LXQvdC90L4g0L7RgtC00LDQtdGCINGB0YLQsNGC?= =?UTF-8?B?0LjQutGDINC80LXQtNC70LXQvdC90YvQvCDQutC70LjQtdC90YLQsNC8IQ==?= In-Reply-To: References: Message-ID: <67be3cf815e9ad9c41e9ad8267432377.NginxMailingListRussian@forum.nginx.org> Обычно светятся в Топе эти Команды: (в скобках замеченные пределы в столбе IO): pdflush (20-90%) journald (20-85%) mysql --basedir=/usr ~ysqld.sock --port=3306 (20-80%) apache2 -k start (5-30%) nginx: worker process (2-5%) Определенного зависшего процесса в iotop не вижу, команды висят там по 1-2 сек потом уступают другим и т.д. в разное время по-разному, если честно не могу связать что вот раз сейчас тормозит nginx то в iotop висит такой то процесс. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231602,231748#msg-231748 From igor at sysoev.ru Sat Oct 13 05:55:21 2012 From: igor at sysoev.ru (Igor Sysoev) Date: Sat, 13 Oct 2012 09:55:21 +0400 Subject: =?UTF-8?B?UmU6IEh0dHBHZW9JUE1vZHVsZSDQtNC70Y8g0L/RhdC/Lg==?= In-Reply-To: References: Message-ID: <22C830C1-F83D-4F46-8FB3-BB93C1E76AC9@sysoev.ru> On Oct 13, 2012, at 3:07 , Евгений Бородин wrote: > здравствуйте. > Правильно ли я понимаю, что вычисление гео клиента будет только в > случае если запрашивается файл .php ? т.е для статических файлов не > будет вычисления Нет, неправильно. От .php или статики ничего не зависит, а зависит только от конфигурации. > и 2 вопрос. по дефолту стоит режим GEOIP_MEMORY_CACHE ? или это где > то нужно прописывать ? Да, GEOIP_MEMORY_CACHE. -- Igor Sysoev http://nginx.com/support.html From hell-for-yahoo at umail.ru Sat Oct 13 05:50:04 2012 From: hell-for-yahoo at umail.ru (Andrey Repin) Date: Sat, 13 Oct 2012 09:50:04 +0400 Subject: =?UTF-8?B?UmU6IE5naW54INC80LXQtNC70LXQvdC90L4g0L7RgtC00LDQtdGCINGB0YLQsNGC?= =?UTF-8?B?0LjQutGDINC80LXQtNC70LXQvdC90YvQvCDQutC70LjQtdC90YLQsNC8IQ==?= In-Reply-To: References: <2369997124c39c7bf9f3e0ead68fed2a@logol.ru> Message-ID: <835746877.20121013095004@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) ProxyKZ! P> Top показывает обычно что Своп используется лишь частично: P> Swap: 5831552k total, 130260k used, 5701292k free, 917452k cached P> MaxClient в конфиге апача мы выставили так чтобы осатвалось всегда хотя бы P> 50-100Mb ОЗУ Память добавляйте. Раз у вас на одной машине вертится сайт и БД, 2 гигов тупо мало. И кончайте писать ответы перед вопросами, читать же невозможно. -- С уважением Andrey Repin (hell-for-yahoo at umail.ru) суббота, 13.10.2012, <09:48> From hell-for-yahoo at umail.ru Sat Oct 13 05:57:31 2012 From: hell-for-yahoo at umail.ru (Andrey Repin) Date: Sat, 13 Oct 2012 09:57:31 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEg0LrQsNGB0YLQvtC80L3Ri9C80Lggc2Vu?= =?UTF-8?B?dCBodHRwINC30LDQs9C+0LvQvtCy0LrQsNC80Lg=?= In-Reply-To: References: <20121012115145.GZ40452@mdounin.ru> Message-ID: <1217410461.20121013095731@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) kermit32dll! k> Максим, спасибо, действительно, заголовок после данных манипуляций появился. k> Но теперь следующий вопрос - а как воспользоваться этой переменной внутри k> локейшешена, внутри if'a? MD> Директивы "set" и "if" - это директивы модуля rewrite, и MD> выполняются они до передачи запроса бекенду. Соответственно MD> $upstream_http_..., $sent_http_... в них использовать не имеет MD> смысла. Вы читаете, что вам пишут? На счёт локейшена - было ещё раньше. Вообще, кончайте приплясывать на одном месте и скажите, что конкретно вы хотите сделать. А то у меня есть стойкое ощущение, что вам нужно совсем не то, что вы пытаетесь сделать. k> На данный момент есть такой конфиг: k> map $upstream_http_sc $found_sc_header { k> default "0"; k> 1 "1"; k> } k> add_header Debug $found_sc_header; k> server { k> location / { k> proxy_pass http://www1; k> proxy_cache_methods GET HEAD POST; k> if ($found_sc_header = '1') { k> # здесь пусто, или любая директива k> } k> } k> } k> Нгинкс запускается, но соединения не принимает. -- С уважением Andrey Repin (hell-for-yahoo at umail.ru) суббота, 13.10.2012, <09:54> From nginx-forum at nginx.us Sat Oct 13 12:25:06 2012 From: nginx-forum at nginx.us (kermit32dll) Date: Sat, 13 Oct 2012 08:25:06 -0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEg0LrQsNGB0YLQvtC80L3Ri9C80Lggc2Vu?= =?UTF-8?B?dCBodHRwINC30LDQs9C+0LvQvtCy0LrQsNC80Lg=?= In-Reply-To: <1217410461.20121013095731@mtu-net.ru> References: <1217410461.20121013095731@mtu-net.ru> Message-ID: <042f71b7f470372bfd66d0435e68d95d.NginxMailingListRussian@forum.nginx.org> Андрей, Мне нужен способ, который позволял бы в нгинкс передавать с бэкэнда команду поменять тип кеширования для конкретной страницы. По умолчанию все страницы у меня кешируются по uri и специальной отдельно заданной самим нгинксом сессионной куки, чтобы не зависеть от названия сессионной куки, которое у всех движков разное. Но если текущая страница считает, что не содержит никакой персонализированной информации, то может передать в хедере ответа некий ключ, и нгинкс конкретно её закеширует без учёта сессионной куки. Есть решение вообще не передавать сессионную куки без надобности, но в некоторых случаях это требует сильных изменений сайтов, что не всегда возможно, так как я предоставляю сервис кеширования абсолютно произвольным сайтам, и могу вообще не иметь доступа к исходникам, и всё, что я могу предложить их владельцам - добавлять отсылку спецхедера на некоторые страницы. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231706,231759#msg-231759 From ne at vbart.ru Sat Oct 13 12:52:09 2012 From: ne at vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Sat, 13 Oct 2012 16:52:09 +0400 Subject: =?UTF-8?B?UmU6ICDQn9GA0L7QsdC70LXQvNCwINGBINC60LDRgdGC0L7QvNC90YvQvNC4IHNl?= =?UTF-8?B?bnQgaHR0cCDQt9Cw0LPQvtC70L7QstC60LDQvNC4?= In-Reply-To: <042f71b7f470372bfd66d0435e68d95d.NginxMailingListRussian@forum.nginx.org> References: <1217410461.20121013095731@mtu-net.ru> <042f71b7f470372bfd66d0435e68d95d.NginxMailingListRussian@forum.nginx.org> Message-ID: <201210131652.10046.ne@vbart.ru> On Saturday 13 October 2012 16:25:06 kermit32dll wrote: > Андрей, > > Мне нужен способ, который позволял бы в нгинкс передавать с бэкэнда команду > поменять тип кеширования для конкретной страницы. По умолчанию все страницы > у меня кешируются по uri и специальной отдельно заданной самим нгинксом > сессионной куки, чтобы не зависеть от названия сессионной куки, которое у > всех движков разное. Но если текущая страница считает, что не содержит > никакой персонализированной информации, то может передать в хедере ответа > некий ключ, и нгинкс конкретно её закеширует без учёта сессионной куки. > > [...] У вас логическое противоречие в задачке. Вы хотите поменять "тип кеширования", после обращения к бэкенду, но чтобы работал кеш, он должен быть уже известен до обращения. Но я так подозреваю, что вам вовсе не это нужно. А нужно скрыть куку из заголовка Set-Cookie в ответе бэкенда при условии наличия другого заголовка. На данный момент такой возможности нет. -- Валентин Бартенев http://nginx.com/support.html From iroinname at gmail.com Sat Oct 13 13:46:03 2012 From: iroinname at gmail.com (=?KOI8-R?B?5dfHxc7JyiDiz9LPxMnO?=) Date: Sat, 13 Oct 2012 16:46:03 +0300 Subject: =?UTF-8?B?0JrQvtC90YTQuNCz0YPRgNCw0YbQuNGPINCz0LXQvtC40L8g0LTQu9GPINC/0YU=?= =?UTF-8?B?0L8=?= Message-ID: Здравствуйте. Скажите пожалуйста, а где можно почитать готовые примеры конфигурации где вычисление гео было бы лишь для пхп-файлов ? Воопще хочу рассказать что мы планируем: нам нужно в пхп-скрипте определять код страны. Сейчас мы используем модуль для пхп геоип. Ставили его командой apt-get install php5-geoip. Но при изучении сорцов я так понял там используется режим GEOIP_STANDART. Можно конечно пересобрать это пекл-расширение и в Си коде исправить GEOIP_STANDART на GEOIP_MEMORY_CACHE, но я не совсем представляю как это будет работать в том плане, что ведь пхп-скрипты вызываются каждый раз заново. У нас стоит php-fpm. А так понимаю в nginx уже запущены ворк-процессы где бд в памяти т.е режим GEOIP_MEMORY_CACHE и вычисления идут намного быстрее чем вариант с php5-geoip. Но, раз в nginx'е вычисления идут для всех коннектов, то даже для картинок и прочей статики будет вычисляться гео - что нам совсем не нужно. В пхп то мы сейчас просто вызываем функцию и она нам отдает код страны. Не могли бы Вы посоветовать нам какой вариант будет быстрее в нашей ситуации или может быть существует другое решение на Ваш взгляд ? Правильно ли я предполагаю, что вариант с геоип в nginx'е с настроенным конфигом на вычисления гео только для пхп-скриптов будет оптимальнее ежели существующий вариант с пекл-расширением геоип для пхп ? заранее спасибо ------------------------------------------------------------- > здравствуйте. > Правильно ли я понимаю, что вычисление гео клиента будет только в > случае если запрашивается файл .php ? т.е для статических файлов не > будет вычисления Нет, неправильно. От .php или статики ничего не зависит, а зависит только от конфигурации. Igor Sysoev > и 2 вопрос. по дефолту стоит режим GEOIP_MEMORY_CACHE ? или это где > то нужно прописывать ? Да, GEOIP_MEMORY_CACHE. Igor Sysoev From nginx-forum at nginx.us Sat Oct 13 20:59:24 2012 From: nginx-forum at nginx.us (tzirulnicov) Date: Sat, 13 Oct 2012 16:59:24 -0400 Subject: image filter + proxy store Message-ID: Хочется силами nginx делать превьюшки, только если они ранее не делались. server{ listen 81; server_name www.***.ru ***.ru; root /home/site_path/htdocs; location ~ ^/img_path/.*\.(?:jpg|jpeg|gif|png)_small1.jpeg$ { rewrite ^/img_path/(.*)_small1.jpeg$ /ee/wwfiles/$1; image_filter resize - 81; break; } } server{ listen 80; ... location ~ ^/img_path/.*\.(?:jpg|jpeg|gif|png)_small1.jpeg$ { proxy_pass http://127.0.0.1:81; proxy_set_header Host $host; proxy_store on; proxy_store_access user:rw group:rw all:r; proxy_temp_path /home/img_cache_path; root /home/img_cache_path; } } - кэш не работает, превьюшка создаётся заново при каждом запросе и сохраняется в /home/img_cache_path; Почему? Как сделать сохранение превьюшек, созданных при помощи image filter? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231766,231766#msg-231766 From nginx-forum at nginx.us Sat Oct 13 21:28:58 2012 From: nginx-forum at nginx.us (Priority1) Date: Sat, 13 Oct 2012 17:28:58 -0400 Subject: image filter + proxy store In-Reply-To: References: Message-ID: <2eeb60de881f951654047f7e468325fc.NginxMailingListRussian@forum.nginx.org> tzirulnicov Wrote: ------------------------------------------------------- > Хочется силами nginx делать превьюшки, только если они ранее не > делались. > > server{ > listen 81; > server_name www.***.ru ***.ru; > root /home/site_path/htdocs; > > location ~ ^/img_path/.*\.(?:jpg|jpeg|gif|png)_small1.jpeg$ { > rewrite ^/img_path/(.*)_small1.jpeg$ /ee/wwfiles/$1; > > break; > } > } > > > server{ > listen 80; > ... > location ~ ^/img_path/.*\.(?:jpg|jpeg|gif|png)_small1.jpeg$ { > proxy_pass http://127.0.0.1:81; > proxy_set_header Host $host; > > proxy_store on; > proxy_store_access user:rw group:rw all:r; > proxy_temp_path /home/img_cache_path; > root /home/img_cache_path; > } > } > > - кэш не работает, превьюшка создаётся заново при каждом запросе и > сохраняется в /home/img_cache_path; > Почему? Как сделать сохранение превьюшек, созданных при помощи image > filter? Попробуй примерно вот так: location ~ ^/img_path/.*\.(?:jpg|jpeg|gif|png)_small1.jpeg$ { root /home/img_cache_path; try_files $uri /create_image$uri } location ~ ^/img_cache_path/img_path/.*\.(?:jpg|jpeg|gif|png)_small1.jpeg$ { internal; root /home; proxy_pass http://127.0.0.1:81; image_filter resize - 81; proxy_set_header Host $host; proxy_store on; proxy_store_access user:rw group:rw all:r; proxy_temp_path /home/img_cache_path; } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231766,231767#msg-231767 From nginx-forum at nginx.us Sun Oct 14 09:49:28 2012 From: nginx-forum at nginx.us (playnet) Date: Sun, 14 Oct 2012 05:49:28 -0400 Subject: =?UTF-8?B?0LHQsNCzINGB0LjRgdGC0LXQvNGLINC40LvQuCBuZ2lueD8=?= Message-ID: <6b187049b75514df368589c38b66b467.NginxMailingListRussian@forum.nginx.org> #cat /var/log/messages|grep _continuous_flood_|wc -l 15 #uname -a Linux node2c 3.1.0-1.2-xen #5 SMP Mon Mar 5 16:41:01 MSK 2012 x86_64 GNU/Linux # cat /etc/debian_version 6.0.5 Oct 14 01:11:01 node2c kernel: [1365882.441751] The following is only an harmless informational message. Oct 14 01:11:01 node2c kernel: [1365882.441756] Unless you get a _continuous_flood_ of these messages it means Oct 14 01:11:01 node2c kernel: [1365882.441762] everything is working fine. Allocations from irqs cannot be Oct 14 01:11:01 node2c kernel: [1365882.441767] perfectly reliable and the kernel is designed to handle that. Oct 14 01:11:01 node2c kernel: [1365882.441773] nginx: page allocation failure. order:1, mode:0x20 Oct 14 01:11:01 node2c kernel: [1365882.441779] Pid: 20800, comm: nginx Not tainted 3.1.0-1.2-xen #5 Oct 14 01:11:01 node2c kernel: [1365882.441784] Call Trace: Oct 14 01:11:01 node2c kernel: [1365882.441804] [] dump_trace+0x85/0x1c0 Oct 14 01:11:01 node2c kernel: [1365882.441818] [] dump_stack+0x69/0x6f Oct 14 01:11:01 node2c kernel: [1365882.441843] [] warn_alloc_failed+0xfa/0x190 Oct 14 01:11:01 node2c kernel: [1365882.441853] [] __alloc_pages_nodemask+0x6ac/0x820 Oct 14 01:11:01 node2c kernel: [1365882.441863] [] kmem_getpages.isra.45+0x2b/0xcf Oct 14 01:11:01 node2c kernel: [1365882.441871] [] cache_grow.constprop.49+0xb7/0x21c Oct 14 01:11:01 node2c kernel: [1365882.441878] [] cache_alloc_refill+0x1b2/0x202 Oct 14 01:11:01 node2c kernel: [1365882.441887] [] kmem_cache_alloc+0x157/0x160 Oct 14 01:11:01 node2c kernel: [1365882.441897] [] sk_prot_alloc+0x43/0x200 Oct 14 01:11:01 node2c kernel: [1365882.441906] [] sk_clone+0x1a/0x300 Oct 14 01:11:01 node2c kernel: [1365882.441915] [] inet_csk_clone+0x10/0xc0 Oct 14 01:11:01 node2c kernel: [1365882.441926] [] tcp_create_openreq_child+0x21/0x460 Oct 14 01:11:01 node2c kernel: [1365882.441935] [] tcp_v4_syn_recv_sock+0x47/0x280 Oct 14 01:11:01 node2c kernel: [1365882.441942] [] tcp_check_req+0x2ff/0x4c0 Oct 14 01:11:01 node2c kernel: [1365882.441950] [] tcp_v4_hnd_req+0x6a/0x130 Oct 14 01:11:01 node2c kernel: [1365882.441957] [] tcp_v4_do_rcv+0x123/0x1d0 Oct 14 01:11:01 node2c kernel: [1365882.441964] [] tcp_v4_rcv+0x559/0x810 Oct 14 01:11:01 node2c kernel: [1365882.441972] [] ip_local_deliver_finish+0xcc/0x270 Oct 14 01:11:01 node2c kernel: [1365882.441983] [] __netif_receive_skb+0x502/0x5b0 Oct 14 01:11:01 node2c kernel: [1365882.441992] [] process_backlog+0xbf/0x200 Oct 14 01:11:01 node2c kernel: [1365882.442000] [] net_rx_action+0x151/0x2d0 Oct 14 01:11:01 node2c kernel: [1365882.442011] [] __do_softirq+0xba/0x230 Oct 14 01:11:01 node2c kernel: [1365882.442021] [] call_softirq+0x1c/0x30 Oct 14 01:11:01 node2c kernel: [1365882.442029] [] do_softirq+0x95/0xd0 Oct 14 01:11:01 node2c kernel: [1365882.442037] [] local_bh_enable+0x94/0xa0 Oct 14 01:11:01 node2c kernel: [1365882.442044] [] dev_queue_xmit+0x18b/0x490 Oct 14 01:11:01 node2c kernel: [1365882.442052] [] tcp_transmit_skb+0x31c/0x570 Oct 14 01:11:01 node2c kernel: [1365882.442059] [] tcp_write_xmit+0x1a5/0x3a0 Oct 14 01:11:01 node2c kernel: [1365882.442067] [] __tcp_push_pending_frames+0x19/0xb0 Oct 14 01:11:01 node2c kernel: [1365882.442074] [] tcp_sendmsg+0x897/0xd10 Oct 14 01:11:01 node2c kernel: [1365882.442082] [] do_sock_write.isra.10+0xc9/0xf0 Oct 14 01:11:01 node2c kernel: [1365882.442090] [] sock_aio_write+0x90/0xc0 Oct 14 01:11:01 node2c kernel: [1365882.442096] [] do_sync_readv_writev+0xad/0xf0 Oct 14 01:11:01 node2c kernel: [1365882.442101] [] do_readv_writev+0xd8/0x200 Oct 14 01:11:01 node2c kernel: [1365882.442105] [] sys_writev+0x4b/0xc0 Oct 14 01:11:01 node2c kernel: [1365882.442110] [] system_call_fastpath+0x16/0x1b Oct 14 01:11:01 node2c kernel: [1365882.442118] [<00007f432e4d77db>] 0x7f432e4d77da Oct 14 01:11:01 node2c kernel: [1365882.442120] Mem-Info: Oct 14 01:11:01 node2c kernel: [1365882.442123] DMA per-cpu: Oct 14 01:11:01 node2c kernel: [1365882.442125] CPU 0: hi: 0, btch: 1 usd: 0 Oct 14 01:11:01 node2c kernel: [1365882.442127] CPU 1: hi: 0, btch: 1 usd: 0 Oct 14 01:11:01 node2c kernel: [1365882.442130] CPU 2: hi: 0, btch: 1 usd: 0 Oct 14 01:11:01 node2c kernel: [1365882.442132] CPU 3: hi: 0, btch: 1 usd: 0 Oct 14 01:11:01 node2c kernel: [1365882.442135] CPU 4: hi: 0, btch: 1 usd: 0 Oct 14 01:11:01 node2c kernel: [1365882.442137] CPU 5: hi: 0, btch: 1 usd: 0 Oct 14 01:11:01 node2c kernel: [1365882.442140] CPU 6: hi: 0, btch: 1 usd: 0 Oct 14 01:11:01 node2c kernel: [1365882.442142] CPU 7: hi: 0, btch: 1 usd: 0 Oct 14 01:11:01 node2c kernel: [1365882.442144] DMA32 per-cpu: Oct 14 01:11:01 node2c kernel: [1365882.442147] CPU 0: hi: 155, btch: 38 usd: 106 Oct 14 01:11:01 node2c kernel: [1365882.442149] CPU 1: hi: 155, btch: 38 usd: 76 Oct 14 01:11:01 node2c kernel: [1365882.442152] CPU 2: hi: 155, btch: 38 usd: 54 Oct 14 01:11:01 node2c kernel: [1365882.442154] CPU 3: hi: 155, btch: 38 usd: 150 Oct 14 01:11:01 node2c kernel: [1365882.442157] CPU 4: hi: 155, btch: 38 usd: 159 Oct 14 01:11:01 node2c kernel: [1365882.442159] CPU 5: hi: 155, btch: 38 usd: 0 Oct 14 01:11:01 node2c kernel: [1365882.442162] CPU 6: hi: 155, btch: 38 usd: 38 Oct 14 01:11:01 node2c kernel: [1365882.442164] CPU 7: hi: 155, btch: 38 usd: 134 Oct 14 01:11:01 node2c kernel: [1365882.442166] Normal per-cpu: Oct 14 01:11:01 node2c kernel: [1365882.442169] CPU 0: hi: 35, btch: 8 usd: 32 Oct 14 01:11:01 node2c kernel: [1365882.442171] CPU 1: hi: 35, btch: 8 usd: 20 Oct 14 01:11:01 node2c kernel: [1365882.442174] CPU 2: hi: 35, btch: 8 usd: 16 Oct 14 01:11:01 node2c kernel: [1365882.442176] CPU 3: hi: 35, btch: 8 usd: 16 Oct 14 01:11:01 node2c kernel: [1365882.442179] CPU 4: hi: 35, btch: 8 usd: 30 Oct 14 01:11:01 node2c kernel: [1365882.442181] CPU 5: hi: 35, btch: 8 usd: 0 Oct 14 01:11:01 node2c kernel: [1365882.442183] CPU 6: hi: 35, btch: 8 usd: 10 Oct 14 01:11:01 node2c kernel: [1365882.442186] CPU 7: hi: 35, btch: 8 usd: 16 Oct 14 01:11:01 node2c kernel: [1365882.442191] active_anon:12676 inactive_anon:12081 isolated_anon:0 Oct 14 01:11:01 node2c kernel: [1365882.442192] active_file:27944 inactive_file:27975 isolated_file:0 Oct 14 01:11:01 node2c kernel: [1365882.442192] unevictable:0 dirty:71 writeback:0 unstable:0 Oct 14 01:11:01 node2c kernel: [1365882.442193] free:7655 slab_reclaimable:5465 slab_unreclaimable:5143 Oct 14 01:11:01 node2c kernel: [1365882.442194] mapped:2884 shmem:222 pagetables:0 bounce:0 Oct 14 01:11:01 node2c kernel: [1365882.442203] DMA free:2320kB min:72kB low:88kB high:108kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:14580kB mlocked:0kB dirty:0kB writeback:0kB mapped:4kB shmem:0kB slab_reclaimable:540kB slab_unreclaimable:1476kB kernel_stack:96kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? yes Oct 14 01:11:01 node2c kernel: [1365882.442210] lowmem_reserve[]: 0 571 571 571 Oct 14 01:11:01 node2c kernel: [1365882.442219] DMA32 free:27684kB min:2444kB low:3052kB high:3664kB active_anon:25776kB inactive_anon:23448kB active_file:111768kB inactive_file:111868kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:509620kB mlocked:0kB dirty:280kB writeback:0kB mapped:10644kB shmem:0kB slab_reclaimable:16720kB slab_unreclaimable:15452kB kernel_stack:1056kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no Oct 14 01:11:01 node2c kernel: [1365882.442227] lowmem_reserve[]: 0 0 0 0 Oct 14 01:11:01 node2c kernel: [1365882.442235] Normal free:616kB min:576kB low:720kB high:864kB active_anon:24928kB inactive_anon:24876kB active_file:8kB inactive_file:32kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:64096kB mlocked:0kB dirty:4kB writeback:0kB mapped:888kB shmem:888kB slab_reclaimable:4600kB slab_unreclaimable:3644kB kernel_stack:168kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no Oct 14 01:11:01 node2c kernel: [1365882.442242] lowmem_reserve[]: 0 0 0 0 Oct 14 01:11:01 node2c kernel: [1365882.442247] DMA: 180*4kB 1*8kB 1*16kB 0*32kB 1*64kB 0*128kB 0*256kB 1*512kB 1*1024kB 0*2048kB 0*4096kB = 2344kB Oct 14 01:11:01 node2c kernel: [1365882.442259] DMA32: 6909*4kB 0*8kB 0*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 27636kB Oct 14 01:11:01 node2c kernel: [1365882.442271] Normal: 124*4kB 15*8kB 0*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 616kB Oct 14 01:11:01 node2c kernel: [1365882.442282] 59192 total pagecache pages Oct 14 01:11:01 node2c kernel: [1365882.442285] 3039 pages in swap cache Oct 14 01:11:01 node2c kernel: [1365882.442287] Swap cache stats: add 7599771, delete 7596732, find 15846114/16819522 Oct 14 01:11:01 node2c kernel: [1365882.442290] Free swap = 1855692kB Oct 14 01:11:01 node2c kernel: [1365882.442291] Total swap = 1998844kB Oct 14 01:11:01 node2c kernel: [1365882.445607] 2097152 pages RAM Oct 14 01:11:01 node2c kernel: [1365882.445607] 1992172 pages reserved Oct 14 01:11:01 node2c kernel: [1365882.445607] 24673 pages shared Oct 14 01:11:01 node2c kernel: [1365882.445607] 79768 pages non-shared Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231770,231770#msg-231770 From nginx-forum at nginx.us Sun Oct 14 11:18:48 2012 From: nginx-forum at nginx.us (tzirulnicov) Date: Sun, 14 Oct 2012 07:18:48 -0400 Subject: image filter + proxy store In-Reply-To: <2eeb60de881f951654047f7e468325fc.NginxMailingListRussian@forum.nginx.org> References: <2eeb60de881f951654047f7e468325fc.NginxMailingListRussian@forum.nginx.org> Message-ID: <8e839672c95c1c3321a79e763ef44186.NginxMailingListRussian@forum.nginx.org> Увы, не помогло. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231766,231772#msg-231772 From ne at vbart.ru Sun Oct 14 11:44:00 2012 From: ne at vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Sun, 14 Oct 2012 15:44:00 +0400 Subject: image filter + proxy store In-Reply-To: References: Message-ID: <201210141544.00222.ne@vbart.ru> On Sunday 14 October 2012 00:59:24 tzirulnicov wrote: > [...] > Как сделать сохранение превьюшек, созданных при помощи image > filter? > На данный момент единственный вариант - проксировать nginx сам на себя. -- Валентин Бартенев http://nginx.com/support.html From nginx-forum at nginx.us Sun Oct 14 12:43:53 2012 From: nginx-forum at nginx.us (tzirulnicov) Date: Sun, 14 Oct 2012 08:43:53 -0400 Subject: image filter + proxy store In-Reply-To: <2eeb60de881f951654047f7e468325fc.NginxMailingListRussian@forum.nginx.org> References: <2eeb60de881f951654047f7e468325fc.NginxMailingListRussian@forum.nginx.org> Message-ID: <86a0c703d6e555bad187334f7bf12c0f.NginxMailingListRussian@forum.nginx.org> Не помогло мне - потому что был невнимателен. Воспользовался вашим советом, проблема теперь решена. Большое спасибо. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231766,231774#msg-231774 From nginx-forum at nginx.us Sun Oct 14 12:48:23 2012 From: nginx-forum at nginx.us (tzirulnicov) Date: Sun, 14 Oct 2012 08:48:23 -0400 Subject: image filter + proxy store In-Reply-To: <201210141544.00222.ne@vbart.ru> References: <201210141544.00222.ne@vbart.ru> Message-ID: <23efbcc2ff35cf8762f9471840da53a9.NginxMailingListRussian@forum.nginx.org> Спасибо за ответ. Разобрался, прописал две секции location и одну server, для проксирования на отдельный порт при для превьюшек, теперь всё работает нормально. Но конечно хотелось бы, чтобы в дальнейшем такая проблема решалась проще - конструкцией вида if (!-f $request_filename){ image_filter resize ... } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231766,231775#msg-231775 From panfilov at sports.ru Sun Oct 14 14:18:35 2012 From: panfilov at sports.ru (=?KOI8-R?B?7cnIwcnMIPDBzsbJzM/X?=) Date: Sun, 14 Oct 2012 18:18:35 +0400 Subject: image filter + proxy store In-Reply-To: <23efbcc2ff35cf8762f9471840da53a9.NginxMailingListRussian@forum.nginx.org> References: <201210141544.00222.ne@vbart.ru> <23efbcc2ff35cf8762f9471840da53a9.NginxMailingListRussian@forum.nginx.org> Message-ID: Зачем просировать? Внутреннее перенаправление нельзя использовать? location /images/ { root /path/to/images error_page 404 = @store; } location @store { internal; proxy_store /path/to/images$uri; image_filter resize } 14 октября 2012 г., 16:48 пользователь tzirulnicov написал: > Спасибо за ответ. Разобрался, прописал две секции location и одну server, > для проксирования на отдельный порт при для превьюшек, теперь всё работает > нормально. Но конечно хотелось бы, чтобы в дальнейшем такая проблема > решалась проще - конструкцией вида > if (!-f $request_filename){ > image_filter resize ... > } > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,231766,231775#msg-231775 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Панфилов Михаил Старший системный администратор www.sports.ru + 7 903 578 4067 -------------- next part -------------- An HTML attachment was scrubbed... URL: From ne at vbart.ru Sun Oct 14 14:42:55 2012 From: ne at vbart.ru (=?utf-8?b?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Sun, 14 Oct 2012 18:42:55 +0400 Subject: image filter + proxy store In-Reply-To: References: <201210141544.00222.ne@vbart.ru> <23efbcc2ff35cf8762f9471840da53a9.NginxMailingListRussian@forum.nginx.org> Message-ID: <201210141842.55277.ne@vbart.ru> On Sunday 14 October 2012 18:18:35 Михаил Панфилов wrote: > Зачем просировать? Внутреннее перенаправление нельзя использовать? > > location /images/ { > root /path/to/images > error_page 404 = @store; > } > > location @store { > internal; > proxy_store /path/to/images$uri; > image_filter resize > } > Автору нужно сохранить результат работы image-фильтра, а не ответ от бэкенда (что делает proxy_store). -- Валентин Бартенев http://nginx.com/support.html From postmaster at softsearch.ru Sun Oct 14 18:44:07 2012 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Sun, 14 Oct 2012 22:44:07 +0400 Subject: =?UTF-8?B?UmU6INCa0L7QvdGE0LjQs9GD0YDQsNGG0LjRjyDQs9C10L7QuNC/INC00LvRjyA=?= =?UTF-8?B?0L/RhdC/?= In-Reply-To: References: Message-ID: <1406573153.20121014224407@softsearch.ru> Здравствуйте, Евгений. > Правильно ли я предполагаю, что вариант с геоип в nginx'е с > настроенным конфигом на вычисления гео только для пхп-скриптов будет > оптимальнее ежели существующий вариант с пекл-расширением геоип для > пхп ? Да. -- С уважением, Михаил mailto:postmaster at softsearch.ru From ne at vbart.ru Sun Oct 14 20:05:24 2012 From: ne at vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Mon, 15 Oct 2012 00:05:24 +0400 Subject: =?UTF-8?B?UmU6INCa0L7QvdGE0LjQs9GD0YDQsNGG0LjRjyDQs9C10L7QuNC/INC00LvRjyA=?= =?UTF-8?B?0L/RhdC/?= In-Reply-To: References: Message-ID: <201210150005.24289.ne@vbart.ru> On Saturday 13 October 2012 17:46:03 Евгений Бородин wrote: > [...] > Но, раз в nginx'е вычисления идут для всех коннектов, то > даже для картинок и прочей статики будет вычисляться гео - что нам > совсем не нужно. > [...] Не понял. Можете пояснить, что вы хотите этим сказать? В nginx geoip будет отрабатывать только в том месте, где вы его используете. Если вы используете geoip для статики, то будет вычисляться и для статики. -- Валентин Бартенев http://nginx.com/support.html From dmitry at labutin.com Mon Oct 15 07:00:38 2012 From: dmitry at labutin.com (Dmitry Y. Labutin) Date: Mon, 15 Oct 2012 11:00:38 +0400 Subject: upstream timed out Message-ID: <507BB496.9040203@labutin.com> Доброго времени суток. Frontend nginx стоит в Москве. Backend nginx стоит в Нижнем Новгороде. Между ними по traceroute 10 хостов. На Frontend в error лог наблюдает вот такая картина. 2012/10/15 10:33:31 [error] 5438#0: *67542270 upstream timed out (110: Connection timed out) while connecting to upstream 2012/10/15 10:34:42 [error] 5436#0: *67548075 upstream timed out (110: Connection timed out) while connecting to upstream 2012/10/15 10:34:44 [error] 5437#0: *67544442 upstream timed out (110: Connection timed out) while connecting to upstream 2012/10/15 10:34:44 [error] 5436#0: *67548077 upstream timed out (110: Connection timed out) while connecting to upstream 2012/10/15 10:34:44 [error] 5437#0: *67548502 upstream timed out (110: Connection timed out) while connecting to upstream 2012/10/15 10:34:45 [error] 5437#0: *67546503 upstream timed out (110: Connection timed out) while connecting to upstream 2012/10/15 10:34:46 [error] 5437#0: *67546508 upstream timed out (110: Connection timed out) while connecting to upstream По статистике (делаю срезы раз в 10 минут) имеем в зависимости от количества посещение от 1 до 20 подобных ошибок за 10 минут. При этом активность - это порядка 30-50 запросов в секунду. Возьмем среднее. 10 ошибок в 10 минут и 40 запросов в секунду. Получаем примерно 0.04% проблемных ситуаций. Замечу, что статистика пингов между хостами ВСЕГДА показывала около 1.5% потерь (ping timeout), а сообщения в логах nginx на frontend появилась только в середине прошлой недели. Может быть подскажите, в какую сторону копать? Дмитрий Лабутин From andrey at kopeyko.ru Mon Oct 15 07:10:39 2012 From: andrey at kopeyko.ru (Andrey Kopeyko) Date: Mon, 15 Oct 2012 11:10:39 +0400 Subject: upstream timed out In-Reply-To: <507BB496.9040203@labutin.com> References: <507BB496.9040203@labutin.com> Message-ID: <507BB6EF.1010408@kopeyko.ru> 15.10.2012 11:00, Dmitry Y. Labutin пишет: > Доброго времени суток. Доброе утро, Дмитрий! > Frontend nginx стоит в Москве. Backend nginx стоит в Нижнем Новгороде. > Между ними по traceroute 10 хостов. На Frontend в error лог наблюдает > вот такая картина. > > 2012/10/15 10:33:31 [error] 5438#0: *67542270 upstream timed out (110: > Connection timed out) while connecting to upstream ... > Может быть подскажите, в какую сторону копать? Попробуйте поиграть параметром proxy_connect_timeout http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_connect_timeout -- Best regards, Andrey Kopeyko From dmitry at labutin.com Mon Oct 15 08:12:27 2012 From: dmitry at labutin.com (Dmitry Y. Labutin) Date: Mon, 15 Oct 2012 12:12:27 +0400 Subject: upstream timed out In-Reply-To: <507BB6EF.1010408@kopeyko.ru> References: <507BB496.9040203@labutin.com> <507BB6EF.1010408@kopeyko.ru> Message-ID: <507BC56B.8070700@labutin.com> proxy_connect_timeout установлен в 15 секунд. У нас там два сервера в качестве backend'а - основной и backup Ошибки, которые я привел - все при обращении к основному. Дмитрий 15.10.2012 11:10, Andrey Kopeyko пишет: > 15.10.2012 11:00, Dmitry Y. Labutin пишет: >> Доброго времени суток. > > Доброе утро, Дмитрий! > >> Frontend nginx стоит в Москве. Backend nginx стоит в Нижнем Новгороде. >> Между ними по traceroute 10 хостов. На Frontend в error лог наблюдает >> вот такая картина. >> >> 2012/10/15 10:33:31 [error] 5438#0: *67542270 upstream timed out (110: >> Connection timed out) while connecting to upstream > ... >> Может быть подскажите, в какую сторону копать? > > Попробуйте поиграть параметром proxy_connect_timeout > > http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_connect_timeout > > > > From nginx-forum at nginx.us Mon Oct 15 08:50:03 2012 From: nginx-forum at nginx.us (DevZone) Date: Mon, 15 Oct 2012 04:50:03 -0400 Subject: Access-Control-Allow-Origin In-Reply-To: <20111014051947.GA91845@nginx.com> References: <20111014051947.GA91845@nginx.com> Message-ID: <75748e0a666228d1a5450a2ec51189a5.NginxMailingListRussian@forum.nginx.org> Используй на своей домене CNAME на гугль, Luke use this :) Posted at Nginx Forum: http://forum.nginx.org/read.php?21,216660,231801#msg-231801 From nginx-forum at nginx.us Mon Oct 15 08:51:47 2012 From: nginx-forum at nginx.us (DevZone) Date: Mon, 15 Oct 2012 04:51:47 -0400 Subject: Access-Control-Allow-Origin In-Reply-To: <75748e0a666228d1a5450a2ec51189a5.NginxMailingListRussian@forum.nginx.org> References: <20111014051947.GA91845@nginx.com> <75748e0a666228d1a5450a2ec51189a5.NginxMailingListRussian@forum.nginx.org> Message-ID: <62581ab23a7f6d852e6a1e587712992b.NginxMailingListRussian@forum.nginx.org> + всякие плюшки {{{ # Cross Origin Resource Sharing (CORS) add_header 'Access-Control-Allow-Origin' 'http://developers.example.com,http://example.com'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Headers' 'Content-Type,Accept'; add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS'; }}} Posted at Nginx Forum: http://forum.nginx.org/read.php?21,216660,231802#msg-231802 From andrey at kopeyko.ru Mon Oct 15 10:47:33 2012 From: andrey at kopeyko.ru (Andrey Kopeyko) Date: Mon, 15 Oct 2012 14:47:33 +0400 Subject: upstream timed out In-Reply-To: <507BC56B.8070700@labutin.com> References: <507BB496.9040203@labutin.com> <507BB6EF.1010408@kopeyko.ru> <507BC56B.8070700@labutin.com> Message-ID: <507BE9C5.4080801@kopeyko.ru> 15.10.2012 12:12, Dmitry Y. Labutin пишет: > proxy_connect_timeout установлен в 15 секунд. > У нас там два сервера в качестве backend'а - основной и backup > Ошибки, которые я привел - все при обращении к основному. Вам бы набрать немножко статистики, логируя время установления соединения с бэкендом - да вот только переменной $upstream_connection_time в nginx нету... Тогда вы бы смогли крутить proxy_connect_timeout не на ощупь. А пока - только постепенно увеличивать proxy_connect_timeout, и смотреть на результат. > 15.10.2012 11:10, Andrey Kopeyko пишет: >> 15.10.2012 11:00, Dmitry Y. Labutin пишет: >>> Доброго времени суток. >> >> Доброе утро, Дмитрий! >> >>> Frontend nginx стоит в Москве. Backend nginx стоит в Нижнем Новгороде. >>> Между ними по traceroute 10 хостов. На Frontend в error лог наблюдает >>> вот такая картина. >>> >>> 2012/10/15 10:33:31 [error] 5438#0: *67542270 upstream timed out (110: >>> Connection timed out) while connecting to upstream >> ... >>> Может быть подскажите, в какую сторону копать? >> >> Попробуйте поиграть параметром proxy_connect_timeout >> >> http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_connect_timeout >> -- Best regards, Andrey Kopeyko From kav at karagodov.name Mon Oct 15 10:59:28 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Mon, 15 Oct 2012 14:59:28 +0400 Subject: upstream timed out In-Reply-To: <507BB496.9040203@labutin.com> References: <507BB496.9040203@labutin.com> Message-ID: On 15.10.2012, at 11:00, Dmitry Y. Labutin wrote: > Доброго времени суток. > > Frontend nginx стоит в Москве. Backend nginx стоит в Нижнем Новгороде. > Между ними по traceroute 10 хостов. по инету? трейс в студию рекомендую между бекендом и фронтендом установить самый простой GRE тоннель не забудте учесть GRE инкапсуляцию (не забиваем на MTU) > На Frontend в error лог наблюдает вот такая картина. > > 2012/10/15 10:33:31 [error] 5438#0: *67542270 upstream timed out (110: Connection timed out) while connecting to upstream > 2012/10/15 10:34:42 [error] 5436#0: *67548075 upstream timed out (110: Connection timed out) while connecting to upstream > 2012/10/15 10:34:44 [error] 5437#0: *67544442 upstream timed out (110: Connection timed out) while connecting to upstream > 2012/10/15 10:34:44 [error] 5436#0: *67548077 upstream timed out (110: Connection timed out) while connecting to upstream > 2012/10/15 10:34:44 [error] 5437#0: *67548502 upstream timed out (110: Connection timed out) while connecting to upstream > 2012/10/15 10:34:45 [error] 5437#0: *67546503 upstream timed out (110: Connection timed out) while connecting to upstream > 2012/10/15 10:34:46 [error] 5437#0: *67546508 upstream timed out (110: Connection timed out) while connecting to upstream > > По статистике (делаю срезы раз в 10 минут) имеем в зависимости от количества посещение от 1 до 20 подобных ошибок за 10 минут. > При этом активность - это порядка 30-50 запросов в секунду. > Возьмем среднее. 10 ошибок в 10 минут и 40 запросов в секунду. > Получаем примерно 0.04% проблемных ситуаций. Замечу, что статистика пингов между хостами ВСЕГДА показывала около 1.5% потерь (ping timeout), а сообщения в логах nginx на frontend появилась только в середине прошлой недели. > Может быть подскажите, в какую сторону копать? > > Дмитрий Лабутин > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From arut at qip.ru Mon Oct 15 11:40:44 2012 From: arut at qip.ru (Roman Arutyunyan) Date: Mon, 15 Oct 2012 15:40:44 +0400 Subject: [PATCH] implemented hardlink option in DAV module Message-ID: <1350301244-27123-1-git-send-email-arut@qip.ru> Модуль WebDAV на текущий момент не поддерживает хардлинки. Я реализовал эту поддержку, патч прилагается. Буду очень признателен, если патч будет включен в следующие версии nginx. Добавлена директива 'hardlink on|off', по умолчанию off. Когда опция включена, делается попытка создать хардлинк при копировании файла. В случае ошибки выполняется обычное копирование. Роман Арутюнян --- src/http/modules/ngx_http_dav_module.c | 20 ++++++++++++++++++++ src/os/unix/ngx_files.h | 4 ++++ 2 files changed, 24 insertions(+), 0 deletions(-) diff --git a/src/http/modules/ngx_http_dav_module.c b/src/http/modules/ngx_http_dav_module.c index dbb17ac..e9e0623 100644 --- a/src/http/modules/ngx_http_dav_module.c +++ b/src/http/modules/ngx_http_dav_module.c @@ -25,6 +25,7 @@ typedef struct { ngx_uint_t access; ngx_uint_t min_delete_depth; ngx_flag_t create_full_put_path; + ngx_flag_t hardlink; } ngx_http_dav_loc_conf_t; @@ -106,6 +107,13 @@ static ngx_command_t ngx_http_dav_commands[] = { offsetof(ngx_http_dav_loc_conf_t, access), NULL }, + { ngx_string("hardlink"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, + ngx_conf_set_flag_slot, + NGX_HTTP_LOC_CONF_OFFSET, + offsetof(ngx_http_dav_loc_conf_t, hardlink), + NULL }, + ngx_null_command }; @@ -813,6 +821,15 @@ overwrite_done: dlcf = ngx_http_get_module_loc_conf(r, ngx_http_dav_module); + if (dlcf->hardlink) { + if (ngx_hardlink_file(path.data, copy.path.data) == NGX_OK) { + return NGX_HTTP_NO_CONTENT; + } + + ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, ngx_errno, + "hardlink error: \"%s\"", copy.path.data); + } + cf.size = ngx_file_size(&fi); cf.buf_size = 0; cf.access = dlcf->access; @@ -1096,6 +1113,7 @@ ngx_http_dav_create_loc_conf(ngx_conf_t *cf) conf->min_delete_depth = NGX_CONF_UNSET_UINT; conf->access = NGX_CONF_UNSET_UINT; conf->create_full_put_path = NGX_CONF_UNSET; + conf->hardlink = NGX_CONF_UNSET; return conf; } @@ -1118,6 +1136,8 @@ ngx_http_dav_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) ngx_conf_merge_value(conf->create_full_put_path, prev->create_full_put_path, 0); + ngx_conf_merge_value(conf->hardlink, prev->hardlink, 0); + return NGX_CONF_OK; } diff --git a/src/os/unix/ngx_files.h b/src/os/unix/ngx_files.h index 9c97e2b..826960b 100644 --- a/src/os/unix/ngx_files.h +++ b/src/os/unix/ngx_files.h @@ -157,6 +157,10 @@ ngx_write_fd(ngx_fd_t fd, void *buf, size_t n) #define ngx_rename_file_n "rename()" +#define ngx_hardlink_file(o, n) link((const char *) o, (const char *) n) +#define ngx_hardlink_file_n "link()" + + #define ngx_change_file_access(n, a) chmod((const char *) n, a) #define ngx_change_file_access_n "chmod()" -- 1.7.1 From kav at karagodov.name Mon Oct 15 11:46:06 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Mon, 15 Oct 2012 15:46:06 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <1350301244-27123-1-git-send-email-arut@qip.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> Message-ID: <2E2DAB82-8FDD-4792-BA29-E1B31EF156DA@karagodov.name> а как оно будет жить вместе со сторонним модулем WebDAV дополняющим функционал штатного? https://github.com/arut/nginx-dav-ext-module On 15.10.2012, at 15:40, Roman Arutyunyan wrote: > > Модуль WebDAV на текущий момент не поддерживает хардлинки. > Я реализовал эту поддержку, патч прилагается. Буду очень признателен, > если патч будет включен в следующие версии nginx. > > Добавлена директива 'hardlink on|off', по умолчанию off. > Когда опция включена, делается попытка создать хардлинк при копировании > файла. В случае ошибки выполняется обычное копирование. > > Роман Арутюнян > > --- > src/http/modules/ngx_http_dav_module.c | 20 ++++++++++++++++++++ > src/os/unix/ngx_files.h | 4 ++++ > 2 files changed, 24 insertions(+), 0 deletions(-) > > diff --git a/src/http/modules/ngx_http_dav_module.c b/src/http/modules/ngx_http_dav_module.c > index dbb17ac..e9e0623 100644 > --- a/src/http/modules/ngx_http_dav_module.c > +++ b/src/http/modules/ngx_http_dav_module.c > @@ -25,6 +25,7 @@ typedef struct { > ngx_uint_t access; > ngx_uint_t min_delete_depth; > ngx_flag_t create_full_put_path; > + ngx_flag_t hardlink; > } ngx_http_dav_loc_conf_t; > > > @@ -106,6 +107,13 @@ static ngx_command_t ngx_http_dav_commands[] = { > offsetof(ngx_http_dav_loc_conf_t, access), > NULL }, > > + { ngx_string("hardlink"), > + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, > + ngx_conf_set_flag_slot, > + NGX_HTTP_LOC_CONF_OFFSET, > + offsetof(ngx_http_dav_loc_conf_t, hardlink), > + NULL }, > + > ngx_null_command > }; > > @@ -813,6 +821,15 @@ overwrite_done: > > dlcf = ngx_http_get_module_loc_conf(r, ngx_http_dav_module); > > + if (dlcf->hardlink) { > + if (ngx_hardlink_file(path.data, copy.path.data) == NGX_OK) { > + return NGX_HTTP_NO_CONTENT; > + } > + > + ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, ngx_errno, > + "hardlink error: \"%s\"", copy.path.data); > + } > + > cf.size = ngx_file_size(&fi); > cf.buf_size = 0; > cf.access = dlcf->access; > @@ -1096,6 +1113,7 @@ ngx_http_dav_create_loc_conf(ngx_conf_t *cf) > conf->min_delete_depth = NGX_CONF_UNSET_UINT; > conf->access = NGX_CONF_UNSET_UINT; > conf->create_full_put_path = NGX_CONF_UNSET; > + conf->hardlink = NGX_CONF_UNSET; > > return conf; > } > @@ -1118,6 +1136,8 @@ ngx_http_dav_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) > ngx_conf_merge_value(conf->create_full_put_path, > prev->create_full_put_path, 0); > > + ngx_conf_merge_value(conf->hardlink, prev->hardlink, 0); > + > return NGX_CONF_OK; > } > > diff --git a/src/os/unix/ngx_files.h b/src/os/unix/ngx_files.h > index 9c97e2b..826960b 100644 > --- a/src/os/unix/ngx_files.h > +++ b/src/os/unix/ngx_files.h > @@ -157,6 +157,10 @@ ngx_write_fd(ngx_fd_t fd, void *buf, size_t n) > #define ngx_rename_file_n "rename()" > > > +#define ngx_hardlink_file(o, n) link((const char *) o, (const char *) n) > +#define ngx_hardlink_file_n "link()" > + > + > #define ngx_change_file_access(n, a) chmod((const char *) n, a) > #define ngx_change_file_access_n "chmod()" > > -- > 1.7.1 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From arut at qip.ru Mon Oct 15 11:56:42 2012 From: arut at qip.ru (arut at qip.ru) Date: Mon, 15 Oct 2012 15:56:42 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <2E2DAB82-8FDD-4792-BA29-E1B31EF156DA@karagodov.name> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <2E2DAB82-8FDD-4792-BA29-E1B31EF156DA@karagodov.name> Message-ID: <507BF9FA.2080703@qip.ru> Это не сторонний, это мой модуль :) Не вижу никаких проблем. Патч касается всего лишь одной низкоуровневой операции, Внешне ничего не меняется. On 10/15/2012 03:46 PM, Alexey V. Karagodov wrote: > а как оно будет жить вместе со сторонним модулем WebDAV дополняющим функционал штатного? > https://github.com/arut/nginx-dav-ext-module > > On 15.10.2012, at 15:40, Roman Arutyunyan wrote: > >> Модуль WebDAV на текущий момент не поддерживает хардлинки. >> Я реализовал эту поддержку, патч прилагается. Буду очень признателен, >> если патч будет включен в следующие версии nginx. >> >> Добавлена директива 'hardlink on|off', по умолчанию off. >> Когда опция включена, делается попытка создать хардлинк при копировании >> файла. В случае ошибки выполняется обычное копирование. >> >> Роман Арутюнян >> >> --- >> src/http/modules/ngx_http_dav_module.c | 20 ++++++++++++++++++++ >> src/os/unix/ngx_files.h | 4 ++++ >> 2 files changed, 24 insertions(+), 0 deletions(-) >> >> diff --git a/src/http/modules/ngx_http_dav_module.c b/src/http/modules/ngx_http_dav_module.c >> index dbb17ac..e9e0623 100644 >> --- a/src/http/modules/ngx_http_dav_module.c >> +++ b/src/http/modules/ngx_http_dav_module.c >> @@ -25,6 +25,7 @@ typedef struct { >> ngx_uint_t access; >> ngx_uint_t min_delete_depth; >> ngx_flag_t create_full_put_path; >> + ngx_flag_t hardlink; >> } ngx_http_dav_loc_conf_t; >> >> >> @@ -106,6 +107,13 @@ static ngx_command_t ngx_http_dav_commands[] = { >> offsetof(ngx_http_dav_loc_conf_t, access), >> NULL }, >> >> + { ngx_string("hardlink"), >> + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, >> + ngx_conf_set_flag_slot, >> + NGX_HTTP_LOC_CONF_OFFSET, >> + offsetof(ngx_http_dav_loc_conf_t, hardlink), >> + NULL }, >> + >> ngx_null_command >> }; >> >> @@ -813,6 +821,15 @@ overwrite_done: >> >> dlcf = ngx_http_get_module_loc_conf(r, ngx_http_dav_module); >> >> + if (dlcf->hardlink) { >> + if (ngx_hardlink_file(path.data, copy.path.data) == NGX_OK) { >> + return NGX_HTTP_NO_CONTENT; >> + } >> + >> + ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, ngx_errno, >> + "hardlink error: \"%s\"", copy.path.data); >> + } >> + >> cf.size = ngx_file_size(&fi); >> cf.buf_size = 0; >> cf.access = dlcf->access; >> @@ -1096,6 +1113,7 @@ ngx_http_dav_create_loc_conf(ngx_conf_t *cf) >> conf->min_delete_depth = NGX_CONF_UNSET_UINT; >> conf->access = NGX_CONF_UNSET_UINT; >> conf->create_full_put_path = NGX_CONF_UNSET; >> + conf->hardlink = NGX_CONF_UNSET; >> >> return conf; >> } >> @@ -1118,6 +1136,8 @@ ngx_http_dav_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) >> ngx_conf_merge_value(conf->create_full_put_path, >> prev->create_full_put_path, 0); >> >> + ngx_conf_merge_value(conf->hardlink, prev->hardlink, 0); >> + >> return NGX_CONF_OK; >> } >> >> diff --git a/src/os/unix/ngx_files.h b/src/os/unix/ngx_files.h >> index 9c97e2b..826960b 100644 >> --- a/src/os/unix/ngx_files.h >> +++ b/src/os/unix/ngx_files.h >> @@ -157,6 +157,10 @@ ngx_write_fd(ngx_fd_t fd, void *buf, size_t n) >> #define ngx_rename_file_n "rename()" >> >> >> +#define ngx_hardlink_file(o, n) link((const char *) o, (const char *) n) >> +#define ngx_hardlink_file_n "link()" >> + >> + >> #define ngx_change_file_access(n, a) chmod((const char *) n, a) >> #define ngx_change_file_access_n "chmod()" >> >> -- >> 1.7.1 >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From kav at karagodov.name Mon Oct 15 12:03:06 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Mon, 15 Oct 2012 16:03:06 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <507BF9FA.2080703@qip.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <2E2DAB82-8FDD-4792-BA29-E1B31EF156DA@karagodov.name> <507BF9FA.2080703@qip.ru> Message-ID: On 15.10.2012, at 15:56, arut at qip.ru wrote: > Это не сторонний, это уже другой вопрос :) относительно nginx он ведь сторонний > это мой модуль :) "извините, не узнаю Вас в гриме" :) кстати, а допиливание модуля будет? или плохо со временем? > Не вижу никаких проблем. Патч касается всего лишь одной > низкоуровневой операции, Внешне ничего не меняется. ок спасибо > > On 10/15/2012 03:46 PM, Alexey V. Karagodov wrote: >> а как оно будет жить вместе со сторонним модулем WebDAV дополняющим функционал штатного? >> https://github.com/arut/nginx-dav-ext-module >> >> On 15.10.2012, at 15:40, Roman Arutyunyan wrote: >> >>> Модуль WebDAV на текущий момент не поддерживает хардлинки. >>> Я реализовал эту поддержку, патч прилагается. Буду очень признателен, >>> если патч будет включен в следующие версии nginx. >>> >>> Добавлена директива 'hardlink on|off', по умолчанию off. >>> Когда опция включена, делается попытка создать хардлинк при копировании >>> файла. В случае ошибки выполняется обычное копирование. >>> >>> Роман Арутюнян >>> >>> --- >>> src/http/modules/ngx_http_dav_module.c | 20 ++++++++++++++++++++ >>> src/os/unix/ngx_files.h | 4 ++++ >>> 2 files changed, 24 insertions(+), 0 deletions(-) >>> >>> diff --git a/src/http/modules/ngx_http_dav_module.c b/src/http/modules/ngx_http_dav_module.c >>> index dbb17ac..e9e0623 100644 >>> --- a/src/http/modules/ngx_http_dav_module.c >>> +++ b/src/http/modules/ngx_http_dav_module.c >>> @@ -25,6 +25,7 @@ typedef struct { >>> ngx_uint_t access; >>> ngx_uint_t min_delete_depth; >>> ngx_flag_t create_full_put_path; >>> + ngx_flag_t hardlink; >>> } ngx_http_dav_loc_conf_t; >>> >>> >>> @@ -106,6 +107,13 @@ static ngx_command_t ngx_http_dav_commands[] = { >>> offsetof(ngx_http_dav_loc_conf_t, access), >>> NULL }, >>> >>> + { ngx_string("hardlink"), >>> + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, >>> + ngx_conf_set_flag_slot, >>> + NGX_HTTP_LOC_CONF_OFFSET, >>> + offsetof(ngx_http_dav_loc_conf_t, hardlink), >>> + NULL }, >>> + >>> ngx_null_command >>> }; >>> >>> @@ -813,6 +821,15 @@ overwrite_done: >>> >>> dlcf = ngx_http_get_module_loc_conf(r, ngx_http_dav_module); >>> >>> + if (dlcf->hardlink) { >>> + if (ngx_hardlink_file(path.data, copy.path.data) == NGX_OK) { >>> + return NGX_HTTP_NO_CONTENT; >>> + } >>> + >>> + ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, ngx_errno, >>> + "hardlink error: \"%s\"", copy.path.data); >>> + } >>> + >>> cf.size = ngx_file_size(&fi); >>> cf.buf_size = 0; >>> cf.access = dlcf->access; >>> @@ -1096,6 +1113,7 @@ ngx_http_dav_create_loc_conf(ngx_conf_t *cf) >>> conf->min_delete_depth = NGX_CONF_UNSET_UINT; >>> conf->access = NGX_CONF_UNSET_UINT; >>> conf->create_full_put_path = NGX_CONF_UNSET; >>> + conf->hardlink = NGX_CONF_UNSET; >>> >>> return conf; >>> } >>> @@ -1118,6 +1136,8 @@ ngx_http_dav_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) >>> ngx_conf_merge_value(conf->create_full_put_path, >>> prev->create_full_put_path, 0); >>> >>> + ngx_conf_merge_value(conf->hardlink, prev->hardlink, 0); >>> + >>> return NGX_CONF_OK; >>> } >>> >>> diff --git a/src/os/unix/ngx_files.h b/src/os/unix/ngx_files.h >>> index 9c97e2b..826960b 100644 >>> --- a/src/os/unix/ngx_files.h >>> +++ b/src/os/unix/ngx_files.h >>> @@ -157,6 +157,10 @@ ngx_write_fd(ngx_fd_t fd, void *buf, size_t n) >>> #define ngx_rename_file_n "rename()" >>> >>> >>> +#define ngx_hardlink_file(o, n) link((const char *) o, (const char *) n) >>> +#define ngx_hardlink_file_n "link()" >>> + >>> + >>> #define ngx_change_file_access(n, a) chmod((const char *) n, a) >>> #define ngx_change_file_access_n "chmod()" >>> >>> -- >>> 1.7.1 >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru at nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From arut at qip.ru Mon Oct 15 12:09:47 2012 From: arut at qip.ru (arut at qip.ru) Date: Mon, 15 Oct 2012 16:09:47 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: References: <1350301244-27123-1-git-send-email-arut@qip.ru> <2E2DAB82-8FDD-4792-BA29-E1B31EF156DA@karagodov.name> <507BF9FA.2080703@qip.ru> Message-ID: <507BFD0B.7020009@qip.ru> On 10/15/2012 04:03 PM, Alexey V. Karagodov wrote: > "извините, не узнаю Вас в гриме" :) кстати, а допиливание модуля > будет? или плохо со временем? Допиливание там возможно лишь в направлении поддержки локов. Основное я уже сделал (бранч locks), но не тестил толком. Помимо времени, основная причина в том, что у меня нет мака, клиент на котором и есть основной источник и любитель локов. Надо искать рабочий хакинтош (под AMD) , ставить.. В общем дело долгое. Но, вполне вероятно, я таки заставялю себя это сделать. >> Не вижу никаких проблем. Патч касается всего лишь одной >> низкоуровневой операции, Внешне ничего не меняется. > ок > спасибо > >> On 10/15/2012 03:46 PM, Alexey V. Karagodov wrote: >>> а как оно будет жить вместе со сторонним модулем WebDAV дополняющим функционал штатного? >>> https://github.com/arut/nginx-dav-ext-module >>> >>> On 15.10.2012, at 15:40, Roman Arutyunyan wrote: >>> >>>> Модуль WebDAV на текущий момент не поддерживает хардлинки. >>>> Я реализовал эту поддержку, патч прилагается. Буду очень признателен, >>>> если патч будет включен в следующие версии nginx. >>>> >>>> Добавлена директива 'hardlink on|off', по умолчанию off. >>>> Когда опция включена, делается попытка создать хардлинк при копировании >>>> файла. В случае ошибки выполняется обычное копирование. >>>> >>>> Роман Арутюнян >>>> >>>> --- >>>> src/http/modules/ngx_http_dav_module.c | 20 ++++++++++++++++++++ >>>> src/os/unix/ngx_files.h | 4 ++++ >>>> 2 files changed, 24 insertions(+), 0 deletions(-) >>>> >>>> diff --git a/src/http/modules/ngx_http_dav_module.c b/src/http/modules/ngx_http_dav_module.c >>>> index dbb17ac..e9e0623 100644 >>>> --- a/src/http/modules/ngx_http_dav_module.c >>>> +++ b/src/http/modules/ngx_http_dav_module.c >>>> @@ -25,6 +25,7 @@ typedef struct { >>>> ngx_uint_t access; >>>> ngx_uint_t min_delete_depth; >>>> ngx_flag_t create_full_put_path; >>>> + ngx_flag_t hardlink; >>>> } ngx_http_dav_loc_conf_t; >>>> >>>> >>>> @@ -106,6 +107,13 @@ static ngx_command_t ngx_http_dav_commands[] = { >>>> offsetof(ngx_http_dav_loc_conf_t, access), >>>> NULL }, >>>> >>>> + { ngx_string("hardlink"), >>>> + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, >>>> + ngx_conf_set_flag_slot, >>>> + NGX_HTTP_LOC_CONF_OFFSET, >>>> + offsetof(ngx_http_dav_loc_conf_t, hardlink), >>>> + NULL }, >>>> + >>>> ngx_null_command >>>> }; >>>> >>>> @@ -813,6 +821,15 @@ overwrite_done: >>>> >>>> dlcf = ngx_http_get_module_loc_conf(r, ngx_http_dav_module); >>>> >>>> + if (dlcf->hardlink) { >>>> + if (ngx_hardlink_file(path.data, copy.path.data) == NGX_OK) { >>>> + return NGX_HTTP_NO_CONTENT; >>>> + } >>>> + >>>> + ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, ngx_errno, >>>> + "hardlink error: \"%s\"", copy.path.data); >>>> + } >>>> + >>>> cf.size = ngx_file_size(&fi); >>>> cf.buf_size = 0; >>>> cf.access = dlcf->access; >>>> @@ -1096,6 +1113,7 @@ ngx_http_dav_create_loc_conf(ngx_conf_t *cf) >>>> conf->min_delete_depth = NGX_CONF_UNSET_UINT; >>>> conf->access = NGX_CONF_UNSET_UINT; >>>> conf->create_full_put_path = NGX_CONF_UNSET; >>>> + conf->hardlink = NGX_CONF_UNSET; >>>> >>>> return conf; >>>> } >>>> @@ -1118,6 +1136,8 @@ ngx_http_dav_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) >>>> ngx_conf_merge_value(conf->create_full_put_path, >>>> prev->create_full_put_path, 0); >>>> >>>> + ngx_conf_merge_value(conf->hardlink, prev->hardlink, 0); >>>> + >>>> return NGX_CONF_OK; >>>> } >>>> >>>> diff --git a/src/os/unix/ngx_files.h b/src/os/unix/ngx_files.h >>>> index 9c97e2b..826960b 100644 >>>> --- a/src/os/unix/ngx_files.h >>>> +++ b/src/os/unix/ngx_files.h >>>> @@ -157,6 +157,10 @@ ngx_write_fd(ngx_fd_t fd, void *buf, size_t n) >>>> #define ngx_rename_file_n "rename()" >>>> >>>> >>>> +#define ngx_hardlink_file(o, n) link((const char *) o, (const char *) n) >>>> +#define ngx_hardlink_file_n "link()" >>>> + >>>> + >>>> #define ngx_change_file_access(n, a) chmod((const char *) n, a) >>>> #define ngx_change_file_access_n "chmod()" >>>> >>>> -- >>>> 1.7.1 >>>> >>>> _______________________________________________ >>>> nginx-ru mailing list >>>> nginx-ru at nginx.org >>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru at nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From kav at karagodov.name Mon Oct 15 12:23:13 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Mon, 15 Oct 2012 16:23:13 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <507BFD0B.7020009@qip.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <2E2DAB82-8FDD-4792-BA29-E1B31EF156DA@karagodov.name> <507BF9FA.2080703@qip.ru> <507BFD0B.7020009@qip.ru> Message-ID: всё остальное в личке ... аудитория заскучала ... On 15.10.2012, at 16:09, arut at qip.ru wrote: > On 10/15/2012 04:03 PM, Alexey V. Karagodov wrote: >> "извините, не узнаю Вас в гриме" :) кстати, а допиливание модуля будет? или плохо со временем? > Допиливание там возможно лишь в направлении поддержки локов. > Основное я уже сделал (бранч locks), но не тестил толком. > Помимо времени, основная причина в том, что у меня нет мака, > клиент на котором и есть основной источник и любитель локов. > Надо искать рабочий хакинтош (под AMD) , ставить.. В общем дело > долгое. Но, вполне вероятно, я таки заставялю себя это сделать. > >>> Не вижу никаких проблем. Патч касается всего лишь одной >>> низкоуровневой операции, Внешне ничего не меняется. >> ок >> спасибо >> >>> On 10/15/2012 03:46 PM, Alexey V. Karagodov wrote: >>>> а как оно будет жить вместе со сторонним модулем WebDAV дополняющим функционал штатного? >>>> https://github.com/arut/nginx-dav-ext-module >>>> >>>> On 15.10.2012, at 15:40, Roman Arutyunyan wrote: >>>> >>>>> Модуль WebDAV на текущий момент не поддерживает хардлинки. >>>>> Я реализовал эту поддержку, патч прилагается. Буду очень признателен, >>>>> если патч будет включен в следующие версии nginx. >>>>> >>>>> Добавлена директива 'hardlink on|off', по умолчанию off. >>>>> Когда опция включена, делается попытка создать хардлинк при копировании >>>>> файла. В случае ошибки выполняется обычное копирование. >>>>> >>>>> Роман Арутюнян >>>>> >>>>> --- >>>>> src/http/modules/ngx_http_dav_module.c | 20 ++++++++++++++++++++ >>>>> src/os/unix/ngx_files.h | 4 ++++ >>>>> 2 files changed, 24 insertions(+), 0 deletions(-) >>>>> >>>>> diff --git a/src/http/modules/ngx_http_dav_module.c b/src/http/modules/ngx_http_dav_module.c >>>>> index dbb17ac..e9e0623 100644 >>>>> --- a/src/http/modules/ngx_http_dav_module.c >>>>> +++ b/src/http/modules/ngx_http_dav_module.c >>>>> @@ -25,6 +25,7 @@ typedef struct { >>>>> ngx_uint_t access; >>>>> ngx_uint_t min_delete_depth; >>>>> ngx_flag_t create_full_put_path; >>>>> + ngx_flag_t hardlink; >>>>> } ngx_http_dav_loc_conf_t; >>>>> >>>>> >>>>> @@ -106,6 +107,13 @@ static ngx_command_t ngx_http_dav_commands[] = { >>>>> offsetof(ngx_http_dav_loc_conf_t, access), >>>>> NULL }, >>>>> >>>>> + { ngx_string("hardlink"), >>>>> + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, >>>>> + ngx_conf_set_flag_slot, >>>>> + NGX_HTTP_LOC_CONF_OFFSET, >>>>> + offsetof(ngx_http_dav_loc_conf_t, hardlink), >>>>> + NULL }, >>>>> + >>>>> ngx_null_command >>>>> }; >>>>> >>>>> @@ -813,6 +821,15 @@ overwrite_done: >>>>> >>>>> dlcf = ngx_http_get_module_loc_conf(r, ngx_http_dav_module); >>>>> >>>>> + if (dlcf->hardlink) { >>>>> + if (ngx_hardlink_file(path.data, copy.path.data) == NGX_OK) { >>>>> + return NGX_HTTP_NO_CONTENT; >>>>> + } >>>>> + >>>>> + ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, ngx_errno, >>>>> + "hardlink error: \"%s\"", copy.path.data); >>>>> + } >>>>> + >>>>> cf.size = ngx_file_size(&fi); >>>>> cf.buf_size = 0; >>>>> cf.access = dlcf->access; >>>>> @@ -1096,6 +1113,7 @@ ngx_http_dav_create_loc_conf(ngx_conf_t *cf) >>>>> conf->min_delete_depth = NGX_CONF_UNSET_UINT; >>>>> conf->access = NGX_CONF_UNSET_UINT; >>>>> conf->create_full_put_path = NGX_CONF_UNSET; >>>>> + conf->hardlink = NGX_CONF_UNSET; >>>>> >>>>> return conf; >>>>> } >>>>> @@ -1118,6 +1136,8 @@ ngx_http_dav_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) >>>>> ngx_conf_merge_value(conf->create_full_put_path, >>>>> prev->create_full_put_path, 0); >>>>> >>>>> + ngx_conf_merge_value(conf->hardlink, prev->hardlink, 0); >>>>> + >>>>> return NGX_CONF_OK; >>>>> } >>>>> >>>>> diff --git a/src/os/unix/ngx_files.h b/src/os/unix/ngx_files.h >>>>> index 9c97e2b..826960b 100644 >>>>> --- a/src/os/unix/ngx_files.h >>>>> +++ b/src/os/unix/ngx_files.h >>>>> @@ -157,6 +157,10 @@ ngx_write_fd(ngx_fd_t fd, void *buf, size_t n) >>>>> #define ngx_rename_file_n "rename()" >>>>> >>>>> >>>>> +#define ngx_hardlink_file(o, n) link((const char *) o, (const char *) n) >>>>> +#define ngx_hardlink_file_n "link()" >>>>> + >>>>> + >>>>> #define ngx_change_file_access(n, a) chmod((const char *) n, a) >>>>> #define ngx_change_file_access_n "chmod()" >>>>> >>>>> -- >>>>> 1.7.1 >>>>> >>>>> _______________________________________________ >>>>> nginx-ru mailing list >>>>> nginx-ru at nginx.org >>>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>>> _______________________________________________ >>>> nginx-ru mailing list >>>> nginx-ru at nginx.org >>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru at nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Mon Oct 15 13:21:05 2012 From: nginx-forum at nginx.us (gatesat) Date: Mon, 15 Oct 2012 09:21:05 -0400 Subject: =?UTF-8?B?bW9kIHppcCAtINC/0YDQuNC80LXRgCDQutC+0L3RhNC40LPQsCDQtNC70Y8g0YE=?= =?UTF-8?B?0L7QsdC40YDQsNC90LjRjyDRhNCw0LnQu9C+0LIg0YEg0YDQsNC30L3Ri9GF?= =?UTF-8?B?INGB0LXRgNCy0LXRgNC+0LI=?= Message-ID: Приветствую уважаемые ! Подскажите пожалуйста правильный конфиг nginx для mod_zip-а для собирания файлов с разных удаленных серверов. Созерцание лаконичного примера из документации http://wiki.nginx.org/NgxZip Remote Upstreams You can use the following setup to compose archives from multiple remote servers: 1034ab38 428 /server1/foo.txt My Document1.txt 83e8110b 100339 /server2/bar.txt My Other Document1.txt location ~ "^/(?server[12])/(?UNIQ25789bf7448563f7-file-00000000-QINU не навело меня на правильную мысль. Заранее благодарен. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231814,231814#msg-231814 From mdounin at mdounin.ru Mon Oct 15 14:08:21 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Mon, 15 Oct 2012 18:08:21 +0400 Subject: upstream timed out In-Reply-To: <507BB496.9040203@labutin.com> References: <507BB496.9040203@labutin.com> Message-ID: <20121015140820.GF40452@mdounin.ru> Hello! On Mon, Oct 15, 2012 at 11:00:38AM +0400, Dmitry Y. Labutin wrote: > Frontend nginx стоит в Москве. Backend nginx стоит в Нижнем Новгороде. > Между ними по traceroute 10 хостов. На Frontend в error лог > наблюдает вот такая картина. > > 2012/10/15 10:33:31 [error] 5438#0: *67542270 upstream timed out > (110: Connection timed out) while connecting to upstream > 2012/10/15 10:34:42 [error] 5436#0: *67548075 upstream timed out > (110: Connection timed out) while connecting to upstream > 2012/10/15 10:34:44 [error] 5437#0: *67544442 upstream timed out > (110: Connection timed out) while connecting to upstream > 2012/10/15 10:34:44 [error] 5436#0: *67548077 upstream timed out > (110: Connection timed out) while connecting to upstream > 2012/10/15 10:34:44 [error] 5437#0: *67548502 upstream timed out > (110: Connection timed out) while connecting to upstream > 2012/10/15 10:34:45 [error] 5437#0: *67546503 upstream timed out > (110: Connection timed out) while connecting to upstream > 2012/10/15 10:34:46 [error] 5437#0: *67546508 upstream timed out > (110: Connection timed out) while connecting to upstream > > По статистике (делаю срезы раз в 10 минут) имеем в зависимости от > количества посещение от 1 до 20 подобных ошибок за 10 минут. > При этом активность - это порядка 30-50 запросов в секунду. > Возьмем среднее. 10 ошибок в 10 минут и 40 запросов в секунду. > Получаем примерно 0.04% проблемных ситуаций. Замечу, что статистика > пингов между хостами ВСЕГДА показывала около 1.5% потерь (ping > timeout), а сообщения в логах nginx на frontend появилась только в > середине прошлой недели. > Может быть подскажите, в какую сторону копать? При 1.5% packetloss'е - 0.02% вероятность потери двух пакетов подряд, т.е. где-то 9 секунд при отсутствии прочих факторов. Самого по себе этого очевидно не достаточно, чтобы с вероятностью 0.04% наблюдались таймауты при установленном proxy_connect_timeout в 15s. Так что скорее всего есть ещё какой-то фактор, увеличивающий вероятность потери именно SYN-пакетов. Одним из таких факторов может быть например statefull firewall между nginx'ом и бекендом, у которого state'ы подходят к концу. Многие firewall'ы в этом случае начинают drop'ать часть пакетов, устанавливающих новые соединения. Другая возможная причина - TIME_WAIT socket reuse, и плюс к этому опять же statefull firewall, который про оный reuse не знает и в результате SYN-пакеты считает не соответствующими имеющемуся у него state'у (и drop'ает их). В обоих случаях правильнее всего лечить методом выкидывания statefull firewall'а (aka добавлением правила, пропускающего соединения nginx->backend без создания state'а). В качестве workaround'а можно также озаботится уменьшением количества устанавливаемых соединений (см. [1]). [1] http://nginx.org/r/keepalive/ru -- Maxim Dounin http://nginx.com/support.html From kav at karagodov.name Mon Oct 15 14:19:38 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Mon, 15 Oct 2012 18:19:38 +0400 Subject: upstream timed out In-Reply-To: <20121015140820.GF40452@mdounin.ru> References: <507BB496.9040203@labutin.com> <20121015140820.GF40452@mdounin.ru> Message-ID: On 15.10.2012, at 18:08, Maxim Dounin wrote: > Hello! > > On Mon, Oct 15, 2012 at 11:00:38AM +0400, Dmitry Y. Labutin wrote: > >> Frontend nginx стоит в Москве. Backend nginx стоит в Нижнем Новгороде. >> Между ними по traceroute 10 хостов. На Frontend в error лог >> наблюдает вот такая картина. >> >> 2012/10/15 10:33:31 [error] 5438#0: *67542270 upstream timed out >> (110: Connection timed out) while connecting to upstream >> 2012/10/15 10:34:42 [error] 5436#0: *67548075 upstream timed out >> (110: Connection timed out) while connecting to upstream >> 2012/10/15 10:34:44 [error] 5437#0: *67544442 upstream timed out >> (110: Connection timed out) while connecting to upstream >> 2012/10/15 10:34:44 [error] 5436#0: *67548077 upstream timed out >> (110: Connection timed out) while connecting to upstream >> 2012/10/15 10:34:44 [error] 5437#0: *67548502 upstream timed out >> (110: Connection timed out) while connecting to upstream >> 2012/10/15 10:34:45 [error] 5437#0: *67546503 upstream timed out >> (110: Connection timed out) while connecting to upstream >> 2012/10/15 10:34:46 [error] 5437#0: *67546508 upstream timed out >> (110: Connection timed out) while connecting to upstream >> >> По статистике (делаю срезы раз в 10 минут) имеем в зависимости от >> количества посещение от 1 до 20 подобных ошибок за 10 минут. >> При этом активность - это порядка 30-50 запросов в секунду. >> Возьмем среднее. 10 ошибок в 10 минут и 40 запросов в секунду. >> Получаем примерно 0.04% проблемных ситуаций. Замечу, что статистика >> пингов между хостами ВСЕГДА показывала около 1.5% потерь (ping >> timeout), а сообщения в логах nginx на frontend появилась только в >> середине прошлой недели. >> Может быть подскажите, в какую сторону копать? > > При 1.5% packetloss'е - 0.02% вероятность потери двух пакетов > подряд, т.е. где-то 9 секунд при отсутствии прочих факторов. > Самого по себе этого очевидно не достаточно, чтобы с вероятностью > 0.04% наблюдались таймауты при установленном proxy_connect_timeout > в 15s. Так что скорее всего есть ещё какой-то фактор, > увеличивающий вероятность потери именно SYN-пакетов. > > Одним из таких факторов может быть например statefull firewall > между nginx'ом и бекендом, у которого state'ы подходят к концу. > Многие firewall'ы в этом случае начинают drop'ать часть пакетов, > устанавливающих новые соединения. > > Другая возможная причина - TIME_WAIT socket reuse, и плюс к этому > опять же statefull firewall, который про оный reuse не знает и в > результате SYN-пакеты считает не соответствующими имеющемуся у > него state'у (и drop'ает их). > > В обоих случаях правильнее всего лечить методом выкидывания > statefull firewall'а (aka добавлением правила, пропускающего при условии подконтрольности фаерволла или наличии методов воздействия если 10 хопов, да ещё с потерей, то мы имеем ещё одного любителя извращений, как то связь бек-енда с фронт-ендом через интернет уж простите мой французский ... > соединения nginx->backend без создания state'а). В качестве > workaround'а можно также озаботится уменьшением количества > устанавливаемых соединений (см. [1]). > > [1] http://nginx.org/r/keepalive/ru > > -- > Maxim Dounin > http://nginx.com/support.html > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From mdounin at mdounin.ru Mon Oct 15 15:33:50 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Mon, 15 Oct 2012 19:33:50 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <1350301244-27123-1-git-send-email-arut@qip.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> Message-ID: <20121015153350.GH40452@mdounin.ru> Hello! On Mon, Oct 15, 2012 at 03:40:44PM +0400, Roman Arutyunyan wrote: > > Модуль WebDAV на текущий момент не поддерживает хардлинки. > Я реализовал эту поддержку, патч прилагается. Буду очень признателен, > если патч будет включен в следующие версии nginx. > > Добавлена директива 'hardlink on|off', по умолчанию off. > Когда опция включена, делается попытка создать хардлинк при копировании > файла. В случае ошибки выполняется обычное копирование. А use case какой? Потому как в общем случае делать хардлинки вместо копирования - это, скажем так, опасная операция. По реализации комментарии ниже. > index dbb17ac..e9e0623 100644 > --- a/src/http/modules/ngx_http_dav_module.c > +++ b/src/http/modules/ngx_http_dav_module.c > @@ -25,6 +25,7 @@ typedef struct { > ngx_uint_t access; > ngx_uint_t min_delete_depth; > ngx_flag_t create_full_put_path; > + ngx_flag_t hardlink; > } ngx_http_dav_loc_conf_t; > > > @@ -106,6 +107,13 @@ static ngx_command_t ngx_http_dav_commands[] = { > offsetof(ngx_http_dav_loc_conf_t, access), > NULL }, > > + { ngx_string("hardlink"), > + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, > + ngx_conf_set_flag_slot, > + NGX_HTTP_LOC_CONF_OFFSET, > + offsetof(ngx_http_dav_loc_conf_t, hardlink), > + NULL }, > + Название директивы получилось черезчур общим, IMHO. > ngx_null_command > }; > > @@ -813,6 +821,15 @@ overwrite_done: > > dlcf = ngx_http_get_module_loc_conf(r, ngx_http_dav_module); > > + if (dlcf->hardlink) { > + if (ngx_hardlink_file(path.data, copy.path.data) == NGX_OK) { > + return NGX_HTTP_NO_CONTENT; > + } > + > + ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, ngx_errno, > + "hardlink error: \"%s\"", copy.path.data); > + } > + > cf.size = ngx_file_size(&fi); > cf.buf_size = 0; > cf.access = dlcf->access; А реализацию, наверно, имеет смысл как раз более общей, перетащив соответствующий код в ngx_copy_file(). Аналогично тому, как ngx_move_file() сначала пытается сделать rename(), а если не получилось - то копирует. > @@ -1096,6 +1113,7 @@ ngx_http_dav_create_loc_conf(ngx_conf_t *cf) > conf->min_delete_depth = NGX_CONF_UNSET_UINT; > conf->access = NGX_CONF_UNSET_UINT; > conf->create_full_put_path = NGX_CONF_UNSET; > + conf->hardlink = NGX_CONF_UNSET; > > return conf; > } > @@ -1118,6 +1136,8 @@ ngx_http_dav_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) > ngx_conf_merge_value(conf->create_full_put_path, > prev->create_full_put_path, 0); > > + ngx_conf_merge_value(conf->hardlink, prev->hardlink, 0); > + > return NGX_CONF_OK; > } > > diff --git a/src/os/unix/ngx_files.h b/src/os/unix/ngx_files.h > index 9c97e2b..826960b 100644 > --- a/src/os/unix/ngx_files.h > +++ b/src/os/unix/ngx_files.h > @@ -157,6 +157,10 @@ ngx_write_fd(ngx_fd_t fd, void *buf, size_t n) > #define ngx_rename_file_n "rename()" > > > +#define ngx_hardlink_file(o, n) link((const char *) o, (const char *) n) > +#define ngx_hardlink_file_n "link()" > + > + > #define ngx_change_file_access(n, a) chmod((const char *) n, a) > #define ngx_change_file_access_n "chmod()" > > -- > 1.7.1 И где-то тут ещё должна быть обработка для win32 (или просто код убран под #if). -- Maxim Dounin http://nginx.com/support.html From postmaster at softsearch.ru Mon Oct 15 19:30:55 2012 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Mon, 15 Oct 2012 23:30:55 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <20121015153350.GH40452@mdounin.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> Message-ID: <991838356.20121015233055@softsearch.ru> Здравствуйте, Maxim. >> Модуль WebDAV на текущий момент не поддерживает хардлинки. >> Я реализовал эту поддержку, патч прилагается. Буду очень признателен, >> если патч будет включен в следующие версии nginx. >> >> Добавлена директива 'hardlink on|off', по умолчанию off. >> Когда опция включена, делается попытка создать хардлинк при копировании >> файла. В случае ошибки выполняется обычное копирование. > А use case какой? Потому как в общем случае делать хардлинки > вместо копирования - это, скажем так, опасная операция. У меня, например, есть следующая задача: обновить mtime у файла по вебдаву. Т.е. сделать touch файлу. Сейчас я это делаю через Ж: копирую файл, а потом мувлю его в уже существующий. Копирование очень долго работает, а со ссылкой работало бы моментально. > Название директивы получилось черезчур общим, IMHO. Согласен. Его бы к вебдаву и копированию как-то привязать. -- С уважением, Михаил mailto:postmaster at softsearch.ru From gmm at csdoc.com Mon Oct 15 19:57:12 2012 From: gmm at csdoc.com (Gena Makhomed) Date: Mon, 15 Oct 2012 22:57:12 +0300 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <991838356.20121015233055@softsearch.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <991838356.20121015233055@softsearch.ru> Message-ID: <507C6A98.9090903@csdoc.com> On 15.10.2012 22:30, Михаил Монашёв wrote: > У меня, например, есть следующая задача: обновить mtime у файла по > вебдаву. Т.е. сделать touch файлу. Сейчас я это делаю через Ж: копирую > файл, а потом мувлю его в уже существующий. Копирование очень долго > работает, а со ссылкой работало бы моментально. моментально это работало бы, если добавить к реализации WebDAV расширение, новый метод TOUCH который будет менять mtime файла -- Best regards, Gena From postmaster at softsearch.ru Mon Oct 15 20:14:38 2012 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Tue, 16 Oct 2012 00:14:38 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <507C6A98.9090903@csdoc.com> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <991838356.20121015233055@softsearch.ru> <507C6A98.9090903@csdoc.com> Message-ID: <1044505139.20121016001438@softsearch.ru> Здравствуйте, Gena. >> У меня, например, есть следующая задача: обновить mtime у файла по >> вебдаву. Т.е. сделать touch файлу. Сейчас я это делаю через Ж: >> копирую файл, а потом мувлю его в уже существующий. Копирование >> очень долго работает, а со ссылкой работало бы моментально. > моментально это работало бы, если добавить к реализации WebDAV > расширение, новый метод TOUCH который будет менять mtime файла Ну это совсем идеальный случай. Я о таком только мечтать могу. Если кто-то вдруг реализует, то я только за. А пока выкручиваюсь как получается. -- С уважением, Михаил mailto:postmaster at softsearch.ru From dedukhin at mail.ru Tue Oct 16 05:47:19 2012 From: dedukhin at mail.ru (Dmitry Dedukhin) Date: Tue, 16 Oct 2012 09:47:19 +0400 Subject: =?UTF-8?B?UmU6IG1vZCB6aXAgLSDQv9GA0LjQvNC10YAg0LrQvtC90YTQuNCz0LAg0LTQu9GP?= =?UTF-8?B?INGB0L7QsdC40YDQsNC90LjRjyDRhNCw0LnQu9C+0LIg0YEg0YDQsNC30L0=?= =?UTF-8?B?0YvRhSDRgdC10YDQstC10YDQvtCy?= In-Reply-To: References: Message-ID: <507CF4E7.7000009@mail.ru> 15.10.2012 17:21, gatesat пишет: > Приветствую уважаемые ! > > Подскажите пожалуйста правильный конфиг nginx для mod_zip-а для собирания > файлов с разных удаленных серверов. > Созерцание лаконичного примера из документации http://wiki.nginx.org/NgxZip > > Remote Upstreams > > You can use the following setup to compose archives from multiple remote > servers: > > 1034ab38 428 /server1/foo.txt My Document1.txt > 83e8110b 100339 /server2/bar.txt My Other Document1.txt > > location ~ > "^/(?server[12])/(?UNIQ25789bf7448563f7-file-00000000-QINU > > не навело меня на правильную мысль. > > Заранее благодарен. > Мы используем примерно так. На фронтенде: location ~* /d/(.+?):(.+?)/(.+) { # proxied download from storage internal; proxy_hide_header Content-Type; # correct Content-Type is set by backend proxy_pass http://$1:$2/$3; } Бэкенд возвращает mod_zip'у на фронтенде Content-Type файла (у нас файлы хранятся без расширений) и список вида: /d/127.0.0.1:8001/path/to/file1 /d/127.0.0.1:8002/path/to/file2 /d/127.0.0.1:8003/path/to/file3 From ru at nginx.com Tue Oct 16 08:04:00 2012 From: ru at nginx.com (Ruslan Ermilov) Date: Tue, 16 Oct 2012 12:04:00 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRgdGH0LjRgtCw0YLRjCDQutC+0LvQuNGH0LXRgdGC0LLQviA=?= =?UTF-8?B?0L/QvtC/0LDQtNCw0L3QuNC5INCyINC60Y3RiA==?= In-Reply-To: <20121004093624.GZ40452@mdounin.ru> References: <506D0170.1050904@gmail.com> <20121004093624.GZ40452@mdounin.ru> Message-ID: <20121016080400.GB25029@lo0.su> On Thu, Oct 04, 2012 at 01:36:25PM +0400, Maxim Dounin wrote: > On Thu, Oct 04, 2012 at 10:24:32AM +0700, Igor Vavrjin wrote: > > > Можно считать анализируя логи (отсутствие значения $upstream_addr), > > JFYI: есть специальная переменная $upstream_cache_status, в которую > пишутся подробности работы с кешом (MISS, BYPASS, EXPIRED, STALE, > UPDATING, HIT). Задокументировано тут: http://nginx.org/ru/docs/http/ngx_http_upstream_module.html#variables From lufliw at gmail.com Tue Oct 16 08:24:49 2012 From: lufliw at gmail.com (Andrey Semenoff) Date: Tue, 16 Oct 2012 14:24:49 +0600 Subject: =?UTF-8?B?ZmFzdGNnaV9wYXNzINC4IHByb3h5X3Bhc3MsINGA0LDQt9C70LjRh9C40Y8=?= Message-ID: Добрый день! Подскажите пожалуйста, в чем различие в работе nginx + php-fpm с такими локейшнами location / { > proxy_pass 127.0.0.1:9000; > proxy_ ... } или > location / { > fastcgi_pass 127.0.0.1:9000; > fastcgi_... > } т.е. я не могу понять при использовании php-fpm, какую лучше директиву использовать fastcgi_ или proxy_ -------------- next part -------------- An HTML attachment was scrubbed... URL: From kav at karagodov.name Tue Oct 16 08:29:45 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Tue, 16 Oct 2012 12:29:45 +0400 Subject: =?UTF-8?B?UmU6IGZhc3RjZ2lfcGFzcyDQuCBwcm94eV9wYXNzLCDRgNCw0LfQu9C40YfQuNGP?= In-Reply-To: References: Message-ID: <4D2E45DB-457F-439E-812D-B2F9523B47C8@karagodov.name> On 16.10.2012, at 12:24, Andrey Semenoff wrote: > Добрый день! > > Подскажите пожалуйста, в чем различие в работе nginx + php-fpm с такими локейшнами > > location / { > proxy_pass 127.0.0.1:9000; > proxy_ ... > } > или > location / { > fastcgi_pass 127.0.0.1:9000; > fastcgi_... > } > > т.е. я не могу понять при использовании php-fpm, какую лучше директиву использовать fastcgi_ или proxy_ ещё один ... fastcgi > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From lufliw at gmail.com Tue Oct 16 08:41:53 2012 From: lufliw at gmail.com (Andrey Semenoff) Date: Tue, 16 Oct 2012 14:41:53 +0600 Subject: =?UTF-8?B?UmU6IGZhc3RjZ2lfcGFzcyDQuCBwcm94eV9wYXNzLCDRgNCw0LfQu9C40YfQuNGP?= In-Reply-To: <4D2E45DB-457F-439E-812D-B2F9523B47C8@karagodov.name> References: <4D2E45DB-457F-439E-812D-B2F9523B47C8@karagodov.name> Message-ID: Алексей, спасибо. А Вы не подскажите где можно найти больше информации по этому вопросу? 16 октября 2012 г., 14:29 пользователь Alexey V. Karagodov < kav at karagodov.name> написал: > > On 16.10.2012, at 12:24, Andrey Semenoff wrote: > > Добрый день! > > Подскажите пожалуйста, в чем различие в работе nginx + php-fpm с такими > локейшнами > > location / { >> proxy_pass 127.0.0.1:9000; >> > proxy_ ... > > } > > или > >> location / { >> fastcgi_pass 127.0.0.1:9000; >> fastcgi_... >> } > > > т.е. я не могу понять при использовании php-fpm, какую лучше директиву > использовать fastcgi_ или proxy_ > > > ещё один ... > > fastcgi > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- С уважением, Семенов Андрей Системный администратор Отдел разработки ПО ЗАО "Издательство "Семь Дней" skype: semenovav_sl -------------- next part -------------- An HTML attachment was scrubbed... URL: From ne at vbart.ru Tue Oct 16 08:43:57 2012 From: ne at vbart.ru (=?utf-8?b?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Tue, 16 Oct 2012 12:43:57 +0400 Subject: =?UTF-8?B?UmU6IGZhc3RjZ2lfcGFzcyDQuCBwcm94eV9wYXNzLCAg0YDQsNC30LvQuNGH0Lg=?= =?UTF-8?B?0Y8=?= In-Reply-To: References: Message-ID: <201210161243.58130.ne@vbart.ru> On Tuesday 16 October 2012 12:24:49 Andrey Semenoff wrote: > Добрый день! > > Подскажите пожалуйста, в чем различие в работе nginx + php-fpm с такими > локейшнами > > location / { > > > proxy_pass 127.0.0.1:9000; > > proxy_ ... > > } > > или > > > location / { > > > > fastcgi_pass 127.0.0.1:9000; > > fastcgi_... > > > > } > > т.е. я не могу понять при использовании php-fpm, какую лучше директиву > использовать fastcgi_ или proxy_ proxy_* - это директивы модуля ngx_http_proxy_module, само название которого говорит за себя: он предназначен для реверс-проксирования запросов и позволяет передавать запросы другому HTTP(S) серверу. http://nginx.org/ru/docs/http/ngx_http_proxy_module.html fastcgi_* - директивы модуля ngx_http_fastcgi_module, реализующего интерфейс FastCGI для связи с приложением или сервером приложений работающим по этому интерфейсу. Одним из примеров такого сервера приложений является php-fpm. http://nginx.org/ru/docs/http/ngx_http_fastcgi_module.html Исходя из этого, очевидно, что совместно с php-fpm вы можете использовать только fastcgi_pass. Попытка передать демону php-fpm запрос по протоколу HTTP с помощью директивы proxy_pass закончится ошибкой. -- Валентин Бартенев http://nginx.com/support.html http://nginx.org/en/donation.html From ne at vbart.ru Tue Oct 16 08:51:04 2012 From: ne at vbart.ru (=?utf-8?b?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Tue, 16 Oct 2012 12:51:04 +0400 Subject: =?UTF-8?B?UmU6IGZhc3RjZ2lfcGFzcyDQuCBwcm94eV9wYXNzLCAg0YDQsNC30LvQuNGH0Lg=?= =?UTF-8?B?0Y8=?= In-Reply-To: References: <4D2E45DB-457F-439E-812D-B2F9523B47C8@karagodov.name> Message-ID: <201210161251.04296.ne@vbart.ru> On Tuesday 16 October 2012 12:41:53 Andrey Semenoff wrote: > не подскажите где можно найти больше информации по > этому вопросу? > Существует официальный сайт, посвященный nginx, и там же вы можете найти документацию на русском языке: http://nginx.org/ru/docs/ По php и php-fpm также существуют различные ресурсы и документация: http://php-fpm.org/ http://php.net/manual/ru/install.fpm.php http://php-fpm.org/wiki/RU:Home -- Валентин Бартенев http://nginx.com/support.html http://nginx.org/en/donation.html From lufliw at gmail.com Tue Oct 16 08:53:51 2012 From: lufliw at gmail.com (Andrey Semenoff) Date: Tue, 16 Oct 2012 14:53:51 +0600 Subject: =?UTF-8?B?UmU6IGZhc3RjZ2lfcGFzcyDQuCBwcm94eV9wYXNzLCDRgNCw0LfQu9C40YfQuNGP?= In-Reply-To: <201210161243.58130.ne@vbart.ru> References: <201210161243.58130.ne@vbart.ru> Message-ID: Спасибо, Валентин. У меня дефолтная инсталяция CentOS, никаких манипуляций с пакетами не делал, полностью майнтайнерская сборка. Однако proxy_pass на 127.0.0.1:9000 так же работает, как и fastcgi_pass. Что и вызвало вопросы. Обе директивы указанные в моем письме рабочие. 16 октября 2012 г., 14:43 пользователь Валентин Бартенев написал: > On Tuesday 16 October 2012 12:24:49 Andrey Semenoff wrote: > > Добрый день! > > > > Подскажите пожалуйста, в чем различие в работе nginx + php-fpm с такими > > локейшнами > > > > location / { > > > > > proxy_pass 127.0.0.1:9000; > > > > proxy_ ... > > > > } > > > > или > > > > > location / { > > > > > > fastcgi_pass 127.0.0.1:9000; > > > fastcgi_... > > > > > > } > > > > т.е. я не могу понять при использовании php-fpm, какую лучше директиву > > использовать fastcgi_ или proxy_ > > proxy_* - это директивы модуля ngx_http_proxy_module, само название > которого говорит за себя: он предназначен для реверс-проксирования > запросов и позволяет передавать запросы другому HTTP(S) серверу. > > http://nginx.org/ru/docs/http/ngx_http_proxy_module.html > > > fastcgi_* - директивы модуля ngx_http_fastcgi_module, реализующего > интерфейс FastCGI для связи с приложением или сервером приложений > работающим по этому интерфейсу. Одним из примеров такого сервера > приложений является php-fpm. > > http://nginx.org/ru/docs/http/ngx_http_fastcgi_module.html > > > Исходя из этого, очевидно, что совместно с php-fpm вы можете использовать > только fastcgi_pass. Попытка передать демону php-fpm запрос по протоколу > HTTP с помощью директивы proxy_pass закончится ошибкой. > > -- > Валентин Бартенев > http://nginx.com/support.html > http://nginx.org/en/donation.html > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- С уважением, Семенов Андрей Системный администратор Отдел разработки ПО ЗАО "Издательство "Семь Дней" skype: semenovav_sl -------------- next part -------------- An HTML attachment was scrubbed... URL: From ne at vbart.ru Tue Oct 16 09:08:31 2012 From: ne at vbart.ru (=?utf-8?b?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Tue, 16 Oct 2012 13:08:31 +0400 Subject: =?UTF-8?B?UmU6IGZhc3RjZ2lfcGFzcyDQuCBwcm94eV9wYXNzLCAg0YDQsNC30LvQuNGH0Lg=?= =?UTF-8?B?0Y8=?= In-Reply-To: References: <201210161243.58130.ne@vbart.ru> Message-ID: <201210161308.31667.ne@vbart.ru> On Tuesday 16 October 2012 12:53:51 Andrey Semenoff wrote: > Спасибо, Валентин. У меня дефолтная инсталяция CentOS, никаких манипуляций > с пакетами не делал, полностью майнтайнерская сборка. Однако proxy_pass на > 127.0.0.1:9000 так же работает, как и fastcgi_pass. Что и вызвало вопросы. > Обе директивы указанные в моем письме рабочие. > Вы в этом уверены? Возможно вы изменили конфигурацию, но не перезагрузили nginx, либо конфигурация, которую вы меняете, вообще не активна, а берется откуда-то ещё. Насколько мне известно, php-fpm по http работать не умеет. -- Валентин Бартенев http://nginx.com/support.html http://nginx.org/en/donation.html From lufliw at gmail.com Tue Oct 16 09:14:43 2012 From: lufliw at gmail.com (Andrey Semenoff) Date: Tue, 16 Oct 2012 15:14:43 +0600 Subject: =?UTF-8?B?UmU6IGZhc3RjZ2lfcGFzcyDQuCBwcm94eV9wYXNzLCDRgNCw0LfQu9C40YfQuNGP?= In-Reply-To: <201210161308.31667.ne@vbart.ru> References: <201210161243.58130.ne@vbart.ru> <201210161308.31667.ne@vbart.ru> Message-ID: Да, уверен. Я добился работоспособности сайта без единого параметра fastcgi_* На сервере нет больше никакого бакэнда кроме php-fpm. И только потом уже у меня возник вопрос (: 16 октября 2012 г., 15:08 пользователь Валентин Бартенев написал: > On Tuesday 16 October 2012 12:53:51 Andrey Semenoff wrote: > > Спасибо, Валентин. У меня дефолтная инсталяция CentOS, никаких > манипуляций > > с пакетами не делал, полностью майнтайнерская сборка. Однако proxy_pass > на > > 127.0.0.1:9000 так же работает, как и fastcgi_pass. Что и вызвало > вопросы. > > Обе директивы указанные в моем письме рабочие. > > > > Вы в этом уверены? Возможно вы изменили конфигурацию, но не перезагрузили > nginx, либо конфигурация, которую вы меняете, вообще не активна, а берется > откуда-то ещё. > > Насколько мне известно, php-fpm по http работать не умеет. > > -- > Валентин Бартенев > http://nginx.com/support.html > http://nginx.org/en/donation.html > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- С уважением, Семенов Андрей Системный администратор Отдел разработки ПО ЗАО "Издательство "Семь Дней" skype: semenovav_sl -------------- next part -------------- An HTML attachment was scrubbed... URL: From mdounin at mdounin.ru Tue Oct 16 10:16:53 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 16 Oct 2012 14:16:53 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <1044505139.20121016001438@softsearch.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <991838356.20121015233055@softsearch.ru> <507C6A98.9090903@csdoc.com> <1044505139.20121016001438@softsearch.ru> Message-ID: <20121016101653.GP40452@mdounin.ru> Hello! On Tue, Oct 16, 2012 at 12:14:38AM +0400, Михаил Монашёв wrote: > Здравствуйте, Gena. > > >> У меня, например, есть следующая задача: обновить mtime у файла по > >> вебдаву. Т.е. сделать touch файлу. Сейчас я это делаю через Ж: > >> копирую файл, а потом мувлю его в уже существующий. Копирование > >> очень долго работает, а со ссылкой работало бы моментально. > > > моментально это работало бы, если добавить к реализации WebDAV > > расширение, новый метод TOUCH который будет менять mtime файла > > Ну это совсем идеальный случай. Я о таком только мечтать могу. Если > кто-то вдруг реализует, то я только за. А пока выкручиваюсь как > получается. Если следовать идеалогии WebDAV'а, то твоя задача должна решаться с помощью метода PROPPATCH[1]. Но он долбанутый на всю голову и там требуется, чтобы сервер занимался парсингом набора инструкций в XML'е. Если следовать здравому смыслу - то TOUCH, конечно, будет существенно проще. Единственное что останавливает - его отсутствие, т.е. полная и абсолютная неспецифицированность. С идеалогической точки зрения - возможно тут подойдёт правильно применённый метод PATCH[2]. Использование COPY с hardlink'ами для решения подобной задачи - это как-то слишком, IMHO, полностью согласен с Геной. (Я бы наверное применил тут встроенный перл и не мучился особо.) [1] http://tools.ietf.org/html/rfc4918#section-9.2 [2] http://tools.ietf.org/html/rfc5789 -- Maxim Dounin http://nginx.com/support.html From arut at qip.ru Tue Oct 16 12:43:05 2012 From: arut at qip.ru (arut at qip.ru) Date: Tue, 16 Oct 2012 16:43:05 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <20121015153350.GH40452@mdounin.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> Message-ID: <507D5659.7060906@qip.ru> Юзкейс, например, такой. Есть файловое хранилище, доступ в которое осуществляется *только* через WebDAV. Т.е. редактирование отсутствует. Скачал-удалил-загрузил снова. В таком случае копирование и создание хардлинков одинаково применимы, однако второе гораздо быстрее и, что важнее, экономит место. On 10/15/2012 07:33 PM, Maxim Dounin wrote: > Hello! > > On Mon, Oct 15, 2012 at 03:40:44PM +0400, Roman Arutyunyan wrote: > >> Модуль WebDAV на текущий момент не поддерживает хардлинки. >> Я реализовал эту поддержку, патч прилагается. Буду очень признателен, >> если патч будет включен в следующие версии nginx. >> >> Добавлена директива 'hardlink on|off', по умолчанию off. >> Когда опция включена, делается попытка создать хардлинк при копировании >> файла. В случае ошибки выполняется обычное копирование. > А use case какой? Потому как в общем случае делать хардлинки > вместо копирования - это, скажем так, опасная операция. > > From arut at qip.ru Tue Oct 16 12:52:06 2012 From: arut at qip.ru (Roman Arutyunyan) Date: Tue, 16 Oct 2012 16:52:06 +0400 Subject: [PATCH] implemented DAV copy hardlinks In-Reply-To: <20121015153350.GH40452@mdounin.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> Message-ID: <1350391927-1793-1-git-send-email-arut@qip.ru> Новая версия патча. Вроде учел все замечания. Опция называется 'dav_copy_hardlink'. Если у кого-то есть идеи получше касательно названия, предлагайте. --- src/core/ngx_file.c | 21 +++++++++++++++++++++ src/core/ngx_file.h | 2 ++ src/http/modules/ngx_http_dav_module.c | 17 +++++++++++++++++ 3 files changed, 40 insertions(+), 0 deletions(-) diff --git a/src/core/ngx_file.c b/src/core/ngx_file.c index d9b30f8..c960f04 100644 --- a/src/core/ngx_file.c +++ b/src/core/ngx_file.c @@ -608,6 +608,7 @@ ngx_ext_rename_file(ngx_str_t *src, ngx_str_t *to, ngx_ext_rename_file_t *ext) cf.access = ext->access; cf.time = ext->time; cf.log = ext->log; + cf.hardlink = 0; name = ngx_alloc(to->len + 1 + 10 + 1, ext->log); if (name == NULL) { @@ -681,6 +682,24 @@ ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf) rc = NGX_ERROR; buf = NULL; nfd = NGX_INVALID_FILE; + fd = NGX_INVALID_FILE; + +#ifndef NGX_WIN32 + if (cf->hardlink && + link((const char *) from, (const char *) to) == NGX_OK) + { + if (chmod((const char *) to, cf->access) != NGX_OK) { + ngx_log_error(NGX_LOG_EMERG, cf->log, ngx_errno, + "chmod() \"%s\" failed", to); + + ngx_delete_file(to); + + goto failed; + } + + goto set_time; + } +#endif fd = ngx_open_file(from, NGX_FILE_RDONLY, NGX_FILE_OPEN, 0); @@ -763,6 +782,8 @@ ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf) size -= n; } +set_time: + if (cf->time != -1) { if (ngx_set_file_time(to, nfd, cf->time) != NGX_OK) { ngx_log_error(NGX_LOG_ALERT, cf->log, ngx_errno, diff --git a/src/core/ngx_file.h b/src/core/ngx_file.h index 7023e67..81c706a 100644 --- a/src/core/ngx_file.h +++ b/src/core/ngx_file.h @@ -94,6 +94,8 @@ typedef struct { ngx_uint_t access; time_t time; + unsigned hardlink:1; + ngx_log_t *log; } ngx_copy_file_t; diff --git a/src/http/modules/ngx_http_dav_module.c b/src/http/modules/ngx_http_dav_module.c index dbb17ac..f9e5daf 100644 --- a/src/http/modules/ngx_http_dav_module.c +++ b/src/http/modules/ngx_http_dav_module.c @@ -25,12 +25,14 @@ typedef struct { ngx_uint_t access; ngx_uint_t min_delete_depth; ngx_flag_t create_full_put_path; + ngx_flag_t hardlink; } ngx_http_dav_loc_conf_t; typedef struct { ngx_str_t path; size_t len; + unsigned hardlink:1; } ngx_http_dav_copy_ctx_t; @@ -106,6 +108,13 @@ static ngx_command_t ngx_http_dav_commands[] = { offsetof(ngx_http_dav_loc_conf_t, access), NULL }, + { ngx_string("dav_copy_hardlink"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, + ngx_conf_set_flag_slot, + NGX_HTTP_LOC_CONF_OFFSET, + offsetof(ngx_http_dav_loc_conf_t, hardlink), + NULL }, + ngx_null_command }; @@ -767,7 +776,10 @@ overwrite_done: ngx_create_dir_n, copy.path.data); } + dlcf = ngx_http_get_module_loc_conf(r, ngx_http_dav_module); + copy.len = path.len; + copy.hardlink = dlcf->hardlink; tree.init_handler = NULL; tree.file_handler = ngx_http_dav_copy_tree_file; @@ -818,6 +830,7 @@ overwrite_done: cf.access = dlcf->access; cf.time = ngx_file_mtime(&fi); cf.log = r->connection->log; + cf.hardlink = dlcf->hardlink; if (ngx_copy_file(path.data, copy.path.data, &cf) == NGX_OK) { return NGX_HTTP_NO_CONTENT; @@ -959,6 +972,7 @@ ngx_http_dav_copy_tree_file(ngx_tree_ctx_t *ctx, ngx_str_t *path) cf.access = ctx->access; cf.time = ctx->mtime; cf.log = ctx->log; + cf.hardlink = copy->hardlink; (void) ngx_copy_file(path->data, file, &cf); @@ -1096,6 +1110,7 @@ ngx_http_dav_create_loc_conf(ngx_conf_t *cf) conf->min_delete_depth = NGX_CONF_UNSET_UINT; conf->access = NGX_CONF_UNSET_UINT; conf->create_full_put_path = NGX_CONF_UNSET; + conf->hardlink = NGX_CONF_UNSET; return conf; } @@ -1118,6 +1133,8 @@ ngx_http_dav_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) ngx_conf_merge_value(conf->create_full_put_path, prev->create_full_put_path, 0); + ngx_conf_merge_value(conf->hardlink, prev->hardlink, 0); + return NGX_CONF_OK; } -- 1.7.1 From iroinname at gmail.com Tue Oct 16 15:10:16 2012 From: iroinname at gmail.com (=?KOI8-R?B?5dfHxc7JyiDiz9LPxMnO?=) Date: Tue, 16 Oct 2012 18:10:16 +0300 Subject: =?UTF-8?B?0JrQvtC90YTQuNCz0YPRgNCw0YbQuNGPINCz0LXQvtC40L8g0LTQu9GPINC/0YU=?= =?UTF-8?B?0L8=?= Message-ID: Скажите пожалуйста. А где можно посмотреть конфиг где гео обрабатывается только для пхп(т.е как вы говорите "только в том месте, где вы его используете") ? > >On Saturday 13 October 2012 17:46:03 Евгений Бородин wrote: > [...] > Но, раз в nginx'е вычисления идут для всех коннектов, то > даже для картинок и прочей статики будет вычисляться гео - что нам > совсем не нужно. > [...] Не понял. Можете пояснить, что вы хотите этим сказать? В nginx geoip будет отрабатывать только в том месте, где вы его используете. Если вы используете geoip для статики, то будет вычисляться и для статики. From gmm at csdoc.com Tue Oct 16 15:40:13 2012 From: gmm at csdoc.com (Gena Makhomed) Date: Tue, 16 Oct 2012 18:40:13 +0300 Subject: [PATCH] implemented DAV copy hardlinks In-Reply-To: <1350391927-1793-1-git-send-email-arut@qip.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <1350391927-1793-1-git-send-email-arut@qip.ru> Message-ID: <507D7FDD.3090307@csdoc.com> On 16.10.2012 15:52, Roman Arutyunyan wrote: > Новая версия патча. Вроде учел все замечания. > Опция называется 'dav_copy_hardlink'. > Если у кого-то есть идеи получше касательно названия, предлагайте. почему нельзя сделать новый http метод, например, HARDLINK ? тогда решение о том, когда делать копию файла, а когда добавлять к файлу еще одно имя будет принимать клиент, и у него останется возможность как делать копии файлов, так и делать несколько имен для одного и того же файла. hardlink и copy - это ведь разные по своей семантике операции, зачем их смешивать и прятать обе за одним и тем же методом COPY ? по крайней мере, такое расширение (новый метод HARDLINK) не будет нарушением уже существующего стандарта: http://tools.ietf.org/html/rfc4918#section-9.8 который требует, чтобы метод COPY всегда создавал копию ресурса: Subsequent alterations to the destination resource will not modify the source resource. Subsequent alterations to the source resource will not modify the destination resource. P.S. хотя, возможно предполагалось, что вместо хардлинков будет использоваться 302 код с редиректом на основное имя - это очень похоже на символьные линки в unix`овых FS. -- Best regards, Gena From mdounin at mdounin.ru Tue Oct 16 15:44:55 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 16 Oct 2012 19:44:55 +0400 Subject: [PATCH] implemented DAV copy hardlinks In-Reply-To: <1350391927-1793-1-git-send-email-arut@qip.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <1350391927-1793-1-git-send-email-arut@qip.ru> Message-ID: <20121016154455.GU40452@mdounin.ru> Hello! On Tue, Oct 16, 2012 at 04:52:06PM +0400, Roman Arutyunyan wrote: > Новая версия патча. Вроде учел все замечания. > Опция называется 'dav_copy_hardlink'. > Если у кого-то есть идеи получше касательно названия, предлагайте. > --- > src/core/ngx_file.c | 21 +++++++++++++++++++++ > src/core/ngx_file.h | 2 ++ > src/http/modules/ngx_http_dav_module.c | 17 +++++++++++++++++ > 3 files changed, 40 insertions(+), 0 deletions(-) > > diff --git a/src/core/ngx_file.c b/src/core/ngx_file.c > index d9b30f8..c960f04 100644 > --- a/src/core/ngx_file.c > +++ b/src/core/ngx_file.c > @@ -608,6 +608,7 @@ ngx_ext_rename_file(ngx_str_t *src, ngx_str_t *to, ngx_ext_rename_file_t *ext) > cf.access = ext->access; > cf.time = ext->time; > cf.log = ext->log; > + cf.hardlink = 0; > > name = ngx_alloc(to->len + 1 + 10 + 1, ext->log); > if (name == NULL) { > @@ -681,6 +682,24 @@ ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf) > rc = NGX_ERROR; > buf = NULL; > nfd = NGX_INVALID_FILE; > + fd = NGX_INVALID_FILE; > + > +#ifndef NGX_WIN32 > + if (cf->hardlink && > + link((const char *) from, (const char *) to) == NGX_OK) > + { 1) Я бы всё-таки сделал wrapper, как в предыдущем патче, с тем чтобы можно было дописать потом и для виндов с минимальными трудозатратами. 2) Ошибки всё-таки стоит проверять, и наверное копировать только в случае NGX_EXDEV. > + if (chmod((const char *) to, cf->access) != NGX_OK) { > + ngx_log_error(NGX_LOG_EMERG, cf->log, ngx_errno, > + "chmod() \"%s\" failed", to); ngx_change_file_access() > + > + ngx_delete_file(to); > + > + goto failed; > + } > + > + goto set_time; goto done? > + } > +#endif > > fd = ngx_open_file(from, NGX_FILE_RDONLY, NGX_FILE_OPEN, 0); > > @@ -763,6 +782,8 @@ ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf) > size -= n; > } > > +set_time: > + > if (cf->time != -1) { > if (ngx_set_file_time(to, nfd, cf->time) != NGX_OK) { > ngx_log_error(NGX_LOG_ALERT, cf->log, ngx_errno, Note: под win32 это сломается, т.к. там для ngx_set_file_time() требуется файловый дескриптор. > diff --git a/src/core/ngx_file.h b/src/core/ngx_file.h > index 7023e67..81c706a 100644 > --- a/src/core/ngx_file.h > +++ b/src/core/ngx_file.h > @@ -94,6 +94,8 @@ typedef struct { > ngx_uint_t access; > time_t time; > > + unsigned hardlink:1; > + > ngx_log_t *log; > } ngx_copy_file_t; > > diff --git a/src/http/modules/ngx_http_dav_module.c b/src/http/modules/ngx_http_dav_module.c > index dbb17ac..f9e5daf 100644 > --- a/src/http/modules/ngx_http_dav_module.c > +++ b/src/http/modules/ngx_http_dav_module.c > @@ -25,12 +25,14 @@ typedef struct { > ngx_uint_t access; > ngx_uint_t min_delete_depth; > ngx_flag_t create_full_put_path; > + ngx_flag_t hardlink; > } ngx_http_dav_loc_conf_t; > > > typedef struct { > ngx_str_t path; > size_t len; > + unsigned hardlink:1; > } ngx_http_dav_copy_ctx_t; Может, чтобы два раза не вставать, имеет смысл протащить тут сразу указатель на конфигурацию? Или даже вообще на объект запроса? [...] -- Maxim Dounin http://nginx.com/support.html From ne at vbart.ru Tue Oct 16 15:57:50 2012 From: ne at vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Tue, 16 Oct 2012 19:57:50 +0400 Subject: =?UTF-8?B?UmU6INCa0L7QvdGE0LjQs9GD0YDQsNGG0LjRjyDQs9C10L7QuNC/INC00LvRjyA=?= =?UTF-8?B?0L/RhdC/?= In-Reply-To: References: Message-ID: <201210161957.50354.ne@vbart.ru> Просьба не создавать новые топики по одному и тому же вопросу с разными названиями, а продолжать дискуссию в уже начатом. Кроме того, в рассылке принят стиль bottom-постинга, просьба его и придерживаться. Спасибо. On Tuesday 16 October 2012 19:10:16 Евгений Бородин wrote: > Скажите пожалуйста. А где можно посмотреть конфиг где гео > обрабатывается только для пхп(т.е как вы говорите "только в том месте, > где вы его используете") ? Документация по модулю geoip сообщает предельно четко о том, что делает данный модуль. Процитирую: | | Модуль ngx_http_geoip_module (0.8.6+) создаёт переменные, значения которых | зависят от IP-адреса клиента, используя готовые базы данных MaxMind." | - http://nginx.org/ru/docs/http/ngx_http_geoip_module.html Переменные в nginx обрабатываются только в момент обращения к ним. Если обращений не было, значение переменной не запрашивалось, то и поиска по базе не произойдет. Если вы напишите location, который обрабатывает статические файлы, и используете в пути к файлу переменную из geoip модуля, то она будет обрабатываться при доступе к этому файлу. Пример: location / { root /home/user/data/site/$geoip_city_country_code; } Пример конфига, который вы хотите посмотреть: location ~ \.php$ { fastcgi_pass backend; include fastcgi_params; fastcgi_param GEOIP_COUNTRY $geoip_country_code3; fastcgi_param GEOIP_CITY $geoip_city; } > > >On Saturday 13 October 2012 17:46:03 Евгений Бородин wrote: > > [...] > > Но, раз в nginx'е вычисления идут для всех коннектов, то > > даже для картинок и прочей статики будет вычисляться гео - что нам > > совсем не нужно. > > [...] > > Не понял. Можете пояснить, что вы хотите этим сказать? В nginx geoip будет > отрабатывать только в том месте, где вы его используете. Если вы > используете geoip для статики, то будет вычисляться и для статики. -- Валентин Бартенев http://nginx.com/support.html http://nginx.org/en/donation.html From postmaster at softsearch.ru Tue Oct 16 16:48:41 2012 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Tue, 16 Oct 2012 20:48:41 +0400 Subject: [PATCH] implemented DAV copy hardlinks In-Reply-To: <507D7FDD.3090307@csdoc.com> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <1350391927-1793-1-git-send-email-arut@qip.ru> <507D7FDD.3090307@csdoc.com> Message-ID: <608800828.20121016204841@softsearch.ru> Здравствуйте, Gena. >> Новая версия патча. Вроде учел все замечания. >> Опция называется 'dav_copy_hardlink'. >> Если у кого-то есть идеи получше касательно названия, предлагайте. > почему нельзя сделать новый http метод, например, HARDLINK ? Нет такого в стандарте. > тогда решение о том, когда делать копию файла, > а когда добавлять к файлу еще одно имя будет принимать клиент, > и у него останется возможность как делать копии файлов, > так и делать несколько имен для одного и того же файла. Разные локейшны или хосты использовать можно, например. Есть куча способов отделить одну операцию от другой для одного и того же модуля. -- С уважением, Михаил mailto:postmaster at softsearch.ru From arut at qip.ru Tue Oct 16 17:05:57 2012 From: arut at qip.ru (arut at qip.ru) Date: Tue, 16 Oct 2012 21:05:57 +0400 Subject: [PATCH] implemented DAV copy hardlinks In-Reply-To: <507D7FDD.3090307@csdoc.com> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <1350391927-1793-1-git-send-email-arut@qip.ru> <507D7FDD.3090307@csdoc.com> Message-ID: <507D93F5.7040208@qip.ru> On 10/16/2012 07:40 PM, Gena Makhomed wrote: > On 16.10.2012 15:52, Roman Arutyunyan wrote: > >> Новая версия патча. Вроде учел все замечания. >> Опция называется 'dav_copy_hardlink'. >> Если у кого-то есть идеи получше касательно названия, предлагайте. > > почему нельзя сделать новый http метод, например, HARDLINK ? такого метода нет в стандарте, его не поддерживают клиенты. кроме того, его придется протаскивать через весь nginx, заводить константы итд. в отдельном бранче, конечно, можно сделать все, что угодно. > > тогда решение о том, когда делать копию файла, > а когда добавлять к файлу еще одно имя будет принимать клиент, > и у него останется возможность как делать копии файлов, > так и делать несколько имен для одного и того же файла. это большой вопрос, должен ли клиент принимать такие решения > > hardlink и copy - это ведь разные по своей семантике операции, > зачем их смешивать и прятать обе за одним и тем же методом COPY ? если вы никогда не редактируете файлы, разницы нет > > по крайней мере, такое расширение (новый метод HARDLINK) > не будет нарушением уже существующего стандарта: > http://tools.ietf.org/html/rfc4918#section-9.8 > который требует, чтобы метод COPY всегда создавал копию ресурса: > > Subsequent alterations > to the destination resource will not modify the source resource. > Subsequent alterations to the source resource will not modify the > destination resource. что считать alteration? думаю, речь идет о модификации метаданных (всякие там etags итд) и об удалении. никаких других изменений через вебдав не сделаешь, а упомянутые изменения отлично согласуются с хардлинками. > > P.S. хотя, возможно предполагалось, что вместо хардлинков > будет использоваться 302 код с редиректом на основное имя > - это очень похоже на символьные линки в unix`овых FS. > From mdounin at mdounin.ru Tue Oct 16 17:10:52 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 16 Oct 2012 21:10:52 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <20121016101653.GP40452@mdounin.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <991838356.20121015233055@softsearch.ru> <507C6A98.9090903@csdoc.com> <1044505139.20121016001438@softsearch.ru> <20121016101653.GP40452@mdounin.ru> Message-ID: <20121016171051.GX40452@mdounin.ru> Hello! On Tue, Oct 16, 2012 at 02:16:53PM +0400, Maxim Dounin wrote: > Hello! > > On Tue, Oct 16, 2012 at 12:14:38AM +0400, Михаил Монашёв wrote: > > > Здравствуйте, Gena. > > > > >> У меня, например, есть следующая задача: обновить mtime у файла по > > >> вебдаву. Т.е. сделать touch файлу. Сейчас я это делаю через Ж: > > >> копирую файл, а потом мувлю его в уже существующий. Копирование > > >> очень долго работает, а со ссылкой работало бы моментально. > > > > > моментально это работало бы, если добавить к реализации WebDAV > > > расширение, новый метод TOUCH который будет менять mtime файла > > > > Ну это совсем идеальный случай. Я о таком только мечтать могу. Если > > кто-то вдруг реализует, то я только за. А пока выкручиваюсь как > > получается. > > Если следовать идеалогии WebDAV'а, то твоя задача должна решаться > с помощью метода PROPPATCH[1]. Но он долбанутый на всю голову и > там требуется, чтобы сервер занимался парсингом набора инструкций > в XML'е. > > Если следовать здравому смыслу - то TOUCH, конечно, будет > существенно проще. Единственное что останавливает - его > отсутствие, т.е. полная и абсолютная неспецифицированность. С > идеалогической точки зрения - возможно тут подойдёт правильно > применённый метод PATCH[2]. > > Использование COPY с hardlink'ами для решения подобной задачи - > это как-то слишком, IMHO, полностью согласен с Геной. (Я бы > наверное применил тут встроенный перл и не мучился особо.) > > [1] http://tools.ietf.org/html/rfc4918#section-9.2 > [2] http://tools.ietf.org/html/rfc5789 Патч с реализацией TOUCH прилагается, желающие поиграться - добро пожаловать. Правда, Игорь считает изобретение новых методов порочной практикой, так что в коробку этот патч попадёт врядли. -- Maxim Dounin http://nginx.com/support.html -------------- next part -------------- # HG changeset patch # User Maxim Dounin # Date 1350407274 -14400 # Node ID 728fd8835df96a78333dceafebf1adf01ea11acb # Parent eea938da44a1778c4c4f1e2504b774845c86b99f Dav: experimental TOUCH method support. The TOUCH method sets the modification and access times of a file. Note that in contrast to touch(1) if file doesn't exists, it is not created. See this thread for details (in Russian): http://mailman.nginx.org/pipermail/nginx-ru/2012-October/048584.html diff --git a/src/http/modules/ngx_http_dav_module.c b/src/http/modules/ngx_http_dav_module.c --- a/src/http/modules/ngx_http_dav_module.c +++ b/src/http/modules/ngx_http_dav_module.c @@ -55,6 +55,8 @@ static ngx_int_t ngx_http_dav_copy_dir_t static ngx_int_t ngx_http_dav_copy_tree_file(ngx_tree_ctx_t *ctx, ngx_str_t *path); +static ngx_int_t ngx_http_dav_touch_handler(ngx_http_request_t *r); + static ngx_int_t ngx_http_dav_depth(ngx_http_request_t *r, ngx_int_t dflt); static ngx_int_t ngx_http_dav_error(ngx_log_t *log, ngx_err_t err, ngx_int_t not_found, char *failed, u_char *path); @@ -72,6 +74,7 @@ static ngx_conf_bitmask_t ngx_http_dav_ { ngx_string("mkcol"), NGX_HTTP_MKCOL }, { ngx_string("copy"), NGX_HTTP_COPY }, { ngx_string("move"), NGX_HTTP_MOVE }, + { ngx_string("touch"), NGX_HTTP_TOUCH }, { ngx_null_string, 0 } }; @@ -192,6 +195,10 @@ ngx_http_dav_handler(ngx_http_request_t case NGX_HTTP_MOVE: return ngx_http_dav_copy_move_handler(r); + + case NGX_HTTP_TOUCH: + + return ngx_http_dav_touch_handler(r); } return NGX_DECLINED; @@ -969,6 +976,78 @@ ngx_http_dav_copy_tree_file(ngx_tree_ctx static ngx_int_t +ngx_http_dav_touch_handler(ngx_http_request_t *r) +{ + size_t root; + time_t date; + ngx_int_t rc; + ngx_str_t path; + + rc = ngx_http_discard_request_body(r); + + if (rc != NGX_OK) { + return rc; + } + + date = (time_t) NGX_ERROR; + + if (r->headers_in.date) { + date = ngx_http_parse_time(r->headers_in.date->value.data, + r->headers_in.date->value.len); + } + + if (date == (time_t) NGX_ERROR) { + date = ngx_time(); + } + + if (ngx_http_map_uri_to_path(r, &path, &root, 0) == NULL) { + return NGX_HTTP_INTERNAL_SERVER_ERROR; + } + + ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, + "http touch filename: \"%s\"", path.data); + + /* XXX */ + +#if (NGX_WIN32) + { + ngx_fd_t fd; + + fd = ngx_open_file(dir, NGX_FILE_RDWR, NGX_FILE_OPEN, 0); + + if (fd == NGX_INVALID_FILE) { + return ngx_http_dav_error(r->connection->log, ngx_errno, + NGX_HTTP_NOT_FOUND, ngx_open_file_n, + path.data); + } + + if (ngx_set_file_time(NULL, fd, ctx->mtime) != NGX_OK) { + ngx_log_error(NGX_LOG_ALERT, r->connection->log, ngx_errno, + ngx_set_file_time_n " \"%s\" failed", dir); + return NGX_HTTP_INTERNAL_SERVER_ERROR; + } + + if (ngx_close_file(fd) == NGX_FILE_ERROR) { + ngx_log_error(NGX_LOG_ALERT, r->connection->log, ngx_errno, + ngx_close_file_n " \"%s\" failed", dir); + } + } + +#else + + if (ngx_set_file_time(path.data, 0, date) != NGX_OK) { + return ngx_http_dav_error(r->connection->log, ngx_errno, + NGX_HTTP_NOT_FOUND, ngx_set_file_time_n, + path.data); + } + +#endif + + return NGX_HTTP_NO_CONTENT; +} + + +static ngx_int_t ngx_http_dav_depth(ngx_http_request_t *r, ngx_int_t dflt) { ngx_table_elt_t *depth; diff --git a/src/http/ngx_http_parse.c b/src/http/ngx_http_parse.c --- a/src/http/ngx_http_parse.c +++ b/src/http/ngx_http_parse.c @@ -222,6 +222,10 @@ ngx_http_parse_request_line(ngx_http_req r->method = NGX_HTTP_TRACE; } + if (ngx_str5cmp(m, 'T', 'O', 'U', 'C', 'H')) { + r->method = NGX_HTTP_TOUCH; + } + break; case 6: diff --git a/src/http/ngx_http_request.h b/src/http/ngx_http_request.h --- a/src/http/ngx_http_request.h +++ b/src/http/ngx_http_request.h @@ -24,22 +24,23 @@ #define NGX_HTTP_VERSION_10 1000 #define NGX_HTTP_VERSION_11 1001 -#define NGX_HTTP_UNKNOWN 0x0001 -#define NGX_HTTP_GET 0x0002 -#define NGX_HTTP_HEAD 0x0004 -#define NGX_HTTP_POST 0x0008 -#define NGX_HTTP_PUT 0x0010 -#define NGX_HTTP_DELETE 0x0020 -#define NGX_HTTP_MKCOL 0x0040 -#define NGX_HTTP_COPY 0x0080 -#define NGX_HTTP_MOVE 0x0100 -#define NGX_HTTP_OPTIONS 0x0200 -#define NGX_HTTP_PROPFIND 0x0400 -#define NGX_HTTP_PROPPATCH 0x0800 -#define NGX_HTTP_LOCK 0x1000 -#define NGX_HTTP_UNLOCK 0x2000 -#define NGX_HTTP_PATCH 0x4000 -#define NGX_HTTP_TRACE 0x8000 +#define NGX_HTTP_UNKNOWN 0x000001 +#define NGX_HTTP_GET 0x000002 +#define NGX_HTTP_HEAD 0x000004 +#define NGX_HTTP_POST 0x000008 +#define NGX_HTTP_PUT 0x000010 +#define NGX_HTTP_DELETE 0x000020 +#define NGX_HTTP_MKCOL 0x000040 +#define NGX_HTTP_COPY 0x000080 +#define NGX_HTTP_MOVE 0x000100 +#define NGX_HTTP_OPTIONS 0x000200 +#define NGX_HTTP_PROPFIND 0x000400 +#define NGX_HTTP_PROPPATCH 0x000800 +#define NGX_HTTP_LOCK 0x001000 +#define NGX_HTTP_UNLOCK 0x002000 +#define NGX_HTTP_PATCH 0x004000 +#define NGX_HTTP_TRACE 0x008000 +#define NGX_HTTP_TOUCH 0x010000 #define NGX_HTTP_CONNECTION_CLOSE 1 #define NGX_HTTP_CONNECTION_KEEP_ALIVE 2 From postmaster at softsearch.ru Tue Oct 16 17:17:23 2012 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Tue, 16 Oct 2012 21:17:23 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <20121016101653.GP40452@mdounin.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <991838356.20121015233055@softsearch.ru> <507C6A98.9090903@csdoc.com> <1044505139.20121016001438@softsearch.ru> <20121016101653.GP40452@mdounin.ru> Message-ID: <183702430.20121016211723@softsearch.ru> Здравствуйте, Maxim. >> >> У меня, например, есть следующая задача: обновить mtime у файла по >> >> вебдаву. Т.е. сделать touch файлу. Сейчас я это делаю через Ж: >> >> копирую файл, а потом мувлю его в уже существующий. Копирование >> >> очень долго работает, а со ссылкой работало бы моментально. >> >> > моментально это работало бы, если добавить к реализации WebDAV >> > расширение, новый метод TOUCH который будет менять mtime файла >> >> Ну это совсем идеальный случай. Я о таком только мечтать могу. Если >> кто-то вдруг реализует, то я только за. А пока выкручиваюсь как >> получается. > Если следовать идеалогии WebDAV'а, то твоя задача должна решаться > с помощью метода PROPPATCH[1]. Но он долбанутый на всю голову и > там требуется, чтобы сервер занимался парсингом набора инструкций > в XML'е. XML - это слово из трёх букв, начинается на Х. :) Обрекает на успех. > Если следовать здравому смыслу - то TOUCH, конечно, будет > существенно проще. Единственное что останавливает - его > отсутствие, т.е. полная и абсолютная неспецифицированность. С > идеалогической точки зрения - возможно тут подойдёт правильно > применённый метод PATCH[2]. > Использование COPY с hardlink'ами для решения подобной задачи - > это как-то слишком, IMHO, полностью согласен с Геной. (Я бы > наверное применил тут встроенный перл и не мучился особо.) > [1] http://tools.ietf.org/html/rfc4918#section-9.2 > [2] http://tools.ietf.org/html/rfc5789 Всё это делалось очень давно. Не помню, был ли тогда встроенный перл... И до сих пор стрёмно использовать сторонние модули, даже если они в портах появились. Поэтому и делалось всё через доступные функции стандартного модуля. За ссылочки большое спасибо. Почитал. . Нашёл в http://tools.ietf.org/html/rfc5789 ошибку, кстати :-) Там ссылка неверная на "Section 3.7". Но так и не понял, как при PATCH-е выглядит "description of changes" в общем случае. Тоже на XML-е описываются изменения? Про встроенный перл, кстати и вправду стоит подумать. Спасибо за идею. -- С уважением, Михаил mailto:postmaster at softsearch.ru From postmaster at softsearch.ru Tue Oct 16 17:31:13 2012 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Tue, 16 Oct 2012 21:31:13 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <20121016171051.GX40452@mdounin.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <991838356.20121015233055@softsearch.ru> <507C6A98.9090903@csdoc.com> <1044505139.20121016001438@softsearch.ru> <20121016101653.GP40452@mdounin.ru> <20121016171051.GX40452@mdounin.ru> Message-ID: <1042482698.20121016213113@softsearch.ru> Здравствуйте, Maxim. Вы писали 16 октября 2012 г., 21:10:52: > Hello! > On Tue, Oct 16, 2012 at 02:16:53PM +0400, Maxim Dounin wrote: >> Hello! >> >> On Tue, Oct 16, 2012 at 12:14:38AM +0400, Михаил Монашёв wrote: >> >> > Здравствуйте, Gena. >> > >> > >> У меня, например, есть следующая задача: обновить mtime у файла по >> > >> вебдаву. Т.е. сделать touch файлу. Сейчас я это делаю через Ж: >> > >> копирую файл, а потом мувлю его в уже существующий. Копирование >> > >> очень долго работает, а со ссылкой работало бы моментально. >> > >> > > моментально это работало бы, если добавить к реализации WebDAV >> > > расширение, новый метод TOUCH который будет менять mtime файла >> > >> > Ну это совсем идеальный случай. Я о таком только мечтать могу. Если >> > кто-то вдруг реализует, то я только за. А пока выкручиваюсь как >> > получается. >> >> Если следовать идеалогии WebDAV'а, то твоя задача должна решаться >> с помощью метода PROPPATCH[1]. Но он долбанутый на всю голову и >> там требуется, чтобы сервер занимался парсингом набора инструкций >> в XML'е. >> >> Если следовать здравому смыслу - то TOUCH, конечно, будет >> существенно проще. Единственное что останавливает - его >> отсутствие, т.е. полная и абсолютная неспецифицированность. С >> идеалогической точки зрения - возможно тут подойдёт правильно >> применённый метод PATCH[2]. >> >> Использование COPY с hardlink'ами для решения подобной задачи - >> это как-то слишком, IMHO, полностью согласен с Геной. (Я бы >> наверное применил тут встроенный перл и не мучился особо.) >> >> [1] http://tools.ietf.org/html/rfc4918#section-9.2 >> [2] http://tools.ietf.org/html/rfc5789 > Патч с реализацией TOUCH прилагается, желающие поиграться - добро > пожаловать. Правда, Игорь считает изобретение новых методов > порочной практикой, так что в коробку этот патч попадёт врядли. А если потребуется поменять atime, то: - if (ngx_set_file_time(NULL, fd, ctx->mtime) != NGX_OK) { + if (ngx_set_file_time(NULL, fd, ctx->atime) != NGX_OK) { ? А то я тут посмотрел код скриптов, работающих с вебдавом, чтоб туда идейку про перл в комменты записать. А там мы оказывается atime меняем, а не mtime. И, кстати, Игорь прав. ;-) Глядя на твой патч возникает желание плодить методы под каждый чих, что неправильно. -- С уважением, Михаил mailto:postmaster at softsearch.ru From mdounin at mdounin.ru Tue Oct 16 17:36:43 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 16 Oct 2012 21:36:43 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <183702430.20121016211723@softsearch.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <991838356.20121015233055@softsearch.ru> <507C6A98.9090903@csdoc.com> <1044505139.20121016001438@softsearch.ru> <20121016101653.GP40452@mdounin.ru> <183702430.20121016211723@softsearch.ru> Message-ID: <20121016173643.GZ40452@mdounin.ru> Hello! On Tue, Oct 16, 2012 at 09:17:23PM +0400, Михаил Монашёв wrote: [...] > За ссылочки большое спасибо. Почитал. . Нашёл в > http://tools.ietf.org/html/rfc5789 ошибку, кстати :-) Там ссылка > неверная на "Section 3.7". Но так и не понял, как при PATCH-е выглядит > "description of changes" в общем случае. Тоже на XML-е описываются > изменения? Там не специфицируется. Поддержку конкретных форматов сервер может заявить через заголовок Accept-Patch. Например, это может быть text/x-diff... :) > Про встроенный перл, кстати и вправду стоит подумать. Спасибо за идею. Со встроенным перлом есть одна проблема: перл не умеет обрабатывать ошибки выделения памяти, и в случае чего роняет вместе с собой nginx. На фронтенд я бы его ставить не рекомендовал, а на бекендах - вполне может жить. -- Maxim Dounin http://nginx.com/support.html From mdounin at mdounin.ru Tue Oct 16 17:48:21 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 16 Oct 2012 21:48:21 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <1042482698.20121016213113@softsearch.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <991838356.20121015233055@softsearch.ru> <507C6A98.9090903@csdoc.com> <1044505139.20121016001438@softsearch.ru> <20121016101653.GP40452@mdounin.ru> <20121016171051.GX40452@mdounin.ru> <1042482698.20121016213113@softsearch.ru> Message-ID: <20121016174821.GA40452@mdounin.ru> Hello! On Tue, Oct 16, 2012 at 09:31:13PM +0400, Михаил Монашёв wrote: > Здравствуйте, Maxim. > > Вы писали 16 октября 2012 г., 21:10:52: > > > Hello! > > > On Tue, Oct 16, 2012 at 02:16:53PM +0400, Maxim Dounin wrote: > > >> Hello! > >> > >> On Tue, Oct 16, 2012 at 12:14:38AM +0400, Михаил Монашёв wrote: > >> > >> > Здравствуйте, Gena. > >> > > >> > >> У меня, например, есть следующая задача: обновить mtime у файла по > >> > >> вебдаву. Т.е. сделать touch файлу. Сейчас я это делаю через Ж: > >> > >> копирую файл, а потом мувлю его в уже существующий. Копирование > >> > >> очень долго работает, а со ссылкой работало бы моментально. > >> > > >> > > моментально это работало бы, если добавить к реализации WebDAV > >> > > расширение, новый метод TOUCH который будет менять mtime файла > >> > > >> > Ну это совсем идеальный случай. Я о таком только мечтать могу. Если > >> > кто-то вдруг реализует, то я только за. А пока выкручиваюсь как > >> > получается. > >> > >> Если следовать идеалогии WebDAV'а, то твоя задача должна решаться > >> с помощью метода PROPPATCH[1]. Но он долбанутый на всю голову и > >> там требуется, чтобы сервер занимался парсингом набора инструкций > >> в XML'е. > >> > >> Если следовать здравому смыслу - то TOUCH, конечно, будет > >> существенно проще. Единственное что останавливает - его > >> отсутствие, т.е. полная и абсолютная неспецифицированность. С > >> идеалогической точки зрения - возможно тут подойдёт правильно > >> применённый метод PATCH[2]. > >> > >> Использование COPY с hardlink'ами для решения подобной задачи - > >> это как-то слишком, IMHO, полностью согласен с Геной. (Я бы > >> наверное применил тут встроенный перл и не мучился особо.) > >> > >> [1] http://tools.ietf.org/html/rfc4918#section-9.2 > >> [2] http://tools.ietf.org/html/rfc5789 > > > Патч с реализацией TOUCH прилагается, желающие поиграться - добро > > пожаловать. Правда, Игорь считает изобретение новых методов > > порочной практикой, так что в коробку этот патч попадёт врядли. > > А если потребуется поменять atime, то: > - if (ngx_set_file_time(NULL, fd, ctx->mtime) != NGX_OK) { > + if (ngx_set_file_time(NULL, fd, ctx->atime) != NGX_OK) { > > ? > > А то я тут посмотрел код скриптов, работающих с вебдавом, чтоб туда > идейку про перл в комменты записать. А там мы оказывается atime > меняем, а не mtime. Это cut-n-paste ошибка в виндовой части кода, которую я поленился проверить и недоправил. Там должно быть date, исправленный патч прилагается. > И, кстати, Игорь прав. ;-) Глядя на твой патч возникает желание > плодить методы под каждый чих, что неправильно. С одной стороны да, с другой - иногда надо хотя бы пытаться предлагать какую-то альтернативу тому ужасу, что стандартизировал Microsoft. Особенно с учётом того, сколько методов они сами наплодили как в стандарте на webdav, так и в дополнение к нему. :) -- Maxim Dounin http://nginx.com/support.html -------------- next part -------------- # HG changeset patch # User Maxim Dounin # Date 1350409142 -14400 # Node ID d87b65b4be5211a53bf6deadbecd464000779c02 # Parent eea938da44a1778c4c4f1e2504b774845c86b99f Dav: experimental TOUCH method support. The TOUCH method sets the modification and access times of a file. Note that in contrast to touch(1) if file doesn't exists, it is not created. See this thread for details (in Russian): http://mailman.nginx.org/pipermail/nginx-ru/2012-October/048584.html diff --git a/src/http/modules/ngx_http_dav_module.c b/src/http/modules/ngx_http_dav_module.c --- a/src/http/modules/ngx_http_dav_module.c +++ b/src/http/modules/ngx_http_dav_module.c @@ -55,6 +55,8 @@ static ngx_int_t ngx_http_dav_copy_dir_t static ngx_int_t ngx_http_dav_copy_tree_file(ngx_tree_ctx_t *ctx, ngx_str_t *path); +static ngx_int_t ngx_http_dav_touch_handler(ngx_http_request_t *r); + static ngx_int_t ngx_http_dav_depth(ngx_http_request_t *r, ngx_int_t dflt); static ngx_int_t ngx_http_dav_error(ngx_log_t *log, ngx_err_t err, ngx_int_t not_found, char *failed, u_char *path); @@ -72,6 +74,7 @@ static ngx_conf_bitmask_t ngx_http_dav_ { ngx_string("mkcol"), NGX_HTTP_MKCOL }, { ngx_string("copy"), NGX_HTTP_COPY }, { ngx_string("move"), NGX_HTTP_MOVE }, + { ngx_string("touch"), NGX_HTTP_TOUCH }, { ngx_null_string, 0 } }; @@ -192,6 +195,10 @@ ngx_http_dav_handler(ngx_http_request_t case NGX_HTTP_MOVE: return ngx_http_dav_copy_move_handler(r); + + case NGX_HTTP_TOUCH: + + return ngx_http_dav_touch_handler(r); } return NGX_DECLINED; @@ -969,6 +976,76 @@ ngx_http_dav_copy_tree_file(ngx_tree_ctx static ngx_int_t +ngx_http_dav_touch_handler(ngx_http_request_t *r) +{ + size_t root; + time_t date; + ngx_int_t rc; + ngx_str_t path; + + rc = ngx_http_discard_request_body(r); + + if (rc != NGX_OK) { + return rc; + } + + date = (time_t) NGX_ERROR; + + if (r->headers_in.date) { + date = ngx_http_parse_time(r->headers_in.date->value.data, + r->headers_in.date->value.len); + } + + if (date == (time_t) NGX_ERROR) { + date = ngx_time(); + } + + if (ngx_http_map_uri_to_path(r, &path, &root, 0) == NULL) { + return NGX_HTTP_INTERNAL_SERVER_ERROR; + } + + ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, + "http touch filename: \"%s\"", path.data); + +#if (NGX_WIN32) + { + ngx_fd_t fd; + + fd = ngx_open_file(dir, NGX_FILE_RDWR, NGX_FILE_OPEN, 0); + + if (fd == NGX_INVALID_FILE) { + return ngx_http_dav_error(r->connection->log, ngx_errno, + NGX_HTTP_NOT_FOUND, ngx_open_file_n, + path.data); + } + + if (ngx_set_file_time(NULL, fd, date) != NGX_OK) { + ngx_log_error(NGX_LOG_ALERT, r->connection->log, ngx_errno, + ngx_set_file_time_n " \"%s\" failed", path.data); + return NGX_HTTP_INTERNAL_SERVER_ERROR; + } + + if (ngx_close_file(fd) == NGX_FILE_ERROR) { + ngx_log_error(NGX_LOG_ALERT, r->connection->log, ngx_errno, + ngx_close_file_n " \"%s\" failed", path.data); + } + } + +#else + + if (ngx_set_file_time(path.data, 0, date) != NGX_OK) { + return ngx_http_dav_error(r->connection->log, ngx_errno, + NGX_HTTP_NOT_FOUND, ngx_set_file_time_n, + path.data); + } + +#endif + + return NGX_HTTP_NO_CONTENT; +} + + +static ngx_int_t ngx_http_dav_depth(ngx_http_request_t *r, ngx_int_t dflt) { ngx_table_elt_t *depth; diff --git a/src/http/ngx_http_parse.c b/src/http/ngx_http_parse.c --- a/src/http/ngx_http_parse.c +++ b/src/http/ngx_http_parse.c @@ -222,6 +222,10 @@ ngx_http_parse_request_line(ngx_http_req r->method = NGX_HTTP_TRACE; } + if (ngx_str5cmp(m, 'T', 'O', 'U', 'C', 'H')) { + r->method = NGX_HTTP_TOUCH; + } + break; case 6: diff --git a/src/http/ngx_http_request.h b/src/http/ngx_http_request.h --- a/src/http/ngx_http_request.h +++ b/src/http/ngx_http_request.h @@ -24,22 +24,23 @@ #define NGX_HTTP_VERSION_10 1000 #define NGX_HTTP_VERSION_11 1001 -#define NGX_HTTP_UNKNOWN 0x0001 -#define NGX_HTTP_GET 0x0002 -#define NGX_HTTP_HEAD 0x0004 -#define NGX_HTTP_POST 0x0008 -#define NGX_HTTP_PUT 0x0010 -#define NGX_HTTP_DELETE 0x0020 -#define NGX_HTTP_MKCOL 0x0040 -#define NGX_HTTP_COPY 0x0080 -#define NGX_HTTP_MOVE 0x0100 -#define NGX_HTTP_OPTIONS 0x0200 -#define NGX_HTTP_PROPFIND 0x0400 -#define NGX_HTTP_PROPPATCH 0x0800 -#define NGX_HTTP_LOCK 0x1000 -#define NGX_HTTP_UNLOCK 0x2000 -#define NGX_HTTP_PATCH 0x4000 -#define NGX_HTTP_TRACE 0x8000 +#define NGX_HTTP_UNKNOWN 0x000001 +#define NGX_HTTP_GET 0x000002 +#define NGX_HTTP_HEAD 0x000004 +#define NGX_HTTP_POST 0x000008 +#define NGX_HTTP_PUT 0x000010 +#define NGX_HTTP_DELETE 0x000020 +#define NGX_HTTP_MKCOL 0x000040 +#define NGX_HTTP_COPY 0x000080 +#define NGX_HTTP_MOVE 0x000100 +#define NGX_HTTP_OPTIONS 0x000200 +#define NGX_HTTP_PROPFIND 0x000400 +#define NGX_HTTP_PROPPATCH 0x000800 +#define NGX_HTTP_LOCK 0x001000 +#define NGX_HTTP_UNLOCK 0x002000 +#define NGX_HTTP_PATCH 0x004000 +#define NGX_HTTP_TRACE 0x008000 +#define NGX_HTTP_TOUCH 0x010000 #define NGX_HTTP_CONNECTION_CLOSE 1 #define NGX_HTTP_CONNECTION_KEEP_ALIVE 2 From postmaster at softsearch.ru Tue Oct 16 17:52:35 2012 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Tue, 16 Oct 2012 21:52:35 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <20121016173643.GZ40452@mdounin.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <991838356.20121015233055@softsearch.ru> <507C6A98.9090903@csdoc.com> <1044505139.20121016001438@softsearch.ru> <20121016101653.GP40452@mdounin.ru> <183702430.20121016211723@softsearch.ru> <20121016173643.GZ40452@mdounin.ru> Message-ID: <1386754353.20121016215235@softsearch.ru> Здравствуйте, Maxim. >> За ссылочки большое спасибо. Почитал. . Нашёл >> http://tools.ietf.org/html/rfc5789 ошибку, кстати :-) Там ссылка >> неверная на "Section 3.7". Но так и не понял, как при PATCH-е выглядит >> "description of changes" в общем случае. Тоже на XML-е описываются >> изменения? > Там не специфицируется. Поддержку конкретных форматов сервер > может заявить через заголовок Accept-Patch. Например, это может > быть text/x-diff... :) >> Про встроенный перл, кстати и вправду стоит подумать. Спасибо за идею. > Со встроенным перлом есть одна проблема: перл не умеет > обрабатывать ошибки выделения памяти, и в случае чего роняет > вместе с собой nginx. Да вроде, чтобы поменять mtime или atime у файла не нужно много памяти выделять. Другое дело, что залочиться на дисковой операции можно через чур на долго. А так как у нас идёт в параллель сразу десятки вебдав-запросов, то > На фронтенд я бы его ставить не рекомендовал, а на бекендах - > вполне может жить. Из-за описанной выше проблемы или есть и другие? -- С уважением, Михаил mailto:postmaster at softsearch.ru From postmaster at softsearch.ru Tue Oct 16 18:04:08 2012 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Tue, 16 Oct 2012 22:04:08 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <20121016174821.GA40452@mdounin.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <991838356.20121015233055@softsearch.ru> <507C6A98.9090903@csdoc.com> <1044505139.20121016001438@softsearch.ru> <20121016101653.GP40452@mdounin.ru> <20121016171051.GX40452@mdounin.ru> <1042482698.20121016213113@softsearch.ru> <20121016174821.GA40452@mdounin.ru> Message-ID: <1798859023.20121016220408@softsearch.ru> Здравствуйте, Maxim. >> А если потребуется поменять atime, то: >> - if (ngx_set_file_time(NULL, fd, ctx->mtime) != NGX_OK) { >> + if (ngx_set_file_time(NULL, fd, ctx->atime) != NGX_OK) { >> >> ? >> >> А то я тут посмотрел код скриптов, работающих с вебдавом, чтоб туда >> идейку про перл в комменты записать. А там мы оказывается atime >> меняем, а не mtime. > Это cut-n-paste ошибка в виндовой части кода, которую я поленился > проверить и недоправил. Там должно быть date, исправленный патч > прилагается. >> И, кстати, Игорь прав. ;-) Глядя на твой патч возникает желание >> плодить методы под каждый чих, что неправильно. > С одной стороны да, с другой - иногда надо хотя бы пытаться > предлагать какую-то альтернативу тому ужасу, что стандартизировал > Microsoft. Особенно с учётом того, сколько методов они сами > наплодили как в стандарте на webdav, так и в дополнение к нему. > :) Ну тогда уж предлагать полноценную альтернативу. А то чем это отличается от их изысканий. Конечно, TOUCH понятен, привычен и наверное востребован, но это частность. Этот TOUCH станет не нужен, если реализовать нормальную альтернативу PROPPATCH без вывихов сознания. Да и там много чего можно было б реализовать правильного, например позаимствовать из мемкешеда cas... И, кстати, у nginx-а есть возможность заказывать музыку, предлагая свои реализации альтернатив. ИМХО. -- С уважением, Михаил mailto:postmaster at softsearch.ru From mdounin at mdounin.ru Tue Oct 16 18:04:22 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 16 Oct 2012 22:04:22 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <1386754353.20121016215235@softsearch.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <991838356.20121015233055@softsearch.ru> <507C6A98.9090903@csdoc.com> <1044505139.20121016001438@softsearch.ru> <20121016101653.GP40452@mdounin.ru> <183702430.20121016211723@softsearch.ru> <20121016173643.GZ40452@mdounin.ru> <1386754353.20121016215235@softsearch.ru> Message-ID: <20121016180422.GB40452@mdounin.ru> Hello! On Tue, Oct 16, 2012 at 09:52:35PM +0400, Михаил Монашёв wrote: > Здравствуйте, Maxim. > > >> За ссылочки большое спасибо. Почитал. . Нашёл > >> http://tools.ietf.org/html/rfc5789 ошибку, кстати :-) Там ссылка > >> неверная на "Section 3.7". Но так и не понял, как при PATCH-е выглядит > >> "description of changes" в общем случае. Тоже на XML-е описываются > >> изменения? > > > Там не специфицируется. Поддержку конкретных форматов сервер > > может заявить через заголовок Accept-Patch. Например, это может > > быть text/x-diff... :) > > >> Про встроенный перл, кстати и вправду стоит подумать. Спасибо за идею. > > > Со встроенным перлом есть одна проблема: перл не умеет > > обрабатывать ошибки выделения памяти, и в случае чего роняет > > вместе с собой nginx. > > Да вроде, чтобы поменять mtime или atime у файла не нужно много памяти > выделять. Другое дело, что залочиться на дисковой операции можно через > чур на долго. А так как у нас идёт в параллель сразу десятки > вебдав-запросов, то Память может быть использована и под другое, и вообще другими программами. Просто сам nginx нормально обработать ошибку из malloc()'а может (и всего лишь закроет запрос, которому не повезло, ругнувшись при этом в лог). А вот perl - нет, и если он получит ошибку из malloc()'а, то сделает exit(1) рабочему процессу nginx-а. > > На фронтенд я бы его ставить не рекомендовал, а на бекендах - > > вполне может жить. > > Из-за описанной выше проблемы или есть и другие? Товарищи из Highload Lab жалуются, что он тормозной. Но это, что называется, зависит от задачи, ну и опять же - с чем сравнивать. ;) -- Maxim Dounin http://nginx.com/support.html From mdounin at mdounin.ru Tue Oct 16 18:34:24 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 16 Oct 2012 22:34:24 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <1798859023.20121016220408@softsearch.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <991838356.20121015233055@softsearch.ru> <507C6A98.9090903@csdoc.com> <1044505139.20121016001438@softsearch.ru> <20121016101653.GP40452@mdounin.ru> <20121016171051.GX40452@mdounin.ru> <1042482698.20121016213113@softsearch.ru> <20121016174821.GA40452@mdounin.ru> <1798859023.20121016220408@softsearch.ru> Message-ID: <20121016183424.GC40452@mdounin.ru> Hello! On Tue, Oct 16, 2012 at 10:04:08PM +0400, Михаил Монашёв wrote: > Здравствуйте, Maxim. > > >> А если потребуется поменять atime, то: > >> - if (ngx_set_file_time(NULL, fd, ctx->mtime) != NGX_OK) { > >> + if (ngx_set_file_time(NULL, fd, ctx->atime) != NGX_OK) { > >> > >> ? > >> > >> А то я тут посмотрел код скриптов, работающих с вебдавом, чтоб туда > >> идейку про перл в комменты записать. А там мы оказывается atime > >> меняем, а не mtime. > > > Это cut-n-paste ошибка в виндовой части кода, которую я поленился > > проверить и недоправил. Там должно быть date, исправленный патч > > прилагается. > > >> И, кстати, Игорь прав. ;-) Глядя на твой патч возникает желание > >> плодить методы под каждый чих, что неправильно. > > > С одной стороны да, с другой - иногда надо хотя бы пытаться > > предлагать какую-то альтернативу тому ужасу, что стандартизировал > > Microsoft. Особенно с учётом того, сколько методов они сами > > наплодили как в стандарте на webdav, так и в дополнение к нему. > > :) > > Ну тогда уж предлагать полноценную альтернативу. А то чем это > отличается от их изысканий. Конечно, TOUCH понятен, привычен и > наверное востребован, но это частность. Этот TOUCH станет не нужен, > если реализовать нормальную альтернативу PROPPATCH без вывихов Есть мнение, что TOUCH, возможно, заслуживает своего собственного метода. Именно потому, что - понятен и привычен, и местами востребован. И что отдельно немаловажно - прост в реализации. > сознания. Да и там много чего можно было б реализовать правильного, > например позаимствовать из мемкешеда cas... CAS, кстати, в HTTP/1.1 есть - заголовки If-* позволяют всякого. Правда, в реальной жизни это не совсем работает, или даже совсем не работает, особенно если говорить про nginx. > И, кстати, у nginx-а есть возможность заказывать музыку, предлагая > свои реализации альтернатив. ИМХО. Ну вот я TOUCH нарисовал, если приживётся - хорошо, не приживётся - значит не судьба. :) -- Maxim Dounin http://nginx.com/support.html From postmaster at softsearch.ru Tue Oct 16 19:02:07 2012 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Tue, 16 Oct 2012 23:02:07 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <20121016183424.GC40452@mdounin.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <991838356.20121015233055@softsearch.ru> <507C6A98.9090903@csdoc.com> <1044505139.20121016001438@softsearch.ru> <20121016101653.GP40452@mdounin.ru> <20121016171051.GX40452@mdounin.ru> <1042482698.20121016213113@softsearch.ru> <20121016174821.GA40452@mdounin.ru> <1798859023.20121016220408@softsearch.ru> <20121016183424.GC40452@mdounin.ru> Message-ID: <1734837984.20121016230207@softsearch.ru> Здравствуйте, Maxim. >> >> А если потребуется поменять atime, то: >> >> - if (ngx_set_file_time(NULL, fd, ctx->mtime) != NGX_OK) { >> >> + if (ngx_set_file_time(NULL, fd, ctx->atime) != NGX_OK) { >> >> >> >> ? >> >> >> >> А то я тут посмотрел код скриптов, работающих с вебдавом, чтоб туда >> >> идейку про перл в комменты записать. А там мы оказывается atime >> >> меняем, а не mtime. >> >> > Это cut-n-paste ошибка в виндовой части кода, которую я поленился >> > проверить и недоправил. Там должно быть date, исправленный патч >> > прилагается. >> >> >> И, кстати, Игорь прав. ;-) Глядя на твой патч возникает желание >> >> плодить методы под каждый чих, что неправильно. >> >> > С одной стороны да, с другой - иногда надо хотя бы пытаться >> > предлагать какую-то альтернативу тому ужасу, что стандартизировал >> > Microsoft. Особенно с учётом того, сколько методов они сами >> > наплодили как в стандарте на webdav, так и в дополнение к нему. >> > :) >> >> Ну тогда уж предлагать полноценную альтернативу. А то чем это >> отличается от их изысканий. Конечно, TOUCH понятен, привычен и >> наверное востребован, но это частность. Этот TOUCH станет не нужен, >> если реализовать нормальную альтернативу PROPPATCH без вывихов > Есть мнение, что TOUCH, возможно, заслуживает своего собственного > метода. Именно потому, что - понятен и привычен, и местами > востребован. И что отдельно немаловажно - прост в реализации. Уговорил, речистый. :-) >> сознания. Да и там много чего можно было б реализовать правильного, >> например позаимствовать из мемкешеда cas... > CAS, кстати, в HTTP/1.1 есть - заголовки If-* позволяют всякого. > Правда, в реальной жизни это не совсем работает, или даже совсем > не работает, особенно если говорить про nginx. >> И, кстати, у nginx-а есть возможность заказывать музыку, предлагая >> свои реализации альтернатив. ИМХО. > Ну вот я TOUCH нарисовал, если приживётся - хорошо, не приживётся - > значит не судьба. :) С таким подходом прижилось бы на заре интернета. А сейчас патч в листе рассылки пролетит и никто не заметит. Единицы возьмут его. Большинство не найдёт, не узнает, поленится и т.д. MS так точно не забороть. У меня друг за год написал клон 1С с mysql в качестве бэкенда, вместо платного mssql. Всё работало из коробки. И быстрее работало. Но никто не стал использовать. Все покупали у 1С и MS. Так и тут, хорошо до конечных пользователей дотягиваться и информировать. В Омериках бы провели платный семинар для разработчиков на 3 часа, рассказали бы про новый супер-метод TOUCH, космические корабли, которые бороздят, и лохов вроде меня, которые использую COPY+MOVE , привели в сравнение живого Игоря Сысоева и анонсировали тему следующего семинара про заголовки If-* , которые позволяют всякого. Ну и саппорт продали бы на много денег. :-) Но у нас другая ментальность и от всего этого воротит. Приходится забарывать исключительно интеллектом. :-) -- С уважением, Михаил mailto:postmaster at softsearch.ru From kav at karagodov.name Wed Oct 17 05:32:32 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Wed, 17 Oct 2012 09:32:32 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <1734837984.20121016230207@softsearch.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <991838356.20121015233055@softsearch.ru> <507C6A98.9090903@csdoc.com> <1044505139.20121016001438@softsearch.ru> <20121016101653.GP40452@mdounin.ru> <20121016171051.GX40452@mdounin.ru> <1042482698.20121016213113@softsearch.ru> <20121016174821.GA40452@mdounin.ru> <1798859023.20121016220408@softsearch.ru> <20121016183424.GC40452@mdounin.ru> <1734837984.20121016230207@softsearch.ru> Message-ID: <64AA1388-536B-4AE9-92D2-7EC3C5EDC278@karagodov.name> а для простых смертных объясните пожалуйста, будет ли nginx полноценно поддерживать WEBDAV? ну и новые методы, будут или не будут? и кто из клиентов их будет поддерживать? или только самопальные (специфичные, под задачу) ? From postmaster at softsearch.ru Wed Oct 17 09:26:58 2012 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Wed, 17 Oct 2012 13:26:58 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <64AA1388-536B-4AE9-92D2-7EC3C5EDC278@karagodov.name> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <991838356.20121015233055@softsearch.ru> <507C6A98.9090903@csdoc.com> <1044505139.20121016001438@softsearch.ru> <20121016101653.GP40452@mdounin.ru> <20121016171051.GX40452@mdounin.ru> <1042482698.20121016213113@softsearch.ru> <20121016174821.GA40452@mdounin.ru> <1798859023.20121016220408@softsearch.ru> <20121016183424.GC40452@mdounin.ru> <1734837984.20121016230207@softsearch.ru> <64AA1388-536B-4AE9-92D2-7EC3C5EDC278@karagodov.name> Message-ID: <8410425043.20121017132658@softsearch.ru> Здравствуйте, Alexey. > и кто из клиентов их будет поддерживать? или только самопальные (специфичные, под задачу) ? http://www.webdav.org/projects/ -- С уважением, Михаил mailto:postmaster at softsearch.ru From kav at karagodov.name Wed Oct 17 10:00:14 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Wed, 17 Oct 2012 14:00:14 +0400 Subject: [PATCH] implemented hardlink option in DAV module In-Reply-To: <8410425043.20121017132658@softsearch.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <991838356.20121015233055@softsearch.ru> <507C6A98.9090903@csdoc.com> <1044505139.20121016001438@softsearch.ru> <20121016101653.GP40452@mdounin.ru> <20121016171051.GX40452@mdounin.ru> <1042482698.20121016213113@softsearch.ru> <20121016174821.GA40452@mdounin.ru> <1798859023.20121016220408@softsearch.ru> <20121016183424.GC40452@mdounin.ru> <1734837984.20121016230207@softsearch.ru> <64AA1388-536B-4AE9-92D2-7EC3C5EDC278@karagodov.name> <8410425043.20121017132658@softsearch.ru> Message-ID: да, Кэп, благодарю :) они все будут поддерживать придуманные тут фишки? прям вот так сразу? "искаропки" On 17.10.2012, at 13:26, Михаил Монашёв wrote: > Здравствуйте, Alexey. > >> и кто из клиентов их будет поддерживать? или только самопальные (специфичные, под задачу) ? > http://www.webdav.org/projects/ > > -- > С уважением, > Михаил mailto:postmaster at softsearch.ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From hell-for-yahoo at umail.ru Wed Oct 17 13:38:17 2012 From: hell-for-yahoo at umail.ru (Andrey Repin) Date: Wed, 17 Oct 2012 17:38:17 +0400 Subject: =?UTF-8?B?UmU6IGZhc3RjZ2lfcGFzcyDQuCBwcm94eV9wYXNzLCDRgNCw0LfQu9C40YfQuNGP?= In-Reply-To: References: <201210161243.58130.ne@vbart.ru> <201210161308.31667.ne@vbart.ru> Message-ID: <1106174390.20121017173817@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) Andrey Semenoff! >>> Спасибо, Валентин. У меня дефолтная инсталяция CentOS, никаких манипуляций >>> с пакетами не делал, полностью майнтайнерская сборка. Однако proxy_pass на >>> 127.0.0.1:9000 так же работает, как и fastcgi_pass. Что и вызвало вопросы. >>> Обе директивы указанные в моем письме рабочие. >> Вы в этом уверены? Возможно вы изменили конфигурацию, но не перезагрузили >> nginx, либо конфигурация, которую вы меняете, вообще не активна, а берется >> откуда-то ещё. AS> Да, уверен. Я добился работоспособности сайта без единого параметра AS> fastcgi_* На сервере нет больше никакого бакэнда кроме php-fpm. AS> И только потом уже у меня возник вопрос (: Новые версии PHP имеют встроенный HTTP-сервер. Может, вы его активировали случайно? P.S. И кончайте телегу впереди лошади запрягать. -- С уважением Andrey Repin (hell-for-yahoo at umail.ru) среда, 17.10.2012, <17:36> From nginx-forum at nginx.us Wed Oct 17 13:59:56 2012 From: nginx-forum at nginx.us (carter85) Date: Wed, 17 Oct 2012 09:59:56 -0400 Subject: =?UTF-8?B?0L/QtdGA0LXQtNCw0LLQsNGC0Ywg0YLQtdC60YHRgtC+0LwgcGhwINGE0LDQudC7?= =?UTF-8?B?INGH0LXRgNC10LcgZmFzdGNnaQ==?= Message-ID: <2317a5a43e6b73efcb40319995d9aa82.NginxMailingListRussian@forum.nginx.org> всем привет 1)как сделать чтобы php файл открвался простым текстом не интепритировался ... к примеру файлы лежат на бэкенде где стоит php-fpm /www/configs/host//test.php 2) или как открыть файл этот же но на хосте где стоит только nginx к примеру хочу вызывать файл таким образом www.soccer.ru/config и открывался этот файл Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231916,231916#msg-231916 From lufliw at gmail.com Wed Oct 17 14:41:52 2012 From: lufliw at gmail.com (Andrey Semenoff) Date: Wed, 17 Oct 2012 20:41:52 +0600 Subject: =?UTF-8?B?UmU6IGZhc3RjZ2lfcGFzcyDQuCBwcm94eV9wYXNzLCDRgNCw0LfQu9C40YfQuNGP?= In-Reply-To: <1106174390.20121017173817@mtu-net.ru> References: <201210161243.58130.ne@vbart.ru> <201210161308.31667.ne@vbart.ru> <1106174390.20121017173817@mtu-net.ru> Message-ID: Случайно, это как? П.С.: Что, простите? 17 октября 2012 г., 19:38 пользователь Andrey Repin написал: > Здравствуйте, Уважаемый(-ая, -ое) Andrey Semenoff! > > >>> Спасибо, Валентин. У меня дефолтная инсталяция CentOS, никаких > манипуляций > >>> с пакетами не делал, полностью майнтайнерская сборка. Однако > proxy_pass на > >>> 127.0.0.1:9000 так же работает, как и fastcgi_pass. Что и вызвало > вопросы. > >>> Обе директивы указанные в моем письме рабочие. > > >> Вы в этом уверены? Возможно вы изменили конфигурацию, но не > перезагрузили > >> nginx, либо конфигурация, которую вы меняете, вообще не активна, а > берется > >> откуда-то ещё. > > AS> Да, уверен. Я добился работоспособности сайта без единого параметра > AS> fastcgi_* На сервере нет больше никакого бакэнда кроме php-fpm. > AS> И только потом уже у меня возник вопрос (: > > Новые версии PHP имеют встроенный HTTP-сервер. > Может, вы его активировали случайно? > > P.S. > И кончайте телегу впереди лошади запрягать. > > > -- > С уважением > > Andrey Repin (hell-for-yahoo at umail.ru) среда, 17.10.2012, <17:36> > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- С уважением, Семенов Андрей Системный администратор Отдел разработки ПО ЗАО "Издательство "Семь Дней" skype: semenovav_sl -------------- next part -------------- An HTML attachment was scrubbed... URL: From server_inc at list.ru Wed Oct 17 23:04:05 2012 From: server_inc at list.ru (=?KOI8-R?Q?=F3=D4=C1=CE=C9=D3=CC=C1=D7?=) Date: Thu, 18 Oct 2012 02:04:05 +0300 Subject: =?UTF-8?B?UmU6IGZhc3RjZ2lfcGFzcyDQuCBwcm94eV9wYXNzLCDRgNCw0LfQu9C40YfQuNGP?= In-Reply-To: References: <201210161243.58130.ne@vbart.ru> <201210161308.31667.ne@vbart.ru> <1106174390.20121017173817@mtu-net.ru> Message-ID: <507F3965.6050308@list.ru> 17.10.2012 17:41, Andrey Semenoff пишет: > Случайно, это как? Возможно из коробки он активен. (!) "Начиная с версии PHP 5.4.0 модуль CLI SAPI содержит встроенный web-сервер. Этот web-сервер предназначен для использования при разработке и не должен использоваться на обычном сервере." В случае с PHP-FPM настоятельно рекомендую вам поменять все на fastcgi. From hell-for-yahoo at umail.ru Thu Oct 18 00:03:59 2012 From: hell-for-yahoo at umail.ru (Andrey Repin) Date: Thu, 18 Oct 2012 04:03:59 +0400 Subject: =?UTF-8?B?UmU6IGZhc3RjZ2lfcGFzcyDQuCBwcm94eV9wYXNzLCDRgNCw0LfQu9C40YfQuNGP?= In-Reply-To: References: <201210161243.58130.ne@vbart.ru> <201210161308.31667.ne@vbart.ru> <1106174390.20121017173817@mtu-net.ru> Message-ID: <1911367683.20121018040359@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) Andrey Semenoff! AS> Случайно, это как? Это "запустили не то, что надо было". AS> П.С.: Что, простите? Да. > Вы уверены? >> Потому что это нарушает логическое течение беседы. >>> Почему при переписке написание ответа перед цитатой раздражает? -- С уважением Andrey Repin (hell-for-yahoo at umail.ru) четверг, 18.10.2012, <04:00> From lufliw at gmail.com Thu Oct 18 03:28:06 2012 From: lufliw at gmail.com (Andrey Semenoff) Date: Thu, 18 Oct 2012 09:28:06 +0600 Subject: =?UTF-8?B?UmU6IGZhc3RjZ2lfcGFzcyDQuCBwcm94eV9wYXNzLCDRgNCw0LfQu9C40YfQuNGP?= In-Reply-To: <507F3965.6050308@list.ru> References: <201210161243.58130.ne@vbart.ru> <201210161308.31667.ne@vbart.ru> <1106174390.20121017173817@mtu-net.ru> <507F3965.6050308@list.ru> Message-ID: Станислав спасибо. Но версия 5.3. Да и у меня фронтенд nginx, с него я проксирую proxy_pass и fastcgi_pass на один и тот же порт. 18 октября 2012 г., 5:04 пользователь Станислав написал: > 17.10.2012 17:41, Andrey Semenoff пишет: > >> Случайно, это как? >> > Возможно из коробки он активен. > > (!) "Начиная с версии PHP 5.4.0 модуль CLI SAPI содержит встроенный > web-сервер. Этот web-сервер предназначен для использования при разработке > и не должен использоваться на обычном сервере." > > В случае с PHP-FPM настоятельно рекомендую вам поменять все на fastcgi. > > > ______________________________**_________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/**mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From chipitsine at gmail.com Thu Oct 18 05:10:51 2012 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Thu, 18 Oct 2012 11:10:51 +0600 Subject: upstream timed out In-Reply-To: <507BB496.9040203@labutin.com> References: <507BB496.9040203@labutin.com> Message-ID: Keep-Alive до бекенда должен помочь 15.10.2012 13:01 пользователь "Dmitry Y. Labutin" написал: > Доброго времени суток. > > Frontend nginx стоит в Москве. Backend nginx стоит в Нижнем Новгороде. > Между ними по traceroute 10 хостов. На Frontend в error лог наблюдает вот > такая картина. > > 2012/10/15 10:33:31 [error] 5438#0: *67542270 upstream timed out (110: > Connection timed out) while connecting to upstream > 2012/10/15 10:34:42 [error] 5436#0: *67548075 upstream timed out (110: > Connection timed out) while connecting to upstream > 2012/10/15 10:34:44 [error] 5437#0: *67544442 upstream timed out (110: > Connection timed out) while connecting to upstream > 2012/10/15 10:34:44 [error] 5436#0: *67548077 upstream timed out (110: > Connection timed out) while connecting to upstream > 2012/10/15 10:34:44 [error] 5437#0: *67548502 upstream timed out (110: > Connection timed out) while connecting to upstream > 2012/10/15 10:34:45 [error] 5437#0: *67546503 upstream timed out (110: > Connection timed out) while connecting to upstream > 2012/10/15 10:34:46 [error] 5437#0: *67546508 upstream timed out (110: > Connection timed out) while connecting to upstream > > По статистике (делаю срезы раз в 10 минут) имеем в зависимости от > количества посещение от 1 до 20 подобных ошибок за 10 минут. > При этом активность - это порядка 30-50 запросов в секунду. > Возьмем среднее. 10 ошибок в 10 минут и 40 запросов в секунду. > Получаем примерно 0.04% проблемных ситуаций. Замечу, что статистика пингов > между хостами ВСЕГДА показывала около 1.5% потерь (ping timeout), а > сообщения в логах nginx на frontend появилась только в середине прошлой > недели. > Может быть подскажите, в какую сторону копать? > > Дмитрий Лабутин > > ______________________________**_________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/**mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From dmitry at labutin.com Thu Oct 18 05:25:50 2012 From: dmitry at labutin.com (Dmitry Y. Labutin) Date: Thu, 18 Oct 2012 09:25:50 +0400 Subject: upstream timed out In-Reply-To: References: <507BB496.9040203@labutin.com> Message-ID: <507F92DE.7070309@labutin.com> Доброго времени суток. keepalive_timeout 65; В какую сторону крутить? Дмитрий Лабутин 18.10.2012 9:10, Илья Шипицин пишет: > Keep-Alive до бекенда должен помочь > > 15.10.2012 13:01 пользователь "Dmitry Y. Labutin" > написал: > > Доброго времени суток. > > Frontend nginx стоит в Москве. Backend nginx стоит в Нижнем Новгороде. > Между ними по traceroute 10 хостов. На Frontend в error лог > наблюдает вот такая картина. > > 2012/10/15 10:33:31 [error] 5438#0: *67542270 upstream timed out > (110: Connection timed out) while connecting to upstream > 2012/10/15 10:34:42 [error] 5436#0: *67548075 upstream timed out > (110: Connection timed out) while connecting to upstream > 2012/10/15 10:34:44 [error] 5437#0: *67544442 upstream timed out > (110: Connection timed out) while connecting to upstream > 2012/10/15 10:34:44 [error] 5436#0: *67548077 upstream timed out > (110: Connection timed out) while connecting to upstream > 2012/10/15 10:34:44 [error] 5437#0: *67548502 upstream timed out > (110: Connection timed out) while connecting to upstream > 2012/10/15 10:34:45 [error] 5437#0: *67546503 upstream timed out > (110: Connection timed out) while connecting to upstream > 2012/10/15 10:34:46 [error] 5437#0: *67546508 upstream timed out > (110: Connection timed out) while connecting to upstream > > По статистике (делаю срезы раз в 10 минут) имеем в зависимости от > количества посещение от 1 до 20 подобных ошибок за 10 минут. > При этом активность - это порядка 30-50 запросов в секунду. > Возьмем среднее. 10 ошибок в 10 минут и 40 запросов в секунду. > Получаем примерно 0.04% проблемных ситуаций. Замечу, что статистика > пингов между хостами ВСЕГДА показывала около 1.5% потерь (ping > timeout), а сообщения в логах nginx на frontend появилась только в > середине прошлой недели. > Может быть подскажите, в какую сторону копать? > > Дмитрий Лабутин > > _________________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/__mailman/listinfo/nginx-ru > > > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > From voron at amhost.net Thu Oct 18 05:42:10 2012 From: voron at amhost.net (Alex Vorona) Date: Thu, 18 Oct 2012 08:42:10 +0300 Subject: upstream timed out In-Reply-To: <507F92DE.7070309@labutin.com> References: <507BB496.9040203@labutin.com> <507F92DE.7070309@labutin.com> Message-ID: <507F96B2.8070801@amhost.net> 18.10.2012 08:25, Dmitry Y. Labutin wrote: > Доброго времени суток. > > keepalive_timeout 65; > В какую сторону крутить? > В сторону http://nginx.org/ru/docs/http/ngx_http_upstream_module.html#keepalive From dmitry at labutin.com Thu Oct 18 06:03:44 2012 From: dmitry at labutin.com (Dmitry Y. Labutin) Date: Thu, 18 Oct 2012 10:03:44 +0400 Subject: upstream timed out In-Reply-To: <507F96B2.8070801@amhost.net> References: <507BB496.9040203@labutin.com> <507F92DE.7070309@labutin.com> <507F96B2.8070801@amhost.net> Message-ID: <507F9BC0.6000307@labutin.com> Промазал. Хотел написать, что у меня стоит: upstream backend { server www4.... backup; server www1.... max_fails=3 fail_timeout=600s; keepalive 64; } Я правильно понимаю, что стоит попробовать уменьшить keepalive в моем случае? Дмитрий Лабутин 18.10.2012 9:42, Alex Vorona пишет: > 18.10.2012 08:25, Dmitry Y. Labutin wrote: >> Доброго времени суток. >> >> keepalive_timeout 65; >> В какую сторону крутить? >> > В сторону http://nginx.org/ru/docs/http/ngx_http_upstream_module.html#keepalive > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > From chipitsine at gmail.com Thu Oct 18 08:10:13 2012 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Thu, 18 Oct 2012 14:10:13 +0600 Subject: upstream timed out In-Reply-To: <507F9BC0.6000307@labutin.com> References: <507BB496.9040203@labutin.com> <507F92DE.7070309@labutin.com> <507F96B2.8070801@amhost.net> <507F9BC0.6000307@labutin.com> Message-ID: кроме этого еще надо proxy_http_version 1.1; proxy_set_header Connection ""; иначе - да, у вас будет создан пул конекций до бекенда, но по факту каждый раз коннекция будет закрываться (вместо того, чтобы взять из пула уже конекцию с установленным соединением) 18 октября 2012 г., 12:03 пользователь Dmitry Y. Labutin написал: > Промазал. Хотел написать, что у меня стоит: > upstream backend { > server www4.... backup; > server www1.... max_fails=3 fail_timeout=600s; > > keepalive 64; > } > > Я правильно понимаю, что стоит попробовать уменьшить keepalive в моем > случае? > > Дмитрий Лабутин > > 18.10.2012 9:42, Alex Vorona пишет: > > 18.10.2012 08:25, Dmitry Y. Labutin wrote: >> >>> Доброго времени суток. >>> >>> keepalive_timeout 65; >>> В какую сторону крутить? >>> >>> В сторону http://nginx.org/ru/docs/http/** >> ngx_http_upstream_module.html#**keepalive >> >> ______________________________**_________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/**mailman/listinfo/nginx-ru >> >> > ______________________________**_________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/**mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum at nginx.us Thu Oct 18 08:23:33 2012 From: nginx-forum at nginx.us (MKG) Date: Thu, 18 Oct 2012 04:23:33 -0400 Subject: =?UTF-8?B?0J3QsNGB0YLRgNC+0LnQutCwIG1haWwtcHJveHk=?= Message-ID: <227acdf2bfb611243e6314354007a2c7.NginxMailingListRussian@forum.nginx.org> Хочу настроить mail-proxy для почты яндекса. Сделал так (делаю пока под win2k3): Файл nginx.conf ----------------------------------------------------- worker_processes 1; error_log logs/error.log; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; upstream auth_backend { server 127.0.0.1:55680; server 127.0.0.1:55681; } server { listen 80 default; server_name localhost; server_tokens off; access_log logs/access.log; location / { root public_html; index index.html index.htm index.php; } location ~ \.php$ { root public_html; fastcgi_connect_timeout 1; fastcgi_next_upstream timeout; fastcgi_pass auth_backend; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } mail { server_name mail.example.com; auth_http 127.0.0.1:16843/mail_auth.php; proxy on; pop3_auth plain apop cram-md5; pop3_capabilities "LAST" "TOP" "USER" "PIPELINING" "UIDL"; server { listen 110; protocol pop3; proxy_pass_error_message on; } xclient on; server { listen 25; protocol smtp; } } ----------------------------------------------------- Файл mail_auth.php ----------------------------------------------------- 0) { $idx = mt_rand(0, $Mail_Server_IP_Count - 1); $Mail_Server_IP = $Mail_Server_IPs[$idx]; $Was_Error = false; } else { /* ошибка */ } } else { /* ошибка */ } } else { /* ошибка */ } header("Status: 200 OK"); if (!$Was_Error) { header('Auth-Status: OK'); header('Auth-Server: ' . $Mail_Server_IP); header('Auth-Port: ' . $Mail_Server_Port); header('Auth-User: ' . $User_Name); header('Auth-Pass: ' . $User_Pass); } else { header('Auth-Status: ' . $Error_Str); header('Auth-Wait: 3'); } ob_end_flush(); ?> ----------------------------------------------------- По POP3 почта принимается нормально, а отправка по SMTP не работает. Bat пишет: ----------------------------------------------------- FETCH - Соединение с сервером прервано (последние переданные команды: "EHLO localhost", "MAIL FROM:<.............. at yandex.ru> SIZE=468") ----------------------------------------------------- В error.log появляется такая строчка: ----------------------------------------------------- [error] 8324#11272: *6 upstream sent invalid response: "502 5.5.2 Syntax error, command unrecognized." while reading response from upstream, client: 127.0.0.1, server: 0.0.0.0:25, login: "........... at yandex.ru", upstream: 213.180.204.38:25 ----------------------------------------------------- Подскажите пожалуйста как правильно настроить SMTP-proxy Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231945,231945#msg-231945 From mdounin at mdounin.ru Thu Oct 18 09:17:50 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Thu, 18 Oct 2012 13:17:50 +0400 Subject: =?UTF-8?B?UmU6INCd0LDRgdGC0YDQvtC50LrQsCBtYWlsLXByb3h5?= In-Reply-To: <227acdf2bfb611243e6314354007a2c7.NginxMailingListRussian@forum.nginx.org> References: <227acdf2bfb611243e6314354007a2c7.NginxMailingListRussian@forum.nginx.org> Message-ID: <20121018091750.GT40452@mdounin.ru> Hello! On Thu, Oct 18, 2012 at 04:23:33AM -0400, MKG wrote: > Хочу настроить mail-proxy для почты яндекса. Почтовый прокси в nginx'е, точно так же как и http proxy, предназначен для работы в режиме reverse proxy, i.e. для для распределения клиентов между бекендами. Т.е. если вы не почта Яндекса - оно вам не надо. [...] > В error.log появляется такая строчка: > ----------------------------------------------------- > [error] 8324#11272: *6 upstream sent invalid response: "502 5.5.2 Syntax > error, command unrecognized." while reading response from upstream, client: > 127.0.0.1, server: 0.0.0.0:25, login: "........... at yandex.ru", upstream: > 213.180.204.38:25 > ----------------------------------------------------- Потому что smtp-сервера Яндекса не понимает команду XCLIENT, которую nginx пытается слать ему, как собственному бекенду. -- Maxim Dounin http://nginx.com/support.html From nginx-forum at nginx.us Thu Oct 18 09:37:53 2012 From: nginx-forum at nginx.us (MKG) Date: Thu, 18 Oct 2012 05:37:53 -0400 Subject: =?UTF-8?B?UmU6INCd0LDRgdGC0YDQvtC50LrQsCBtYWlsLXByb3h5?= In-Reply-To: <20121018091750.GT40452@mdounin.ru> References: <20121018091750.GT40452@mdounin.ru> Message-ID: Maxim Dounin Wrote: > > Почтовый прокси в nginx'е, точно так же как и http proxy, > предназначен для работы в режиме reverse proxy, i.e. для для > распределения клиентов между бекендами. > > Т.е. если вы не почта Яндекса - оно вам не надо. > У меня тема такая - есть шлюз, который имеет выход в инет с двух провайдеров. На рабочих станциях настраиваю почтовый клиент (bat, outlook express и т.п.) едиными настройками (на почтовый прокси). В случае падения инета от первого провайдера я переключаю на второго и почта продолжает работать на рабочих станциях без какого-либо вмешательства. С POP3 все получилось без проблем, а вот с SMTP проблема. > Потому что smtp-сервера Яндекса не понимает команду XCLIENT, > которую nginx пытается слать ему, как собственному бекенду. Я поставил директиву: xclient off; Теперь почтовый сервер яндекса выдает: Rsp 503 5.5.4 Error: send AUTH command first. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231945,231952#msg-231952 From kav at karagodov.name Thu Oct 18 09:41:51 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Thu, 18 Oct 2012 13:41:51 +0400 Subject: =?UTF-8?B?UmU6INCd0LDRgdGC0YDQvtC50LrQsCBtYWlsLXByb3h5?= In-Reply-To: References: <20121018091750.GT40452@mdounin.ru> Message-ID: <3FEEA866-15AE-4EAA-BBAC-F9F6F7C9A0CC@karagodov.name> On 18.10.2012, at 13:37, MKG wrote: > Maxim Dounin Wrote: >> >> Почтовый прокси в nginx'е, точно так же как и http proxy, >> предназначен для работы в режиме reverse proxy, i.e. для для >> распределения клиентов между бекендами. >> >> Т.е. если вы не почта Яндекса - оно вам не надо. >> > > У меня тема такая - есть шлюз, который имеет выход в инет с двух > провайдеров. > На рабочих станциях настраиваю почтовый клиент (bat, outlook express и т.п.) > едиными настройками (на почтовый прокси). страдание хернёй детектед ... это задача маршрутизатора > В случае падения инета от первого провайдера я переключаю на второго и почта > продолжает работать на рабочих станциях без какого-либо вмешательства. > С POP3 все получилось без проблем, а вот с SMTP проблема. > > > >> Потому что smtp-сервера Яндекса не понимает команду XCLIENT, >> которую nginx пытается слать ему, как собственному бекенду. > > Я поставил директиву: > xclient off; > Теперь почтовый сервер яндекса выдает: > > Rsp 503 5.5.4 Error: send AUTH command first. > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231945,231952#msg-231952 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From mdounin at mdounin.ru Thu Oct 18 09:45:14 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Thu, 18 Oct 2012 13:45:14 +0400 Subject: =?UTF-8?B?UmU6INCd0LDRgdGC0YDQvtC50LrQsCBtYWlsLXByb3h5?= In-Reply-To: References: <20121018091750.GT40452@mdounin.ru> Message-ID: <20121018094514.GW40452@mdounin.ru> Hello! On Thu, Oct 18, 2012 at 05:37:53AM -0400, MKG wrote: > Maxim Dounin Wrote: > > > > Почтовый прокси в nginx'е, точно так же как и http proxy, > > предназначен для работы в режиме reverse proxy, i.e. для для > > распределения клиентов между бекендами. > > > > Т.е. если вы не почта Яндекса - оно вам не надо. > > > > У меня тема такая - есть шлюз, который имеет выход в инет с двух > провайдеров. > На рабочих станциях настраиваю почтовый клиент (bat, outlook express и т.п.) > едиными настройками (на почтовый прокси). > В случае падения инета от первого провайдера я переключаю на второго и почта > продолжает работать на рабочих станциях без какого-либо вмешательства. > С POP3 все получилось без проблем, а вот с SMTP проблема. А просто сеть от рабочих станций пробросить, или если очень жалко канал - конкретные порты? Совершенно непонятно, зачем в этой конструкции nginx. > > Потому что smtp-сервера Яндекса не понимает команду XCLIENT, > > которую nginx пытается слать ему, как собственному бекенду. > > Я поставил директиву: > xclient off; > Теперь почтовый сервер яндекса выдает: > > Rsp 503 5.5.4 Error: send AUTH command first. Потому что nginx не пытается использовать SMTP AUTH к бекенду, он вместо этого обучен передавать имя пользователя через XCLIENT, если это нужно. Патчи, обеспечивающие проксирование SMTP AUTH, у меня где-то лежат, и если очень хочется - могу выдать. Но мне усиленно кажется, что вы пытаетесь решать не ту задачу. -- Maxim Dounin http://nginx.com/support.html From nginx-forum at nginx.us Thu Oct 18 09:45:45 2012 From: nginx-forum at nginx.us (Megha) Date: Thu, 18 Oct 2012 05:45:45 -0400 Subject: $upload_file_name is null Message-ID: <6e539ac00999e20e5c7ccde98aa1d3a1.NginxMailingListRussian@forum.nginx.org> Hi, I am trying to upload file from client(simple HTML multipart post request) to my Nginx server. I can upload the file on Nginx server successfully but $upload_file_name is null. I am using Nginx log mechanisam to see the value as below:- log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"' ' ** "$upload_file_name" **'; My Nginx conf file: location /upload { # Pass altered request body to this location upload_pass @test; # Store files to this directory # The directory is hashed, subdirectories 0 1 2 3 4 5 6 7 8 9 should exist upload_store /www/test; # Allow uploaded files to be read only by user upload_store_access user:rw group:r all:r; # Set specified fields in request body upload_set_form_field $upload_field_name.name $upload_file_name; upload_set_form_field $upload_field_name.content_type "$upload_content_type"; upload_set_form_field $upload_field_name.path "$upload_tmp_path"; # Inform backend about hash and size of a file upload_aggregate_form_field "$upload_field_name.md5" "$upload_file_md5"; upload_aggregate_form_field "$upload_field_name.size" "$upload_file_size"; upload_pass_form_field "^submit$|^description$"; upload_cleanup 400 404 499 500-505; HTML page: Test Server


Am I missing here something or do I need to add some extra code here to get values of $upload_file_name, "$upload_content_type" etc ? Or do I need to modify my client code ? Thank you. M Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231955,231955#msg-231955 From chipitsine at gmail.com Thu Oct 18 09:47:34 2012 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Thu, 18 Oct 2012 15:47:34 +0600 Subject: =?UTF-8?B?UmU6INCd0LDRgdGC0YDQvtC50LrQsCBtYWlsLXByb3h5?= In-Reply-To: References: <20121018091750.GT40452@mdounin.ru> Message-ID: вам скорее подойдет какой-нибудь tcp-балансировщик типа haproxy 18 октября 2012 г., 15:37 пользователь MKG написал: > Maxim Dounin Wrote: > > > > Почтовый прокси в nginx'е, точно так же как и http proxy, > > предназначен для работы в режиме reverse proxy, i.e. для для > > распределения клиентов между бекендами. > > > > Т.е. если вы не почта Яндекса - оно вам не надо. > > > > У меня тема такая - есть шлюз, который имеет выход в инет с двух > провайдеров. > На рабочих станциях настраиваю почтовый клиент (bat, outlook express и > т.п.) > едиными настройками (на почтовый прокси). > В случае падения инета от первого провайдера я переключаю на второго и > почта > продолжает работать на рабочих станциях без какого-либо вмешательства. > С POP3 все получилось без проблем, а вот с SMTP проблема. > > > > > Потому что smtp-сервера Яндекса не понимает команду XCLIENT, > > которую nginx пытается слать ему, как собственному бекенду. > > Я поставил директиву: > xclient off; > Теперь почтовый сервер яндекса выдает: > > Rsp 503 5.5.4 Error: send AUTH command first. > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,231945,231952#msg-231952 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ne at vbart.ru Thu Oct 18 10:00:26 2012 From: ne at vbart.ru (=?utf-8?b?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Thu, 18 Oct 2012 14:00:26 +0400 Subject: =?UTF-8?B?UmU6IGZhc3RjZ2lfcGFzcyDQuCBwcm94eV9wYXNzLCAg0YDQsNC30LvQuNGH0Lg=?= =?UTF-8?B?0Y8=?= In-Reply-To: References: <507F3965.6050308@list.ru> Message-ID: <201210181400.26540.ne@vbart.ru> On Thursday 18 October 2012 07:28:06 Andrey Semenoff wrote: > Станислав спасибо. Но версия 5.3. > Да и у меня фронтенд nginx, с него я проксирую proxy_pass и fastcgi_pass на > один и тот же порт. > А можете привести конфигурацию nginx целиком, а также вывод netstat -lnpt ? -- Валентин Бартенев http://nginx.com/support.html http://nginx.org/en/donation.html From nginx-forum at nginx.us Thu Oct 18 10:18:34 2012 From: nginx-forum at nginx.us (MKG) Date: Thu, 18 Oct 2012 06:18:34 -0400 Subject: =?UTF-8?B?UmU6INCd0LDRgdGC0YDQvtC50LrQsCBtYWlsLXByb3h5?= In-Reply-To: <3FEEA866-15AE-4EAA-BBAC-F9F6F7C9A0CC@karagodov.name> References: <3FEEA866-15AE-4EAA-BBAC-F9F6F7C9A0CC@karagodov.name> Message-ID: <6a9b7657bb6d0c4c5735604279fa7fce.NginxMailingListRussian@forum.nginx.org> kav Wrote: ------------------------------------------------------- > страдание хернёй детектед ... > это задача маршрутизатора Т.е. мне на каждой рабочей станции нужно иметь прописанным шлюзом по-умолчанию шлюз в инет и днс? Оно зачем? Веб работает через свой прокси, днс настроен на внутрениий (на внутренние ресурсы), шлюз прописан на впн-сервер. Мне нужно сделать то же что и делает, например, сквид. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231945,231961#msg-231961 From nginx-forum at nginx.us Thu Oct 18 10:22:51 2012 From: nginx-forum at nginx.us (MKG) Date: Thu, 18 Oct 2012 06:22:51 -0400 Subject: =?UTF-8?B?UmU6INCd0LDRgdGC0YDQvtC50LrQsCBtYWlsLXByb3h5?= In-Reply-To: <20121018094514.GW40452@mdounin.ru> References: <20121018094514.GW40452@mdounin.ru> Message-ID: Maxim Dounin Wrote: ------------------------------------------------------- > А просто сеть от рабочих станций пробросить, или если очень жалко > канал - конкретные порты? Совершенно непонятно, зачем в этой > конструкции nginx. Пробросить я могу до определенного ip-шника. При этом - 1) контроля доступа к почте - ноль, 2) у днс-имени smtp.yandex.ru несколько ip-адресов. Не хотелось бы ограничивать пользователей в надежности доступа к почте. > Потому что nginx не пытается использовать SMTP AUTH к бекенду, он > вместо этого обучен передавать имя пользователя через XCLIENT, > если это нужно. > > Патчи, обеспечивающие проксирование SMTP AUTH, у меня где-то > лежат, и если очень хочется - могу выдать. Но мне усиленно > кажется, что вы пытаетесь решать не ту задачу. Т.е. с текущей версией (1.3.6) доступ к smtp.yandex.ru никак не получить? ps: а вы не могли бы подсказать какой-либо альтернативный софт?? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231945,231962#msg-231962 From nginx-forum at nginx.us Thu Oct 18 10:29:57 2012 From: nginx-forum at nginx.us (MKG) Date: Thu, 18 Oct 2012 06:29:57 -0400 Subject: =?UTF-8?B?UmU6INCd0LDRgdGC0YDQvtC50LrQsCBtYWlsLXByb3h5?= In-Reply-To: References: Message-ID: <42a6654c404d157d491dc086ac74851d.NginxMailingListRussian@forum.nginx.org> Илья Шипицин Wrote: ------------------------------------------------------- > вам скорее подойдет какой-нибудь tcp-балансировщик типа haproxy > Спасибо! Глянул быстренько haproxy. И обнаружил следующее в его директиве server: -----------------
is the IPv4 address of the server. Alternatively, a resolvable hostname is supported, but this name will be resolved during start-up. ----------------- т.е. он зацепится за один ip-адрес smtp.yandex.ru и все. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231945,231963#msg-231963 From habich99 at mail.ru Thu Oct 18 13:56:23 2012 From: habich99 at mail.ru (habich99 at mail.ru) Date: Thu, 18 Oct 2012 17:56:23 +0400 Subject: =?UTF-8?B?0KHRgtGA0LDQvdC90YvQuSDQsdCw0LMgKNC40LvQuCDQvNC+0Y8g0L7RiNC40LE=?= =?UTF-8?B?0LrQsD8pINGBIGVycm9yX3BhZ2U=?= Message-ID: <50800A87.6010101@mail.ru> Доброго времени суток всем. Существует примерно следующая конфигурация: server { listen 80; server_name site.com; include /etc/nginx/conf.d/error_pages.conf; [...] location /error_pages/ { internal; root /var/www/; } } $ cat /etc/nginx/conf.d/error_pages.conf error_page 400 /error_pages/400.html; error_page 401 /error_pages/401.html; error_page 402 /error_pages/402.html; error_page 403 /error_pages/403.html; error_page 404 /error_pages/404.html; error_page 405 /error_pages/405.html; error_page 406 /error_pages/406.html; error_page 407 /error_pages/407.html; error_page 408 /error_pages/408.html; error_page 409 /error_pages/409.html; error_page 410 /error_pages/410.html; error_page 411 /error_pages/411.html; error_page 412 /error_pages/412.html; error_page 413 /error_pages/413.html; error_page 414 /error_pages/414.html; error_page 415 /error_pages/415.html; error_page 416 /error_pages/416.html; error_page 417 /error_pages/417.html; error_page 500 /error_pages/500.html; error_page 501 /error_pages/501.html; error_page 502 /error_pages/502.html; error_page 503 /error_pages/503.html; error_page 504 /error_pages/504.html; error_page 505 /error_pages/505.html; Все страницы ошибок кроме 400 обрабатываются нормально. Если выполнить запрос типа: http://site.com/test%00.php - nginx отдаёт стандартную страницу ошибки. Собственно это баг nginx или... ? nginx -V nginx version: nginx/1.2.4 built by gcc 4.4.5 (Debian 4.4.5-8) TLS SNI support enabled configure arguments: --prefix=/etc/nginx/ --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=www-data --group=www-data --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_gzip_static_module --with-http_stub_status_module --with-file-aio --add-module=/usr/src/www/nginx-1.2.1/addmodules/headers-more-nginx-module --without-http_userid_module --without-http_split_clients_module --without-http_map_module --without-http_geo_module --without-poll_module From kav at karagodov.name Thu Oct 18 14:00:38 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Thu, 18 Oct 2012 18:00:38 +0400 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdGL0Lkg0LHQsNCzICjQuNC70Lgg0LzQvtGPINC+0Yg=?= =?UTF-8?B?0LjQsdC60LA/KSDRgSBlcnJvcl9wYWdl?= In-Reply-To: <50800A87.6010101@mail.ru> References: <50800A87.6010101@mail.ru> Message-ID: <81AFC85C-BA70-40E7-B215-8A2DE371726E@karagodov.name> а что в логах? и какую ошибку, по-вышему, он должен выдать? On 18.10.2012, at 17:56, habich99 at mail.ru wrote: > Доброго времени суток всем. > Существует примерно следующая конфигурация: > > server { > listen 80; > server_name site.com; > include /etc/nginx/conf.d/error_pages.conf; > [...] > location /error_pages/ { > internal; > root /var/www/; > } > } > > $ cat /etc/nginx/conf.d/error_pages.conf > > error_page 400 /error_pages/400.html; > error_page 401 /error_pages/401.html; > error_page 402 /error_pages/402.html; > error_page 403 /error_pages/403.html; > error_page 404 /error_pages/404.html; > error_page 405 /error_pages/405.html; > error_page 406 /error_pages/406.html; > error_page 407 /error_pages/407.html; > error_page 408 /error_pages/408.html; > error_page 409 /error_pages/409.html; > error_page 410 /error_pages/410.html; > error_page 411 /error_pages/411.html; > error_page 412 /error_pages/412.html; > error_page 413 /error_pages/413.html; > error_page 414 /error_pages/414.html; > error_page 415 /error_pages/415.html; > error_page 416 /error_pages/416.html; > error_page 417 /error_pages/417.html; > error_page 500 /error_pages/500.html; > error_page 501 /error_pages/501.html; > error_page 502 /error_pages/502.html; > error_page 503 /error_pages/503.html; > error_page 504 /error_pages/504.html; > error_page 505 /error_pages/505.html; > > Все страницы ошибок кроме 400 обрабатываются нормально. > Если выполнить запрос типа: http://site.com/test%00.php - nginx отдаёт стандартную страницу ошибки. > > Собственно это баг nginx или... ? > > > nginx -V > nginx version: nginx/1.2.4 > built by gcc 4.4.5 (Debian 4.4.5-8) > TLS SNI support enabled > configure arguments: --prefix=/etc/nginx/ --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=www-data --group=www-data --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_gzip_static_module --with-http_stub_status_module --with-file-aio --add-module=/usr/src/www/nginx-1.2.1/addmodules/headers-more-nginx-module --without-http_userid_module --without-http_split_clients_module --without-http_map_module --without-http_geo_module --without-poll_module > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From mdounin at mdounin.ru Thu Oct 18 14:13:48 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Thu, 18 Oct 2012 18:13:48 +0400 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdGL0Lkg0LHQsNCzICjQuNC70Lgg0LzQvtGPINC+0Yg=?= =?UTF-8?B?0LjQsdC60LA/KSDRgSBlcnJvcl9wYWdl?= In-Reply-To: <50800A87.6010101@mail.ru> References: <50800A87.6010101@mail.ru> Message-ID: <20121018141348.GB40452@mdounin.ru> Hello! On Thu, Oct 18, 2012 at 05:56:23PM +0400, habich99 at mail.ru wrote: > Доброго времени суток всем. > Существует примерно следующая конфигурация: > > server { > listen 80; > server_name site.com; > include /etc/nginx/conf.d/error_pages.conf; > [...] > location /error_pages/ { > internal; > root /var/www/; > } > } > > $ cat /etc/nginx/conf.d/error_pages.conf > > error_page 400 /error_pages/400.html; > error_page 401 /error_pages/401.html; > error_page 402 /error_pages/402.html; [...] > Все страницы ошибок кроме 400 обрабатываются нормально. > Если выполнить запрос типа: http://site.com/test%00.php - nginx > отдаёт стандартную страницу ошибки. > > Собственно это баг nginx или... ? При чтении заголовков запроса виртуальный сервер ещё не известен, т.к. заголовок Host не прочитан и не обработан. Соответственно чтобы error_page 400 сработал - надо его задать в сервере по умолчанию для данного listen-сокета. -- Maxim Dounin http://nginx.com/support.html From habich99 at mail.ru Thu Oct 18 14:13:29 2012 From: habich99 at mail.ru (habich99 at mail.ru) Date: Thu, 18 Oct 2012 18:13:29 +0400 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdGL0Lkg0LHQsNCzICjQuNC70Lgg0LzQvtGPINC+0Yg=?= =?UTF-8?B?0LjQsdC60LA/KSDRgSBlcnJvcl9wYWdl?= In-Reply-To: <81AFC85C-BA70-40E7-B215-8A2DE371726E@karagodov.name> References: <50800A87.6010101@mail.ru> <81AFC85C-BA70-40E7-B215-8A2DE371726E@karagodov.name> Message-ID: <50800E89.4080002@mail.ru> Ну выдавать, наверно страничку, которая указана для error_page 400? В access.log только запись: айпи_источника_запроса - - [18/Oct/2012:18:11:34 +0400] "GET /00000%00.php HTTP/1.1" 400 141 "-" "-" 18.10.2012 18:00, Alexey V. Karagodov пишет: > а что в логах? > > и какую ошибку, по-вышему, он должен выдать? > > On 18.10.2012, at 17:56, habich99 at mail.ru wrote: > >> Доброго времени суток всем. >> Существует примерно следующая конфигурация: >> >> server { >> listen 80; >> server_name site.com; >> include /etc/nginx/conf.d/error_pages.conf; >> [...] >> location /error_pages/ { >> internal; >> root /var/www/; >> } >> } >> >> $ cat /etc/nginx/conf.d/error_pages.conf >> >> error_page 400 /error_pages/400.html; >> error_page 401 /error_pages/401.html; >> error_page 402 /error_pages/402.html; >> error_page 403 /error_pages/403.html; >> error_page 404 /error_pages/404.html; >> error_page 405 /error_pages/405.html; >> error_page 406 /error_pages/406.html; >> error_page 407 /error_pages/407.html; >> error_page 408 /error_pages/408.html; >> error_page 409 /error_pages/409.html; >> error_page 410 /error_pages/410.html; >> error_page 411 /error_pages/411.html; >> error_page 412 /error_pages/412.html; >> error_page 413 /error_pages/413.html; >> error_page 414 /error_pages/414.html; >> error_page 415 /error_pages/415.html; >> error_page 416 /error_pages/416.html; >> error_page 417 /error_pages/417.html; >> error_page 500 /error_pages/500.html; >> error_page 501 /error_pages/501.html; >> error_page 502 /error_pages/502.html; >> error_page 503 /error_pages/503.html; >> error_page 504 /error_pages/504.html; >> error_page 505 /error_pages/505.html; >> >> Все страницы ошибок кроме 400 обрабатываются нормально. >> Если выполнить запрос типа: http://site.com/test%00.php - nginx отдаёт стандартную страницу ошибки. >> >> Собственно это баг nginx или... ? >> >> >> nginx -V >> nginx version: nginx/1.2.4 >> built by gcc 4.4.5 (Debian 4.4.5-8) >> TLS SNI support enabled >> configure arguments: --prefix=/etc/nginx/ --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=www-data --group=www-data --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_gzip_static_module --with-http_stub_status_module --with-file-aio --add-module=/usr/src/www/nginx-1.2.1/addmodules/headers-more-nginx-module --without-http_userid_module --without-http_split_clients_module --without-http_map_module --without-http_geo_module --without-poll_module >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From kav at karagodov.name Thu Oct 18 14:15:01 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Thu, 18 Oct 2012 18:15:01 +0400 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdGL0Lkg0LHQsNCzICjQuNC70Lgg0LzQvtGPINC+0Yg=?= =?UTF-8?B?0LjQsdC60LA/KSDRgSBlcnJvcl9wYWdl?= In-Reply-To: <50800E89.4080002@mail.ru> References: <50800A87.6010101@mail.ru> <81AFC85C-BA70-40E7-B215-8A2DE371726E@karagodov.name> <50800E89.4080002@mail.ru> Message-ID: ещё есть error.log On 18.10.2012, at 18:13, "habich99 at mail.ru" wrote: > Ну выдавать, наверно страничку, которая указана для error_page 400? > В access.log только запись: > > айпи_источника_запроса - - [18/Oct/2012:18:11:34 +0400] "GET /00000%00.php HTTP/1.1" 400 141 "-" "-" > > > 18.10.2012 18:00, Alexey V. Karagodov пишет: >> а что в логах? >> >> и какую ошибку, по-вышему, он должен выдать? >> >> On 18.10.2012, at 17:56, habich99 at mail.ru wrote: >> >>> Доброго времени суток всем. >>> Существует примерно следующая конфигурация: >>> >>> server { >>> listen 80; >>> server_name site.com; >>> include /etc/nginx/conf.d/error_pages.conf; >>> [...] >>> location /error_pages/ { >>> internal; >>> root /var/www/; >>> } >>> } >>> >>> $ cat /etc/nginx/conf.d/error_pages.conf >>> >>> error_page 400 /error_pages/400.html; >>> error_page 401 /error_pages/401.html; >>> error_page 402 /error_pages/402.html; >>> error_page 403 /error_pages/403.html; >>> error_page 404 /error_pages/404.html; >>> error_page 405 /error_pages/405.html; >>> error_page 406 /error_pages/406.html; >>> error_page 407 /error_pages/407.html; >>> error_page 408 /error_pages/408.html; >>> error_page 409 /error_pages/409.html; >>> error_page 410 /error_pages/410.html; >>> error_page 411 /error_pages/411.html; >>> error_page 412 /error_pages/412.html; >>> error_page 413 /error_pages/413.html; >>> error_page 414 /error_pages/414.html; >>> error_page 415 /error_pages/415.html; >>> error_page 416 /error_pages/416.html; >>> error_page 417 /error_pages/417.html; >>> error_page 500 /error_pages/500.html; >>> error_page 501 /error_pages/501.html; >>> error_page 502 /error_pages/502.html; >>> error_page 503 /error_pages/503.html; >>> error_page 504 /error_pages/504.html; >>> error_page 505 /error_pages/505.html; >>> >>> Все страницы ошибок кроме 400 обрабатываются нормально. >>> Если выполнить запрос типа: http://site.com/test%00.php - nginx отдаёт стандартную страницу ошибки. >>> >>> Собственно это баг nginx или... ? >>> >>> >>> nginx -V >>> nginx version: nginx/1.2.4 >>> built by gcc 4.4.5 (Debian 4.4.5-8) >>> TLS SNI support enabled >>> configure arguments: --prefix=/etc/nginx/ --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=www-data --group=www-data --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_gzip_static_module --with-http_stub_status_module --with-file-aio --add-module=/usr/src/www/nginx-1.2.1/addmodules/headers-more-nginx-module --without-http_userid_module --without-http_split_clients_module --without-http_map_module --without-http_geo_module --without-poll_module >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru at nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From habich99 at mail.ru Thu Oct 18 14:14:41 2012 From: habich99 at mail.ru (habich99 at mail.ru) Date: Thu, 18 Oct 2012 18:14:41 +0400 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdGL0Lkg0LHQsNCzICjQuNC70Lgg0LzQvtGPINC+0Yg=?= =?UTF-8?B?0LjQsdC60LA/KSDRgSBlcnJvcl9wYWdl?= In-Reply-To: <20121018141348.GB40452@mdounin.ru> References: <50800A87.6010101@mail.ru> <20121018141348.GB40452@mdounin.ru> Message-ID: <50800ED1.4000003@mail.ru> Спасибо, Максим. Прояснили. 18.10.2012 18:13, Maxim Dounin пишет: > Hello! > > On Thu, Oct 18, 2012 at 05:56:23PM +0400, habich99 at mail.ru wrote: > >> Доброго времени суток всем. >> Существует примерно следующая конфигурация: >> >> server { >> listen 80; >> server_name site.com; >> include /etc/nginx/conf.d/error_pages.conf; >> [...] >> location /error_pages/ { >> internal; >> root /var/www/; >> } >> } >> >> $ cat /etc/nginx/conf.d/error_pages.conf >> >> error_page 400 /error_pages/400.html; >> error_page 401 /error_pages/401.html; >> error_page 402 /error_pages/402.html; > [...] > >> Все страницы ошибок кроме 400 обрабатываются нормально. >> Если выполнить запрос типа: http://site.com/test%00.php - nginx >> отдаёт стандартную страницу ошибки. >> >> Собственно это баг nginx или... ? > При чтении заголовков запроса виртуальный сервер ещё не известен, > т.к. заголовок Host не прочитан и не обработан. Соответственно > чтобы error_page 400 сработал - надо его задать в сервере по > умолчанию для данного listen-сокета. > From nginx-forum at nginx.us Thu Oct 18 15:08:28 2012 From: nginx-forum at nginx.us (dejurin) Date: Thu, 18 Oct 2012 11:08:28 -0400 Subject: =?UTF-8?B?0JrQsNC6INC+0YLQutC70Y7Rh9C40YLRjCDQv9C+0LrQsNC3INGB0LDQudGC0LAg?= =?UTF-8?B?0YfQtdGA0LXQtyBJUD8=?= Message-ID: <148c150b0ec0a35196002b2294868667.NginxMailingListRussian@forum.nginx.org> Интересует вопрос, где в настройках nginx отключить показ сайта через IP? Чтобы сайт виден был, только через домен Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231985,231985#msg-231985 From ne at vbart.ru Thu Oct 18 15:22:22 2012 From: ne at vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Thu, 18 Oct 2012 19:22:22 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQvtGC0LrQu9GO0YfQuNGC0Ywg0L/QvtC60LDQtyDRgdCw0Lk=?= =?UTF-8?B?0YLQsCDRh9C10YDQtdC3IElQPw==?= In-Reply-To: <148c150b0ec0a35196002b2294868667.NginxMailingListRussian@forum.nginx.org> References: <148c150b0ec0a35196002b2294868667.NginxMailingListRussian@forum.nginx.org> Message-ID: <201210181922.22744.ne@vbart.ru> On Thursday 18 October 2012 19:08:28 dejurin wrote: > Интересует вопрос, где в настройках nginx отключить показ сайта через IP? > Чтобы сайт виден был, только через домен > http://nginx.org/ru/docs/http/server_names.html -- Валентин Бартенев http://nginx.com/support.html http://nginx.org/en/donation.html From chipitsine at gmail.com Thu Oct 18 16:16:18 2012 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Thu, 18 Oct 2012 22:16:18 +0600 Subject: =?UTF-8?B?UmU6INCd0LDRgdGC0YDQvtC50LrQsCBtYWlsLXByb3h5?= In-Reply-To: <42a6654c404d157d491dc086ac74851d.NginxMailingListRussian@forum.nginx.org> References: <42a6654c404d157d491dc086ac74851d.NginxMailingListRussian@forum.nginx.org> Message-ID: 18 октября 2012 г., 16:29 пользователь MKG написал: > Илья Шипицин Wrote: > ------------------------------------------------------- > > вам скорее подойдет какой-нибудь tcp-балансировщик типа haproxy > > > > > Спасибо! > Глянул быстренько haproxy. И обнаружил следующее в его директиве server: > ----------------- >
is the IPv4 address of the server. Alternatively, a resolvable > hostname is supported, but this name will be resolved during > start-up. > ----------------- > т.е. он зацепится за один ip-адрес smtp.yandex.ru и все. > > > на все адреса, почему за один ? упор тут сделан на "during start-up", т.е. всего один раз и без учета TTL. -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum at nginx.us Thu Oct 18 16:36:26 2012 From: nginx-forum at nginx.us (ShivaS) Date: Thu, 18 Oct 2012 12:36:26 -0400 Subject: =?UTF-8?B?0L/RgNC+0LHQu9C10LzQsCDQsiAxLjIu0YUgLSBjbGllbnQgc2VudCBpbnZhbGlk?= =?UTF-8?B?IGhlYWRlciBsaW5l?= Message-ID: Добрый вечер, На одной из систем мы начали переходить с 0.6.7 на 1.2.4 Есть моменты, когда клиент посылает в один из хедеров (а точнее в Content-Type) какой-то спец символ/character, после получения которого nginx отсылает сразу 400. Символ похож на 2 квадратные скобки, образующие вертикально стоящий прямоугольник, ближе к квадрату, что-то навроде этого [] (это 2 скобки, а сам символ как одно целое и шире) Хотя, возможно это и не имеет значение как оно выглядит. Вроде это происходит когда что-то не на latin/utf-8 (и так интерпретируется.) В любом случае ошибка выглядит так: 2012/10/17 12:51:46 [info] 25858#0: *549831 client sent invalid header line: "Content-Type: application/x-www-form-urlencoded и потом идет список других хедеров и сама POST дата, и всё записано в логе. Можно и куки словить и все что угодно. Реквест сломался. Т.е. nginx шлет 400, но другие и POST данные приходят по любому и записываются в логе (неправильный реквест) Аналайзер показал что в реале сразу после blabla....urlencoded идет вышеупомянутый символ [] (слитно с хедером) Так вот, в 0.6.7 без проблем работает всё из коробки. А вот 1.2.х отсекает сразу с 400 и даже разрешение invalid headers не помогает Это что-то стало слишком стрикт и ничего не поделать или можно заставить работать? Пока что откатились на 0.6.7 к сожалению, а на других системах поставили ЕС2 прокси, которые это тоже игнорят. Спасибо! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231989,231989#msg-231989 From server_inc at list.ru Thu Oct 18 18:02:04 2012 From: server_inc at list.ru (=?KOI8-R?Q?=F3=D4=C1=CE=C9=D3=CC=C1=D7?=) Date: Thu, 18 Oct 2012 21:02:04 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQvtGC0LrQu9GO0YfQuNGC0Ywg0L/QvtC60LDQtyDRgdCw0Lk=?= =?UTF-8?B?0YLQsCDRh9C10YDQtdC3IElQPw==?= In-Reply-To: <201210181922.22744.ne@vbart.ru> References: <148c150b0ec0a35196002b2294868667.NginxMailingListRussian@forum.nginx.org> <201210181922.22744.ne@vbart.ru> Message-ID: <5080441C.2040402@list.ru> 18.10.2012 18:22, Валентин Бартенев пишет: > On Thursday 18 October 2012 19:08:28 dejurin wrote: >> Интересует вопрос, где в настройках nginx отключить показ сайта через IP? >> Чтобы сайт виден был, только через домен >> > http://nginx.org/ru/docs/http/server_names.html > > Создайте новый блок "server" и внутри пропишите server_name с вашим IP: server { server_name _ВАШ_IP_ ; ...... } From hell-for-yahoo at umail.ru Thu Oct 18 18:04:04 2012 From: hell-for-yahoo at umail.ru (Andrey Repin) Date: Thu, 18 Oct 2012 22:04:04 +0400 Subject: =?UTF-8?B?UmU6INCd0LDRgdGC0YDQvtC50LrQsCBtYWlsLXByb3h5?= In-Reply-To: References: <42a6654c404d157d491dc086ac74851d.NginxMailingListRussian@forum.nginx.org> Message-ID: <495481022.20121018220404@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) Илья Шипицин! >> Глянул быстренько haproxy. И обнаружил следующее в его директиве server: >> ----------------- >>
is the IPv4 address of the server. Alternatively, a resolvable >> hostname is supported, but this name will be resolved during >> start-up. >> ----------------- >> т.е. он зацепится за один ip-адрес smtp.yandex.ru и все. >> >> >> ИШ> на все адреса, почему за один ? Потому что на ОДИН. Так же, как iptables работает, когда ты имя вместо адреса пишешь. ИШ> упор тут сделан на "during start-up", т.е. всего один раз и без учета TTL. -- С уважением Andrey Repin (hell-for-yahoo at umail.ru) четверг, 18.10.2012, <22:03> From a.vasilishin at kpi.ua Thu Oct 18 18:05:38 2012 From: a.vasilishin at kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Thu, 18 Oct 2012 21:05:38 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQvtGC0LrQu9GO0YfQuNGC0Ywg0L/QvtC60LDQtyDRgdCw0Lk=?= =?UTF-8?B?0YLQsCDRh9C10YDQtdC3IElQPw==?= In-Reply-To: <5080441C.2040402@list.ru> References: <148c150b0ec0a35196002b2294868667.NginxMailingListRussian@forum.nginx.org> <201210181922.22744.ne@vbart.ru> <5080441C.2040402@list.ru> Message-ID: <508044F2.6060905@kpi.ua> 18.10.2012 21:02, Станислав пишет: > 18.10.2012 18:22, Валентин Бартенев пишет: >> On Thursday 18 October 2012 19:08:28 dejurin wrote: >>> Интересует вопрос, где в настройках nginx отключить показ сайта через >>> IP? >>> Чтобы сайт виден был, только через домен >>> >> http://nginx.org/ru/docs/http/server_names.html >> >> > Создайте новый блок "server" и внутри пропишите server_name с вашим IP: > > > server { > server_name _ВАШ_IP_ ; > ...... > } Это будет действенно только для IP. А вот что мешает дорвейщику сделать site2.com IN CNAME site.com. ? Если прочитали ссылку, которую дал Валентин, самая правильная заглушка это: server { listen 80 default_server; server_name _; return 444; } -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From server_inc at list.ru Thu Oct 18 19:13:25 2012 From: server_inc at list.ru (=?KOI8-R?Q?=F3=D4=C1=CE=C9=D3=CC=C1=D7?=) Date: Thu, 18 Oct 2012 22:13:25 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQvtGC0LrQu9GO0YfQuNGC0Ywg0L/QvtC60LDQtyDRgdCw0Lk=?= =?UTF-8?B?0YLQsCDRh9C10YDQtdC3IElQPw==?= In-Reply-To: <508044F2.6060905@kpi.ua> References: <148c150b0ec0a35196002b2294868667.NginxMailingListRussian@forum.nginx.org> <201210181922.22744.ne@vbart.ru> <5080441C.2040402@list.ru> <508044F2.6060905@kpi.ua> Message-ID: <508054D5.6030000@list.ru> 18.10.2012 21:05, Андрей Василишин пишет: > 18.10.2012 21:02, Станислав пишет: >> 18.10.2012 18:22, Валентин Бартенев пишет: >>> On Thursday 18 October 2012 19:08:28 dejurin wrote: >>>> Интересует вопрос, где в настройках nginx отключить показ сайта через >>>> IP? >>>> Чтобы сайт виден был, только через домен >>>> >>> http://nginx.org/ru/docs/http/server_names.html >>> >>> >> Создайте новый блок "server" и внутри пропишите server_name с вашим IP: >> >> >> server { >> server_name _ВАШ_IP_ ; >> ...... >> } > > > Это будет действенно только для IP. А вот что мешает дорвейщику > сделать site2.com IN CNAME site.com. ? Если прочитали ссылку, которую > дал Валентин, самая правильная заглушка это: > server { > listen 80 default_server; > server_name _; > return 444; > } > Совершенно верно. Но у вас вопрос стоял так: > ... где в настройках nginx отключить показ сайта через IP? Научитесь правильно формулировать ваши мысли ;-) From nginx-forum at nginx.us Fri Oct 19 05:06:15 2012 From: nginx-forum at nginx.us (ProxyKZ) Date: Fri, 19 Oct 2012 01:06:15 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC80LXQtNC70LXQvdC90L4g0L7RgtC00LDQtdGCINGB0YLQsNGC?= =?UTF-8?B?0LjQutGDINC80LXQtNC70LXQvdC90YvQvCDQutC70LjQtdC90YLQsNC8IQ==?= In-Reply-To: <67be3cf815e9ad9c41e9ad8267432377.NginxMailingListRussian@forum.nginx.org> References: <67be3cf815e9ad9c41e9ad8267432377.NginxMailingListRussian@forum.nginx.org> Message-ID: Но вот iostat -x -m 3 когда сервер загружен и nginx медленнее всего отдает статику (медленные клиенты могут уже прерываться) показывает что значения util 80-100%, вот: Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util sda 51,67 1194,67 617,33 73,33 4,25 2,13 18,93 138,70 226,30 1,45 100,13 sdb 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 у nginx ситуация при этом такая: Active connections: 167 server accepts handled requests 36267 36267 95379 Reading: 5 Writing: 33 Waiting: 129 у apache такая: Current Time: Friday, 19-Oct-2012 11:03:56 ALMT Restart Time: Thursday, 18-Oct-2012 20:12:50 ALMT Parent Server Generation: 0 Server uptime: 14 hours 51 minutes 6 seconds Total accesses: 162073 - Total Traffic: 5.0 GB CPU Usage: u378.47 s41.43 cu.02 cs0 - .785% CPU load 3.03 requests/sec - 97.2 kB/second - 32.1 kB/request 25 requests currently being processed, 0 idle workers LWWWWWLRWWWWRRWWWLWWWWLWW....................................... ................................................................ всего в конфиге апача стоит Max lient 25 А в обычном состоянии - когда все быстро работает даже на медленных клиентах, вот: Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util sda 0,00 109,33 53,67 37,67 0,32 0,57 20,00 2,21 24,18 2,41 22,00 sdb 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util sda 1,00 162,67 62,00 30,67 0,39 0,76 25,35 3,13 33,80 2,71 25,07 sdb 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 при это коннектов у нжинкса может snmc только же 80-150, у апача процессов коненчо же не столько а 3-5 штук Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231602,232014#msg-232014 From chipitsine at gmail.com Fri Oct 19 05:55:44 2012 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Fri, 19 Oct 2012 11:55:44 +0600 Subject: =?UTF-8?B?UmU6IE5naW54INC80LXQtNC70LXQvdC90L4g0L7RgtC00LDQtdGCINGB0YLQsNGC?= =?UTF-8?B?0LjQutGDINC80LXQtNC70LXQvdC90YvQvCDQutC70LjQtdC90YLQsNC8IQ==?= In-Reply-To: References: <67be3cf815e9ad9c41e9ad8267432377.NginxMailingListRussian@forum.nginx.org> Message-ID: можно снизить дисковую нагрузку за счет двух вещей - буфер на access.log и proxy_buffer (либо, если есть память - увеличить их, если памяти нет - отключить) 19 октября 2012 г., 11:06 пользователь ProxyKZ написал: > Но вот iostat -x -m 3 когда сервер загружен и nginx медленнее всего отдает > статику (медленные клиенты могут уже прерываться) показывает что значения > util 80-100%, вот: > > Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz > avgqu-sz await svctm %util > sda 51,67 1194,67 617,33 73,33 4,25 2,13 18,93 > 138,70 226,30 1,45 100,13 > sdb 0,00 0,00 0,00 0,00 0,00 0,00 0,00 > 0,00 0,00 0,00 0,00 > > у nginx ситуация при этом такая: > Active connections: 167 > server accepts handled requests > 36267 36267 95379 > Reading: 5 Writing: 33 Waiting: 129 > > у apache такая: > Current Time: Friday, 19-Oct-2012 11:03:56 ALMT > Restart Time: Thursday, 18-Oct-2012 20:12:50 ALMT > Parent Server Generation: 0 > Server uptime: 14 hours 51 minutes 6 seconds > Total accesses: 162073 - Total Traffic: 5.0 GB > CPU Usage: u378.47 s41.43 cu.02 cs0 - .785% CPU load > 3.03 requests/sec - 97.2 kB/second - 32.1 kB/request > 25 requests currently being processed, 0 idle workers > LWWWWWLRWWWWRRWWWLWWWWLWW....................................... > ................................................................ > всего в конфиге апача стоит Max lient 25 > > А в обычном состоянии - когда все быстро работает даже на медленных > клиентах, вот: > Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz > avgqu-sz await svctm %util > sda 0,00 109,33 53,67 37,67 0,32 0,57 20,00 > 2,21 24,18 2,41 22,00 > sdb 0,00 0,00 0,00 0,00 0,00 0,00 0,00 > 0,00 0,00 0,00 0,00 > > Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz > avgqu-sz await svctm %util > sda 1,00 162,67 62,00 30,67 0,39 0,76 25,35 > 3,13 33,80 2,71 25,07 > sdb 0,00 0,00 0,00 0,00 0,00 0,00 0,00 > 0,00 0,00 0,00 0,00 > > при это коннектов у нжинкса может snmc только же 80-150, у апача процессов > коненчо же не столько а 3-5 штук > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,231602,232014#msg-232014 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From arut at qip.ru Fri Oct 19 07:19:14 2012 From: arut at qip.ru (Roman Arutyunyan) Date: Fri, 19 Oct 2012 11:19:14 +0400 Subject: [PATCH] implemented DAV copy hardlinks In-Reply-To: <20121016154455.GU40452@mdounin.ru> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <1350391927-1793-1-git-send-email-arut@qip.ru> <20121016154455.GU40452@mdounin.ru> Message-ID: <20121019111914.635ed769@laptop> On Tue, 16 Oct 2012 19:44:55 +0400 Maxim Dounin wrote: > 1) Я бы всё-таки сделал wrapper, как в предыдущем патче, с тем > чтобы можно было дописать потом и для виндов с минимальными > трудозатратами. > 2) Ошибки всё-таки стоит проверять, и наверное копировать только в > случае NGX_EXDEV. > ngx_change_file_access() done > Note: под win32 это сломается, т.к. там для ngx_set_file_time() > требуется файловый дескриптор. Да. Добавим открытие файла, когда будем делать под винду. Там еще надо смотреть, с какими флагами его открывать. > Может, чтобы два раза не вставать, имеет смысл протащить тут сразу > указатель на конфигурацию? Или даже вообще на объект запроса? done --- src/core/ngx_file.c | 29 +++++++++++++++++++++++++++++ src/core/ngx_file.h | 2 ++ src/http/modules/ngx_http_dav_module.c | 32 ++++++++++++++++++++++++++------ src/os/unix/ngx_files.h | 4 ++++ 4 files changed, 61 insertions(+), 6 deletions(-) diff --git a/src/core/ngx_file.c b/src/core/ngx_file.c index d9b30f8..d66320c 100644 --- a/src/core/ngx_file.c +++ b/src/core/ngx_file.c @@ -608,6 +608,7 @@ ngx_ext_rename_file(ngx_str_t *src, ngx_str_t *to, ngx_ext_rename_file_t *ext) cf.access = ext->access; cf.time = ext->time; cf.log = ext->log; + cf.hardlink = 0; name = ngx_alloc(to->len + 1 + 10 + 1, ext->log); if (name == NULL) { @@ -681,6 +682,32 @@ ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf) rc = NGX_ERROR; buf = NULL; nfd = NGX_INVALID_FILE; + fd = NGX_INVALID_FILE; + +#if !(NGX_WIN32) + + if (cf->hardlink) { + rc = ngx_hardlink_file(from, to); + + if (rc == NGX_FILE_ERROR && ngx_errno != NGX_EXDEV) { + ngx_log_error(NGX_LOG_CRIT, cf->log, ngx_errno, + ngx_hardlink_file_n " \"%s\" to \"%s\" failed", + from, to); + goto failed; + } + + if (rc == NGX_OK) { + if (ngx_change_file_access(to, cf->access) == NGX_FILE_ERROR) { + ngx_log_error(NGX_LOG_EMERG, cf->log, ngx_errno, + ngx_change_file_access_n " \"%s\" failed", to); + goto failed; + } + + goto done; + } + } + +#endif fd = ngx_open_file(from, NGX_FILE_RDONLY, NGX_FILE_OPEN, 0); @@ -763,6 +790,8 @@ ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf) size -= n; } +done: + if (cf->time != -1) { if (ngx_set_file_time(to, nfd, cf->time) != NGX_OK) { ngx_log_error(NGX_LOG_ALERT, cf->log, ngx_errno, diff --git a/src/core/ngx_file.h b/src/core/ngx_file.h index 7023e67..81c706a 100644 --- a/src/core/ngx_file.h +++ b/src/core/ngx_file.h @@ -94,6 +94,8 @@ typedef struct { ngx_uint_t access; time_t time; + unsigned hardlink:1; + ngx_log_t *log; } ngx_copy_file_t; diff --git a/src/http/modules/ngx_http_dav_module.c b/src/http/modules/ngx_http_dav_module.c index dbb17ac..53560a6 100644 --- a/src/http/modules/ngx_http_dav_module.c +++ b/src/http/modules/ngx_http_dav_module.c @@ -21,16 +21,18 @@ typedef struct { - ngx_uint_t methods; - ngx_uint_t access; - ngx_uint_t min_delete_depth; - ngx_flag_t create_full_put_path; + ngx_uint_t methods; + ngx_uint_t access; + ngx_uint_t min_delete_depth; + ngx_flag_t create_full_put_path; + ngx_flag_t hardlink; } ngx_http_dav_loc_conf_t; typedef struct { - ngx_str_t path; - size_t len; + ngx_str_t path; + size_t len; + ngx_http_request_t *request; } ngx_http_dav_copy_ctx_t; @@ -106,6 +108,13 @@ static ngx_command_t ngx_http_dav_commands[] = { offsetof(ngx_http_dav_loc_conf_t, access), NULL }, + { ngx_string("dav_copy_hardlink"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, + ngx_conf_set_flag_slot, + NGX_HTTP_LOC_CONF_OFFSET, + offsetof(ngx_http_dav_loc_conf_t, hardlink), + NULL }, + ngx_null_command }; @@ -767,7 +776,10 @@ overwrite_done: ngx_create_dir_n, copy.path.data); } + dlcf = ngx_http_get_module_loc_conf(r, ngx_http_dav_module); + copy.len = path.len; + copy.request = r; tree.init_handler = NULL; tree.file_handler = ngx_http_dav_copy_tree_file; @@ -818,6 +830,7 @@ overwrite_done: cf.access = dlcf->access; cf.time = ngx_file_mtime(&fi); cf.log = r->connection->log; + cf.hardlink = dlcf->hardlink; if (ngx_copy_file(path.data, copy.path.data, &cf) == NGX_OK) { return NGX_HTTP_NO_CONTENT; @@ -935,6 +948,7 @@ ngx_http_dav_copy_tree_file(ngx_tree_ctx_t *ctx, ngx_str_t *path) size_t len; ngx_copy_file_t cf; ngx_http_dav_copy_ctx_t *copy; + ngx_http_dav_loc_conf_t *dlcf; ngx_log_debug1(NGX_LOG_DEBUG_HTTP, ctx->log, 0, "http copy file: \"%s\"", path->data); @@ -954,11 +968,14 @@ ngx_http_dav_copy_tree_file(ngx_tree_ctx_t *ctx, ngx_str_t *path) ngx_log_debug1(NGX_LOG_DEBUG_HTTP, ctx->log, 0, "http copy file to: \"%s\"", file); + dlcf = ngx_http_get_module_loc_conf(copy->request, ngx_http_dav_module); + cf.size = ctx->size; cf.buf_size = 0; cf.access = ctx->access; cf.time = ctx->mtime; cf.log = ctx->log; + cf.hardlink = dlcf->hardlink; (void) ngx_copy_file(path->data, file, &cf); @@ -1096,6 +1113,7 @@ ngx_http_dav_create_loc_conf(ngx_conf_t *cf) conf->min_delete_depth = NGX_CONF_UNSET_UINT; conf->access = NGX_CONF_UNSET_UINT; conf->create_full_put_path = NGX_CONF_UNSET; + conf->hardlink = NGX_CONF_UNSET; return conf; } @@ -1118,6 +1136,8 @@ ngx_http_dav_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) ngx_conf_merge_value(conf->create_full_put_path, prev->create_full_put_path, 0); + ngx_conf_merge_value(conf->hardlink, prev->hardlink, 0); + return NGX_CONF_OK; } diff --git a/src/os/unix/ngx_files.h b/src/os/unix/ngx_files.h index 9c97e2b..826960b 100644 --- a/src/os/unix/ngx_files.h +++ b/src/os/unix/ngx_files.h @@ -157,6 +157,10 @@ ngx_write_fd(ngx_fd_t fd, void *buf, size_t n) #define ngx_rename_file_n "rename()" +#define ngx_hardlink_file(o, n) link((const char *) o, (const char *) n) +#define ngx_hardlink_file_n "link()" + + #define ngx_change_file_access(n, a) chmod((const char *) n, a) #define ngx_change_file_access_n "chmod()" -- 1.7.1 From nginx-forum at nginx.us Fri Oct 19 07:22:27 2012 From: nginx-forum at nginx.us (carter85) Date: Fri, 19 Oct 2012 03:22:27 -0400 Subject: =?UTF-8?B?0LIg0YfQtdC8INC+0YLQu9C40YfQuNGPPyBsb2NhdGlvbiB+IF4vKGluZGV4LnBo?= =?UTF-8?B?cCk/JHsgINC4IGxvY2F0aW9uIH4gXC5waHAkIHs=?= Message-ID: <3d43cccfa4c7aa2926c9bcf2e0143497.NginxMailingListRussian@forum.nginx.org> работают они по разному но не понимаю почему? плохо разбираюсь в nginx и perl не знаю) Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232019,232019#msg-232019 From kav at karagodov.name Fri Oct 19 07:36:39 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Fri, 19 Oct 2012 11:36:39 +0400 Subject: =?UTF-8?B?UmU6INCyINGH0LXQvCDQvtGC0LvQuNGH0LjRjz8gbG9jYXRpb24gfiBeLyhpbmRl?= =?UTF-8?B?eC5waHApPyR7ICDQuCBsb2NhdGlvbiB+IFwucGhwJCB7?= In-Reply-To: <3d43cccfa4c7aa2926c9bcf2e0143497.NginxMailingListRussian@forum.nginx.org> References: <3d43cccfa4c7aa2926c9bcf2e0143497.NginxMailingListRussian@forum.nginx.org> Message-ID: On 19.10.2012, at 11:22, carter85 wrote: > работают они по разному но не понимаю почему? > плохо разбираюсь в nginx и perl не знаю) читайте про regexp > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232019,232019#msg-232019 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From greenh at gmail.com Fri Oct 19 10:11:06 2012 From: greenh at gmail.com (greenh) Date: Fri, 19 Oct 2012 13:11:06 +0300 Subject: =?UTF-8?B?0J/RgNC+0LfRgNCw0YfQvdGL0Lkgc210cCBwcm94eQ==?= Message-ID: Добрый день Возникла вот такая задача - на шлюзовом сервере пропускать через себя всю отправляемую изнутри сети почту (естественно, только не шифрованную) и разрешать не более чем ограниченное количество, например 1 письмо в минуту. И, соответственно, хочется сделать это прозрачно, чтобы пользователям не пришлось ничего менять и пр. Подскажите, можно ли с помощью nginx ngx_mail_core_module реализовать такое? From nginx-forum at nginx.us Fri Oct 19 12:20:14 2012 From: nginx-forum at nginx.us (carter85) Date: Fri, 19 Oct 2012 08:20:14 -0400 Subject: =?UTF-8?B?UmU6INCyINGH0LXQvCDQvtGC0LvQuNGH0LjRjz8gbG9jYXRpb24gfiBeLyhpbmRl?= =?UTF-8?B?eC5waHApPyR7INC4IGxvY2F0aW9uIH4gXC5waHAkIHs=?= In-Reply-To: References: Message-ID: ещё знать бы где их читать? на офиц вики там чуток про них написано только kav Wrote: ------------------------------------------------------- > On 19.10.2012, at 11:22, carter85 wrote: > > > работают они по разному но не понимаю почему? > > плохо разбираюсь в nginx и perl не знаю) > читайте про regexp > > > > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,232019,232019#msg-232019 > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru at nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232019,232028#msg-232028 From vsjcfm at gmail.com Fri Oct 19 12:34:14 2012 From: vsjcfm at gmail.com (Sayetsky Anton) Date: Fri, 19 Oct 2012 15:34:14 +0300 Subject: =?UTF-8?B?UmU6INCyINGH0LXQvCDQvtGC0LvQuNGH0LjRjz8gbG9jYXRpb24gfiBeLyhpbmRl?= =?UTF-8?B?eC5waHApPyR7INC4IGxvY2F0aW9uIH4gXC5waHAkIHs=?= In-Reply-To: References: Message-ID: Для начале почитайте труды Розенталя. После этого прйдите по следующей ссылке: http://bit.ly/PeOZsJ From mdounin at mdounin.ru Fri Oct 19 12:45:39 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 19 Oct 2012 16:45:39 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtC30YDQsNGH0L3Ri9C5IHNtdHAgcHJveHk=?= In-Reply-To: References: Message-ID: <20121019124539.GI40452@mdounin.ru> Hello! On Fri, Oct 19, 2012 at 01:11:06PM +0300, greenh wrote: > Добрый день > Возникла вот такая задача - на шлюзовом сервере пропускать через себя > всю отправляемую изнутри сети почту (естественно, только не > шифрованную) и разрешать не более чем ограниченное количество, > например 1 письмо в минуту. > И, соответственно, хочется сделать это прозрачно, чтобы пользователям > не пришлось ничего менять и пр. Подскажите, можно ли с помощью nginx > ngx_mail_core_module реализовать такое? Нет. -- Maxim Dounin http://nginx.com/support.html From kav at karagodov.name Fri Oct 19 12:52:17 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Fri, 19 Oct 2012 16:52:17 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtC30YDQsNGH0L3Ri9C5IHNtdHAgcHJveHk=?= In-Reply-To: References: Message-ID: <2C665B98-CF49-4710-94A5-0A9A968F92CC@karagodov.name> как и с недавно обсуждавшейся темой "Настройка mail-proxy" Вам нужен нормальный фаерволл а не велосипед из nginx-а On 19.10.2012, at 14:11, greenh wrote: > Добрый день > Возникла вот такая задача - на шлюзовом сервере пропускать через себя > всю отправляемую изнутри сети почту (естественно, только не > шифрованную) и разрешать не более чем ограниченное количество, > например 1 письмо в минуту. > И, соответственно, хочется сделать это прозрачно, чтобы пользователям > не пришлось ничего менять и пр. Подскажите, можно ли с помощью nginx > ngx_mail_core_module реализовать такое? > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx at anes.su Fri Oct 19 12:58:18 2012 From: nginx at anes.su (Anes Mukhametov) Date: Fri, 19 Oct 2012 16:58:18 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtC30YDQsNGH0L3Ri9C5IHNtdHAgcHJveHk=?= In-Reply-To: <2C665B98-CF49-4710-94A5-0A9A968F92CC@karagodov.name> References: <2C665B98-CF49-4710-94A5-0A9A968F92CC@karagodov.name> Message-ID: <3bf55f3eeb4e51557916f6e5032fc333@logol.ru> Можно фаерволом, а можно на шлюзе поднять smtp сервер, например exim, куда фаерволом перенаправлять всю почту. Можно достаточно гибко настроить ограничения на отправку. Alexey V. Karagodov писал 2012-10-19 16:52: > как и с недавно обсуждавшейся темой "Настройка mail-proxy" Вам нужен > нормальный фаерволл > а не велосипед из nginx-а > > On 19.10.2012, at 14:11, greenh wrote: > >> Добрый день >> Возникла вот такая задача - на шлюзовом сервере пропускать через >> себя >> всю отправляемую изнутри сети почту (естественно, только не >> шифрованную) и разрешать не более чем ограниченное количество, >> например 1 письмо в минуту. >> И, соответственно, хочется сделать это прозрачно, чтобы >> пользователям >> не пришлось ничего менять и пр. Подскажите, можно ли с помощью nginx >> ngx_mail_core_module реализовать такое? >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From kav at karagodov.name Fri Oct 19 12:59:43 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Fri, 19 Oct 2012 16:59:43 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtC30YDQsNGH0L3Ri9C5IHNtdHAgcHJveHk=?= In-Reply-To: <3bf55f3eeb4e51557916f6e5032fc333@logol.ru> References: <2C665B98-CF49-4710-94A5-0A9A968F92CC@karagodov.name> <3bf55f3eeb4e51557916f6e5032fc333@logol.ru> Message-ID: <8B11D784-0BD5-4390-B52A-A88B2F0432C0@karagodov.name> On 19.10.2012, at 16:58, Anes Mukhametov wrote: > Можно фаерволом, а можно на шлюзе поднять smtp сервер, например exim, куда фаерволом перенаправлять прозрачно? > всю почту. Можно достаточно гибко настроить ограничения на отправку. > > Alexey V. Karagodov писал 2012-10-19 16:52: >> как и с недавно обсуждавшейся темой "Настройка mail-proxy" Вам нужен >> нормальный фаерволл >> а не велосипед из nginx-а >> >> On 19.10.2012, at 14:11, greenh wrote: >> >>> Добрый день >>> Возникла вот такая задача - на шлюзовом сервере пропускать через себя >>> всю отправляемую изнутри сети почту (естественно, только не >>> шифрованную) и разрешать не более чем ограниченное количество, >>> например 1 письмо в минуту. >>> И, соответственно, хочется сделать это прозрачно, чтобы пользователям >>> не пришлось ничего менять и пр. Подскажите, можно ли с помощью nginx >>> ngx_mail_core_module реализовать такое? >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru at nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From greenh at gmail.com Fri Oct 19 13:09:29 2012 From: greenh at gmail.com (greenh) Date: Fri, 19 Oct 2012 16:09:29 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtC30YDQsNGH0L3Ri9C5IHNtdHAgcHJveHk=?= In-Reply-To: <8B11D784-0BD5-4390-B52A-A88B2F0432C0@karagodov.name> References: <2C665B98-CF49-4710-94A5-0A9A968F92CC@karagodov.name> <3bf55f3eeb4e51557916f6e5032fc333@logol.ru> <8B11D784-0BD5-4390-B52A-A88B2F0432C0@karagodov.name> Message-ID: 19 октября 2012 г., 15:59 пользователь Alexey V. Karagodov написал: > > On 19.10.2012, at 16:58, Anes Mukhametov wrote: > >> Можно фаерволом, а можно на шлюзе поднять smtp сервер, например exim, куда фаерволом перенаправлять > прозрачно? С учетом возможной авторизации НА сервере-получателе? > >> всю почту. Можно достаточно гибко настроить ограничения на отправку. >> >> Alexey V. Karagodov писал 2012-10-19 16:52: >>> как и с недавно обсуждавшейся темой "Настройка mail-proxy" Вам нужен >>> нормальный фаерволл >>> а не велосипед из nginx-а >>> >>> On 19.10.2012, at 14:11, greenh wrote: >>> >>>> Добрый день >>>> Возникла вот такая задача - на шлюзовом сервере пропускать через себя >>>> всю отправляемую изнутри сети почту (естественно, только не >>>> шифрованную) и разрешать не более чем ограниченное количество, >>>> например 1 письмо в минуту. >>>> И, соответственно, хочется сделать это прозрачно, чтобы пользователям >>>> не пришлось ничего менять и пр. Подскажите, можно ли с помощью nginx >>>> ngx_mail_core_module реализовать такое? >>>> _______________________________________________ >>>> nginx-ru mailing list >>>> nginx-ru at nginx.org >>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru at nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx at anes.su Fri Oct 19 13:10:20 2012 From: nginx at anes.su (Anes Mukhametov) Date: Fri, 19 Oct 2012 17:10:20 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtC30YDQsNGH0L3Ri9C5IHNtdHAgcHJveHk=?= Message-ID: <55dd8c4639831396fe2b145cad95a605@logol.ru> Просмотрел. Разумеется, не прозрачно. Alexey V. Karagodov писал 2012-10-19 16:59: > On 19.10.2012, at 16:58, Anes Mukhametov wrote: > >> Можно фаерволом, а можно на шлюзе поднять smtp сервер, например >> exim, куда фаерволом перенаправлять > прозрачно? > >> всю почту. Можно достаточно гибко настроить ограничения на >> отправку. >> >> Alexey V. Karagodov писал 2012-10-19 16:52: >>> как и с недавно обсуждавшейся темой "Настройка mail-proxy" Вам >>> нужен >>> нормальный фаерволл >>> а не велосипед из nginx-а >>> >>> On 19.10.2012, at 14:11, greenh wrote: >>> >>>> Добрый день >>>> Возникла вот такая задача - на шлюзовом сервере пропускать через >>>> себя >>>> всю отправляемую изнутри сети почту (естественно, только не >>>> шифрованную) и разрешать не более чем ограниченное количество, >>>> например 1 письмо в минуту. >>>> И, соответственно, хочется сделать это прозрачно, чтобы >>>> пользователям >>>> не пришлось ничего менять и пр. Подскажите, можно ли с помощью >>>> nginx >>>> ngx_mail_core_module реализовать такое? >>>> _______________________________________________ >>>> nginx-ru mailing list >>>> nginx-ru at nginx.org >>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru at nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From kav at karagodov.name Fri Oct 19 13:12:58 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Fri, 19 Oct 2012 17:12:58 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtC30YDQsNGH0L3Ri9C5IHNtdHAgcHJveHk=?= In-Reply-To: <55dd8c4639831396fe2b145cad95a605@logol.ru> References: <55dd8c4639831396fe2b145cad95a605@logol.ru> Message-ID: <109AE988-2210-404F-9889-1DF441255AF9@karagodov.name> вот тут и поможет что-нить заточенное, с анализатором трафика On 19.10.2012, at 17:10, Anes Mukhametov wrote: > Просмотрел. Разумеется, не прозрачно. > Alexey V. Karagodov писал 2012-10-19 16:59: >> On 19.10.2012, at 16:58, Anes Mukhametov wrote: >> >>> Можно фаерволом, а можно на шлюзе поднять smtp сервер, например exim, куда фаерволом перенаправлять >> прозрачно? >> >>> всю почту. Можно достаточно гибко настроить ограничения на отправку. >>> >>> Alexey V. Karagodov писал 2012-10-19 16:52: >>>> как и с недавно обсуждавшейся темой "Настройка mail-proxy" Вам нужен >>>> нормальный фаерволл >>>> а не велосипед из nginx-а >>>> >>>> On 19.10.2012, at 14:11, greenh wrote: >>>> >>>>> Добрый день >>>>> Возникла вот такая задача - на шлюзовом сервере пропускать через себя >>>>> всю отправляемую изнутри сети почту (естественно, только не >>>>> шифрованную) и разрешать не более чем ограниченное количество, >>>>> например 1 письмо в минуту. >>>>> И, соответственно, хочется сделать это прозрачно, чтобы пользователям >>>>> не пришлось ничего менять и пр. Подскажите, можно ли с помощью nginx >>>>> ngx_mail_core_module реализовать такое? >>>>> _______________________________________________ >>>>> nginx-ru mailing list >>>>> nginx-ru at nginx.org >>>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>>> >>>> _______________________________________________ >>>> nginx-ru mailing list >>>> nginx-ru at nginx.org >>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru at nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Fri Oct 19 13:19:26 2012 From: nginx-forum at nginx.us (ProxyKZ) Date: Fri, 19 Oct 2012 09:19:26 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC80LXQtNC70LXQvdC90L4g0L7RgtC00LDQtdGCINGB0YLQsNGC?= =?UTF-8?B?0LjQutGDINC80LXQtNC70LXQvdC90YvQvCDQutC70LjQtdC90YLQsNC8IQ==?= In-Reply-To: References: Message-ID: <70cc18238486a238efa2cc7b17ccf1d3.NginxMailingListRussian@forum.nginx.org> Добавил в конфиг nginx-а ключ proxy_buffering off; и апачу стало труднее, он кол-во процессов стал генерировать больше и съедать память выделенную ему в MaxClient раньше, но зато nginx стал отдавать быстрее - в целом быстрее немного заработал сервер, завтра буду пробовать памяти добавить, включать и увеличивать кеширование и буферизацию. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231602,232037#msg-232037 From nginx-forum at nginx.us Fri Oct 19 13:44:50 2012 From: nginx-forum at nginx.us (gatesat) Date: Fri, 19 Oct 2012 09:44:50 -0400 Subject: =?UTF-8?B?0J/RgNC+0LHQu9C10LzQsCBuZ2lueCAxLjIuNCttb2QgemlwK3NzbA==?= Message-ID: <0b52fd289086ed94708966303a3e0c11.NginxMailingListRussian@forum.nginx.org> Всем привет ! Столкнулся с проблемой, никак не могу понять в чем причина. Суть проблемы - nginx не хочет отдавать через mod_zip по https-у то, что я хочу забрать =) По http отдает. Схема стандартная - запрос к бэкенду, который возвращает нам Content-Type: application/zip Content-Length: 126488906 Connection: keep-alive Accept-Ranges: bytes Content-Disposition: attachment; filename="Arch.zip"; X-Archive-Files: zip Cache-Control: max-age=0 После чего конкретно на этом архиве я качаю до 46,9-47,1 МБ. после чего у меня все отваливается с такими вот записями в логе 012/10/19 16:06:04 [debug] 32002#0: *102 http finalize request: 0, "/files/Hollywood.jpg?" a:1, c:2 2012/10/19 16:06:04 [debug] 32002#0: *102 http wake parent request: "/rest/download/stream/507d6aaae4b0be1d4bcd3f8a" 2012/10/19 16:06:04 [debug] 32002#0: *102 http posted request: "/rest/download/stream/507d6aaae4b0be1d4bcd3f8a" 2012/10/19 16:06:04 [debug] 32002#0: *102 http writer handler: "/rest/download/stream/507d6aaae4b0be1d4bcd3f8a?" 2012/10/19 16:06:04 [debug] 32002#0: *102 http output filter "/rest/download/stream/507d6aaae4b0be1d4bcd3f8a" 2012/10/19 16:06:04 [debug] 32002#0: *102 http copy filter: "/rest/download/stream/507d6aaae4b0be1d4bcd3f8a" 2012/10/19 16:06:04 [debug] 32002#0: *102 mod_zip: entering main request body filter 2012/10/19 16:06:04 [debug] 32002#0: *102 mod_zip: restarting subrequests 2012/10/19 16:06:04 [debug] 32002#0: *102 mod_zip: sending pieces, starting with piece 8 of total 21 2012/10/19 16:06:04 [debug] 32002#0: *102 mod_zip: no ranges / sending piece type 0 2012/10/19 16:06:04 [debug] 32002#0: *102 image filter 2012/10/19 16:06:04 [debug] 32002#0: *102 xslt filter body 2012/10/19 16:06:04 [debug] 32002#0: *102 http postpone filter "/rest/download/stream/507d6aaae4b0be1d4bcd3f8a" 0000000001F355A0 2012/10/19 16:06:04 [debug] 32002#0: *102 write new buf t:0 f:0 0000000000000000, pos 0000000001F35610, size: 107 file: 0, size: 0 2012/10/19 16:06:04 [debug] 32002#0: *102 http write filter: l:0 f:0 s:107 2012/10/19 16:06:04 [debug] 32002#0: *102 mod_zip: no ranges / sending piece type 1 2012/10/19 16:06:04 [debug] 32002#0: *102 mod_zip: subrequest for "/files/Info.txt?" 2012/10/19 16:06:04 [debug] 32002#0: *102 mod_zip: have a wait context for "/files/Hollywood.jpg?" 2012/10/19 16:06:04 [debug] 32002#0: *102 mod_zip: wait "/files/Hollywood.jpg?" done 2012/10/19 16:06:04 [debug] 32002#0: *102 posix_memalign: 0000000001F88910:4096 @16 2012/10/19 16:06:04 [debug] 32002#0: *102 http subrequest "/files/Info.txt?" 2012/10/19 16:06:04 [debug] 32002#0: *102 mod_zip: subrequest for "/files/Info.txt?" result 0, allocating some mem on main request's pool 2012/10/19 16:06:04 [debug] 32002#0: *102 mod_zip: subrequest for "/files/Info.txt?" result 0 2012/10/19 16:06:04 [debug] 32002#0: *102 mod_zip: sent 2 pieces, last rc = -2 2012/10/19 16:06:04 [debug] 32002#0: *102 http copy filter: -2 "/rest/download/stream/507d6aaae4b0be1d4bcd3f8a" 2012/10/19 16:06:04 [debug] 32002#0: *102 http writer output filter: -2, "/rest/download/stream/507d6aaae4b0be1d4bcd3f8a" 2012/10/19 16:06:04 [debug] 32002#0: *102 event timer del: 14: 1350652024415 2012/10/19 16:06:04 [debug] 32002#0: *102 event timer add: 14: 60000:1350652024804 2012/10/19 16:06:04 [debug] 32002#0: *102 http posted request: "/files/Info.txt?" 2012/10/19 16:06:04 [debug] 32002#0: *102 rewrite phase: 1 2012/10/19 16:06:04 [debug] 32002#0: *102 test location: "/rest/download/stream/" 2012/10/19 16:06:04 [debug] 32002#0: *102 test location: "/files" 2012/10/19 16:06:04 [debug] 32002#0: *102 using configuration "/files" 2012/10/19 16:06:04 [debug] 32002#0: *102 http cl:-1 max:2097152000 2012/10/19 16:06:04 [debug] 32002#0: *102 rewrite phase: 3 2012/10/19 16:06:04 [debug] 32002#0: *102 rewrite phase: 4 2012/10/19 16:06:04 [debug] 32002#0: *102 post rewrite phase: 5 2012/10/19 16:06:04 [debug] 32002#0: *102 generic phase: 6 2012/10/19 16:06:04 [debug] 32002#0: *102 generic phase: 7 2012/10/19 16:06:04 [debug] 32002#0: *102 generic phase: 8 2012/10/19 16:06:04 [debug] 32002#0: *102 content phase: 14 2012/10/19 16:06:04 [debug] 32002#0: *102 content phase: 15 2012/10/19 16:06:04 [debug] 32002#0: *102 content phase: 16 2012/10/19 16:06:04 [debug] 32002#0: *102 content phase: 17 2012/10/19 16:06:04 [debug] 32002#0: *102 content phase: 18 2012/10/19 16:06:04 [debug] 32002#0: *102 content phase: 19 2012/10/19 16:06:04 [debug] 32002#0: *102 content phase: 20 2012/10/19 16:06:04 [debug] 32002#0: *102 http filename: "/srv/files/Info.txt" 2012/10/19 16:06:04 [debug] 32002#0: *102 add cleanup: 0000000001F89020 2012/10/19 16:06:04 [debug] 32002#0: *102 http static fd: 38 2012/10/19 16:06:04 [debug] 32002#0: *102 mod_zip: entering header filter 2012/10/19 16:06:04 [debug] 32002#0: *102 uploadprogress error-tracker error: 0 2012/10/19 16:06:04 [debug] 32002#0: *102 xslt filter header 2012/10/19 16:06:04 [debug] 32002#0: *102 charset: "" > "UTF-8" 2012/10/19 16:06:04 [debug] 32002#0: *102 http output filter "/files/Info.txt?" 2012/10/19 16:06:04 [debug] 32002#0: *102 http copy filter: "/files/Info.txt?" 2012/10/19 16:06:04 [debug] 32002#0: *102 read: 38, 0000000001F89250, 1267, 0 2012/10/19 16:06:04 [debug] 32002#0: *102 mod_zip: entering subrequest body filter 2012/10/19 16:06:04 [debug] 32002#0: *102 mod_zip: No range for subrequest to satisfy 2012/10/19 16:06:04 [debug] 32002#0: *102 image filter 2012/10/19 16:06:04 [debug] 32002#0: *102 xslt filter body 2012/10/19 16:06:04 [debug] 32002#0: *102 http postpone filter "/files/Info.txt?" 0000000001F89748 2012/10/19 16:06:04 [debug] 32002#0: *102 write old buf t:0 f:0 0000000000000000, pos 0000000001F35610, size: 107 file: 0, size: 0 2012/10/19 16:06:04 [debug] 32002#0: *102 write new buf t:1 f:1 0000000001F89250, pos 0000000001F89250, size: 1267 file: 0, size: 1267 2012/10/19 16:06:04 [debug] 32002#0: *102 http write filter: l:0 f:0 s:1374 2012/10/19 16:06:04 [debug] 32002#0: *102 http copy filter: 0 "/files/Info.txt?" 2012/10/19 16:06:04 [debug] 32002#0: *102 http finalize request: 0, "/files/Info.txt?" a:1, c:2 2012/10/19 16:06:04 [debug] 32002#0: *102 http wake parent request: "/rest/download/stream/507d6aaae4b0be1d4bcd3f8a" 2012/10/19 16:06:04 [debug] 32002#0: *102 http posted request: "/rest/download/stream/507d6aaae4b0be1d4bcd3f8a" 2012/10/19 16:06:04 [debug] 32002#0: *102 http writer handler: "/rest/download/stream/507d6aaae4b0be1d4bcd3f8a" 2012/10/19 16:06:04 [debug] 32002#0: *102 http output filter "/rest/download/stream/507d6aaae4b0be1d4bcd3f8a" 2012/10/19 16:06:04 [debug] 32002#0: *102 http copy filter: "/rest/download/stream/507d6aaae4b0be1d4bcd3f8a" 2012/10/19 16:06:04 [debug] 32002#0: *102 mod_zip: entering main request body filter 2012/10/19 16:06:04 [debug] 32002#0: *102 mod_zip: restarting subrequests 2012/10/19 16:06:04 [debug] 32002#0: *102 mod_zip: sending pieces, starting with piece 10 of total 21 2012/10/19 16:06:04 [debug] 32002#0: *102 mod_zip: no ranges / sending piece type 0 2012/10/19 16:06:04 [debug] 32002#0: *102 image filter 2012/10/19 16:06:04 [debug] 32002#0: *102 xslt filter body 2012/10/19 16:06:04 [debug] 32002#0: *102 http postpone filter "/rest/download/stream/507d6aaae4b0be1d4bcd3f8a" 0000000001F89778 2012/10/19 16:06:04 [debug] 32002#0: *102 write old buf t:0 f:0 0000000000000000, pos 0000000001F35610, size: 107 file: 0, size: 0 2012/10/19 16:06:04 [debug] 32002#0: *102 write old buf t:1 f:1 0000000001F89250, pos 0000000001F89250, size: 1267 file: 0, size: 1267 2012/10/19 16:06:04 [debug] 32002#0: *102 write new buf t:0 f:0 0000000000000000, pos 0000000001F897D8, size: 107 file: 0, size: 0 2012/10/19 16:06:04 [debug] 32002#0: *102 http write filter: l:0 f:0 s:1481 2012/10/19 16:06:04 [debug] 32002#0: *102 http write filter limit 0 2012/10/19 16:06:04 [debug] 32002#0: *102 SSL buf copy: 107 2012/10/19 16:06:04 [debug] 32002#0: *102 SSL buf copy: 1267 2012/10/19 16:06:04 [debug] 32002#0: *102 SSL buf copy: 107 2012/10/19 16:06:04 [debug] 32002#0: *102 http write filter 0000000000000000 2012/10/19 16:06:04 [debug] 32002#0: *102 mod_zip: sent 1 pieces, last rc = -2 2012/10/19 16:06:04 [debug] 32002#0: *102 http copy filter: -2 "/rest/download/stream/507d6aaae4b0be1d4bcd3f8a" 2012/10/19 16:06:04 [debug] 32002#0: *102 http writer output filter: -2, "/rest/download/stream/507d6aaae4b0be1d4bcd3f8a" 2012/10/19 16:06:04 [debug] 32002#0: *102 event timer: 14, old: 1350652024804, new: 1350652024804 2012/10/19 16:07:04 [debug] 32002#0: *102 event timer del: 14: 1350652024804 2012/10/19 16:07:04 [debug] 32002#0: *102 http run request: "/rest/download/stream/507d6aaae4b0be1d4bcd3f8a" 2012/10/19 16:07:04 [debug] 32002#0: *102 http writer handler: "/rest/download/stream/507d6aaae4b0be1d4bcd3f8a" 2012/10/19 16:07:04 [info] 32002#0: *102 client timed out (110: Connection timed out) while sending response to client, client: 1.1.1.1, server: srv.dot.com, request: "GET /stream/507d6aaae4b 0be1d4bcd3f8a HTTP/1.1", upstream: "http://8.8.8.8:28888/rest/download/stream/507d6aaae4b0be1d4bcd3f8a", host: "srv3.dot.com:444" 2012/10/19 16:07:04 [debug] 32002#0: *102 http finalize request: 408, "/rest/download/stream/507d6aaae4b0be1d4bcd3f8a" a:1, c:1 2012/10/19 16:07:04 [debug] 32002#0: *102 http terminate request count:1 2012/10/19 16:07:04 [debug] 32002#0: *102 http terminate cleanup count:1 blk:0 2012/10/19 16:07:04 [debug] 32002#0: *102 http posted request: "/rest/download/stream/507d6aaae4b0be1d4bcd3f8a" 2012/10/19 16:07:04 [debug] 32002#0: *102 http terminate handler count:1 2012/10/19 16:07:04 [debug] 32002#0: *102 http request count:1 blk:0 2012/10/19 16:07:04 [debug] 32002#0: *102 http close request 2012/10/19 16:07:04 [debug] 32002#0: *102 http log handler 2012/10/19 16:07:04 [debug] 32002#0: *102 posix_memalign: 0000000001FC44A0:4096 @16 Дальше чистится память Очевидно где-то какой-то таймаут. Вопрос где ? И почему по http такого не наблюдается ? Заранее благодарен. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232039,232039#msg-232039 From nginx-forum at nginx.us Fri Oct 19 14:45:56 2012 From: nginx-forum at nginx.us (MKG) Date: Fri, 19 Oct 2012 10:45:56 -0400 Subject: =?UTF-8?B?UmU6INCd0LDRgdGC0YDQvtC50LrQsCBtYWlsLXByb3h5?= In-Reply-To: <20121018094514.GW40452@mdounin.ru> References: <20121018094514.GW40452@mdounin.ru> Message-ID: <2cc7d02992c50275ddde7c66ede6033e.NginxMailingListRussian@forum.nginx.org> Maxim Dounin Wrote: ------------------------------------------------------- > Патчи, обеспечивающие проксирование SMTP AUTH, у меня где-то > лежат, и если очень хочется - могу выдать. Но мне усиленно > кажется, что вы пытаетесь решать не ту задачу. Максим, выложите пожалуйста эти патчи Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231945,232043#msg-232043 From chipitsine at gmail.com Sat Oct 20 13:43:17 2012 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Sat, 20 Oct 2012 19:43:17 +0600 Subject: =?UTF-8?B?UmU6IE5naW54INC80LXQtNC70LXQvdC90L4g0L7RgtC00LDQtdGCINGB0YLQsNGC?= =?UTF-8?B?0LjQutGDINC80LXQtNC70LXQvdC90YvQvCDQutC70LjQtdC90YLQsNC8IQ==?= In-Reply-To: <70cc18238486a238efa2cc7b17ccf1d3.NginxMailingListRussian@forum.nginx.org> References: <70cc18238486a238efa2cc7b17ccf1d3.NginxMailingListRussian@forum.nginx.org> Message-ID: схема apache+nginx вполне подходит для невысокой нагрузки (впрочем, в этом случае nginx не нужен). может, ну его нафиг apache ? что за приложение развернуто на apache ? 19 октября 2012 г., 19:19 пользователь ProxyKZ написал: > Добавил в конфиг nginx-а ключ proxy_buffering off; и апачу стало труднее, > он > кол-во процессов стал генерировать больше и съедать память выделенную ему в > MaxClient раньше, но зато nginx стал отдавать быстрее - в целом быстрее > немного заработал сервер, завтра буду пробовать памяти добавить, включать и > увеличивать кеширование и буферизацию. > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,231602,232037#msg-232037 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From chipitsine at gmail.com Sat Oct 20 13:52:03 2012 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Sat, 20 Oct 2012 19:52:03 +0600 Subject: =?UTF-8?B?UmU6IE5naW54INC80LXQtNC70LXQvdC90L4g0L7RgtC00LDQtdGCINGB0YLQsNGC?= =?UTF-8?B?0LjQutGDINC80LXQtNC70LXQvdC90YvQvCDQutC70LjQtdC90YLQsNC8IQ==?= In-Reply-To: <70cc18238486a238efa2cc7b17ccf1d3.NginxMailingListRussian@forum.nginx.org> References: <70cc18238486a238efa2cc7b17ccf1d3.NginxMailingListRussian@forum.nginx.org> Message-ID: и, кстати, попробуйте обновиться с версии 0.6.32 до 1.2.4 ? на новых версиях можно включить keep-alive до бекенда, apache будет реже форкаться 19 октября 2012 г., 19:19 пользователь ProxyKZ написал: > Добавил в конфиг nginx-а ключ proxy_buffering off; и апачу стало труднее, > он > кол-во процессов стал генерировать больше и съедать память выделенную ему в > MaxClient раньше, но зато nginx стал отдавать быстрее - в целом быстрее > немного заработал сервер, завтра буду пробовать памяти добавить, включать и > увеличивать кеширование и буферизацию. > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,231602,232037#msg-232037 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From pavel2000 at ngs.ru Sun Oct 21 07:44:17 2012 From: pavel2000 at ngs.ru (Pavel V.) Date: Sun, 21 Oct 2012 14:44:17 +0700 Subject: =?UTF-8?B?UmU6IE5naW54INC80LXQtNC70LXQvdC90L4g0L7RgtC00LDQtdGCINGB0YLQsNGC?= =?UTF-8?B?0LjQutGDINC80LXQtNC70LXQvdC90YvQvCDQutC70LjQtdC90YLQsNC8IQ==?= In-Reply-To: References: <70cc18238486a238efa2cc7b17ccf1d3.NginxMailingListRussian@forum.nginx.org> Message-ID: <64617765.20121021144417@ngs.ru> Здравствуйте, Илья. >схема apache+nginx вполне подходит для невысокой нагрузки (впрочем, в этом случае nginx не нужен). Нагрузка - в каких вы её величинах считаете, и какие значения пороговые для определения - высокая она или нет? При каких значениях начинает быть нужен nginx? >может, ну его нафиг apache ? что за приложение развернуто на apache ? А может ну его нафиг давать холиварные советы, если не знаете численных значений числа соединений к серверу, числа запросов/с к статическому контенту, числа запросов/с к динамическому контенту веб-приложения? > и, кстати, попробуйте обновиться с версии 0.6.32 до 1.2.4 ? на новых версиях можно включить > keep-alive до бекенда, apache будет реже форкаться Поясните, как включение-выключение кипэлайва влияет на форки апача. Как по мне - никак не влияет. -- Мой совет тредстартеру: настройте графики происходящего на сервере. Я использую для этого Collectd. Графики: nginx, apache, mysql (если используете),cpu, interfaces, disk, memory, swap - просто обязательны для понимания происходящего при работе сервера и для понимания результатов изменения настроек. Без графиков, всё что вы делаете - шаманство. -- С уважением, Pavel mailto:pavel2000 at ngs.ru From pavel2000 at ngs.ru Sun Oct 21 08:48:59 2012 From: pavel2000 at ngs.ru (Pavel V.) Date: Sun, 21 Oct 2012 15:48:59 +0700 Subject: =?UTF-8?B?UmU6IE5naW54INC80LXQtNC70LXQvdC90L4g0L7RgtC00LDQtdGCINGB0YLQsNGC?= =?UTF-8?B?0LjQutGDINC80LXQtNC70LXQvdC90YvQvCDQutC70LjQtdC90YLQsNC8IQ==?= In-Reply-To: <64617765.20121021144417@ngs.ru> References: <70cc18238486a238efa2cc7b17ccf1d3.NginxMailingListRussian@forum.nginx.org> <64617765.20121021144417@ngs.ru> Message-ID: <17510216241.20121021154859@ngs.ru> Здравствуйте. > Мой совет тредстартеру: настройте графики происходящего на сервере. Я использую для этого Collectd. > Графики: nginx, apache, mysql (если используете),cpu, interfaces, disk, memory, swap - просто > обязательны для понимания происходящего при работе сервера и для понимания результатов изменения > настроек. Без графиков, всё что вы делаете - шаманство. https://collectd.org/wiki/index.php/Plugin:Tail/Config#Nginx_-_backend_stats - по указанному примеру настройте логирование и рисование графиков времени ответа от сервера и размера ответа от апача ($upstream_response_length). Может там у вас апач файлами плюется? -- С уважением, Pavel mailto:pavel2000 at ngs.ru From umask at yandex.ru Sun Oct 21 09:45:17 2012 From: umask at yandex.ru (umask) Date: Sun, 21 Oct 2012 13:45:17 +0400 Subject: =?UTF-8?B?ci0+Y29ubmVjdGlvbi0+bnVtYmVyINCyINCy0YHRgtGA0L7QtdC90L7QvCDQv9C1?= =?UTF-8?B?0YDQu9C1?= Message-ID: <1359391350812717@web2d.yandex.ru> Добрый день, а подскажите, как можно во встроеном перле обратиться к значению r->connection->number? Мне нужно получить текущее значение счётчика соединений nginx и текущее значение счётчика запросов. From nginx-forum at nginx.us Tue Oct 23 05:29:23 2012 From: nginx-forum at nginx.us (dm) Date: Tue, 23 Oct 2012 01:29:23 -0400 Subject: =?UTF-8?B?0L7RiNC40LHQutCwINC/0YDQuCByZWRpcmVjdCBodHRwIHRvIGh0dHBz?= Message-ID: <1dd6b12f8eaf1a0841aaad0480e6112a.NginxMailingListRussian@forum.nginx.org> у меня ubuntu 12.04 nginx 1.2.3 из ppa суть хочу чтоб траф ходил по https делаю редирект http->https server { listen [::]:80 default_server; rewrite ^(.*) https://$server_name$1 permanent; } все работает, только в ссылках аналогичных /torrent/ (также в /12345678) - любые 8 символов обрезается имя сервера при редиректе, т.е получаю https://torrent (https://0.188.97.78 для /12345678) может больше, не проверял... Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232098,232098#msg-232098 From nginx-forum at nginx.us Tue Oct 23 05:30:53 2012 From: nginx-forum at nginx.us (dm) Date: Tue, 23 Oct 2012 01:30:53 -0400 Subject: =?UTF-8?B?UmU6INC+0YjQuNCx0LrQsCDQv9GA0LggcmVkaXJlY3QgaHR0cCB0byBodHRwcw==?= In-Reply-To: <1dd6b12f8eaf1a0841aaad0480e6112a.NginxMailingListRussian@forum.nginx.org> References: <1dd6b12f8eaf1a0841aaad0480e6112a.NginxMailingListRussian@forum.nginx.org> Message-ID: <554c2e330e55a5924a8ce531f7f2c693.NginxMailingListRussian@forum.nginx.org> добавлю, может важно, имя сервера - ip Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232098,232099#msg-232099 From nginx-forum at nginx.us Tue Oct 23 05:37:30 2012 From: nginx-forum at nginx.us (dm) Date: Tue, 23 Oct 2012 01:37:30 -0400 Subject: =?UTF-8?B?UmU6INC+0YjQuNCx0LrQsCDQv9GA0LggcmVkaXJlY3QgaHR0cCB0byBodHRwcw==?= In-Reply-To: <554c2e330e55a5924a8ce531f7f2c693.NginxMailingListRussian@forum.nginx.org> References: <1dd6b12f8eaf1a0841aaad0480e6112a.NginxMailingListRussian@forum.nginx.org> <554c2e330e55a5924a8ce531f7f2c693.NginxMailingListRussian@forum.nginx.org> Message-ID: <57db80f53558c92eb74e71305b7c0c45.NginxMailingListRussian@forum.nginx.org> прошу прощения, все заработало. может в браузере что было. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232098,232100#msg-232100 From andrey at kopeyko.ru Tue Oct 23 06:20:25 2012 From: andrey at kopeyko.ru (Andrey Kopeyko) Date: Tue, 23 Oct 2012 10:20:25 +0400 Subject: =?UTF-8?B?0J7Qv9GA0LXQtNC10LvQtdC90LjQtSBTUERZIA==?= Message-ID: <70799ff2-6885-411c-965a-557bebf97447@email.android.com> Добрый день, Валентин! Большое спасибо за вчерашний интересный доклад. Подскажите, как на сервере можно определить что клиент воспользовался SPDY? Может, какую переменную/флажок можно в лог записать? -- Best regards, Andrey Kopeyko From andrey at kopeyko.ru Tue Oct 23 06:39:08 2012 From: andrey at kopeyko.ru (Andrey Kopeyko) Date: Tue, 23 Oct 2012 10:39:08 +0400 Subject: =?UTF-8?B?UmU6INC+0YjQuNCx0LrQsCDQv9GA0LggcmVkaXJlY3QgaHR0cCB0byBodHRwcw==?= In-Reply-To: <1dd6b12f8eaf1a0841aaad0480e6112a.NginxMailingListRussian@forum.nginx.org> References: <1dd6b12f8eaf1a0841aaad0480e6112a.NginxMailingListRussian@forum.nginx.org> Message-ID: dm написал(а): >у меня ubuntu 12.04 nginx 1.2.3 из ppa >суть хочу чтоб траф ходил по https делаю редирект http->https > >server { > listen [::]:80 default_server; > rewrite ^(.*) https://$server_name$1 permanent; >} > >все работает, только в ссылках аналогичных /torrent/ (также в >/12345678) - >любые 8 символов обрезается имя сервера при редиректе, >т.е получаю >https://torrent (https://0.188.97.78 для /12345678) Вы не передаёте заголовок Host: - потому переменая $server_name получает пустое значение. -- Отправлено через К-9 Mail. Извините за краткость, пожалуйста. From maxim at nginx.com Tue Oct 23 06:58:24 2012 From: maxim at nginx.com (Maxim Konovalov) Date: Tue, 23 Oct 2012 10:58:24 +0400 Subject: =?UTF-8?B?UmU6INCe0L/RgNC10LTQtdC70LXQvdC40LUgU1BEWQ==?= In-Reply-To: <70799ff2-6885-411c-965a-557bebf97447@email.android.com> References: <70799ff2-6885-411c-965a-557bebf97447@email.android.com> Message-ID: <50864010.90103@nginx.com> Приветствую, On 10/23/12 10:20 AM, Andrey Kopeyko wrote: > Добрый день, Валентин! > > Большое спасибо за вчерашний интересный доклад. > > Подскажите, как на сервере можно определить что клиент воспользовался SPDY? Может, какую переменную/флажок можно в лог записать? > http://nginx.org/patches/spdy/README.txt :SPDY variables: : : - $spdy : version of SPDY protocol if the request came via SPDY : (currently "2"), or empty value; : : - $spdy_request_priority : priority of the stream, if the request came via SPDY. Эти переменные можно писать в лог. -- Maxim Konovalov +7 (910) 4293178 http://nginx.com/support.html From universite at ukr.net Tue Oct 23 12:41:27 2012 From: universite at ukr.net (Vladislav Prodan) Date: Tue, 23 Oct 2012 15:41:27 +0300 Subject: =?UTF-8?Q?nginx_+_django_=D0=BD=D0=B0_FreeBSD?= Message-ID: <83074.1350996087.3823791308213387264@ffe15.ukr.net> Подскажите, с помощью чего обрабатывать питоновские скрипты? www/uwsgi ? -- Vladislav V. Prodan System & Network Administrator http://support.od.ua +380 67 4584408, +380 99 4060508 VVP88-RIPE From rush.zlo at gmail.com Tue Oct 23 12:46:47 2012 From: rush.zlo at gmail.com (=?UTF-8?B?0JXQstCz0LXQvdC40LkgJ1J1c2gnINCd0LXQv9C+0LzQvdGP0YnQuNC5?=) Date: Tue, 23 Oct 2012 16:46:47 +0400 Subject: =?UTF-8?Q?Re=3A_nginx_+_django_=D0=BD=D0=B0_FreeBSD?= In-Reply-To: <83074.1350996087.3823791308213387264@ffe15.ukr.net> References: <83074.1350996087.3823791308213387264@ffe15.ukr.net> Message-ID: Приложения хостить удобнее всего с помощью wsgi. Скрипты наверно проще запускать через CGI. 23 октября 2012 г., 16:41 пользователь Vladislav Prodan написал: > > Подскажите, с помощью чего обрабатывать питоновские скрипты? www/uwsgi ? > > > -- > Vladislav V. Prodan > System & Network Administrator > http://support.od.ua > +380 67 4584408, +380 99 4060508 > VVP88-RIPE > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Cogito ergo sum From rush.zlo at gmail.com Tue Oct 23 12:47:56 2012 From: rush.zlo at gmail.com (=?UTF-8?B?0JXQstCz0LXQvdC40LkgJ1J1c2gnINCd0LXQv9C+0LzQvdGP0YnQuNC5?=) Date: Tue, 23 Oct 2012 16:47:56 +0400 Subject: =?UTF-8?Q?Re=3A_nginx_+_django_=D0=BD=D0=B0_FreeBSD?= In-Reply-To: References: <83074.1350996087.3823791308213387264@ffe15.ukr.net> Message-ID: вместо wsgi конечно читать uwsgi, простите. Так же не распарсил насчёт "обрабатывать" - что вы с ними такое хотите делать - в байт-код компилить или на ошибки проверять? 23 октября 2012 г., 16:46 пользователь Евгений 'Rush' Непомнящий написал: > Приложения хостить удобнее всего с помощью wsgi. Скрипты наверно проще > запускать через CGI. > > 23 октября 2012 г., 16:41 пользователь Vladislav Prodan > написал: >> >> Подскажите, с помощью чего обрабатывать питоновские скрипты? www/uwsgi ? >> >> >> -- >> Vladislav V. Prodan >> System & Network Administrator >> http://support.od.ua >> +380 67 4584408, +380 99 4060508 >> VVP88-RIPE >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > -- > Cogito ergo sum -- Cogito ergo sum From universite at ukr.net Tue Oct 23 12:50:18 2012 From: universite at ukr.net (Vladislav Prodan) Date: Tue, 23 Oct 2012 15:50:18 +0300 Subject: =?UTF-8?Q?Re=5B2=5D=3A_nginx_+_django_=D0=BD=D0=B0_FreeBSD?= In-Reply-To: References: <83074.1350996087.3823791308213387264@ffe15.ukr.net> Message-ID: <62324.1350996618.15288750890799661056@ffe8.ukr.net> --- Исходное сообщение --- От кого: "Евгений 'Rush' Непомнящий" Кому: nginx-ru at nginx.org Дата: 23 октября 2012, 15:46:59 Тема: Re: nginx + django на FreeBSD > Приложения хостить удобнее всего с помощью wsgi. # whereis wsgi wsgi: /usr/ports/www/nginx/work/passenger-3.0.17/lib/phusion_passenger/wsgi Через это? > > 23 октября 2012 г., 16:41 пользователь Vladislav Prodan > написал: > > > > Подскажите, с помощью чего обрабатывать питоновские скрипты? www/uwsgi ? > > -- Vladislav V. Prodan System & Network Administrator http://support.od.ua +380 67 4584408, +380 99 4060508 VVP88-RIPE From ne at vbart.ru Tue Oct 23 12:52:14 2012 From: ne at vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Tue, 23 Oct 2012 16:52:14 +0400 Subject: =?UTF-8?Q?Re=3A_nginx_+_django_=D0=BD=D0=B0_FreeBSD?= In-Reply-To: <83074.1350996087.3823791308213387264@ffe15.ukr.net> References: <83074.1350996087.3823791308213387264@ffe15.ukr.net> Message-ID: <201210231652.14442.ne@vbart.ru> On Tuesday 23 October 2012 16:41:27 Vladislav Prodan wrote: > Подскажите, с помощью чего обрабатывать питоновские скрипты? www/uwsgi ? uWSGI отличный вариант. Можно ещё flup (www/py-flup), он попроще. -- Валентин Бартенев http://nginx.com/support.html http://nginx.org/en/donation.html From nginx-forum at nginx.us Tue Oct 23 14:24:31 2012 From: nginx-forum at nginx.us (3aB}{o3) Date: Tue, 23 Oct 2012 10:24:31 -0400 Subject: phpmyadmin 403 forbidden In-Reply-To: References: Message-ID: Ребят помогите, у меня такая же ошибка ####################################################################### # # This is the main Nginx configuration file. # # More information about the configuration options is available on # * the English wiki - http://wiki.nginx.org/Main # * the Russian documentation - http://sysoev.ru/nginx/ # ####################################################################### #---------------------------------------------------------------------- # Main Module - directives that cover basic functionality # # http://wiki.nginx.org/NginxHttpMainModule # #---------------------------------------------------------------------- user nginx; worker_processes 1; error_log /var/log/nginx/error.log; #error_log /var/log/nginx/error.log notice; #error_log /var/log/nginx/error.log info; pid /var/run/nginx.pid; #---------------------------------------------------------------------- # Events Module # # http://wiki.nginx.org/NginxHttpEventsModule # #---------------------------------------------------------------------- events { worker_connections 1024; } #---------------------------------------------------------------------- # HTTP Core Module # # http://wiki.nginx.org/NginxHttpCoreModule # #---------------------------------------------------------------------- http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; # # The default server # server { listen 80; server_name _; #charset koi8-r; #access_log logs/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } error_page 404 /404.html; location = /404.html { root /usr/share/nginx/html; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin$fastcgi_script_name; include fastcgi_params; } # Load config files from the /etc/nginx/conf.d directory include /etc/nginx/conf.d/*.conf; } } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,229925,232114#msg-232114 From trent.clainor at gmail.com Tue Oct 23 14:45:21 2012 From: trent.clainor at gmail.com (Albert Mikhaylov) Date: Tue, 23 Oct 2012 18:45:21 +0400 Subject: =?UTF-8?Q?Re=3A_nginx_+_django_=D0=BD=D0=B0_FreeBSD?= In-Reply-To: <201210231652.14442.ne@vbart.ru> References: <83074.1350996087.3823791308213387264@ffe15.ukr.net> <201210231652.14442.ne@vbart.ru> Message-ID: 23 октября 2012 г., 16:52 пользователь Валентин Бартенев написал: > On Tuesday 23 October 2012 16:41:27 Vladislav Prodan wrote: > > Подскажите, с помощью чего обрабатывать питоновские скрипты? www/uwsgi ? > > uWSGI отличный вариант. Можно ещё flup (www/py-flup), он попроще. > http://projects.unbit.it/uwsgi/wiki/Example вот тут под многие фрейворки показано, как под nginx поднять обработку -------------- next part -------------- An HTML attachment was scrubbed... URL: From senty at yandex.ru Wed Oct 24 08:59:16 2012 From: senty at yandex.ru (=?koi8-r?B?98nUwczJyiDzxc7U0cvP1w==?=) Date: Wed, 24 Oct 2012 12:59:16 +0400 Subject: =?UTF-8?B?UmVkaXJlY3QgMzAxINCx0L7Qu9GM0YjQvtCz0L4g0LrQvtC70LjRh9C10YHRgtCy?= =?UTF-8?B?0LAg0LDQtNGA0LXRgdC+0LI=?= In-Reply-To: References: Message-ID: <664961351069156@web30e.yandex.ru> Здравствуйте! Помогите пожалуйста. Сейчас на сайте адреса вида: site.ru/catalog/cat1/subcat1/123.html site.ru/catalog/cat2/subcat2/123.html и т.д. (порядка 2 тыс.) Как их все пере направить на market.site.ru или на site.ru/market/ с возвращением 301 кода? Спасибо! ------------------------------------------- Виталий From mdounin at mdounin.ru Wed Oct 24 09:07:02 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Wed, 24 Oct 2012 13:07:02 +0400 Subject: =?UTF-8?B?UmU6IHtuLG19IHF1YW50aWZpZXIg0LIgcmVnZXhwPw==?= In-Reply-To: <20121011181308.GA6687@external.screwed.box> References: <20121011181308.GA6687@external.screwed.box> Message-ID: <20121024090702.GY40452@mdounin.ru> Hello! On Thu, Oct 11, 2012 at 10:13:09PM +0400, Peter Vereshagin wrote: > Hello. > > Хочется применить это из perlre: > > Quantifiers > > [..] > > {n,m} Match at least n but not more than m times > > Делаю > > location ~ ^/product(/.+\.[\w\d]\{1,5\})$ { > return 302 $1; > } > > не попадает. Попадает так: > > location ~ ^/product(/.+\.[\w\d]+)$ { > return 302 $1; > } > > но нам туда не надо. (c) > > Вопрос: Как правильно экранировать квантификаторы такого вида в конфиге nginx? > Если не экранировать совсем, то ошибается парсинг. ;) Правильный подход документирован тут: http://nginx.org/ru/docs/http/ngx_http_rewrite_module.html#rewrite Цитата: Если в регулярном выражении встречаются символы ?}? или ?;?, то всё выражение следует заключить в одинарные или двойные кавычки. -- Maxim Dounin http://nginx.com/support.html From igor at sysoev.ru Wed Oct 24 09:07:33 2012 From: igor at sysoev.ru (Igor Sysoev) Date: Wed, 24 Oct 2012 13:07:33 +0400 Subject: =?UTF-8?B?UmU6IFJlZGlyZWN0IDMwMSDQsdC+0LvRjNGI0L7Qs9C+INC60L7Qu9C40YfQtdGB?= =?UTF-8?B?0YLQstCwINCw0LTRgNC10YHQvtCy?= In-Reply-To: <664961351069156@web30e.yandex.ru> References: <664961351069156@web30e.yandex.ru> Message-ID: <540F2266-2EF0-4053-960F-EA2D31350B7C@sysoev.ru> On Oct 24, 2012, at 12:59 , Виталий Сентяков wrote: > Здравствуйте! > > Помогите пожалуйста. > Сейчас на сайте адреса вида: > site.ru/catalog/cat1/subcat1/123.html > site.ru/catalog/cat2/subcat2/123.html > и т.д. (порядка 2 тыс.) > Как их все пере направить на market.site.ru или на site.ru/market/ с возвращением 301 кода? В основном севере: include old_stuff.conf; old_stuff.conf: location = /catalog/cat1/subcat1/123.html { return 301 http://site.ru/market/; } location = /catalog/cat2/subcat2/123.html { return 301 http://site.ru/market/; } -- Igor Sysoev From umask at yandex.ru Wed Oct 24 11:06:15 2012 From: umask at yandex.ru (umask) Date: Wed, 24 Oct 2012 15:06:15 +0400 Subject: =?UTF-8?B?UmU6IHItPmNvbm5lY3Rpb24tPm51bWJlciDQsiDQstGB0YLRgNC+0LXQvdC+0Lwg?= =?UTF-8?B?0L/QtdGA0LvQtQ==?= In-Reply-To: <1359391350812717@web2d.yandex.ru> References: <1359391350812717@web2d.yandex.ru> Message-ID: <819071351076775@web5e.yandex.ru> Это вообще возможно сделать? А то если невозможно, то хотелось бы такой ответ получить. Спасибо. 21.10.2012, 13:45, "umask" : > Добрый день, > > а подскажите, как можно во встроеном перле обратиться к значению r->connection->number? > > Мне нужно получить текущее значение счётчика соединений nginx и текущее значение счётчика запросов. > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From senty at yandex.ru Wed Oct 24 12:22:56 2012 From: senty at yandex.ru (=?koi8-r?B?98nUwczJyiDzxc7U0cvP1w==?=) Date: Wed, 24 Oct 2012 16:22:56 +0400 Subject: nginx-ru Digest, Vol 36, Issue 56 In-Reply-To: References: Message-ID: <921431351081376@web28e.yandex.ru> В основном севере: include old_stuff.conf; old_stuff.conf: location = /catalog/cat1/subcat1/123.html { return 301  http://site.ru/market/; } location = /catalog/cat2/subcat2/123.html { return 301  http://site.ru/market/; } Igor Sysoev,  а нельзя это сделать одним правилом? Предложенный вами вариант мне известен, но т.к. на сайте большое количество страниц, то необходимо найти способ просто перенаправлять страницы /catalog/***** на http://site.ru/market/ Спасибо! -- Виталий From citrin at citrin.ru Wed Oct 24 12:26:56 2012 From: citrin at citrin.ru (Anton Yuzhaninov) Date: Wed, 24 Oct 2012 16:26:56 +0400 Subject: nginx-ru Digest, Vol 36, Issue 56 In-Reply-To: <921431351081376@web28e.yandex.ru> References: <921431351081376@web28e.yandex.ru> Message-ID: <5087DE90.3040600@citrin.ru> On 10/24/12 16:22, Виталий Сентяков wrote: > а нельзя это сделать одним правилом? > Предложенный вами вариант мне известен, но т.к. на сайте большое количество страниц, > то необходимо найти способ просто перенаправлять страницы/catalog/***** наhttp://site.ru/market/ Если все /catalog/* то location /catalog/ { return 301 http://site.ru/market/; } -- Anton Yuzhaninov From mdounin at mdounin.ru Wed Oct 24 15:33:06 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Wed, 24 Oct 2012 19:33:06 +0400 Subject: =?UTF-8?B?UmU6IHItPmNvbm5lY3Rpb24tPm51bWJlciDQsiDQstGB0YLRgNC+0LXQvdC+0Lwg?= =?UTF-8?B?0L/QtdGA0LvQtQ==?= In-Reply-To: <819071351076775@web5e.yandex.ru> References: <1359391350812717@web2d.yandex.ru> <819071351076775@web5e.yandex.ru> Message-ID: <20121024153305.GE40452@mdounin.ru> Hello! On Wed, Oct 24, 2012 at 03:06:15PM +0400, umask wrote: > Это вообще возможно сделать? > > А то если невозможно, то хотелось бы такой ответ получить. Сейчас - нет, но вообще добавить элементарно. С прилагающимся патчем можно получить через стандартный интерфейс получения переменных, r->variable(). > Спасибо. > > 21.10.2012, 13:45, "umask" : > > Добрый день, > > > > а подскажите, как можно во встроеном перле обратиться к значению r->connection->number? > > > > Мне нужно получить текущее значение счётчика соединений nginx и текущее значение счётчика запросов. > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru at nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Maxim Dounin http://nginx.com/support.html -------------- next part -------------- # HG changeset patch # User Maxim Dounin # Date 1351092441 -14400 # Node ID 53b5e562dab09b388ded32c17ffb811fdb03b4a3 # Parent 0f453c43fe6fb37cd5d50e8850d2043c1873c6ae Variables $connection and $connection_requests. Log module only counterparts are removed as they aren't used often. diff --git a/src/http/modules/ngx_http_log_module.c b/src/http/modules/ngx_http_log_module.c --- a/src/http/modules/ngx_http_log_module.c +++ b/src/http/modules/ngx_http_log_module.c @@ -78,10 +78,6 @@ static void ngx_http_log_write(ngx_http_ static ssize_t ngx_http_log_script_write(ngx_http_request_t *r, ngx_http_log_script_t *script, u_char **name, u_char *buf, size_t len); -static u_char *ngx_http_log_connection(ngx_http_request_t *r, u_char *buf, - ngx_http_log_op_t *op); -static u_char *ngx_http_log_connection_requests(ngx_http_request_t *r, - u_char *buf, ngx_http_log_op_t *op); static u_char *ngx_http_log_pipe(ngx_http_request_t *r, u_char *buf, ngx_http_log_op_t *op); static u_char *ngx_http_log_time(ngx_http_request_t *r, u_char *buf, @@ -194,9 +190,6 @@ static ngx_str_t ngx_http_combined_fmt static ngx_http_log_var_t ngx_http_log_vars[] = { - { ngx_string("connection"), NGX_ATOMIC_T_LEN, ngx_http_log_connection }, - { ngx_string("connection_requests"), NGX_INT_T_LEN, - ngx_http_log_connection_requests }, { ngx_string("pipe"), 1, ngx_http_log_pipe }, { ngx_string("time_local"), sizeof("28/Sep/1970:12:00:00 +0600") - 1, ngx_http_log_time }, @@ -500,22 +493,6 @@ ngx_http_log_copy_long(ngx_http_request_ static u_char * -ngx_http_log_connection(ngx_http_request_t *r, u_char *buf, - ngx_http_log_op_t *op) -{ - return ngx_sprintf(buf, "%uA", r->connection->number); -} - - -static u_char * -ngx_http_log_connection_requests(ngx_http_request_t *r, u_char *buf, - ngx_http_log_op_t *op) -{ - return ngx_sprintf(buf, "%ui", r->connection->requests); -} - - -static u_char * ngx_http_log_pipe(ngx_http_request_t *r, u_char *buf, ngx_http_log_op_t *op) { if (r->pipeline) { diff --git a/src/http/ngx_http_variables.c b/src/http/ngx_http_variables.c --- a/src/http/ngx_http_variables.c +++ b/src/http/ngx_http_variables.c @@ -97,6 +97,11 @@ static ngx_int_t ngx_http_variable_sent_ static ngx_int_t ngx_http_variable_sent_transfer_encoding(ngx_http_request_t *r, ngx_http_variable_value_t *v, uintptr_t data); +static ngx_int_t ngx_http_variable_connection(ngx_http_request_t *r, + ngx_http_variable_value_t *v, uintptr_t data); +static ngx_int_t ngx_http_variable_connection_requests(ngx_http_request_t *r, + ngx_http_variable_value_t *v, uintptr_t data); + static ngx_int_t ngx_http_variable_nginx_version(ngx_http_request_t *r, ngx_http_variable_value_t *v, uintptr_t data); static ngx_int_t ngx_http_variable_hostname(ngx_http_request_t *r, @@ -265,6 +270,12 @@ static ngx_http_variable_t ngx_http_cor offsetof(ngx_http_request_t, limit_rate), NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE, 0 }, + { ngx_string("connection"), NULL, + ngx_http_variable_connection, 0, 0, 0 }, + + { ngx_string("connection_requests"), NULL, + ngx_http_variable_connection_requests, 0, 0, 0 }, + { ngx_string("nginx_version"), NULL, ngx_http_variable_nginx_version, 0, 0, 0 }, @@ -1822,6 +1833,48 @@ ngx_http_variable_request_body_file(ngx_ static ngx_int_t +ngx_http_variable_connection(ngx_http_request_t *r, + ngx_http_variable_value_t *v, uintptr_t data) +{ + u_char *p; + + p = ngx_pnalloc(r->pool, NGX_ATOMIC_T_LEN); + if (p == NULL) { + return NGX_ERROR; + } + + v->len = ngx_sprintf(p, "%uA", r->connection->number) - p; + v->valid = 1; + v->no_cacheable = 0; + v->not_found = 0; + v->data = p; + + return NGX_OK; +} + + +static ngx_int_t +ngx_http_variable_connection_requests(ngx_http_request_t *r, + ngx_http_variable_value_t *v, uintptr_t data) +{ + u_char *p; + + p = ngx_pnalloc(r->pool, NGX_INT_T_LEN); + if (p == NULL) { + return NGX_ERROR; + } + + v->len = ngx_sprintf(p, "%ui", r->connection->requests) - p; + v->valid = 1; + v->no_cacheable = 0; + v->not_found = 0; + v->data = p; + + return NGX_OK; +} + + +static ngx_int_t ngx_http_variable_nginx_version(ngx_http_request_t *r, ngx_http_variable_value_t *v, uintptr_t data) { From mdounin at mdounin.ru Wed Oct 24 15:48:49 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Wed, 24 Oct 2012 19:48:49 +0400 Subject: =?UTF-8?B?UmU6INCd0LDRgdGC0YDQvtC50LrQsCBtYWlsLXByb3h5?= In-Reply-To: <2cc7d02992c50275ddde7c66ede6033e.NginxMailingListRussian@forum.nginx.org> References: <20121018094514.GW40452@mdounin.ru> <2cc7d02992c50275ddde7c66ede6033e.NginxMailingListRussian@forum.nginx.org> Message-ID: <20121024154849.GF40452@mdounin.ru> Hello! On Fri, Oct 19, 2012 at 10:45:56AM -0400, MKG wrote: > Maxim Dounin Wrote: > ------------------------------------------------------- > > Патчи, обеспечивающие проксирование SMTP AUTH, у меня где-то > > лежат, и если очень хочется - могу выдать. Но мне усиленно > > кажется, что вы пытаетесь решать не ту задачу. > > > Максим, выложите пожалуйста эти патчи http://mdounin.ru/files/patch-nginx-proxy-smtp-auth.txt -- Maxim Dounin http://nginx.com/support.html From mdounin at mdounin.ru Wed Oct 24 18:03:21 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Wed, 24 Oct 2012 22:03:21 +0400 Subject: [PATCH] implemented DAV copy hardlinks In-Reply-To: <20121019111914.635ed769@laptop> References: <1350301244-27123-1-git-send-email-arut@qip.ru> <20121015153350.GH40452@mdounin.ru> <1350391927-1793-1-git-send-email-arut@qip.ru> <20121016154455.GU40452@mdounin.ru> <20121019111914.635ed769@laptop> Message-ID: <20121024180321.GK40452@mdounin.ru> Hello! On Fri, Oct 19, 2012 at 11:19:14AM +0400, Roman Arutyunyan wrote: [...] > @@ -681,6 +682,32 @@ ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf) > rc = NGX_ERROR; > buf = NULL; > nfd = NGX_INVALID_FILE; > + fd = NGX_INVALID_FILE; > + > +#if !(NGX_WIN32) > + Just a side note: тут trailing spaces затесались. > + if (cf->hardlink) { > + rc = ngx_hardlink_file(from, to); > + > + if (rc == NGX_FILE_ERROR && ngx_errno != NGX_EXDEV) { > + ngx_log_error(NGX_LOG_CRIT, cf->log, ngx_errno, > + ngx_hardlink_file_n " \"%s\" to \"%s\" failed", > + from, to); > + goto failed; > + } Из замеченного при тестировании: при попытке перезаписать файл получаем 500 из-за EEXIST тут. [...] -- Maxim Dounin http://nginx.com/support.html From umask at yandex.ru Thu Oct 25 05:24:42 2012 From: umask at yandex.ru (umask) Date: Thu, 25 Oct 2012 09:24:42 +0400 Subject: =?UTF-8?B?UmU6IHItPmNvbm5lY3Rpb24tPm51bWJlciDQsiDQstGB0YLRgNC+0LXQvdC+0Lwg?= =?UTF-8?B?0L/QtdGA0LvQtQ==?= In-Reply-To: <20121024153305.GE40452@mdounin.ru> References: <1359391350812717@web2d.yandex.ru> <819071351076775@web5e.yandex.ru> <20121024153305.GE40452@mdounin.ru> Message-ID: <1347861351142682@web16h.yandex.ru> Добрый день, Спасибо за патч. Максим, этот патч попадёт в mainline? Цель вообще в том, чтобы сделать аналог модуля request_id, но только на встроеном перле (не хочется тянуть сторонний модуль, пересобираться с ним каждый раз и т.д). 24.10.2012, 19:33, "Maxim Dounin" : > Hello! > > On Wed, Oct 24, 2012 at 03:06:15PM +0400, umask wrote: > >>  Это вообще возможно сделать? >> >>  А то если невозможно, то хотелось бы такой ответ получить. > > Сейчас - нет, но вообще добавить элементарно.  С прилагающимся > патчем можно получить через стандартный интерфейс получения > переменных, r->variable(). > >>  Спасибо. >> >>  21.10.2012, 13:45, "umask" : >>>  Добрый день, >>> >>>  а подскажите, как можно во встроеном перле обратиться к значению r->connection->number? >>> >>>  Мне нужно получить текущее значение счётчика соединений nginx и текущее значение счётчика запросов. >>> >>>  _______________________________________________ >>>  nginx-ru mailing list >>>  nginx-ru at nginx.org >>>  http://mailman.nginx.org/mailman/listinfo/nginx-ru >>  _______________________________________________ >>  nginx-ru mailing list >>  nginx-ru at nginx.org >>  http://mailman.nginx.org/mailman/listinfo/nginx-ru > > -- > Maxim Dounin > http://nginx.com/support.html > > , > # HG changeset patch > # User Maxim Dounin > # Date 1351092441 -14400 > # Node ID 53b5e562dab09b388ded32c17ffb811fdb03b4a3 > # Parent  0f453c43fe6fb37cd5d50e8850d2043c1873c6ae > Variables $connection and $connection_requests. > > Log module only counterparts are removed as they aren't used often. > > diff --git a/src/http/modules/ngx_http_log_module.c b/src/http/modules/ngx_http_log_module.c > --- a/src/http/modules/ngx_http_log_module.c > +++ b/src/http/modules/ngx_http_log_module.c > @@ -78,10 +78,6 @@ static void ngx_http_log_write(ngx_http_ >  static ssize_t ngx_http_log_script_write(ngx_http_request_t *r, >      ngx_http_log_script_t *script, u_char **name, u_char *buf, size_t len); > > -static u_char *ngx_http_log_connection(ngx_http_request_t *r, u_char *buf, > -    ngx_http_log_op_t *op); > -static u_char *ngx_http_log_connection_requests(ngx_http_request_t *r, > -    u_char *buf, ngx_http_log_op_t *op); >  static u_char *ngx_http_log_pipe(ngx_http_request_t *r, u_char *buf, >      ngx_http_log_op_t *op); >  static u_char *ngx_http_log_time(ngx_http_request_t *r, u_char *buf, > @@ -194,9 +190,6 @@ static ngx_str_t  ngx_http_combined_fmt > >  static ngx_http_log_var_t  ngx_http_log_vars[] = { > -    { ngx_string("connection"), NGX_ATOMIC_T_LEN, ngx_http_log_connection }, > -    { ngx_string("connection_requests"), NGX_INT_T_LEN, > -                          ngx_http_log_connection_requests }, >      { ngx_string("pipe"), 1, ngx_http_log_pipe }, >      { ngx_string("time_local"), sizeof("28/Sep/1970:12:00:00 +0600") - 1, >                            ngx_http_log_time }, > @@ -500,22 +493,6 @@ ngx_http_log_copy_long(ngx_http_request_ > >  static u_char * > -ngx_http_log_connection(ngx_http_request_t *r, u_char *buf, > -    ngx_http_log_op_t *op) > -{ > -    return ngx_sprintf(buf, "%uA", r->connection->number); > -} > - > - > -static u_char * > -ngx_http_log_connection_requests(ngx_http_request_t *r, u_char *buf, > -    ngx_http_log_op_t *op) > -{ > -    return ngx_sprintf(buf, "%ui", r->connection->requests); > -} > - > - > -static u_char * >  ngx_http_log_pipe(ngx_http_request_t *r, u_char *buf, ngx_http_log_op_t *op) >  { >      if (r->pipeline) { > diff --git a/src/http/ngx_http_variables.c b/src/http/ngx_http_variables.c > --- a/src/http/ngx_http_variables.c > +++ b/src/http/ngx_http_variables.c > @@ -97,6 +97,11 @@ static ngx_int_t ngx_http_variable_sent_ >  static ngx_int_t ngx_http_variable_sent_transfer_encoding(ngx_http_request_t *r, >      ngx_http_variable_value_t *v, uintptr_t data); > > +static ngx_int_t ngx_http_variable_connection(ngx_http_request_t *r, > +    ngx_http_variable_value_t *v, uintptr_t data); > +static ngx_int_t ngx_http_variable_connection_requests(ngx_http_request_t *r, > +    ngx_http_variable_value_t *v, uintptr_t data); > + >  static ngx_int_t ngx_http_variable_nginx_version(ngx_http_request_t *r, >      ngx_http_variable_value_t *v, uintptr_t data); >  static ngx_int_t ngx_http_variable_hostname(ngx_http_request_t *r, > @@ -265,6 +270,12 @@ static ngx_http_variable_t  ngx_http_cor >        offsetof(ngx_http_request_t, limit_rate), >        NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE, 0 }, > > +    { ngx_string("connection"), NULL, > +      ngx_http_variable_connection, 0, 0, 0 }, > + > +    { ngx_string("connection_requests"), NULL, > +      ngx_http_variable_connection_requests, 0, 0, 0 }, > + >      { ngx_string("nginx_version"), NULL, ngx_http_variable_nginx_version, >        0, 0, 0 }, > > @@ -1822,6 +1833,48 @@ ngx_http_variable_request_body_file(ngx_ > >  static ngx_int_t > +ngx_http_variable_connection(ngx_http_request_t *r, > +    ngx_http_variable_value_t *v, uintptr_t data) > +{ > +    u_char  *p; > + > +    p = ngx_pnalloc(r->pool, NGX_ATOMIC_T_LEN); > +    if (p == NULL) { > +        return NGX_ERROR; > +    } > + > +    v->len = ngx_sprintf(p, "%uA", r->connection->number) - p; > +    v->valid = 1; > +    v->no_cacheable = 0; > +    v->not_found = 0; > +    v->data = p; > + > +    return NGX_OK; > +} > + > + > +static ngx_int_t > +ngx_http_variable_connection_requests(ngx_http_request_t *r, > +    ngx_http_variable_value_t *v, uintptr_t data) > +{ > +    u_char  *p; > + > +    p = ngx_pnalloc(r->pool, NGX_INT_T_LEN); > +    if (p == NULL) { > +        return NGX_ERROR; > +    } > + > +    v->len = ngx_sprintf(p, "%ui", r->connection->requests) - p; > +    v->valid = 1; > +    v->no_cacheable = 0; > +    v->not_found = 0; > +    v->data = p; > + > +    return NGX_OK; > +} > + > + > +static ngx_int_t >  ngx_http_variable_nginx_version(ngx_http_request_t *r, >      ngx_http_variable_value_t *v, uintptr_t data) >  { > > , > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Thu Oct 25 12:38:23 2012 From: nginx-forum at nginx.us (allandzr) Date: Thu, 25 Oct 2012 08:38:23 -0400 Subject: =?UTF-8?B?bmdpbngg0L/QvtGB0YLQvtGP0L3QvdC+INC/0LjRiNC10YIg0L3QsCDQtNC40YE=?= =?UTF-8?B?0LogNTAg0JzQkS/RgQ==?= Message-ID: Собственно все написано в теме. Как узнать что пишет nginx на диск и для чего? В списке открытых им файлов только логи. Аналогичная проблема описана тут http://forum.ispsystem.com/ru/archive/index.php/t-15830.html Спасибо за ответы. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232180,232180#msg-232180 From nginx-forum at nginx.us Thu Oct 25 12:38:37 2012 From: nginx-forum at nginx.us (allandzr) Date: Thu, 25 Oct 2012 08:38:37 -0400 Subject: =?UTF-8?B?bmdpbngg0L/QvtGB0YLQvtGP0L3QvdC+INC/0LjRiNC10YIg0L3QsCDQtNC40YE=?= =?UTF-8?B?0LogNTAg0JzQkS/RgQ==?= Message-ID: Собственно все написано в теме. Как узнать что и для чего nginx пишет на диск ? В списке открытых им файлов только логи. Похожая проблема описана тут http://forum.ispsystem.com/ru/archive/index.php/t-15830.html Спасибо за ответы. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232181,232181#msg-232181 From citrin at citrin.ru Thu Oct 25 12:40:22 2012 From: citrin at citrin.ru (Anton Yuzhaninov) Date: Thu, 25 Oct 2012 16:40:22 +0400 Subject: =?UTF-8?B?UmU6IG5naW54INC/0L7RgdGC0L7Rj9C90L3QviDQv9C40YjQtdGCINC90LAg0LQ=?= =?UTF-8?B?0LjRgdC6IDUwINCc0JEv0YE=?= In-Reply-To: References: Message-ID: <50893336.2020100@citrin.ru> On 10/25/12 16:38, allandzr wrote: > Собственно все написано в теме. > Как узнать что пишет nginx на диск и для чего? > В списке открытых им файлов только логи. Поднять уровнень логгирования до info и смотреть в error_log сообщения о буферизации ответов и/или запросов во временные файлы. Если они есть - увеличивать объем соответствующих буферов. -- Anton Yuzhaninov From nginx-forum at nginx.us Thu Oct 25 12:47:23 2012 From: nginx-forum at nginx.us (ProxyKZ) Date: Thu, 25 Oct 2012 08:47:23 -0400 Subject: =?UTF-8?B?0KfRgtC+INC30L3QsNGH0LjRgiBDb25uZWN0aW9uIHRvIGNoaWxkIDE0IGVzdGFi?= =?UTF-8?B?bGlzaGVkID8/?= Message-ID: В логах Apache постоянно светятся такие записи: Mon Oct 22 14:15:56 2012] [info] [client 95.57.133.170] Connection to child 21 established (server myserver.kz:443) [Mon Oct 22 14:15:55 2012] [info] Seeding PRNG with 648 bytes of entropy [Mon Oct 22 14:15:55 2012] [info] Seeding PRNG with 648 bytes of entropy [Mon Oct 22 14:15:55 2012] [info] Seeding PRNG with 648 bytes of entropy [Mon Oct 22 14:15:56 2012] [info] Seeding PRNG with 648 bytes of entropy [Mon Oct 22 14:15:56 2012] [info] Seeding PRNG with 648 bytes of entropy [Mon Oct 22 14:15:57 2012] [info] [client 95.57.133.170] (70014)End of file found: SSL input filter read failed. [Mon Oct 22 14:15:57 2012] [info] [client 95.57.133.170] Connection closed to child 36 with standard shutdown (server myserver.kz:443) [Mon Oct 22 14:15:57 2012] [info] [client 95.57.133.170] (70014)End of file found: SSL input filter read failed. [Mon Oct 22 14:15:57 2012] [info] [client 95.57.133.170] Connection closed to child 21 with standard shutdown (server myserver.kz:443) [Mon Oct 22 14:15:57 2012] [info] [client 95.57.133.170] (70014)End of file found: SSL input filter read failed. [Mon Oct 22 14:15:57 2012] [info] [client 95.57.133.170] (70014)End of file found: SSL input filter read failed. [Mon Oct 22 14:15:57 2012] [info] [client 95.57.133.170] Connection closed to child 37 with standard shutdown (server myserver.kz:443) [Mon Oct 22 14:15:57 2012] [info] [client 95.57.133.170] Connection closed to child 47 with standard shutdown (server myserver.kz:443) [Mon Oct 22 14:15:57 2012] [info] [client 95.57.133.170] (70014)End of file found: SSL input filter read failed. [Mon Oct 22 14:15:57 2012] [info] [client 95.57.133.170] Connection closed to child 39 with standard shutdown (server myserver.kz:443) [Mon Oct 22 14:15:57 2012] [info] [client 95.57.133.170] Connection to child 17 established (server myserver.kz:443) [Mon Oct 22 14:15:57 2012] [info] Seeding PRNG with 648 bytes of entropy [Mon Oct 22 14:15:57 2012] [info] [client 95.57.133.170] Connection to child 30 established (server myserver.kz:443) [Mon Oct 22 14:15:57 2012] [info] Seeding PRNG with 648 bytes of entropy В конфиге Apache стоят такие параметры: Timeout 50 KeepAlive Off MaxKeepAliveRequests 50 KeepAliveTimeout 15 ExtendedStatus On StartServers 20 MinSpareServers 20 MaxSpareServers 50 MaxClients 70 MaxRequestsPerChild 0 ... HostnameLookups Off ErrorLog /var/log/apache2/error.log LogLevel info ... NameVirtualHost *:443 ServerName myserver.kz.kz:443 SSLEngine on SSLCertificateFile /etc/apache2/ssl.crt/server.crt SSLCertificateKeyFile /etc/apache2/ssl.key/server.key 1. Это критичные ошибки? 2. Может ли из-за этого нагружаться процессор? 3. Как избавиться от них (что изменить в конфиге)? Заранее благодарен за подсказки и советы! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232201,232201#msg-232201 From nginx-forum at nginx.us Thu Oct 25 13:06:04 2012 From: nginx-forum at nginx.us (allandzr) Date: Thu, 25 Oct 2012 09:06:04 -0400 Subject: =?UTF-8?B?UmU6IG5naW54INC/0L7RgdGC0L7Rj9C90L3QviDQv9C40YjQtdGCINC90LAg0LQ=?= =?UTF-8?B?0LjRgdC6IDUwINCc0JEv0YE=?= In-Reply-To: <50893336.2020100@citrin.ru> References: <50893336.2020100@citrin.ru> Message-ID: <285ad959c7a0f6fe417e2a588b613be8.NginxMailingListRussian@forum.nginx.org> Спасибо, это помогло! нашел сайт который буферизирует большой файл ~2 Гб выключил для него proxy_buffering есть ли другие варианты отдавать через nginx большие файлы, что бы он их не буферизировал ? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232180,232205#msg-232205 From latypoff at yandex.ru Thu Oct 25 13:09:10 2012 From: latypoff at yandex.ru (Denis F. Latypoff) Date: Thu, 25 Oct 2012 20:09:10 +0700 Subject: =?UTF-8?B?UmU6IG5naW54INC/0L7RgdGC0L7Rj9C90L3QviDQv9C40YjQtdGCINC90LAg0LQ=?= =?UTF-8?B?0LjRgdC6IDUwINCc0JEv0YE=?= In-Reply-To: <285ad959c7a0f6fe417e2a588b613be8.NginxMailingListRussian@forum.nginx.org> References: <50893336.2020100@citrin.ru> <285ad959c7a0f6fe417e2a588b613be8.NginxMailingListRussian@forum.nginx.org> Message-ID: <53031351170550@web17d.yandex.ru> 25.10.2012, 20:06, "allandzr" : > Спасибо, это помогло! > нашел сайт который буферизирует большой файл ~2 Гб > выключил для него proxy_buffering > есть ли другие варианты отдавать через nginx большие файлы, что бы он их не > буферизировал ? > Да. -- br, Denis F. Latypoff. From ne at vbart.ru Thu Oct 25 13:14:08 2012 From: ne at vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Thu, 25 Oct 2012 17:14:08 +0400 Subject: =?UTF-8?B?UmU6IG5naW54INC/0L7RgdGC0L7Rj9C90L3QviDQv9C40YjQtdGCINC90LAg0LQ=?= =?UTF-8?B?0LjRgdC6IDUwINCc0JEv0YE=?= In-Reply-To: <285ad959c7a0f6fe417e2a588b613be8.NginxMailingListRussian@forum.nginx.org> References: <50893336.2020100@citrin.ru> <285ad959c7a0f6fe417e2a588b613be8.NginxMailingListRussian@forum.nginx.org> Message-ID: <201210251714.08979.ne@vbart.ru> On Thursday 25 October 2012 17:06:04 allandzr wrote: > Спасибо, это помогло! > нашел сайт который буферизирует большой файл ~2 Гб > выключил для него proxy_buffering Это вы зря. > есть ли другие варианты отдавать через nginx большие файлы, что бы он их не > буферизировал ? Читаем: http://nginx.org/r/proxy_buffering/ru Вас скорее всего интересует proxy_max_temp_file_size -- Валентин Бартенев http://nginx.com/support.html http://nginx.org/en/donation.html From nginx-forum at nginx.us Thu Oct 25 13:42:37 2012 From: nginx-forum at nginx.us (allandzr) Date: Thu, 25 Oct 2012 09:42:37 -0400 Subject: =?UTF-8?B?UmU6IG5naW54INC/0L7RgdGC0L7Rj9C90L3QviDQv9C40YjQtdGCINC90LAg0LQ=?= =?UTF-8?B?0LjRgdC6IDUwINCc0JEv0YE=?= In-Reply-To: <201210251714.08979.ne@vbart.ru> References: <201210251714.08979.ne@vbart.ru> Message-ID: <6bff4d8636b04fe6585be24f275070a6.NginxMailingListRussian@forum.nginx.org> Да, спасибо! Это то что нужно. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232180,232209#msg-232209 From nginx-forum at nginx.us Thu Oct 25 13:50:10 2012 From: nginx-forum at nginx.us (ProxyKZ) Date: Thu, 25 Oct 2012 09:50:10 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC80LXQtNC70LXQvdC90L4g0L7RgtC00LDQtdGCINGB0YLQsNGC?= =?UTF-8?B?0LjQutGDINC80LXQtNC70LXQvdC90YvQvCDQutC70LjQtdC90YLQsNC8IQ==?= In-Reply-To: References: Message-ID: <7afc3a868e38bc1f9aeb43a5e97b40ea.NginxMailingListRussian@forum.nginx.org> В том то и дело что убрать Apache не можем, т.к. это сервер содержит сайты и софт которым необходим Apache. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231602,232211#msg-232211 From nginx-forum at nginx.us Thu Oct 25 14:35:58 2012 From: nginx-forum at nginx.us (ProxyKZ) Date: Thu, 25 Oct 2012 10:35:58 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC80LXQtNC70LXQvdC90L4g0L7RgtC00LDQtdGCINGB0YLQsNGC?= =?UTF-8?B?0LjQutGDINC80LXQtNC70LXQvdC90YvQvCDQutC70LjQtdC90YLQsNC8IQ==?= In-Reply-To: References: Message-ID: Увеличил наконец-то серверу RAM до 6Gb (было 2Gb) и заменил диски с SAS на SATA бОльшего объема. Серверу стало гораздо комфортнее, производительность работы увеличилась, как и стабильность. Nginx стал быстро отдавать статику и держит до 200-500 коннектов (больше видимо не лезет). Apache держит легко 70 процессов (в конфиге стоит MaxClient 70). Возможно диски еще были уже тормознутые, возможно память сыграла ключевую роль - турдно сказать Но всем спасибо за советы! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231602,232213#msg-232213 From mdounin at mdounin.ru Thu Oct 25 14:46:02 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Thu, 25 Oct 2012 18:46:02 +0400 Subject: =?UTF-8?B?UmU6IHItPmNvbm5lY3Rpb24tPm51bWJlciDQsiDQstGB0YLRgNC+0LXQvdC+0Lwg?= =?UTF-8?B?0L/QtdGA0LvQtQ==?= In-Reply-To: <1347861351142682@web16h.yandex.ru> References: <1359391350812717@web2d.yandex.ru> <819071351076775@web5e.yandex.ru> <20121024153305.GE40452@mdounin.ru> <1347861351142682@web16h.yandex.ru> Message-ID: <20121025144602.GS40452@mdounin.ru> Hello! On Thu, Oct 25, 2012 at 09:24:42AM +0400, umask wrote: > Спасибо за патч. > > Максим, этот патч попадёт в mainline? Да. BTW, ускорить процедуру можно, протестировав патч и явно сказав об этом. -- Maxim Dounin http://nginx.com/support.html From mdounin at mdounin.ru Thu Oct 25 14:54:03 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Thu, 25 Oct 2012 18:54:03 +0400 Subject: =?UTF-8?B?UmU6INCn0YLQviDQt9C90LDRh9C40YIgQ29ubmVjdGlvbiB0byBjaGlsZCAxNCBl?= =?UTF-8?B?c3RhYmxpc2hlZCA/Pw==?= In-Reply-To: References: Message-ID: <20121025145403.GT40452@mdounin.ru> Hello! On Thu, Oct 25, 2012 at 08:47:23AM -0400, ProxyKZ wrote: > В логах Apache постоянно светятся такие записи: [...] > 1. Это критичные ошибки? > 2. Может ли из-за этого нагружаться процессор? > 3. Как избавиться от них (что изменить в конфиге)? > > Заранее благодарен за подсказки и советы! Ответ, который соответствует тематике данного списка рассылки, звучит приблизительно так: Поставить nginx вместо или перед Apache. ;) -- Maxim Dounin http://nginx.com/support.html From umask at yandex.ru Thu Oct 25 20:02:38 2012 From: umask at yandex.ru (umask) Date: Fri, 26 Oct 2012 00:02:38 +0400 Subject: =?UTF-8?B?UmU6IHItPmNvbm5lY3Rpb24tPm51bWJlciDQsiDQstGB0YLRgNC+0LXQvdC+0Lwg?= =?UTF-8?B?0L/QtdGA0LvQtQ==?= In-Reply-To: <20121025144602.GS40452@mdounin.ru> References: <1359391350812717@web2d.yandex.ru> <819071351076775@web5e.yandex.ru> <20121024153305.GE40452@mdounin.ru> <1347861351142682@web16h.yandex.ru> <20121025144602.GS40452@mdounin.ru> Message-ID: <300681351195358@web1f.yandex.ru> Доброй ночи, патч проверил - собралось успешно. Значения $r->variable(connection) и $r->variable(connection_requests) доступны в встроеном перле и успешно попадают в логи. Вот пример, как я это использую: ### log tracking: requests perl_set $req_id "sub { use Digest::MD5 qw(md5_hex); my $r = shift; #return md5_hex($r->variable(pid).':'.$r->uri.':'.$r->variable(binary_remote_addr).':'.$r->variable(remote_port).':'.rand(4294967296)); return $r->variable(connection).':'.$r->variable(connection_requests).':'.$r->variable(pid).':'.$r->uri.':'.$r->variable(binary_remote_addr).':'.$r->variable(remote_port).':'.rand(4294967296); }"; 25.10.2012, 18:46, "Maxim Dounin" : >  Hello! > >  On Thu, Oct 25, 2012 at 09:24:42AM +0400, umask wrote: >>   Спасибо за патч. >> >>   Максим, этот патч попадёт в mainline? >  Да. > >  BTW, ускорить процедуру можно, протестировав патч и явно сказав об >  этом. > >  -- >  Maxim Dounin >  http://nginx.com/support.html > >  _______________________________________________ >  nginx-ru mailing list >  nginx-ru at nginx.org >  http://mailman.nginx.org/mailman/listinfo/nginx-ru From me at kemko.ru Fri Oct 26 09:38:11 2012 From: me at kemko.ru (=?KOI8-R?B?5M3J1NLJyiDhzsTSxcXX?=) Date: Fri, 26 Oct 2012 13:38:11 +0400 Subject: =?UTF-8?B?0KHRgtGA0LDQvdC90L7QtSDQsiDQu9C+0LPQsNGF?= Message-ID: Приветствую. Недавно начал периодически зависать балансер, сделанный на базе nginx (все крутится на FreeBSD). Пока разбираемся в причинах, может быть nginx тут и не при чем, но в логах откопали кое-что веселое. Перед зависанием проскакивало несколько запросов вида 217.69.133.70 - - [25/Oct/2012:12:14:10 +0000] www.site.ru GET /some-dynamic-page HTTP/1.0 "200" 10.0.0.219:80 0.413 0.404 200 45777 246 "-" "Mozilla/5.0 (compatible; Mail.RU_B[...] А вместо [...] - 581351 штука символов EOF. Может быть, кто-то уже с подобным сталкивался и подскажет, в какую сторону копать? From greenh at gmail.com Fri Oct 26 09:50:23 2012 From: greenh at gmail.com (greenh) Date: Fri, 26 Oct 2012 12:50:23 +0300 Subject: =?UTF-8?B?UGhwINCy0YvQt9GL0LLQsNC10YLRgdGPINC00LLQsNC20LTRiyDQv9GA0Lgg0L4=?= =?UTF-8?B?0LTQvdC+0Lwg0LfQsNC/0YDQvtGB0LU=?= Message-ID: Добрый день подскажите плз, от чего такое происходит связка nginx+php-fpm при обращении к сайту php скрипт вызывается дважды Вот конфиг: ssl on; ssl_protocols SSLv3 TLSv1; ssl_prefer_server_ciphers on; ssl_ciphers AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5; ssl_certificate /usr/local/etc/nginx/server.crt; ssl_certificate_key /usr/local/etc/nginx/server.key; ssl_session_cache shared:SSL:500m; ssl_session_timeout 10m; server_name domain; root /home/dimonka/domain; index index.php; rewrite ^ /index.php; limit_conn lconn 3; location ~ .php$ {fastcgi_pass unix:/home/dimonka/run/socket; <------>fastcgi_index index.php; <------>fastcgi_param PHPRC "/home/dimonka/php"; <------>fastcgi_param SCRIPT_FILENAME /home/dimonka/domain$fastcgi_script_name; <------>include fastcgi_params; } -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum at nginx.us Fri Oct 26 14:17:30 2012 From: nginx-forum at nginx.us (ProxyKZ) Date: Fri, 26 Oct 2012 10:17:30 -0400 Subject: =?UTF-8?B?UmU6INCn0YLQviDQt9C90LDRh9C40YIgQ29ubmVjdGlvbiB0byBjaGlsZCAxNCBl?= =?UTF-8?B?c3RhYmxpc2hlZCA/Pw==?= In-Reply-To: <20121025145403.GT40452@mdounin.ru> References: <20121025145403.GT40452@mdounin.ru> Message-ID: Так Nginx и стоит перед Apache-м, и стали валиться такие ошибки в логе апача. Потому и подозреваю в неверных настройках nginx. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232201,232260#msg-232260 From ne at vbart.ru Fri Oct 26 15:21:28 2012 From: ne at vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Fri, 26 Oct 2012 19:21:28 +0400 Subject: =?UTF-8?B?UmU6ICDQp9GC0L4g0LfQvdCw0YfQuNGCIENvbm5lY3Rpb24gdG8gY2hpbGQgMTQg?= =?UTF-8?B?ZXN0YWJsaXNoZWQgPz8=?= In-Reply-To: References: <20121025145403.GT40452@mdounin.ru> Message-ID: <201210261921.28487.ne@vbart.ru> On Friday 26 October 2012 18:17:30 ProxyKZ wrote: > Так Nginx и стоит перед Apache-м, и стали валиться такие ошибки в логе > апача. Потому и подозреваю в неверных настройках nginx. > [info] - это не ошибки. -- Валентин Бартенев http://nginx.com/support.html http://nginx.org/en/donation.html From peter at vereshagin.org Fri Oct 26 16:54:14 2012 From: peter at vereshagin.org (Peter Vereshagin) Date: Fri, 26 Oct 2012 20:54:14 +0400 Subject: =?UTF-8?B?UmU6IHtuLG19IHF1YW50aWZpZXIg0LIgcmVnZXhwPw==?= In-Reply-To: <20121024090702.GY40452@mdounin.ru> References: <20121011181308.GA6687@external.screwed.box> <20121024090702.GY40452@mdounin.ru> Message-ID: <20121026165414.GA19147@external.screwed.box> Hello. 2012/10/24 13:07:02 +0400 Maxim Dounin => To nginx-ru at nginx.org : MD> http://nginx.org/ru/docs/http/ngx_http_rewrite_module.html#rewrite MD> MD> Если в регулярном выражении встречаются символы ???}??? или ???;???, то MD> всё выражение следует заключить в одинарные или двойные кавычки. Данный абзац повторяется раз пять в докции в самых разных местах (и в описании location{}, оказывается, тоже, последний абзац). Как минимум по аналогии с докцией на php ожидал увидеть описание способов включения regexp'ов в конфиг во вводной части докции, что, помимо прочего, улучшило бы DRY? Раньше докция была маленькой и особой структурированности от неё ожидать не приходилось. Однако при теперечных её размерах общее описание синтаксиса в виде отдельной страницы не помешало бы, включая варианты regexp'ов с примерами. Есть такое пожелание. Помимо прочего, например, стремает писать модификаторы после двойной кавычки, а вот был бы в докции такой пример - вопросов бы не было. А они тут, похоже, регулярно появляются. Разумеется, поскольку свой вопрос не считал относящимся к директиве location{}, там и не смотрел. Также и не смотрел и там где про rewrite, тем более, тут его кто-то 101-им способом не любил. (= -- Peter Vereshagin (http://vereshagin.org) pgp: A0E26627 From nginx-forum at nginx.us Sat Oct 27 11:36:52 2012 From: nginx-forum at nginx.us (somebi) Date: Sat, 27 Oct 2012 07:36:52 -0400 Subject: =?UTF-8?B?JGFyZ3MgJGFyZyBwYXJhbSAkcXVlcnkgc3RyaW5nINCy0L3Rg9GC0YDQuCBpZiA=?= =?UTF-8?B?0YPRgdC70L7QstC40Y8=?= Message-ID: <935714d9cf39547ab0e8894407671a13.NginxMailingListRussian@forum.nginx.org> Использую версию nginx 1.2.0 Захожу по адресу domaim.com/individual?charset=windows-1251 location / { break; proxy_pass http://127.0.0.1:4444; 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; if ($arg_charset ~* windows-1251) { charset windows-1251; } source_charset utf-8; } Пробовал подставлять другие встроенные переменные описанные выше, но не помогает. Если я убираю if условие, то все работает, как надо. Это баг или я делаю что-то не так? Спасибо. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232268,232268#msg-232268 From nginx-forum at nginx.us Sat Oct 27 14:22:00 2012 From: nginx-forum at nginx.us (pattern) Date: Sat, 27 Oct 2012 10:22:00 -0400 Subject: =?UTF-8?B?0JrQsNC6INGD0LTQsNC70LjRgtGMIGluZGV4LnBocCDQuNC3IFVSTA==?= Message-ID: <87fa7466c69c2071ce2b2966cb415415.NginxMailingListRussian@forum.nginx.org> Всем привет! Есть домен www.mydomain.ru на котором установлена joomla. Нужно чтобы URL'ы www.mydomain.ru/index.php www.mydomain.ru mydomain.ru/index.php перенаправлялись на mydomain.ru Конфиг сейчас выглядит так: server { listen 80; server_name mydomain.ru www.mydomain.ru; server_name_in_redirect off; charset utf-8; access_log /var/log/nginx/access.mydomain.log main; error_log /var/log/nginx/error.mydomain.log info; root /usr/home/mydomain/public_html; index index.php index.html index.htm default.html default.htm; if ($host = "www.mydomain.ru" ) { rewrite ^/(index\.php)?(.*)$ http://mydomain.ru/$2 permanent; } location /index.php { rewrite ^/(.*)$ http://mydomain.ru permanent; } location / { try_files $uri $uri/ /index.php?q=$uri&$args; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } Все работает, за исключением того, что не могу никак добиться, чтобы mydomain.ru/index.php перенаправлялся на mydomain.ru. Подскажите, что ещё нужно добавить или удалить, чтобы получился желаемый результат? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232265,232265#msg-232265 From pavel2000 at ngs.ru Sat Oct 27 17:43:51 2012 From: pavel2000 at ngs.ru (Pavel V.) Date: Sun, 28 Oct 2012 00:43:51 +0700 Subject: =?UTF-8?B?UmU6IFBocCDQstGL0LfRi9Cy0LDQtdGC0YHRjyDQtNCy0LDQttC00Ysg0L/RgNC4?= =?UTF-8?B?INC+0LTQvdC+0Lwg0LfQsNC/0YDQvtGB0LU=?= In-Reply-To: References: Message-ID: <1824304150.20121028004351@ngs.ru> Здравствуйте, greenh. Вы писали 26 октября 2012 г., 16:50:23: > Добрый день > подскажите плз, от чего такое происходит > связка nginx+php-fpm > при обращении к сайту php скрипт вызывается дважды > Вот конфиг: 1) Это не конфиг, это какая-то непонятная смесь, непонятно откуда. Вы не потрудились убрать даже <----> , так с чего вдруг кому-то трудиться что-то объяснять вам? 2) Смотрите в логи, там написано какие запросы приходили к серверу. Наверняка какой-нибудь запрос типа /favicon.ico переписался в /index.php. -- С уважением, Pavel mailto:pavel2000 at ngs.ru From latypoff at yandex.ru Sat Oct 27 17:52:09 2012 From: latypoff at yandex.ru (Denis F. Latypoff) Date: Sun, 28 Oct 2012 00:52:09 +0700 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRg9C00LDQu9C40YLRjCBpbmRleC5waHAg0LjQtyBVUkw=?= In-Reply-To: <87fa7466c69c2071ce2b2966cb415415.NginxMailingListRussian@forum.nginx.org> References: <87fa7466c69c2071ce2b2966cb415415.NginxMailingListRussian@forum.nginx.org> Message-ID: <788241351360329@web21f.yandex.ru> 27.10.2012, 21:22, "pattern" : > Всем привет! > > Есть домен www.mydomain.ru на котором установлена joomla. Нужно чтобы URL'ы > www.mydomain.ru/index.php > www.mydomain.ru > mydomain.ru/index.php > перенаправлялись на > mydomain.ru > Конфиг сейчас выглядит так: > + server { +     listen 80; +     server_name www.mydomain.ru; + return 301 http://mydomain.ru$request_uri; +} > server { >     listen 80; -     server_name mydomain.ru www.mydomain.ru; +     server_name mydomain.ru; >     server_name_in_redirect off; >     charset utf-8; > >     access_log /var/log/nginx/access.mydomain.log main; >     error_log /var/log/nginx/error.mydomain.log info; > >     root /usr/home/mydomain/public_html; >     index index.php index.html index.htm default.html default.htm; > -     if ($host = "www.mydomain.ru" ) { -         rewrite ^/(index\.php)?(.*)$ http://mydomain.ru/$2 permanent; -     } > -     location /index.php { -         rewrite ^/(.*)$ http://mydomain.ru permanent; +     location = /index.php { +         return 301 /; >     } > >     location / { -         try_files $uri $uri/ /index.php?q=$uri&$args; +         try_files $uri $uri/ /index.php?q=$request_uri; >     } > >     location ~ \.php$ { >         fastcgi_pass  127.0.0.1:9000; -         fastcgi_index index.php; -         include fastcgi_params; -         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; +         include fastcgi.conf; >     } > } > > Все работает, за исключением того, что не могу никак добиться, чтобы > mydomain.ru/index.php перенаправлялся на mydomain.ru. Подскажите, что ещё > нужно добавить или удалить, чтобы получился желаемый результат? > -- br, Denis F. Latypoff. From nginx-forum at nginx.us Sat Oct 27 22:41:47 2012 From: nginx-forum at nginx.us (pattern) Date: Sat, 27 Oct 2012 18:41:47 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRg9C00LDQu9C40YLRjCBpbmRleC5waHAg0LjQtyBVUkw=?= In-Reply-To: <788241351360329@web21f.yandex.ru> References: <788241351360329@web21f.yandex.ru> Message-ID: Огромное спасибо Денис! Правда, я уже добился результата путём создания конфига следующим образом (методом гугления и научного тыка): server { listen 80; server_name mydomain.ru www.mydomain.ru; server_name_in_redirect off; charset utf-8; access_log /var/log/nginx/access.mydomain.log main; error_log /var/log/nginx/error.mydomain.log info; root /usr/home/mydomain/public_html; index index.php index.html index.htm default.html default.htm; if ($host = "www.mydomain.ru" ) { rewrite ^/(index\.php)?(.*)$ http://mydomain.ru/$2 permanent; } if ($request_uri ~* ^/index\.php$) { return 301 http://mydomain.ru/; } location / { try_files $uri $uri/ /index.php?q=$uri&$args; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } Однако твой вариант мне гораздо больше нравится! Ещё раз спасибо! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232265,232272#msg-232272 From mdounin at mdounin.ru Mon Oct 29 08:22:30 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Mon, 29 Oct 2012 12:22:30 +0400 Subject: =?UTF-8?B?UmU6IHtuLG19IHF1YW50aWZpZXIg0LIgcmVnZXhwPw==?= In-Reply-To: <20121026165414.GA19147@external.screwed.box> References: <20121011181308.GA6687@external.screwed.box> <20121024090702.GY40452@mdounin.ru> <20121026165414.GA19147@external.screwed.box> Message-ID: <20121029082230.GC40452@mdounin.ru> Hello! On Fri, Oct 26, 2012 at 08:54:14PM +0400, Peter Vereshagin wrote: > Hello. > > 2012/10/24 13:07:02 +0400 Maxim Dounin => To nginx-ru at nginx.org : > > MD> http://nginx.org/ru/docs/http/ngx_http_rewrite_module.html#rewrite > MD> > MD> Если в регулярном выражении встречаются символы ???}??? или ???;???, то > MD> всё выражение следует заключить в одинарные или двойные кавычки. > > Данный абзац повторяется раз пять в докции в самых разных местах (и в описании > location{}, оказывается, тоже, последний абзац). Как минимум по аналогии с > докцией на php ожидал увидеть описание способов включения regexp'ов в конфиг > во вводной части докции, что, помимо прочего, улучшило бы DRY? > > Раньше докция была маленькой и особой структурированности от неё ожидать не > приходилось. Однако при теперечных её размерах общее описание синтаксиса в > виде отдельной страницы не помешало бы, включая варианты regexp'ов с > примерами. Есть такое пожелание. > > Помимо прочего, например, стремает писать модификаторы после двойной кавычки, > а вот был бы в докции такой пример - вопросов бы не было. А они тут, похоже, > регулярно появляются. > > Разумеется, поскольку свой вопрос не считал относящимся к директиве > location{}, там и не смотрел. Также и не смотрел и там где про rewrite, тем > более, тут его кто-то 101-им способом не любил. (= Да, это место было бы неплохо документировать в http://nginx.org/ru/docs/syntax.html, наконец сделав там полноценное описание синтаксиса конфигурационного файла. -- Maxim Dounin http://nginx.com/support.html From peter at vereshagin.org Mon Oct 29 09:05:18 2012 From: peter at vereshagin.org (Peter Vereshagin) Date: Mon, 29 Oct 2012 13:05:18 +0400 Subject: =?UTF-8?B?UmU6IHtuLG19IHF1YW50aWZpZXIg0LIgcmVnZXhwPw==?= In-Reply-To: <20121029082230.GC40452@mdounin.ru> References: <20121011181308.GA6687@external.screwed.box> <20121024090702.GY40452@mdounin.ru> <20121026165414.GA19147@external.screwed.box> <20121029082230.GC40452@mdounin.ru> Message-ID: <20121029090518.GD10059@external.screwed.box> Hello. 2012/10/29 12:22:30 +0400 Maxim Dounin => To nginx-ru at nginx.org : MD> Да, это место было бы неплохо документировать в MD> http://nginx.org/ru/docs/syntax.html, наконец сделав там MD> полноценное описание синтаксиса конфигурационного файла. Может, тикет сделать? патч самому вряд ли получится. -- Peter Vereshagin (http://vereshagin.org) pgp: A0E26627 From mdounin at mdounin.ru Mon Oct 29 10:33:49 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Mon, 29 Oct 2012 14:33:49 +0400 Subject: =?UTF-8?B?UmU6IHtuLG19IHF1YW50aWZpZXIg0LIgcmVnZXhwPw==?= In-Reply-To: <20121029090518.GD10059@external.screwed.box> References: <20121011181308.GA6687@external.screwed.box> <20121024090702.GY40452@mdounin.ru> <20121026165414.GA19147@external.screwed.box> <20121029082230.GC40452@mdounin.ru> <20121029090518.GD10059@external.screwed.box> Message-ID: <20121029103349.GJ40452@mdounin.ru> Hello! On Mon, Oct 29, 2012 at 01:05:18PM +0400, Peter Vereshagin wrote: > Hello. > > 2012/10/29 12:22:30 +0400 Maxim Dounin => To nginx-ru at nginx.org : > > MD> Да, это место было бы неплохо документировать в > MD> http://nginx.org/ru/docs/syntax.html, наконец сделав там > MD> полноценное описание синтаксиса конфигурационного файла. > > Может, тикет сделать? патч самому вряд ли получится. Не думаю, что имеет смысл. Про необходимость-то известно давно, проблемы именно с нормальным связным текстом - в первую очередь потому, что там надо достаточно много описать. -- Maxim Dounin http://nginx.com/support.html From mdounin at mdounin.ru Mon Oct 29 10:52:13 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Mon, 29 Oct 2012 14:52:13 +0400 Subject: =?UTF-8?B?UmU6ICRhcmdzICRhcmcgcGFyYW0gJHF1ZXJ5IHN0cmluZyDQstC90YPRgtGA0Lgg?= =?UTF-8?B?aWYg0YPRgdC70L7QstC40Y8=?= In-Reply-To: <935714d9cf39547ab0e8894407671a13.NginxMailingListRussian@forum.nginx.org> References: <935714d9cf39547ab0e8894407671a13.NginxMailingListRussian@forum.nginx.org> Message-ID: <20121029105213.GL40452@mdounin.ru> Hello! On Sat, Oct 27, 2012 at 07:36:52AM -0400, somebi wrote: > Использую версию nginx 1.2.0 > Захожу по адресу domaim.com/individual?charset=windows-1251 > > location / { > break; > proxy_pass http://127.0.0.1:4444; > 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; > > if ($arg_charset ~* windows-1251) { > charset windows-1251; > } > source_charset utf-8; > } > > Пробовал подставлять другие встроенные переменные описанные выше, но не > помогает. Если я убираю if условие, то все работает, как надо. > > Это баг или я делаю что-то не так? Не, это не баг. Директива "break" в начале location'а делает бессмысленными все остальные директивы модуля rewrite, из-за "break" они никогда не будут выполнятся. Соответственно то, что вы написали внутри if'а, никогда не будет применяться. Документация тут: http://nginx.org/r/break/ru -- Maxim Dounin http://nginx.com/support.html From nginx-forum at nginx.us Mon Oct 29 12:05:15 2012 From: nginx-forum at nginx.us (fura) Date: Mon, 29 Oct 2012 08:05:15 -0400 Subject: =?UTF-8?B?bG9jYXRpb24gZXJyb3IsIHJvb3Qg0L3QtSDQstC40LTQuNGCINC00YDRg9Cz0Lg=?= =?UTF-8?B?0LUg0YTQsNC50LvRiw==?= Message-ID: <3603a44bdbc4223c333512e59f82041d.NginxMailingListRussian@forum.nginx.org> Всем привет. Есть страничка, которая должна показываться при ошибки, в ней есть картинки(img src=), css и т.д. Вот пример конфига: server_name mysite; error_page 404 502 /notwork.html; location /notwork.html { root /var/www/notwork; } location / { proxy_pass http://other_server:8080; } В файле notwork.html есть текст вида: эта картинка (mypics.png) находится в директории /var/www/notwork, но не отображается. Если же сделать : error_page 404 502 /notwork; location /notwork { root /var/www; index notwork.html; } то тогда все картинки и файлы отображаются, но когда сайт начинает работать, не уходит с этого урла на location / . Как решить данную проблему? ЗЫ: т.е. либо чтобы показывались картинки с location /notwork.html либо перебрасывало на сайт когда тот доступен с /notwork. Пробовал try_files но получил зацикливание. Спасибо. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232318,232318#msg-232318 From mdounin at mdounin.ru Mon Oct 29 12:33:04 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Mon, 29 Oct 2012 16:33:04 +0400 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uIGVycm9yLCByb290INC90LUg0LLQuNC00LjRgiDQtNGA0YM=?= =?UTF-8?B?0LPQuNC1INGE0LDQudC70Ys=?= In-Reply-To: <3603a44bdbc4223c333512e59f82041d.NginxMailingListRussian@forum.nginx.org> References: <3603a44bdbc4223c333512e59f82041d.NginxMailingListRussian@forum.nginx.org> Message-ID: <20121029123304.GM40452@mdounin.ru> Hello! On Mon, Oct 29, 2012 at 08:05:15AM -0400, fura wrote: > Всем привет. > > Есть страничка, которая должна показываться при ошибки, в ней есть > картинки(img src=), css и т.д. > Вот пример конфига: > > server_name mysite; > > error_page 404 502 /notwork.html; > > location /notwork.html { > root /var/www/notwork; > } > > location / { > proxy_pass http://other_server:8080; > } > > > В файле notwork.html есть текст вида: > > эта картинка (mypics.png) находится в директории /var/www/notwork, но не > отображается. Картинка не отображается, т.к. сама страница ошибки показывается по произвольному адресу, и попытавшись разрешить относительный путь от этого произвольного адреса - браузер гарантированно получит неправильный результат. > Если же сделать : > > error_page 404 502 /notwork; > > location /notwork { > root /var/www; > index notwork.html; > } > > то тогда все картинки и файлы отображаются, но когда сайт начинает работать, > не уходит с этого урла на location / . А так у вас в результате попытки возврата каталога будет перенаправление с кодом 301 на /notwork/. Пути в рамках страницы ошибки при этом будут правильные, но исходный адрес страницы, где был пользователь, теряется. (Кроме того, для того, чтобы добиться того же эффекта не нужны все эти сложности с индексным файлом и автоматическим перенаправлением, можно сразу адрес для перенаправления в error_page написать, но в любом случае редко когда нужно подобное поведение при обработке ошибок.) > Как решить данную проблему? Правильно делать так: Определяем обработку ошибок: error_page 404 502 /errors/error.html; Определяем обработку для страницы с ошибкой и файлов в ней: location /errors/ { root /var/www; } Поскольку страница с ошибкой может показываться по совершенно разным с точки зрения браузера адресам, использование в ней относительных адресов для вставки картинок - недопустимо. Используем вместо этого полный путь от корня сайта: Как-то так всё должно работать. -- Maxim Dounin http://nginx.com/support.html From nginx-forum at nginx.us Mon Oct 29 13:01:51 2012 From: nginx-forum at nginx.us (fura) Date: Mon, 29 Oct 2012 09:01:51 -0400 Subject: =?UTF-8?B?UmU6IGxvY2F0aW9uIGVycm9yLCByb290INC90LUg0LLQuNC00LjRgiDQtNGA0YM=?= =?UTF-8?B?0LPQuNC1INGE0LDQudC70Ys=?= In-Reply-To: <20121029123304.GM40452@mdounin.ru> References: <20121029123304.GM40452@mdounin.ru> Message-ID: <509ad4409756e071e8dc7b06129c9269.NginxMailingListRussian@forum.nginx.org> Спасибо огромное. Все понял. Во всем разобрался. Попробовал получилось. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232318,232320#msg-232320 From mdounin at mdounin.ru Mon Oct 29 17:28:49 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Mon, 29 Oct 2012 21:28:49 +0400 Subject: =?UTF-8?B?UmU6IHItPmNvbm5lY3Rpb24tPm51bWJlciDQsiDQstGB0YLRgNC+0LXQvdC+0Lwg?= =?UTF-8?B?0L/QtdGA0LvQtQ==?= In-Reply-To: <300681351195358@web1f.yandex.ru> References: <1359391350812717@web2d.yandex.ru> <819071351076775@web5e.yandex.ru> <20121024153305.GE40452@mdounin.ru> <1347861351142682@web16h.yandex.ru> <20121025144602.GS40452@mdounin.ru> <300681351195358@web1f.yandex.ru> Message-ID: <20121029172849.GP40452@mdounin.ru> Hello! On Fri, Oct 26, 2012 at 12:02:38AM +0400, umask wrote: > Доброй ночи, > > патч проверил - собралось успешно. > > Значения > $r->variable(connection) > и > $r->variable(connection_requests) > > доступны в встроеном перле и успешно попадают в логи. Спасибо, закоммичено. (Хотя я бы всё-таки рекомендовал писать строковые константы в кавычках, не полагаясь на догадливость perl'а.) -- Maxim Dounin http://nginx.com/support.html From nginx-forum at nginx.us Mon Oct 29 22:13:28 2012 From: nginx-forum at nginx.us (ak84) Date: Mon, 29 Oct 2012 18:13:28 -0400 Subject: nginx & core dump 3 Message-ID: <07d15e6069458747dec7f1567860bfff.NginxMailingListRussian@forum.nginx.org> Добый день. В этой теме http://forum.nginx.org/read.php?21,231434 выяснили, что core dump может возникать из-за некорректного использования if и set nginx обновлён: nginx version: nginx/1.2.4 TLS SNI support enabled configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I /usr/local/include' --with-ld-opt='-L /usr/local/lib' --conf-path=/usr/local/etc/nginx/nginx.conf --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx-error.log --user=www --group=www --with-debug --http-client-body-temp-path=/var/tmp/nginx/client_body_temp --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp --http-proxy-temp-path=/var/tmp/nginx/proxy_temp --http-scgi-temp-path=/var/tmp/nginx/scgi_temp --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp --http-log-path=/var/log/nginx-access.log --add-module=/usr/ports/www/nginx/work/agentzh-headers-more-nginx-module-6586984 --with-http_image_filter_module --add-module=/usr/ports/www/nginx/work/yaoweibin-ngx_http_substitutions_filter_module-27a01b3 --with-http_stub_status_module --with-pcre --with-http_ssl_module Поправил конфиги, core dump'ов стало меньше, но появляются следующе сообщения: По top'у видно, что память отъедает nginx pid 9123 (nginx), uid 80: exited on signal 11 swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(8): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(9): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(9): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(9): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(9): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(9): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(9): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(9): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(9): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(9): failed swap_pager_getswapspace(5): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(9): failed swap_pager_getswapspace(5): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(9): failed swap_pager_getswapspace(5): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(9): failed swap_pager_getswapspace(5): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(9): failed swap_pager_getswapspace(5): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(9): failed swap_pager_getswapspace(5): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(9): failed swap_pager_getswapspace(5): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(9): failed swap_pager_getswapspace(5): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(12): failed swap_pager_getswapspace(9): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(9): failed swap_pager_getswapspace(16): failed swap_pager_getswapspace(3): failed swap_pager_getswapspace(3): failed pid 9139 (nginx), uid 80, was killed: out of swap space pid 5248 (nginx), uid 80: exited on signal 11 pid 14513 (nginx), uid 80: exited on signal 10 (core dumped) pid 14287 (nginx), uid 80: exited on signal 11 pid 20986 (nginx), uid 80: exited on signal 11 pid 14289 (nginx), uid 80: exited on signal 11 pid 32879 (nginx), uid 80: exited on signal 11 pid 32881 (nginx), uid 80: exited on signal 11 pid 37883 (nginx), uid 80: exited on signal 11 pid 32878 (nginx), uid 80: exited on signal 10 (core dumped) pid 32880 (nginx), uid 80: exited on signal 11 pid 37880 (nginx), uid 80: exited on signal 11 pid 64793 (nginx), uid 80: exited on signal 11 (core dumped) Как можно выяснить, почему отъедается память и почему nginx падает в корку? Пример bt ( signal 10): gdb /usr/local/sbin/nginx nginx.core.32878 GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd"... Core was generated by `nginx'. Program terminated with signal 10, Bus error. Reading symbols from /lib/libcrypt.so.5...done. Loaded symbols for /lib/libcrypt.so.5 Reading symbols from /usr/local/lib/libpcre.so.1...done. Loaded symbols for /usr/local/lib/libpcre.so.1 Reading symbols from /usr/lib/libssl.so.6...done. Loaded symbols for /usr/lib/libssl.so.6 Reading symbols from /lib/libcrypto.so.6...done. Loaded symbols for /lib/libcrypto.so.6 Reading symbols from /lib/libz.so.5...done. Loaded symbols for /lib/libz.so.5 Reading symbols from /usr/local/lib/libgd.so.4...done. Loaded symbols for /usr/local/lib/libgd.so.4 Reading symbols from /lib/libc.so.7...done. Loaded symbols for /lib/libc.so.7 Reading symbols from /usr/local/lib/libfontconfig.so.1...done. Loaded symbols for /usr/local/lib/libfontconfig.so.1 Reading symbols from /usr/local/lib/libiconv.so.3...done. Loaded symbols for /usr/local/lib/libiconv.so.3 Reading symbols from /usr/local/lib/libpng15.so.15...done. Loaded symbols for /usr/local/lib/libpng15.so.15 Reading symbols from /usr/local/lib/libjpeg.so.11...done. Loaded symbols for /usr/local/lib/libjpeg.so.11 Reading symbols from /usr/local/lib/libfreetype.so.9...done. Loaded symbols for /usr/local/lib/libfreetype.so.9 Reading symbols from /lib/libm.so.5...done. Loaded symbols for /lib/libm.so.5 Reading symbols from /lib/libthr.so.3...done. Loaded symbols for /lib/libthr.so.3 Reading symbols from /usr/lib/libbz2.so.4...done. Loaded symbols for /usr/lib/libbz2.so.4 Reading symbols from /usr/local/lib/libexpat.so.6...done. Loaded symbols for /usr/local/lib/libexpat.so.6 Reading symbols from /libexec/ld-elf.so.1...done. Loaded symbols for /libexec/ld-elf.so.1 #0 0x00000008010c8790 in memcpy () from /lib/libc.so.7 [New Thread 801e041c0 (LWP 104625)] [New LWP 100667] (gdb) bt #0 0x00000008010c8790 in memcpy () from /lib/libc.so.7 #1 0x000000000049efa4 in ngx_http_proxy_create_request (r=0x801f8de00) at src/http/modules/ngx_http_proxy_module.c:1174 #2 0x0000000000468b91 in ngx_http_upstream_init_request (r=0x801f8de00) at src/http/ngx_http_upstream.c:505 #3 0x0000000000468924 in ngx_http_upstream_init (r=0x801f8de00) at src/http/ngx_http_upstream.c:446 #4 0x000000000045eca3 in ngx_http_read_client_request_body (r=0x801f8de00, post_handler=0x468840 ) at src/http/ngx_http_request_body.c:59 #5 0x000000000049d9dc in ngx_http_proxy_handler (r=0x801f8de00) at src/http/modules/ngx_http_proxy_module.c:702 #6 0x00000000004469cd in ngx_http_core_content_phase (r=0x801f8de00, ph=0x802079780) at src/http/ngx_http_core_module.c:1396 #7 0x0000000000445502 in ngx_http_core_run_phases (r=0x801f8de00) at src/http/ngx_http_core_module.c:877 #8 0x000000000044547d in ngx_http_handler (r=0x801f8de00) at src/http/ngx_http_core_module.c:860 #9 0x0000000000453d94 in ngx_http_process_request (r=0x801f8de00) at src/http/ngx_http_request.c:1685 #10 0x0000000000452795 in ngx_http_process_request_headers (rev=0x804a138d0) at src/http/ngx_http_request.c:1135 #11 0x0000000000451f26 in ngx_http_process_request_line (rev=0x804a138d0) at src/http/ngx_http_request.c:933 #12 0x0000000000451128 in ngx_http_init_request (rev=0x804a138d0) at src/http/ngx_http_request.c:519 #13 0x000000000042d47c in ngx_event_process_posted (cycle=0x801e55050, posted=0x5f0a60) at src/event/ngx_event_posted.c:40 #14 0x000000000042af25 in ngx_process_events_and_timers (cycle=0x801e55050) at src/event/ngx_event.c:274 #15 0x0000000000438264 in ngx_worker_process_cycle (cycle=0x801e55050, data=0x0) at src/os/unix/ngx_process_cycle.c:808 #16 0x0000000000435261 in ngx_spawn_process (cycle=0x801e55050, proc=0x438070 , data=0x0, name=0x4c1869 "worker process", respawn=-4) at src/os/unix/ngx_process.c:198 #17 0x00000000004370ca in ngx_start_worker_processes (cycle=0x801e55050, n=4, type=-4) at src/os/unix/ngx_process_cycle.c:365 #18 0x0000000000436c92 in ngx_master_process_cycle (cycle=0x801e55050) at src/os/unix/ngx_process_cycle.c:250 #19 0x00000000004066d3 in main (argc=1, argv=0x7fffffffed68) at src/core/nginx.c:410 bt full: #0 0x00000008010c8790 in memcpy () from /lib/libc.so.7 No symbol table info available. #1 0x000000000049efa4 in ngx_http_proxy_create_request (r=0x801f8de00) at src/http/modules/ngx_http_proxy_module.c:1174 len = 17 uri_len = 20 loc_len = 0 body_len = 0 escape = 0 b = (ngx_buf_t *) 0x802228f88 method = {len = 4, data = 0x801e4dc00 "GET /images/menu.png HTTP/1.0\r\nX-Real-Remote-Addr"} i = 0 unparsed_uri = 1 cl = (ngx_chain_t *) 0x802228fd8 body = (ngx_chain_t *) 0x0 part = (ngx_list_part_t *) 0x802228c68 header = (ngx_table_elt_t *) 0x802278050 u = (ngx_http_upstream_t *) 0x8022783e0 ctx = (ngx_http_proxy_ctx_t *) 0x802228db8 code = 0x465e70 e = {ip = 0x8027f86a8 "220; smartphone; sda/1.0 profile/midp-2.0 configuration/cldc-1.1)", pos = 0x80227879e "X-Real-Remote-Addr: 192.168.0.10\r\nX-Forwarded-For: 192.168.0.10\r\nX-LAC: 1E82\r\nX-CI: 13F5\r\nX-3GPP-SGSN-MCC-MNC: 10002\r\nAccept: application/vnd.wap.wmlscriptc, text/vnd.wap.wml, applic"..., sp = 0x0, buf = {len = 0, data = 0x0}, line = {len = 0, data = 0x0}, args = 0x0, flushed = 1, skip = 0, quote = 0, is_args = 0, log = 0, status = 0, request = 0x801f8de00} le = {ip = 0x8027f8928 "", pos = 0x21b1e75
, sp = 0x1, buf = {len = 0, data = 0x800000000
}, line = {len = 1431655766, data = 0x0}, args = 0x0, flushed = 1, skip = 0, quote = 0, is_args = 0, log = 0, status = 34391514115, request = 0x801f8de00} plcf = (ngx_http_proxy_loc_conf_t *) 0x8025f36f0 lcode = 0x465e40 #2 0x0000000000468b91 in ngx_http_upstream_init_request (r=0x801f8de00) at src/http/ngx_http_upstream.c:505 host = (ngx_str_t *) 0x801ef2000 i = 34426990232 ctx = (ngx_resolver_ctx_t *) 0x7fffffffe570 temp = {next = 0x0, resolver = 0x0, udp_connection = 0x0, ident = 140737488348416, state = 34399257320, type = 2, name = {len = 140737488348512, data = 0x7fffffffed78 "f????\177"}, naddrs = 97, addrs = 0x78, addr = 4294967273, handler = 0xe, data = 0x0, timeout = 37, quick = 18446744073709551614, recursion = 34443704528, event = 0x7fffffffe570} cln = (ngx_http_cleanup_t *) 0x43af3a u = (ngx_http_upstream_t *) 0x8022783e0 clcf = (ngx_http_core_loc_conf_t *) 0x20 uscf = (ngx_http_upstream_srv_conf_t *) 0xfffffffffffffffe uscfp = (ngx_http_upstream_srv_conf_t **) 0x8050138d0 umcf = (ngx_http_upstream_main_conf_t *) 0x802228f58 #3 0x0000000000468924 in ngx_http_upstream_init (r=0x801f8de00) at src/http/ngx_http_upstream.c:446 c = (ngx_connection_t *) 0x804022e98 #4 0x000000000045eca3 in ngx_http_read_client_request_body (r=0x801f8de00, post_handler=0x468840 ) at src/http/ngx_http_request_body.c:59 preread = 34395553792 size = 34395557464 b = (ngx_buf_t *) 0x802228000 cl = (ngx_chain_t *) 0x7fffffffe620 next = (ngx_chain_t **) 0x40996a ---Type to continue, or q to quit--- tf = (ngx_temp_file_t *) 0x100 rb = (ngx_http_request_body_t *) 0x802228f58 clcf = (ngx_http_core_loc_conf_t *) 0x0 #5 0x000000000049d9dc in ngx_http_proxy_handler (r=0x801f8de00) at src/http/modules/ngx_http_proxy_module.c:702 rc = 34391556280 u = (ngx_http_upstream_t *) 0x8022783e0 ctx = (ngx_http_proxy_ctx_t *) 0x802228db8 plcf = (ngx_http_proxy_loc_conf_t *) 0x8025f36f0 #6 0x00000000004469cd in ngx_http_core_content_phase (r=0x801f8de00, ph=0x802079780) at src/http/ngx_http_core_module.c:1396 root = 18446744073709551611 rc = 0 path = {len = 34393790312, data = 0x801f8de00 "HTTP"} #7 0x0000000000445502 in ngx_http_core_run_phases (r=0x801f8de00) at src/http/ngx_http_core_module.c:877 rc = -2 ph = (ngx_http_phase_handler_t *) 0x802079690 cmcf = (ngx_http_core_main_conf_t *) 0x801e567a0 #8 0x000000000044547d in ngx_http_handler (r=0x801f8de00) at src/http/ngx_http_core_module.c:860 cmcf = (ngx_http_core_main_conf_t *) 0x804a138d0 #9 0x0000000000453d94 in ngx_http_process_request (r=0x801f8de00) at src/http/ngx_http_request.c:1685 c = (ngx_connection_t *) 0x804022e98 #10 0x0000000000452795 in ngx_http_process_request_headers (rev=0x804a138d0) at src/http/ngx_http_request.c:1135 p = (u_char *) 0x10
len = 34395553792 n = 281 rc = 0 rv = 0 h = (ngx_table_elt_t *) 0x802278020 c = (ngx_connection_t *) 0x804022e98 hh = (ngx_http_header_t *) 0x0 r = (ngx_http_request_t *) 0x801f8de00 cscf = (ngx_http_core_srv_conf_t *) 0x8021cd078 cmcf = (ngx_http_core_main_conf_t *) 0x801e567a0 #11 0x0000000000451f26 in ngx_http_process_request_line (rev=0x804a138d0) at src/http/ngx_http_request.c:933 host = (u_char *) 0x802228000 "?\217\"\002\b" n = 1024 rc = 0 rv = 560 c = (ngx_connection_t *) 0x804022e98 r = (ngx_http_request_t *) 0x801f8de00 cscf = (ngx_http_core_srv_conf_t *) 0x802228568 #12 0x0000000000451128 in ngx_http_init_request (rev=0x804a138d0) at src/http/ngx_http_request.c:519 tp = (ngx_time_t *) 0x5ee5e0 i = 34359738384 c = (ngx_connection_t *) 0x804022e98 r = (ngx_http_request_t *) 0x801f8de00 sin = (struct sockaddr_in *) 0x218021c5020 port = (ngx_http_port_t *) 0x80207afd0 addr = (ngx_http_in_addr_t *) 0x80207afe0 ---Type to continue, or q to quit--- ctx = (ngx_http_log_ctx_t *) 0x802158fa0 addr_conf = (ngx_http_addr_conf_t *) 0x80207afe8 hc = (ngx_http_connection_t *) 0x802158fb8 cscf = (ngx_http_core_srv_conf_t *) 0x8021cd078 clcf = (ngx_http_core_loc_conf_t *) 0x8021cd110 cmcf = (ngx_http_core_main_conf_t *) 0x801e567a0 #13 0x000000000042d47c in ngx_event_process_posted (cycle=0x801e55050, posted=0x5f0a60) at src/event/ngx_event_posted.c:40 ev = (ngx_event_t *) 0x804a138d0 #14 0x000000000042af25 in ngx_process_events_and_timers (cycle=0x801e55050) at src/event/ngx_event.c:274 flags = 2 timer = 18446744073709551615 delta = 0 #15 0x0000000000438264 in ngx_worker_process_cycle (cycle=0x801e55050, data=0x0) at src/os/unix/ngx_process_cycle.c:808 i = 1 c = (ngx_connection_t *) 0x7fffffffe9e0 #16 0x0000000000435261 in ngx_spawn_process (cycle=0x801e55050, proc=0x438070 , data=0x0, name=0x4c1869 "worker process", respawn=-4) at src/os/unix/ngx_process.c:198 on = 1 pid = 0 s = 0 #17 0x00000000004370ca in ngx_start_worker_processes (cycle=0x801e55050, n=4, type=-4) at src/os/unix/ngx_process_cycle.c:365 i = 0 ch = {command = 1, pid = 32452488, slot = 6111520, fd = 6219400} #18 0x0000000000436c92 in ngx_master_process_cycle (cycle=0x801e55050) at src/os/unix/ngx_process_cycle.c:250 title = 0x8023fe6cc "" p = (u_char *) 0x8023fe6f0 "????????" size = 37 i = 1 n = 6 sigio = 0 set = {__bits = {0, 0, 0, 0}} itv = {it_interval = {tv_sec = 0, tv_usec = 0}, it_value = {tv_sec = 0, tv_usec = 0}} live = 1 delay = 0 ls = (ngx_listening_t *) 0x6 ccf = (ngx_core_conf_t *) 0x801e55f88 #19 0x00000000004066d3 in main (argc=1, argv=0x7fffffffed68) at src/core/nginx.c:410 i = 52 log = (ngx_log_t *) 0x5ee040 cycle = (ngx_cycle_t *) 0x801e55050 init_cycle = {conf_ctx = 0x0, pool = 0x801e49800, log = 0x5ee040, 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 = 0x0, nelts = 0, size = 0, nalloc = 0, pool = 0x0}, 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 = 31, data = 0x4bd9f0 "/usr/local/etc/nginx/nginx.conf"}, conf_param = {len = 0, data = 0x0}, conf_prefix = {len = 21, data = 0x4bd9f0 "/usr/local/etc/nginx/nginx.conf"}, prefix = {len = 21, data = 0x4bd9d8 "/usr/local/etc/nginx/"}, lock_file = {len = 0, data = 0x0}, hostname = {len = 0, data = 0x0}} ccf = (ngx_core_conf_t *) 0x801e56040 Пример bt ( signal 11): gdb /usr/local/sbin/nginx nginx.core.64793 GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd"... Core was generated by `nginx'. Program terminated with signal 11, Segmentation fault. Reading symbols from /lib/libcrypt.so.5...done. Loaded symbols for /lib/libcrypt.so.5 Reading symbols from /usr/local/lib/libpcre.so.1...done. Loaded symbols for /usr/local/lib/libpcre.so.1 Reading symbols from /usr/lib/libssl.so.6...done. Loaded symbols for /usr/lib/libssl.so.6 Reading symbols from /lib/libcrypto.so.6...done. Loaded symbols for /lib/libcrypto.so.6 Reading symbols from /lib/libz.so.5...done. Loaded symbols for /lib/libz.so.5 Reading symbols from /usr/local/lib/libgd.so.4...done. Loaded symbols for /usr/local/lib/libgd.so.4 Reading symbols from /lib/libc.so.7...done. Loaded symbols for /lib/libc.so.7 Reading symbols from /usr/local/lib/libfontconfig.so.1...done. Loaded symbols for /usr/local/lib/libfontconfig.so.1 Reading symbols from /usr/local/lib/libiconv.so.3...done. Loaded symbols for /usr/local/lib/libiconv.so.3 Reading symbols from /usr/local/lib/libpng15.so.15...done. Loaded symbols for /usr/local/lib/libpng15.so.15 Reading symbols from /usr/local/lib/libjpeg.so.11...done. Loaded symbols for /usr/local/lib/libjpeg.so.11 Reading symbols from /usr/local/lib/libfreetype.so.9...done. Loaded symbols for /usr/local/lib/libfreetype.so.9 Reading symbols from /lib/libm.so.5...done. Loaded symbols for /lib/libm.so.5 Reading symbols from /lib/libthr.so.3...done. Loaded symbols for /lib/libthr.so.3 Reading symbols from /usr/lib/libbz2.so.4...done. Loaded symbols for /usr/lib/libbz2.so.4 Reading symbols from /usr/local/lib/libexpat.so.6...done. Loaded symbols for /usr/local/lib/libexpat.so.6 Reading symbols from /libexec/ld-elf.so.1...done. Loaded symbols for /libexec/ld-elf.so.1 #0 0x00000008010c8790 in memcpy () from /lib/libc.so.7 [New Thread 801e041c0 (LWP 104625)] [New LWP 104661] #0 0x00000008010c8790 in memcpy () from /lib/libc.so.7 #1 0x000000000049ef0c in ngx_http_proxy_create_request (r=0x801f8d400) at src/http/modules/ngx_http_proxy_module.c:1170 #2 0x0000000000468b91 in ngx_http_upstream_init_request (r=0x801f8d400) at src/http/ngx_http_upstream.c:505 #3 0x0000000000468924 in ngx_http_upstream_init (r=0x801f8d400) at src/http/ngx_http_upstream.c:446 #4 0x000000000045eca3 in ngx_http_read_client_request_body (r=0x801f8d400, post_handler=0x468840 ) at src/http/ngx_http_request_body.c:59 #5 0x000000000049d9dc in ngx_http_proxy_handler (r=0x801f8d400) at src/http/modules/ngx_http_proxy_module.c:702 #6 0x00000000004469cd in ngx_http_core_content_phase (r=0x801f8d400, ph=0x802079780) at src/http/ngx_http_core_module.c:1396 #7 0x0000000000445502 in ngx_http_core_run_phases (r=0x801f8d400) at src/http/ngx_http_core_module.c:877 #8 0x000000000044547d in ngx_http_handler (r=0x801f8d400) at src/http/ngx_http_core_module.c:860 #9 0x0000000000453d94 in ngx_http_process_request (r=0x801f8d400) at src/http/ngx_http_request.c:1685 #10 0x0000000000452795 in ngx_http_process_request_headers (rev=0x804a013b0) at src/http/ngx_http_request.c:1135 #11 0x0000000000451f26 in ngx_http_process_request_line (rev=0x804a013b0) at src/http/ngx_http_request.c:933 #12 0x0000000000451128 in ngx_http_init_request (rev=0x804a013b0) at src/http/ngx_http_request.c:519 #13 0x000000000042d47c in ngx_event_process_posted (cycle=0x801e55050, posted=0x5f0a60) at src/event/ngx_event_posted.c:40 #14 0x000000000042af25 in ngx_process_events_and_timers (cycle=0x801e55050) at src/event/ngx_event.c:274 #15 0x0000000000438264 in ngx_worker_process_cycle (cycle=0x801e55050, data=0x0) at src/os/unix/ngx_process_cycle.c:808 #16 0x0000000000435261 in ngx_spawn_process (cycle=0x801e55050, proc=0x438070 , data=0x0, name=0x4c1869 "worker process", respawn=3) at src/os/unix/ngx_process.c:198 #17 0x0000000000437c92 in ngx_reap_children (cycle=0x801e55050) at src/os/unix/ngx_process_cycle.c:622 #18 0x00000000004369e6 in ngx_master_process_cycle (cycle=0x801e55050) at src/os/unix/ngx_process_cycle.c:181 #19 0x00000000004066d3 in main (argc=1, argv=0x7fffffffed68) at src/core/nginx.c:410 bt full: #0 0x00000008010c8790 in memcpy () from /lib/libc.so.7 No symbol table info available. #1 0x000000000049ef0c in ngx_http_proxy_create_request (r=0x801f8d400) at src/http/modules/ngx_http_proxy_module.c:1170 len = 17 uri_len = 20 loc_len = 0 body_len = 0 escape = 0 b = (ngx_buf_t *) 0x802041f88 method = {len = 4, data = 0x801e4d400 "GET /images/title.jpg HTTP/1.0\r\nX-Real-Remote-Addr"} i = 0 unparsed_uri = 1 cl = (ngx_chain_t *) 0x802041fe8 body = (ngx_chain_t *) 0x0 part = (ngx_list_part_t *) 0x802041c68 header = (ngx_table_elt_t *) 0x80204c050 u = (ngx_http_upstream_t *) 0x80204c3e0 ctx = (ngx_http_proxy_ctx_t *) 0x802041db8 code = 0x465e70 e = {ip = 0x8027f86a8 "220; smartphone; sda/1.0 profile/midp-2.0 configuration/cldc-1.1)", pos = 0x805600066 "X-Real-Remote-Addr: 192.168.0.11\r\nX-Forwarded-For: 192.168.0.11\r\nX-LAC: 1E82\r\nX-CI: 13F5\r\nX-3GPP-SGSN-MCC-MNC: 10002\r\nAccept: application/vnd.wap.wmlscriptc, text/vnd.wap.wml, applic"..., sp = 0x0, buf = {len = 0, data = 0x0}, line = {len = 0, data = 0x0}, args = 0x0, flushed = 1, skip = 0, quote = 0, is_args = 0, log = 0, status = 0, request = 0x801f8d400} le = {ip = 0x8027f8928 "", pos = 0x508dad7d
, sp = 0x1, buf = {len = 0, data = 0x800000000
}, line = {len = 1431655766, data = 0x0}, args = 0x0, flushed = 1, skip = 0, quote = 0, is_args = 0, log = 0, status = 34391512067, request = 0x801f8d400} plcf = (ngx_http_proxy_loc_conf_t *) 0x8025f36f0 lcode = 0x465e40 #2 0x0000000000468b91 in ngx_http_upstream_init_request (r=0x801f8d400) at src/http/ngx_http_upstream.c:505 host = (ngx_str_t *) 0x801ef2000 i = 34426856232 ctx = (ngx_resolver_ctx_t *) 0x7fffffffe520 temp = {next = 0x0, resolver = 0x0, udp_connection = 0x0, ident = 140737488348336, state = 34399257320, type = 2, name = {len = 140737488348432, data = 0x7fffffffed78 "f????\177"}, naddrs = 97, addrs = 0x78, addr = 4294967273, handler = 0xe, data = 0x0, timeout = 37, quick = 18446744073709551614, recursion = 34443629488, event = 0x7fffffffe520} cln = (ngx_http_cleanup_t *) 0x43af3a u = (ngx_http_upstream_t *) 0x80204c3e0 clcf = (ngx_http_core_loc_conf_t *) 0x20 uscf = (ngx_http_upstream_srv_conf_t *) 0xfffffffffffffffe uscfp = (ngx_http_upstream_srv_conf_t **) 0x8050013b0 umcf = (ngx_http_upstream_main_conf_t *) 0x802041f58 #3 0x0000000000468924 in ngx_http_upstream_init (r=0x801f8d400) at src/http/ngx_http_upstream.c:446 c = (ngx_connection_t *) 0x804002328 #4 0x000000000045eca3 in ngx_http_read_client_request_body (r=0x801f8d400, post_handler=0x468840 ) at src/http/ngx_http_request_body.c:59 preread = 34393559040 size = 34393562712 b = (ngx_buf_t *) 0x802041000 cl = (ngx_chain_t *) 0x7fffffffe5d0 ---Type to continue, or q to quit--- next = (ngx_chain_t **) 0x40996a tf = (ngx_temp_file_t *) 0x100 rb = (ngx_http_request_body_t *) 0x802041f58 clcf = (ngx_http_core_loc_conf_t *) 0x0 #5 0x000000000049d9dc in ngx_http_proxy_handler (r=0x801f8d400) at src/http/modules/ngx_http_proxy_module.c:702 rc = 34391556280 u = (ngx_http_upstream_t *) 0x80204c3e0 ctx = (ngx_http_proxy_ctx_t *) 0x802041db8 plcf = (ngx_http_proxy_loc_conf_t *) 0x8025f36f0 #6 0x00000000004469cd in ngx_http_core_content_phase (r=0x801f8d400, ph=0x802079780) at src/http/ngx_http_core_module.c:1396 root = 18446744073709551611 rc = 0 path = {len = 34393790312, data = 0x801f8d400 "HTTP"} #7 0x0000000000445502 in ngx_http_core_run_phases (r=0x801f8d400) at src/http/ngx_http_core_module.c:877 rc = -2 ph = (ngx_http_phase_handler_t *) 0x802079690 cmcf = (ngx_http_core_main_conf_t *) 0x801e567a0 #8 0x000000000044547d in ngx_http_handler (r=0x801f8d400) at src/http/ngx_http_core_module.c:860 cmcf = (ngx_http_core_main_conf_t *) 0x804a013b0 #9 0x0000000000453d94 in ngx_http_process_request (r=0x801f8d400) at src/http/ngx_http_request.c:1685 c = (ngx_connection_t *) 0x804002328 #10 0x0000000000452795 in ngx_http_process_request_headers (rev=0x804a013b0) at src/http/ngx_http_request.c:1135 p = (u_char *) 0x10
len = 34393559040 n = 281 rc = 0 rv = 0 h = (ngx_table_elt_t *) 0x80204c020 c = (ngx_connection_t *) 0x804002328 hh = (ngx_http_header_t *) 0x0 r = (ngx_http_request_t *) 0x801f8d400 cscf = (ngx_http_core_srv_conf_t *) 0x8021cd078 cmcf = (ngx_http_core_main_conf_t *) 0x801e567a0 #11 0x0000000000451f26 in ngx_http_process_request_line (rev=0x804a013b0) at src/http/ngx_http_request.c:933 host = (u_char *) 0x802041000 "?\037\004\002\b" n = 1024 rc = 0 rv = 560 c = (ngx_connection_t *) 0x804002328 r = (ngx_http_request_t *) 0x801f8d400 cscf = (ngx_http_core_srv_conf_t *) 0x802041568 #12 0x0000000000451128 in ngx_http_init_request (rev=0x804a013b0) at src/http/ngx_http_request.c:519 tp = (ngx_time_t *) 0x5ee1d8 i = 34426852432 c = (ngx_connection_t *) 0x804002328 r = (ngx_http_request_t *) 0x801f8d400 sin = (struct sockaddr_in *) 0x17302027020 port = (ngx_http_port_t *) 0x80207afd0 ---Type to continue, or q to quit--- addr = (ngx_http_in_addr_t *) 0x80207afe0 ctx = (ngx_http_log_ctx_t *) 0x80239b2a0 addr_conf = (ngx_http_addr_conf_t *) 0x80207afe8 hc = (ngx_http_connection_t *) 0x80239b2b8 cscf = (ngx_http_core_srv_conf_t *) 0x8021cd078 clcf = (ngx_http_core_loc_conf_t *) 0x8021cd110 cmcf = (ngx_http_core_main_conf_t *) 0x801e567a0 #13 0x000000000042d47c in ngx_event_process_posted (cycle=0x801e55050, posted=0x5f0a60) at src/event/ngx_event_posted.c:40 ev = (ngx_event_t *) 0x804a013b0 #14 0x000000000042af25 in ngx_process_events_and_timers (cycle=0x801e55050) at src/event/ngx_event.c:274 flags = 2 timer = 18446744073709551615 delta = 0 #15 0x0000000000438264 in ngx_worker_process_cycle (cycle=0x801e55050, data=0x0) at src/os/unix/ngx_process_cycle.c:808 i = 1 c = (ngx_connection_t *) 0x7fffffffe990 #16 0x0000000000435261 in ngx_spawn_process (cycle=0x801e55050, proc=0x438070 , data=0x0, name=0x4c1869 "worker process", respawn=3) at src/os/unix/ngx_process.c:198 on = 1 pid = 0 s = 3 #17 0x0000000000437c92 in ngx_reap_children (cycle=0x801e55050) at src/os/unix/ngx_process_cycle.c:622 i = 3 n = 6 live = 1 ch = {command = 2, pid = 37883, slot = 3, fd = -1} ccf = (ngx_core_conf_t *) 0x508dad7c #18 0x00000000004369e6 in ngx_master_process_cycle (cycle=0x801e55050) at src/os/unix/ngx_process_cycle.c:181 title = 0x8023fe6cc "" p = (u_char *) 0x8023fe6f0 "????????" size = 37 i = 1 n = 6 sigio = 0 set = {__bits = {0, 0, 0, 0}} itv = {it_interval = {tv_sec = 0, tv_usec = 0}, it_value = {tv_sec = 0, tv_usec = 0}} live = 1 delay = 0 ls = (ngx_listening_t *) 0x6 ccf = (ngx_core_conf_t *) 0x801e55f88 #19 0x00000000004066d3 in main (argc=1, argv=0x7fffffffed68) at src/core/nginx.c:410 i = 52 log = (ngx_log_t *) 0x5ee040 cycle = (ngx_cycle_t *) 0x801e55050 init_cycle = {conf_ctx = 0x0, pool = 0x801e49800, log = 0x5ee040, 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 = 0x0, nelts = 0, size = 0, nalloc = 0, pool = 0x0}, 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, ---Type to continue, or q to quit--- files_n = 0, connections = 0x0, read_events = 0x0, write_events = 0x0, old_cycle = 0x0, conf_file = {len = 31, data = 0x4bd9f0 "/usr/local/etc/nginx/nginx.conf"}, conf_param = {len = 0, data = 0x0}, conf_prefix = {len = 21, data = 0x4bd9f0 "/usr/local/etc/nginx/nginx.conf"}, prefix = {len = 21, data = 0x4bd9d8 "/usr/local/etc/nginx/"}, lock_file = {len = 0, data = 0x0}, hostname = {len = 0, data = 0x0}} ccf = (ngx_core_conf_t *) 0x801e56040 Спасибо! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232317,232317#msg-232317 From mdounin at mdounin.ru Mon Oct 29 23:01:52 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 30 Oct 2012 03:01:52 +0400 Subject: nginx & core dump 3 In-Reply-To: <07d15e6069458747dec7f1567860bfff.NginxMailingListRussian@forum.nginx.org> References: <07d15e6069458747dec7f1567860bfff.NginxMailingListRussian@forum.nginx.org> Message-ID: <20121029230152.GU40452@mdounin.ru> Hello! On Mon, Oct 29, 2012 at 06:13:28PM -0400, ak84 wrote: > Добый день. > > В этой теме http://forum.nginx.org/read.php?21,231434 выяснили, что core > dump может возникать из-за некорректного использования if и set > nginx обновлён: > nginx version: nginx/1.2.4 > TLS SNI support enabled > configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I > /usr/local/include' --with-ld-opt='-L /usr/local/lib' > --conf-path=/usr/local/etc/nginx/nginx.conf > --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid > --error-log-path=/var/log/nginx-error.log --user=www --group=www > --with-debug --http-client-body-temp-path=/var/tmp/nginx/client_body_temp > --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp > --http-proxy-temp-path=/var/tmp/nginx/proxy_temp > --http-scgi-temp-path=/var/tmp/nginx/scgi_temp > --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp > --http-log-path=/var/log/nginx-access.log > --add-module=/usr/ports/www/nginx/work/agentzh-headers-more-nginx-module-6586984 > --with-http_image_filter_module > --add-module=/usr/ports/www/nginx/work/yaoweibin-ngx_http_substitutions_filter_module-27a01b3 > --with-http_stub_status_module --with-pcre --with-http_ssl_module Начать с простого: убрать сторонние модули. -- Maxim Dounin http://nginx.com/support.html From nginx-forum at nginx.us Tue Oct 30 07:17:24 2012 From: nginx-forum at nginx.us (ak84) Date: Tue, 30 Oct 2012 03:17:24 -0400 Subject: nginx & core dump 3 In-Reply-To: <20121029230152.GU40452@mdounin.ru> References: <20121029230152.GU40452@mdounin.ru> Message-ID: Максим, добрый день. Сторонние модули пробовал отключать в версии 0.8.54 , ситуация повторялась, сейчас отключить header_more не могу. Может быть как-то можно без header_more реализовать следующую схему ( для ip, не из доверенного списка очищать определённые хедеры): имеем в конфиге: geo trustip { default 0; 192.168.1.0/24 1; 192.168.2.0/24 1; etc. } upstream backend { server 192.168.0.10:80; server 192.168.0.11:80; } server { listen ip:80; server_name hostname.ru; if ( $trustip = "1" ) { access_log /var/log/nginx/access_from_trust.log main; } if ( $trustip != "1") { access_log /var/log/nginx/access_from_not_trust.log main; more_clear_input_headers 'x-nokia-test:'; } proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_intercept_errors on; include mpro_special.conf; include short_urls.conf; proxy_pass http://backend; proxy_next_upstream error timeout invalid_header http_500 http_502; } } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232317,232348#msg-232348 From nginx-forum at nginx.us Tue Oct 30 07:35:22 2012 From: nginx-forum at nginx.us (MaxNikitin) Date: Tue, 30 Oct 2012 03:35:22 -0400 Subject: =?UTF-8?B?0J/QtdGA0LXQvdC+0YEg0YHQutC+0LzQv9C40LvQuNGA0L7QstCw0L3QvdC+0LM=?= =?UTF-8?B?0L4gbmdpbngg0L3QsCDQtNGA0YPQs9C+0Lkg0LrQvtC80L8=?= Message-ID: Здравствуйте. Скомпилировал на одном компьютере nginx с нужными мне настройками. Как мне перенести эту сборку на другой компьютер? Достаточно просто скопировать папку с исходниками после make и сделать на другом компьютере make install? Или нужно компилировать на новом компьютере заново? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232349,232349#msg-232349 From mdounin at mdounin.ru Tue Oct 30 07:44:47 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 30 Oct 2012 11:44:47 +0400 Subject: nginx & core dump 3 In-Reply-To: References: <20121029230152.GU40452@mdounin.ru> Message-ID: <20121030074446.GV40452@mdounin.ru> Hello! On Tue, Oct 30, 2012 at 03:17:24AM -0400, ak84 wrote: > Максим, добрый день. > Сторонние модули пробовал отключать в версии 0.8.54 , ситуация повторялась, > сейчас отключить header_more не могу. Just a side note: судя по трейсу, который вы приводили - виноват в падениях именно headers more модуль. Ибо протит список входящих заголовков. Его автору я неоднократно объяснял, что изменять список входящих заголовков запроса - это идеологически неправильно, и вместо этого надо пользоваться инструментами, которые позволяют с этим списком при необходимости выборочно работать, e.g. proxy_set_header. Он, однако, продолжает эту функциональность предлагать пользователям, наступая то на одни, то на другие грабли. > Может быть как-то можно без header_more реализовать следующую схему ( для > ip, не из доверенного списка очищать определённые хедеры): > > имеем в конфиге: > > geo trustip { > default 0; > 192.168.1.0/24 1; > 192.168.2.0/24 1; > etc. > } > upstream backend { > server 192.168.0.10:80; > server 192.168.0.11:80; > } > > > server { > listen ip:80; > server_name hostname.ru; > > if ( $trustip = "1" ) > { > access_log /var/log/nginx/access_from_trust.log main; > } > > if ( $trustip != "1") > { > access_log /var/log/nginx/access_from_not_trust.log main; > more_clear_input_headers 'x-nokia-test:'; > } Правильно делать так: map $trustedip $nokia { default ""; 1 $http_x_nokia_test; } proxy_set_header X-Nokia-Test "$nokia"; При этом map{} нужно задать на уровне http{}, а proxy_set_header - вместе с другими заголовками proxy_set_header. > proxy_set_header X-Real-IP $remote_addr; > proxy_set_header Host $host; > proxy_intercept_errors on; > include mpro_special.conf; > include short_urls.conf; > proxy_pass http://backend; > proxy_next_upstream error timeout invalid_header http_500 > http_502; > } > > } На всякий случай, документацию берут тут: http://nginx.org/r/map http://nginx.org/r/proxy_set_header -- Maxim Dounin http://nginx.com/support.html From sergey.kobzar at itcraft.org Tue Oct 30 08:40:00 2012 From: sergey.kobzar at itcraft.org (Sergey Kobzar) Date: Tue, 30 Oct 2012 10:40:00 +0200 Subject: nginx & core dump 3 In-Reply-To: <20121030074446.GV40452@mdounin.ru> References: <20121029230152.GU40452@mdounin.ru> <20121030074446.GV40452@mdounin.ru> Message-ID: <508F9260.4090101@itcraft.org> Максим On 10/30/12 09:44, Maxim Dounin wrote: > Hello! > > On Tue, Oct 30, 2012 at 03:17:24AM -0400, ak84 wrote: > >> Максим, добрый день. >> Сторонние модули пробовал отключать в версии 0.8.54 , ситуация повторялась, >> сейчас отключить header_more не могу. > > Just a side note: судя по трейсу, который вы приводили - виноват в > падениях именно headers more модуль. Ибо протит список входящих > заголовков. > > Его автору я неоднократно объяснял, что изменять список входящих > заголовков запроса - это идеологически неправильно, и вместо этого > надо пользоваться инструментами, которые позволяют с этим списком > при необходимости выборочно работать, e.g. proxy_set_header. Он, > однако, продолжает эту функциональность предлагать пользователям, > наступая то на одни, то на другие грабли. Как правильно поступить, если нужно убрать один из хидеров, отдаваемых клиенту, например тот же X-Powered-By? > >> Может быть как-то можно без header_more реализовать следующую схему ( для >> ip, не из доверенного списка очищать определённые хедеры): >> >> имеем в конфиге: >> >> geo trustip { >> default 0; >> 192.168.1.0/24 1; >> 192.168.2.0/24 1; >> etc. >> } >> upstream backend { >> server 192.168.0.10:80; >> server 192.168.0.11:80; >> } >> >> >> server { >> listen ip:80; >> server_name hostname.ru; >> >> if ( $trustip = "1" ) >> { >> access_log /var/log/nginx/access_from_trust.log main; >> } >> >> if ( $trustip != "1") >> { >> access_log /var/log/nginx/access_from_not_trust.log main; >> more_clear_input_headers 'x-nokia-test:'; >> } > > Правильно делать так: > > map $trustedip $nokia { > default ""; > 1 $http_x_nokia_test; > } > > proxy_set_header X-Nokia-Test "$nokia"; > > При этом map{} нужно задать на уровне http{}, а proxy_set_header - > вместе с другими заголовками proxy_set_header. > >> proxy_set_header X-Real-IP $remote_addr; >> proxy_set_header Host $host; >> proxy_intercept_errors on; >> include mpro_special.conf; >> include short_urls.conf; >> proxy_pass http://backend; >> proxy_next_upstream error timeout invalid_header http_500 >> http_502; >> } >> >> } > > На всякий случай, документацию берут тут: > > http://nginx.org/r/map > http://nginx.org/r/proxy_set_header > From igor at sysoev.ru Tue Oct 30 08:42:50 2012 From: igor at sysoev.ru (Igor Sysoev) Date: Tue, 30 Oct 2012 12:42:50 +0400 Subject: nginx & core dump 3 In-Reply-To: <508F9260.4090101@itcraft.org> References: <20121029230152.GU40452@mdounin.ru> <20121030074446.GV40452@mdounin.ru> <508F9260.4090101@itcraft.org> Message-ID: On Oct 30, 2012, at 12:40 , Sergey Kobzar wrote: > Максим > > On 10/30/12 09:44, Maxim Dounin wrote: >> Hello! >> >> On Tue, Oct 30, 2012 at 03:17:24AM -0400, ak84 wrote: >> >>> Максим, добрый день. >>> Сторонние модули пробовал отключать в версии 0.8.54 , ситуация повторялась, >>> сейчас отключить header_more не могу. >> >> Just a side note: судя по трейсу, который вы приводили - виноват в >> падениях именно headers more модуль. Ибо протит список входящих >> заголовков. >> >> Его автору я неоднократно объяснял, что изменять список входящих >> заголовков запроса - это идеологически неправильно, и вместо этого >> надо пользоваться инструментами, которые позволяют с этим списком >> при необходимости выборочно работать, e.g. proxy_set_header. Он, >> однако, продолжает эту функциональность предлагать пользователям, >> наступая то на одни, то на другие грабли. > > Как правильно поступить, если нужно убрать один из хидеров, отдаваемых клиенту, например тот же X-Powered-By? http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_hide_header http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_hide_header -- Igor Sysoev http://nginx.com/support.html From sergey.kobzar at itcraft.org Tue Oct 30 08:59:46 2012 From: sergey.kobzar at itcraft.org (Sergey Kobzar) Date: Tue, 30 Oct 2012 10:59:46 +0200 Subject: nginx & core dump 3 In-Reply-To: References: <20121029230152.GU40452@mdounin.ru> <20121030074446.GV40452@mdounin.ru> <508F9260.4090101@itcraft.org> Message-ID: <508F9702.2060208@itcraft.org> Игорь On 10/30/12 10:42, Igor Sysoev wrote: > On Oct 30, 2012, at 12:40 , Sergey Kobzar wrote: > >> Максим >> >> On 10/30/12 09:44, Maxim Dounin wrote: >>> Hello! >>> >>> On Tue, Oct 30, 2012 at 03:17:24AM -0400, ak84 wrote: >>> >>>> Максим, добрый день. >>>> Сторонние модули пробовал отключать в версии 0.8.54 , ситуация повторялась, >>>> сейчас отключить header_more не могу. >>> >>> Just a side note: судя по трейсу, который вы приводили - виноват в >>> падениях именно headers more модуль. Ибо протит список входящих >>> заголовков. >>> >>> Его автору я неоднократно объяснял, что изменять список входящих >>> заголовков запроса - это идеологически неправильно, и вместо этого >>> надо пользоваться инструментами, которые позволяют с этим списком >>> при необходимости выборочно работать, e.g. proxy_set_header. Он, >>> однако, продолжает эту функциональность предлагать пользователям, >>> наступая то на одни, то на другие грабли. >> >> Как правильно поступить, если нужно убрать один из хидеров, отдаваемых клиенту, например тот же X-Powered-By? > > http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_hide_header > http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_hide_header Понял. Спасибо. > -- > Igor Sysoev > http://nginx.com/support.html > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From a.vasilishin at kpi.ua Tue Oct 30 09:03:07 2012 From: a.vasilishin at kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Tue, 30 Oct 2012 11:03:07 +0200 Subject: =?UTF-8?B?UmU6INCf0LXRgNC10L3QvtGBINGB0LrQvtC80L/QuNC70LjRgNC+0LLQsNC90L0=?= =?UTF-8?B?0L7Qs9C+IG5naW54INC90LAg0LTRgNGD0LPQvtC5INC60L7QvNC/?= In-Reply-To: References: Message-ID: <508F97CB.1050900@kpi.ua> 30.10.2012 9:35, MaxNikitin пишет: > Здравствуйте. Скомпилировал на одном компьютере nginx с нужными мне > настройками. Как мне перенести эту сборку на другой компьютер? Достаточно > просто скопировать папку с исходниками после make и сделать на другом > компьютере make install? Или нужно компилировать на новом компьютере заново? В какой ОС Вы это делали? Вообще нормальным способом является создание пакета и дальнейший его перенос и установка на другом сервере. -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From nginx-forum at nginx.us Tue Oct 30 10:05:11 2012 From: nginx-forum at nginx.us (skeletor) Date: Tue, 30 Oct 2012 06:05:11 -0400 Subject: =?UTF-8?B?UmU6INCf0LXRgNC10L3QvtGBINGB0LrQvtC80L/QuNC70LjRgNC+0LLQsNC90L0=?= =?UTF-8?B?0L7Qs9C+IG5naW54INC90LAg0LTRgNGD0LPQvtC5INC60L7QvNC/?= In-Reply-To: References: Message-ID: <04ba7137ffbe2eefa9edebfa220940a5.NginxMailingListRussian@forum.nginx.org> Если архитектура и ОС одинаковая (например, Linux amd64 на обеих), если не используются внешние компоненты (например, perl. если используются, то версии должны быть одинаковые на обеих хостах), тогда достаточно. ИМХО. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232349,232364#msg-232364 From nginx-forum at nginx.us Tue Oct 30 13:51:37 2012 From: nginx-forum at nginx.us (selts) Date: Tue, 30 Oct 2012 09:51:37 -0400 Subject: =?UTF-8?B?0L/QvtC80L7RidGMINCyIGxvY2F0aW9u?= Message-ID: <0f62d77e565450a0ec1b9ee8d921885e.NginxMailingListRussian@forum.nginx.org> Добрый день! Скажите пож у меня есть такой location location ~* \.(txt|log|rar)$ { access_log on; rewrite ^ http://mysite/error? permanent; } он закрывает все файлы с перечисленными расширениями на всем сайте а сейчас мне надо сделать так чтоб файлы с расширениями txt были доступны но только из корня сайта а на всем остальном сайте доступ по прежнему был закрыт? подскажите как написать правильный location? заранее спс. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232375,232375#msg-232375 From mdounin at mdounin.ru Tue Oct 30 14:09:02 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 30 Oct 2012 18:09:02 +0400 Subject: nginx-1.3.8 Message-ID: <20121030140902.GL40452@mdounin.ru> Изменения в nginx 1.3.8 30.10.2012 *) Добавление: параметр optional_no_ca директивы ssl_verify_client. Спасибо Михаилу Казанцеву и Eric O'Connor. *) Добавление: переменные $bytes_sent, $connection и $connection_requests теперь можно использовать не только в директиве log_format. Спасибо Benjamin Gr?ssing. *) Добавление: параметр auto директивы worker_processes. *) Исправление: сообщения "cache file ... has md5 collision". *) Исправление: в модуле ngx_http_gunzip_filter_module. *) Исправление: в директиве ssl_stapling. -- Maxim Dounin http://nginx.com/support.html From nginx-forum at nginx.us Tue Oct 30 14:20:00 2012 From: nginx-forum at nginx.us (ProxyKZ) Date: Tue, 30 Oct 2012 10:20:00 -0400 Subject: =?UTF-8?B?0JzQvtC20L3QviDQu9C4INCx0YPRhNC10YDQuNC30LDRhtC40LXQuSDRgNCw0Lc=?= =?UTF-8?B?0LPRgNGD0LfQuNGC0Ywg0LTQuNGB0LrQvtCy0YPRjiDQuCDQv9GA0L7RhtC1?= =?UTF-8?B?0YHRgdC+0YA/?= Message-ID: <385dd0715159aa643161e79886305500.NginxMailingListRussian@forum.nginx.org> На сервере стояла Linux Debian + Apache + Nginx + MySQL, с ростом посещаемости сайтов начались проблемы с дисковой системой, в Top-е часто висел WA со значениями 50-100% при этом nginx начинал медленно отдавать статику, да и в целом производительность сервера падала. ОС полностью перенес в контейнер (на VPS) другого сервера, контейнеру выделил в 2 раза больше ОЗУ, производительность немного выросла, но ОС по прежнему даже при большой нагрузке использовала только 2-2,2Gb. Даже увеличение буферов nginx удалось достичь совсем небольшо увеличения использования ОЗУ (до 2,5Gb). В резерве у ОС остается еще куча памяти (всего сейчас на сервере 4Gb) а она грузит процессор (возможно из-за медленной дисковой) почти постоянно и дисковую частенько. Внимание, вопрос знатокам Nginx-а: Какие значения конфига нужно увеличить и примерно до скольки, чтобы научить сервер использовать свободную ОЗУ и разгрузить дисковую систему и процессор (хотя подозреваю что разгрузив дисковую, разгрузится и процессор). Сейчас конфиг nginx такой: user www-data; worker_processes 4; error_log /var/log/nginx/error.log error; pid /var/run/nginx.pid; events { worker_connections 1024; use epoll; } http { include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; sendfile on; tcp_nodelay on; client_max_body_size 10m; client_body_buffer_size 128k; client_header_timeout 5s; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffering on; proxy_buffer_size 8k; proxy_buffers 32 128k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; gzip on; gzip_comp_level 3; keepalive_timeout 70; limit_req_zone $binary_remote_addr zone=one:10m rate=3r/s; Буду очень благодарен за советы! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232383,232383#msg-232383 From onokonem at gmail.com Tue Oct 30 14:22:39 2012 From: onokonem at gmail.com (Daniel Podolsky) Date: Tue, 30 Oct 2012 18:22:39 +0400 Subject: =?UTF-8?B?UmU6INC/0L7QvNC+0YnRjCDQsiBsb2NhdGlvbg==?= In-Reply-To: <0f62d77e565450a0ec1b9ee8d921885e.NginxMailingListRussian@forum.nginx.org> References: <0f62d77e565450a0ec1b9ee8d921885e.NginxMailingListRussian@forum.nginx.org> Message-ID: > он закрывает все файлы с перечисленными расширениями на всем сайте а сейчас > мне надо сделать так чтоб файлы с расширениями txt были доступны но только > из корня сайта а на всем остальном сайте доступ по прежнему был закрыт? [^/]+/+.*\.(txt|log|rar)$ корень под такой регексп не попадет From kav at karagodov.name Tue Oct 30 14:49:12 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Tue, 30 Oct 2012 18:49:12 +0400 Subject: nginx-1.3.8 In-Reply-To: <20121030140902.GL40452@mdounin.ru> References: <20121030140902.GL40452@mdounin.ru> Message-ID: <3E845486-4CC1-4089-8791-0ED81450761D@karagodov.name> On 30.10.2012, at 18:09, Maxim Dounin wrote: > Изменения в nginx 1.3.8 30.10.2012 > > *) Добавление: параметр optional_no_ca директивы ssl_verify_client. > Спасибо Михаилу Казанцеву и Eric O'Connor. > > *) Добавление: переменные $bytes_sent, $connection и > $connection_requests теперь можно использовать не только в директиве > log_format. > Спасибо Benjamin Gr?ssing. > > *) Добавление: параметр auto директивы worker_processes. а как nginx пытается определить кол-во вокеров? спасибо > > *) Исправление: сообщения "cache file ... has md5 collision". > > *) Исправление: в модуле ngx_http_gunzip_filter_module. > > *) Исправление: в директиве ssl_stapling. > > > -- > Maxim Dounin > http://nginx.com/support.html > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From ne at vbart.ru Tue Oct 30 14:51:45 2012 From: ne at vbart.ru (=?utf-8?b?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Tue, 30 Oct 2012 18:51:45 +0400 Subject: nginx-1.3.8 In-Reply-To: <3E845486-4CC1-4089-8791-0ED81450761D@karagodov.name> References: <20121030140902.GL40452@mdounin.ru> <3E845486-4CC1-4089-8791-0ED81450761D@karagodov.name> Message-ID: <201210301851.45298.ne@vbart.ru> On Tuesday 30 October 2012 18:49:12 Alexey V. Karagodov wrote: > On 30.10.2012, at 18:09, Maxim Dounin wrote: > [...] > > > > *) Добавление: параметр auto директивы worker_processes. > > а как nginx пытается определить кол-во вокеров? > спасибо > http://nginx.org/r/worker_processes/ru -- Валентин Бартенев http://nginx.com/support.html http://nginx.org/en/donation.html From kav at karagodov.name Tue Oct 30 14:53:28 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Tue, 30 Oct 2012 18:53:28 +0400 Subject: nginx-1.3.8 In-Reply-To: <201210301851.45298.ne@vbart.ru> References: <20121030140902.GL40452@mdounin.ru> <3E845486-4CC1-4089-8791-0ED81450761D@karagodov.name> <201210301851.45298.ne@vbart.ru> Message-ID: On 30.10.2012, at 18:51, Валентин Бартенев wrote: > On Tuesday 30 October 2012 18:49:12 Alexey V. Karagodov wrote: >> On 30.10.2012, at 18:09, Maxim Dounin wrote: >> [...] >>> >>> *) Добавление: параметр auto директивы worker_processes. >> >> а как nginx пытается определить кол-во вокеров? >> спасибо >> > > http://nginx.org/r/worker_processes/ru т.е. только кол-во ядер смотрит? > > -- > Валентин Бартенев > http://nginx.com/support.html > http://nginx.org/en/donation.html > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Tue Oct 30 14:56:05 2012 From: nginx-forum at nginx.us (selts) Date: Tue, 30 Oct 2012 10:56:05 -0400 Subject: =?UTF-8?B?UmU6INC/0L7QvNC+0YnRjCDQsiBsb2NhdGlvbg==?= In-Reply-To: References: Message-ID: <6b12172f7202563374eacdc1595dea39.NginxMailingListRussian@forum.nginx.org> а как мне тогда быть как решить эту задачу? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232375,232388#msg-232388 From ne at vbart.ru Tue Oct 30 14:59:27 2012 From: ne at vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Tue, 30 Oct 2012 18:59:27 +0400 Subject: nginx-1.3.8 In-Reply-To: References: <20121030140902.GL40452@mdounin.ru> <201210301851.45298.ne@vbart.ru> Message-ID: <201210301859.27748.ne@vbart.ru> On Tuesday 30 October 2012 18:53:28 Alexey V. Karagodov wrote: > On 30.10.2012, at 18:51, Валентин Бартенев wrote: > > On Tuesday 30 October 2012 18:49:12 Alexey V. Karagodov wrote: > >> On 30.10.2012, at 18:09, Maxim Dounin wrote: > >> [...] > >> > >>> *) Добавление: параметр auto директивы worker_processes. > >> > >> а как nginx пытается определить кол-во вокеров? > >> спасибо > > > > http://nginx.org/r/worker_processes/ru > > т.е. только кол-во ядер смотрит? > Никакой магии. Количество потоков исполнения, если быть точным. В частности с HT оно может быть не равно количеству ядер, а на FreeBSD ещё запрашивается machdep.hlt_logical_cpus и делится пополам, если установлен. -- Валентин Бартенев http://nginx.com/support.html http://nginx.org/en/donation.html From kav at karagodov.name Tue Oct 30 15:02:39 2012 From: kav at karagodov.name (Alexey V. Karagodov) Date: Tue, 30 Oct 2012 19:02:39 +0400 Subject: nginx-1.3.8 In-Reply-To: <201210301859.27748.ne@vbart.ru> References: <20121030140902.GL40452@mdounin.ru> <201210301851.45298.ne@vbart.ru> <201210301859.27748.ne@vbart.ru> Message-ID: <988BBEAF-1523-4F81-BECF-9557CE42F58D@karagodov.name> On 30.10.2012, at 18:59, Валентин Бартенев wrote: > On Tuesday 30 October 2012 18:53:28 Alexey V. Karagodov wrote: >> On 30.10.2012, at 18:51, Валентин Бартенев wrote: >>> On Tuesday 30 October 2012 18:49:12 Alexey V. Karagodov wrote: >>>> On 30.10.2012, at 18:09, Maxim Dounin wrote: >>>> [...] >>>> >>>>> *) Добавление: параметр auto директивы worker_processes. >>>> >>>> а как nginx пытается определить кол-во вокеров? >>>> спасибо >>> >>> http://nginx.org/r/worker_processes/ru >> >> т.е. только кол-во ядер смотрит? >> > > Никакой магии. Количество потоков исполнения, если быть точным. В частности > с HT оно может быть не равно количеству ядер, а на FreeBSD ещё запрашивается > machdep.hlt_logical_cpus и делится пополам, если установлен. спасибо > > -- > Валентин Бартенев > http://nginx.com/support.html > http://nginx.org/en/donation.html > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From pr1 at pr1.ru Tue Oct 30 15:16:16 2012 From: pr1 at pr1.ru (Andrey Feldman) Date: Tue, 30 Oct 2012 19:16:16 +0400 Subject: nginx-1.3.8 In-Reply-To: <20121030140902.GL40452@mdounin.ru> References: <20121030140902.GL40452@mdounin.ru> Message-ID: Здравствуйте. А проблема "zero size buf in output" решена? 2012/10/30 Maxim Dounin : > Изменения в nginx 1.3.8 30.10.2012 > > *) Добавление: параметр optional_no_ca директивы ssl_verify_client. > Спасибо Михаилу Казанцеву и Eric O'Connor. > > *) Добавление: переменные $bytes_sent, $connection и > $connection_requests теперь можно использовать не только в директиве > log_format. > Спасибо Benjamin Gr?ssing. > > *) Добавление: параметр auto директивы worker_processes. > > *) Исправление: сообщения "cache file ... has md5 collision". > > *) Исправление: в модуле ngx_http_gunzip_filter_module. > > *) Исправление: в директиве ssl_stapling. > > > -- > Maxim Dounin > http://nginx.com/support.html > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- -- Andrey Feldman From mdounin at mdounin.ru Tue Oct 30 15:35:17 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 30 Oct 2012 19:35:17 +0400 Subject: nginx-1.3.8 In-Reply-To: References: <20121030140902.GL40452@mdounin.ru> Message-ID: <20121030153517.GP40452@mdounin.ru> Hello! On Tue, Oct 30, 2012 at 07:16:16PM +0400, Andrey Feldman wrote: > Здравствуйте. > А проблема "zero size buf in output" решена? Нет. -- Maxim Dounin http://nginx.com/support.html From a.vasilishin at kpi.ua Tue Oct 30 16:38:10 2012 From: a.vasilishin at kpi.ua (=?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=F7=C1=D3=C9=CC=C9=DB=C9=CE?=) Date: Tue, 30 Oct 2012 18:38:10 +0200 Subject: =?UTF-8?B?UmU6INCc0L7QttC90L4g0LvQuCDQsdGD0YTQtdGA0LjQt9Cw0YbQuNC10Lkg0YA=?= =?UTF-8?B?0LDQt9Cz0YDRg9C30LjRgtGMINC00LjRgdC60L7QstGD0Y4g0Lgg0L/RgNC+?= =?UTF-8?B?0YbQtdGB0YHQvtGAPw==?= In-Reply-To: <385dd0715159aa643161e79886305500.NginxMailingListRussian@forum.nginx.org> References: <385dd0715159aa643161e79886305500.NginxMailingListRussian@forum.nginx.org> Message-ID: <50900272.5060502@kpi.ua> 30.10.2012 16:20, ProxyKZ пишет: > На сервере стояла Linux Debian + Apache + Nginx + MySQL, с ростом > посещаемости сайтов начались проблемы с дисковой системой, в Top-е часто > висел WA со значениями 50-100% при этом nginx начинал медленно отдавать > статику, да и в целом производительность сервера падала. ОС полностью > перенес в контейнер (на VPS) другого сервера, контейнеру выделил в 2 раза > больше ОЗУ, производительность немного выросла, но ОС по прежнему даже при > большой нагрузке использовала только 2-2,2Gb. Даже увеличение буферов nginx > удалось достичь совсем небольшо увеличения использования ОЗУ (до 2,5Gb). > > В резерве у ОС остается еще куча памяти (всего сейчас на сервере 4Gb) а она > грузит процессор (возможно из-за медленной дисковой) почти постоянно и > дисковую частенько. > > Внимание, вопрос знатокам Nginx-а: > Какие значения конфига нужно увеличить и примерно до скольки, чтобы научить > сервер использовать свободную ОЗУ и разгрузить дисковую систему и процессор > (хотя подозреваю что разгрузив дисковую, разгрузится и процессор). > > Сейчас конфиг nginx такой: > > user www-data; > worker_processes 4; > > error_log /var/log/nginx/error.log error; > pid /var/run/nginx.pid; > > events { > worker_connections 1024; > use epoll; > } > > http { > include /etc/nginx/mime.types; > default_type application/octet-stream; > > access_log /var/log/nginx/access.log; > sendfile on; > tcp_nodelay on; > client_max_body_size 10m; > client_body_buffer_size 128k; > client_header_timeout 5s; > proxy_connect_timeout 90; > proxy_send_timeout 90; > proxy_read_timeout 90; > proxy_buffering on; > proxy_buffer_size 8k; > proxy_buffers 32 128k; > proxy_busy_buffers_size 128k; > proxy_temp_file_write_size 128k; > > gzip on; > gzip_comp_level 3; > > keepalive_timeout 70; > > limit_req_zone $binary_remote_addr zone=one:10m rate=3r/s; > > Буду очень благодарен за советы! > Не вижу, в каком тут месте нгинкс отдает статику? Рекомендую начать с прочтения этого http://nginx.org/ru/docs/http/request_processing.html#simple_php_site_configuration -- WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE From hunter at comsys.com.ua Tue Oct 30 16:52:58 2012 From: hunter at comsys.com.ua (Sergey Smitienko) Date: Tue, 30 Oct 2012 18:52:58 +0200 Subject: =?UTF-8?B?UmU6INCc0L7QttC90L4g0LvQuCDQsdGD0YTQtdGA0LjQt9Cw0YbQuNC10Lkg0YA=?= =?UTF-8?B?0LDQt9Cz0YDRg9C30LjRgtGMINC00LjRgdC60L7QstGD0Y4g0Lgg0L/RgNC+?= =?UTF-8?B?0YbQtdGB0YHQvtGAPw==?= In-Reply-To: <385dd0715159aa643161e79886305500.NginxMailingListRussian@forum.nginx.org> References: <385dd0715159aa643161e79886305500.NginxMailingListRussian@forum.nginx.org> Message-ID: <509005EA.3080606@comsys.com.ua> 30.10.12 16:20, ProxyKZ пишет: > limit_req_zone $binary_remote_addr zone=one:10m rate=3r/s; > Три запроса в секунду, это очень мало. -- Sergey Smitienko From onokonem at gmail.com Tue Oct 30 16:57:54 2012 From: onokonem at gmail.com (Daniel Podolsky) Date: Tue, 30 Oct 2012 20:57:54 +0400 Subject: =?UTF-8?B?UmU6INC/0L7QvNC+0YnRjCDQsiBsb2NhdGlvbg==?= In-Reply-To: <6b12172f7202563374eacdc1595dea39.NginxMailingListRussian@forum.nginx.org> References: <6b12172f7202563374eacdc1595dea39.NginxMailingListRussian@forum.nginx.org> Message-ID: > а как мне тогда быть как решить эту задачу? а? я же заслал regex для location, под коротый попадут все txt, кроме тех, что в корне... использовать его - и все From ne at vbart.ru Tue Oct 30 17:00:40 2012 From: ne at vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Tue, 30 Oct 2012 21:00:40 +0400 Subject: =?UTF-8?B?UmU6ICDQnNC+0LbQvdC+INC70Lgg0LHRg9GE0LXRgNC40LfQsNGG0LjQtdC5INGA?= =?UTF-8?B?0LDQt9Cz0YDRg9C30LjRgtGMINC00LjRgdC60L7QstGD0Y4g0Lgg0L/RgNC+?= =?UTF-8?B?0YbQtdGB0YHQvtGAPw==?= In-Reply-To: <385dd0715159aa643161e79886305500.NginxMailingListRussian@forum.nginx.org> References: <385dd0715159aa643161e79886305500.NginxMailingListRussian@forum.nginx.org> Message-ID: <201210302100.40962.ne@vbart.ru> On Tuesday 30 October 2012 18:20:00 ProxyKZ wrote: > На сервере стояла Linux Debian + Apache + Nginx + MySQL, с ростом > посещаемости сайтов начались проблемы с дисковой системой, в Top-е часто > висел WA со значениями 50-100% при этом nginx начинал медленно отдавать > статику, да и в целом производительность сервера падала. ОС полностью > перенес в контейнер (на VPS) другого сервера, контейнеру выделил в 2 раза > больше ОЗУ, производительность немного выросла, но ОС по прежнему даже при > большой нагрузке использовала только 2-2,2Gb. Даже увеличение буферов nginx > удалось достичь совсем небольшо увеличения использования ОЗУ (до 2,5Gb). > > В резерве у ОС остается еще куча памяти (всего сейчас на сервере 4Gb) а она > грузит процессор (возможно из-за медленной дисковой) почти постоянно и > дисковую частенько. > > Внимание, вопрос знатокам Nginx-а: > Какие значения конфига нужно увеличить и примерно до скольки, чтобы научить > сервер использовать свободную ОЗУ и разгрузить дисковую систему и процессор > (хотя подозреваю что разгрузив дисковую, разгрузится и процессор). > Тюнить скорее всего нужно не Nginx, а ОС, MySQL, приложение. -- Валентин Бартенев http://nginx.com/support.html http://nginx.org/en/donation.html From hell-for-yahoo at umail.ru Tue Oct 30 16:37:55 2012 From: hell-for-yahoo at umail.ru (Andrey Repin) Date: Tue, 30 Oct 2012 20:37:55 +0400 Subject: =?UTF-8?B?UmU6INC/0L7QvNC+0YnRjCDQsiBsb2NhdGlvbg==?= In-Reply-To: <0f62d77e565450a0ec1b9ee8d921885e.NginxMailingListRussian@forum.nginx.org> References: <0f62d77e565450a0ec1b9ee8d921885e.NginxMailingListRussian@forum.nginx.org> Message-ID: <1363088102.20121030203755@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) selts! s> Добрый день! s> Скажите пож у меня есть такой location s> location ~* \.(txt|log|rar)$ { s> access_log on; s> rewrite ^ http://mysite/error? permanent; s> } s> он закрывает все файлы с перечисленными расширениями на всем сайте а сейчас s> мне надо сделать так чтоб файлы с расширениями txt были доступны но только s> из корня сайта а на всем остальном сайте доступ по прежнему был закрыт? Все файлы, или только определённые? s> подскажите как написать правильный location? location = /robots.txt {} ... s> заранее спс. Документацию читайте. Не будет возникать таких вопросов. -- С уважением Andrey Repin (hell-for-yahoo at umail.ru) вторник, 30.10.2012, <20:36> From ne at vbart.ru Tue Oct 30 17:10:59 2012 From: ne at vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Tue, 30 Oct 2012 21:10:59 +0400 Subject: =?UTF-8?B?UmU6INC/0L7QvNC+0YnRjCDQsiBsb2NhdGlvbg==?= In-Reply-To: <0f62d77e565450a0ec1b9ee8d921885e.NginxMailingListRussian@forum.nginx.org> References: <0f62d77e565450a0ec1b9ee8d921885e.NginxMailingListRussian@forum.nginx.org> Message-ID: <201210302111.00008.ne@vbart.ru> On Tuesday 30 October 2012 17:51:37 selts wrote: > Добрый день! > Скажите пож у меня есть такой location > > location ~* \.(txt|log|rar)$ { > access_log on; Писать access_log в файл с именем "on" - это очень странно. > rewrite ^ http://mysite/error? permanent; return 301 http://mysite/error; Но запрещать доступ путем 301 редиректа - очень странно. > } > > он закрывает все файлы с перечисленными расширениями на всем сайте а сейчас > мне надо сделать так чтоб файлы с расширениями txt были доступны но только > из корня сайта а на всем остальном сайте доступ по прежнему был закрыт? > подскажите как написать правильный location? > location ~* ^/[^\]+\.txt$ { # доступ открыт } location ~* \.(?:txt|log|rar)$ { # доступ закрыт } -- Валентин Бартенев http://nginx.com/support.html http://nginx.org/en/donation.html From nginx-forum at nginx.us Tue Oct 30 20:32:22 2012 From: nginx-forum at nginx.us (madad) Date: Tue, 30 Oct 2012 16:32:22 -0400 Subject: =?UTF-8?Q?=24request_uri_=D0=B8_anchors?= Message-ID: Добрый день. Есть задача сделать редирект по полному совпадению URI, в котором содержится anchor. Вот такой: https://www.domain.com/#register?lead_type=business_trial&lead_source=website>est=false Сделал следующее: location / { if ($request_uri = /#register?lead_type=business_trial&lead_source=website>est=false) { rewrite ^ "http://www.domain.com/register/business_trial/?lead_source=website"; break; } .. } Включил debug, захожу на https://www.domain.com/#register?lead_type=business_trial&lead_source=website>est=false - не работает. В логи пишет что $args пустой: 2012/10/30 20:07:15 [debug] 16144#0: *1 http args: "" Как только убираю #register из запроса и из условия сразу все работает как нужно. То есть: URL https://www.domain.com/?lead_type=business_trial&lead_source=website>est=false Условие if ($request_uri = /?lead_type=business_trial&lead_source=website>est=false) Лог 2012/10/30 20:11:03 [debug] 16182#0: *1 http args: "lead_type=business_trial&lead_source=website>est=false" К сожалению нужно матчить URL именно с anchor. PS. nginx версии 1.2.3 Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232406,232406#msg-232406 From umask at yandex.ru Tue Oct 30 20:39:53 2012 From: umask at yandex.ru (umask) Date: Wed, 31 Oct 2012 00:39:53 +0400 Subject: =?UTF-8?B?UmU6IHItPmNvbm5lY3Rpb24tPm51bWJlciDQsiDQstGB0YLRgNC+0LXQvdC+0Lwg?= =?UTF-8?B?0L/QtdGA0LvQtQ==?= In-Reply-To: <20121029172849.GP40452@mdounin.ru> References: <1359391350812717@web2d.yandex.ru> <819071351076775@web5e.yandex.ru> <20121024153305.GE40452@mdounin.ru> <1347861351142682@web16h.yandex.ru> <20121025144602.GS40452@mdounin.ru> <300681351195358@web1f.yandex.ru> <20121029172849.GP40452@mdounin.ru> Message-ID: <206541351629593@web21e.yandex.ru> А в версию 1.2 (stable) будет бэкпорт или уже вполне можно на 1.3.8 повсеместно переходить? 29.10.2012, 21:29, "Maxim Dounin" : > Hello! > > On Fri, Oct 26, 2012 at 12:02:38AM +0400, umask wrote: > >>  Доброй ночи, >> >>  патч проверил - собралось успешно. >> >>  Значения >>  $r->variable(connection) >>  и >>  $r->variable(connection_requests) >> >>  доступны в встроеном перле и успешно попадают в логи. > > Спасибо, закоммичено. > > (Хотя я бы всё-таки рекомендовал писать строковые константы в > кавычках, не полагаясь на догадливость perl'а.) > > -- > Maxim Dounin > http://nginx.com/support.html > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From mdounin at mdounin.ru Tue Oct 30 21:40:33 2012 From: mdounin at mdounin.ru (Maxim Dounin) Date: Wed, 31 Oct 2012 01:40:33 +0400 Subject: =?UTF-8?B?UmU6IHItPmNvbm5lY3Rpb24tPm51bWJlciDQsiDQstGB0YLRgNC+0LXQvdC+0Lwg?= =?UTF-8?B?0L/QtdGA0LvQtQ==?= In-Reply-To: <206541351629593@web21e.yandex.ru> References: <1359391350812717@web2d.yandex.ru> <819071351076775@web5e.yandex.ru> <20121024153305.GE40452@mdounin.ru> <1347861351142682@web16h.yandex.ru> <20121025144602.GS40452@mdounin.ru> <300681351195358@web1f.yandex.ru> <20121029172849.GP40452@mdounin.ru> <206541351629593@web21e.yandex.ru> Message-ID: <20121030214033.GT40452@mdounin.ru> Hello! On Wed, Oct 31, 2012 at 12:39:53AM +0400, umask wrote: > А в версию 1.2 (stable) будет бэкпорт или уже вполне можно на > 1.3.8 повсеместно переходить? Будет, но переходить на 1.3.x тоже никто не мешает. -- Maxim Dounin http://nginx.com/support.html From ne at vbart.ru Tue Oct 30 21:46:18 2012 From: ne at vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Wed, 31 Oct 2012 01:46:18 +0400 Subject: =?UTF-8?Q?Re=3A_=24request_uri_=D0=B8_anchors?= In-Reply-To: References: Message-ID: <201210310146.18247.ne@vbart.ru> On Wednesday 31 October 2012 00:32:22 madad wrote: > Добрый день. > > Есть задача сделать редирект по полному совпадению URI, в котором > содержится anchor. Вот такой: > > > https://www.domain.com/#register?lead_type=business_trial&lead_source=websi > te>est=false > > Сделал следующее: > location / { > if ($request_uri = > /#register?lead_type=business_trial&lead_source=website>est=false) { > rewrite ^ > "http://www.domain.com/register/business_trial/?lead_source=website"; > break; > } > .. > } > > Включил debug, захожу на > https://www.domain.com/#register?lead_type=business_trial&lead_source=websi > te>est=false - не работает. > В логи пишет что $args пустой: > > 2012/10/30 20:07:15 [debug] 16144#0: *1 http args: "" > > Как только убираю #register из запроса и из условия сразу все работает как > нужно. > То есть: > URL > https://www.domain.com/?lead_type=business_trial&lead_source=website>est= > false Условие if ($request_uri = > /?lead_type=business_trial&lead_source=website>est=false) > Лог 2012/10/30 20:11:03 [debug] 16182#0: *1 http args: > "lead_type=business_trial&lead_source=website>est=false" > > К сожалению нужно матчить URL именно с anchor. > > PS. nginx версии 1.2.3 > "#" и всё что после - называется "fragment identifier" [1], служит для навигации по документу и обычно на сервер браузерами не отправляется. [1] http://tools.ietf.org/html/rfc3986#section-3.5 -- Валентин Бартенев http://nginx.com/support.html http://nginx.org/en/donation.html From nginx-forum at nginx.us Wed Oct 31 07:18:20 2012 From: nginx-forum at nginx.us (madad) Date: Wed, 31 Oct 2012 03:18:20 -0400 Subject: =?UTF-8?Q?Re=3A_=24request_uri_=D0=B8_anchors?= In-Reply-To: <201210310146.18247.ne@vbart.ru> References: <201210310146.18247.ne@vbart.ru> Message-ID: <4d71fc17d80c6edefa1a1a6856e9086e.NginxMailingListRussian@forum.nginx.org> Ок, осознал, спасибо! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232409,232419#msg-232419 From nginx-forum at nginx.us Wed Oct 31 10:55:31 2012 From: nginx-forum at nginx.us (vladimirp) Date: Wed, 31 Oct 2012 06:55:31 -0400 Subject: =?UTF-8?B?0KPQvdC40LLQtdGA0YHQsNC70YzQvdCw0Y8g0LrQvtC90YTQuNCz0YPRgNCw0YY=?= =?UTF-8?B?0LjRjyDQv9C+0LQg0L3QtdGB0LrQvtC70YzQutC+IHV3c2dpINC/0YDQvtGG?= =?UTF-8?B?0LXRgdGB0L7Qsi4=?= Message-ID: Здравствуйте, Имеется приложение, которое при регистрации нового пользователя создает под него отдельный uwsgi процесс, домен, базу и тд. Все это дело проксирует nginx. Очень не хочется каждый раз писать конфиг под нового пользователя, можно ли как нибудь создать универсальный конфиг? Пример(2 процесса): upstream test1proxy { ip_hash; server unix:///var/www/test1/uwsgi/uwsgi.sock; } server { listen 80; server_name test1.ru www.test1.ru; location / { uwsgi_pass test1.proxy; include uwsgi_params; } } upstream test2proxy { ip_hash; server unix:///var/www/test2/uwsgi/uwsgi.sock; } server { listen 80; server_name test2.ru www.test2.ru; location / { uwsgi_pass test2.proxy; include uwsgi_params; } } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232423,232423#msg-232423 From nginx-forum at nginx.us Wed Oct 31 11:16:07 2012 From: nginx-forum at nginx.us (ProxyKZ) Date: Wed, 31 Oct 2012 07:16:07 -0400 Subject: =?UTF-8?B?UmU6INCc0L7QttC90L4g0LvQuCDQsdGD0YTQtdGA0LjQt9Cw0YbQuNC10Lkg0YA=?= =?UTF-8?B?0LDQt9Cz0YDRg9C30LjRgtGMINC00LjRgdC60L7QstGD0Y4g0Lgg0L/RgNC+?= =?UTF-8?B?0YbQtdGB0YHQvtGAPw==?= In-Reply-To: <50900272.5060502@kpi.ua> References: <50900272.5060502@kpi.ua> Message-ID: В смысле не видно? Потому что вот этого не указал: include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; log_format isp '$bytes_sent $request_length'; server { listen 10.10.10.10:80; server_name smart.myserver.kz www.smart.myserver.kz; rewrite ^(/manager/.*)$ https://$host$1 permanent; error_page 404 = @fallback; location = /nginx_status { stub_status on; access_log off; } location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/|pgadmin/) { proxy_pass http://10.10.10.10:81; proxy_redirect http://smart.myserver.kz:81/ /; 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://10.10.10.10:81; proxy_redirect http://smart.myserver.kz:81/ /; 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|tiff|mp3|ogg|mpeg|mov|avi|swf|ico|css|tgz|gz|rar|zip|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf)$ { root /home/bio/www/smart.myserver.kz; access_log /home/httpd-logs/smart.myserver.kz.access.log ; access_log /home/nginx-logs/bio isp; } location @fallback { proxy_pass http://10.10.10.10:81; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232383,232425#msg-232425 From nginx-forum at nginx.us Wed Oct 31 13:52:20 2012 From: nginx-forum at nginx.us (free_kode) Date: Wed, 31 Oct 2012 09:52:20 -0400 Subject: =?UTF-8?B?0KHRgdGL0LvQutC4INC90LAg0L/RgNC+0LrRgdC40YDRg9C10LzQvtC8INCw0LQ=?= =?UTF-8?B?0YDQtdGB0LU=?= Message-ID: Доброго времени суток! Проксируется gitweb запущенный под lighttp. В конфиге такая запись: location /gitweb/ { proxy_pass http://127.0.0.1:1234 } Если идти на http://domain/gitweb/ то ок видим интерфейс gitweb. Но в самом интерфейсе ссылки имеют абсолютный адрес относительно корня. То есть если нажать любую ссылку она будет вести на http://domain/p?=project.git Как сделать так что бы ссылки вели на http://domain/gitweb/p?=project.git Без исправления кода gitweb :) Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232427,232427#msg-232427 From voron at amhost.net Wed Oct 31 15:24:46 2012 From: voron at amhost.net (Alex Vorona) Date: Wed, 31 Oct 2012 17:24:46 +0200 Subject: =?UTF-8?B?UmU6INCj0L3QuNCy0LXRgNGB0LDQu9GM0L3QsNGPINC60L7QvdGE0LjQs9GD0YA=?= =?UTF-8?B?0LDRhtC40Y8g0L/QvtC0INC90LXRgdC60L7Qu9GM0LrQviB1d3NnaSDQv9GA?= =?UTF-8?B?0L7RhtC10YHRgdC+0LIu?= In-Reply-To: References: Message-ID: <509142BE.6070307@amhost.net> 31.10.2012 12:55, vladimirp wrote: > Здравствуйте, > Имеется приложение, которое при регистрации нового пользователя создает под > него отдельный uwsgi процесс, домен, базу и тд. Все это дело проксирует > nginx. > Очень не хочется каждый раз писать конфиг под нового пользователя, можно ли > как нибудь создать универсальный конфиг? А в роли универсального домена будет точка или default server? Генератор конфига с релоадом nginx по флажку обычно решает, тем более include sites/* nginx умеет. From ne at vbart.ru Wed Oct 31 16:31:32 2012 From: ne at vbart.ru (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Wed, 31 Oct 2012 20:31:32 +0400 Subject: =?UTF-8?B?UmU6INCh0YHRi9C70LrQuCDQvdCwINC/0YDQvtC60YHQuNGA0YPQtdC80L7QvCA=?= =?UTF-8?B?0LDQtNGA0LXRgdC1?= In-Reply-To: References: Message-ID: <201210312031.32654.ne@vbart.ru> On Wednesday 31 October 2012 17:52:20 free_kode wrote: > Доброго времени суток! > > Проксируется gitweb запущенный под lighttp. В конфиге такая запись: > > location /gitweb/ { > proxy_pass http://127.0.0.1:1234 > } > > Если идти на http://domain/gitweb/ то ок видим интерфейс gitweb. Но в самом > интерфейсе ссылки имеют абсолютный адрес относительно корня. То есть если > нажать любую ссылку она будет вести на http://domain/p?=project.git > Как сделать так что бы ссылки вели на http://domain/gitweb/p?=project.git > Без исправления кода gitweb :) > Вопрос практически не имеет отношения к nginx. Очевидно, настроить gitweb. Первая ссылка на google.com: http://www.moosechips.com/2010/03/install-gitweb-to-a-subdirectory/ -- Валентин Бартенев http://nginx.com/support.html http://nginx.org/en/donation.html