From nginx-forum at nginx.us Fri Feb 1 08:13:44 2013 From: nginx-forum at nginx.us (stitrace) Date: Fri, 01 Feb 2013 03:13:44 -0500 Subject: =?UTF-8?B?0JHQvtC70YzRiNC1INC00LXQstGP0YLQuCDQv9Cw0YDQsNC80LXRgtGA0L7QsiBx?= =?UTF-8?B?dWVyeSBzdHJpbmc=?= Message-ID: rewrite ^/(.*)$ /index.php?page=$1 last; А если параметров больше 9-ти, к примеру 10? $10, $11, etc воспринимаются nginx-ом как $1+'0', $1+'1'. Скажите пожалуйста, как такие параметры получить? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235791,235791#msg-235791 From garrotte at demiart.ru Fri Feb 1 08:25:50 2013 From: garrotte at demiart.ru (garrotte) Date: Fri, 1 Feb 2013 10:25:50 +0200 Subject: =?UTF-8?B?0YDQtdC00LjRgNC10LrRgtGL?= Message-ID: <7310534648.20130201102550@demiart.ru> Здравствуйте Есть связка nginx - apache конфиг примерно такой server { listen 1.1.1.1:80; server_name host.com; location / { proxy_pass http://apache; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; } location ~* ^.+\.(jpg|jpeg|gif|png|svg|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ { root /home/host/public_html; } error_page 404 /error-404.php; location = /404.html { root /usr/share/nginx/html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } на апаче куча рерайтов в данный момент сайт переезжает на другой домен, задача стоит следующая, если апач возвращает 404, ответ клиенту идет от старого домена host.com, если ответ апача 200, редирект на новый домен newhost.com. Проверять nginx'ом существование файлов и папок из запроса, не имеет смысла, поскольку большинства из них не существует и реальный запрос к скриптам ( включая имена самих скриптов ) формируется рерайтами htaccess никак не соображу, как реализовать эту схему (и возможно-ли вообще?) подскажите куда копать, заранее спасибо From ru at nginx.com Fri Feb 1 08:31:27 2013 From: ru at nginx.com (Ruslan Ermilov) Date: Fri, 1 Feb 2013 12:31:27 +0400 Subject: =?UTF-8?B?UmU6INCR0L7Qu9GM0YjQtSDQtNC10LLRj9GC0Lgg0L/QsNGA0LDQvNC10YLRgNC+?= =?UTF-8?B?0LIgcXVlcnkgc3RyaW5n?= In-Reply-To: References: Message-ID: <20130201083127.GB49367@lo0.su> On Fri, Feb 01, 2013 at 03:13:44AM -0500, stitrace wrote: > rewrite ^/(.*)$ /index.php?page=$1 last; > > А если параметров больше 9-ти, к примеру 10? > > $10, $11, etc воспринимаются nginx-ом как $1+'0', $1+'1'. > > Скажите пожалуйста, как такие параметры получить? http://nginx.org/ru/docs/http/server_names.html#regex_names From vadim.lazovskiy at gmail.com Fri Feb 1 08:32:16 2013 From: vadim.lazovskiy at gmail.com (Vadim Lazovskiy) Date: Fri, 1 Feb 2013 12:32:16 +0400 Subject: =?UTF-8?B?UmU6INCR0L7Qu9GM0YjQtSDQtNC10LLRj9GC0Lgg0L/QsNGA0LDQvNC10YLRgNC+?= =?UTF-8?B?0LIgcXVlcnkgc3RyaW5n?= In-Reply-To: References: Message-ID: Здравствуйте. Лучше использовать выделения в регулярных выражениях: rewrite ^/(?.*)$ /index.php?page=$page_id last; 1 февраля 2013 г., 12:13 пользователь stitrace написал: > rewrite ^/(.*)$ /index.php?page=$1 last; > > А если параметров больше 9-ти, к примеру 10? > > $10, $11, etc воспринимаются nginx-ом как $1+'0', $1+'1'. > > Скажите пожалуйста, как такие параметры получить? > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,235791,235791#msg-235791 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best Regards, Vadim Lazovskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From peter at vereshagin.org Fri Feb 1 08:33:16 2013 From: peter at vereshagin.org (Peter Vereshagin) Date: Fri, 1 Feb 2013 12:33:16 +0400 Subject: =?UTF-8?B?UmU6INCR0L7Qu9GM0YjQtSDQtNC10LLRj9GC0Lgg0L/QsNGA0LDQvNC10YLRgNC+?= =?UTF-8?B?0LIgcXVlcnkgc3RyaW5n?= In-Reply-To: References: Message-ID: <20130201083316.GC42470@external.screwed.box> Hello. 2013/02/01 03:13:44 -0500 stitrace => To nginx-ru at nginx.org : s> rewrite ^/(.*)$ /index.php?page=$1 last; s> s> А если параметров больше 9-ти, к примеру 10? s> s> $10, $11, etc воспринимаются nginx-ом как $1+'0', $1+'1'. s> s> Скажите пожалуйста, как такие параметры получить? perldoc perlre (?'NAME'pattern) (?pattern) A named capture group. и далее по тексту Thank you. -- Peter Vereshagin (http://vereshagin.org) pgp: 1754B9C1 From nginx-forum at nginx.us Fri Feb 1 09:43:46 2013 From: nginx-forum at nginx.us (stitrace) Date: Fri, 01 Feb 2013 04:43:46 -0500 Subject: =?UTF-8?B?UmU6INCR0L7Qu9GM0YjQtSDQtNC10LLRj9GC0Lgg0L/QsNGA0LDQvNC10YLRgNC+?= =?UTF-8?B?0LIgcXVlcnkgc3RyaW5n?= In-Reply-To: References: Message-ID: <592861c624f3ec9b53ed44e3bc87005c.NginxMailingListRussian@forum.nginx.org> Спасибо! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235791,235797#msg-235797 From peter at vereshagin.org Fri Feb 1 11:57:32 2013 From: peter at vereshagin.org (Peter Vereshagin) Date: Fri, 1 Feb 2013 15:57:32 +0400 Subject: =?UTF-8?B?UmU6INCR0L7Qu9GM0YjQtSDQtNC10LLRj9GC0Lgg0L/QsNGA0LDQvNC10YLRgNC+?= =?UTF-8?B?0LIgcXVlcnkgc3RyaW5n?= In-Reply-To: <20130201084224.GC49367@lo0.su> References: <20130201083316.GC42470@external.screwed.box> <20130201084224.GC49367@lo0.su> Message-ID: <20130201115732.GD42470@external.screwed.box> Hello. 2013/02/01 12:42:24 +0400 Ruslan Ermilov => To Peter Vereshagin : RE> On Fri, Feb 01, 2013 at 12:33:16PM +0400, Peter Vereshagin wrote: RE> > Hello. RE> > RE> > 2013/02/01 03:13:44 -0500 stitrace => To nginx-ru at nginx.org : RE> > s> rewrite ^/(.*)$ /index.php?page=$1 last; RE> > s> RE> > s> А если параметров больше 9-ти, к примеру 10? RE> > s> RE> > s> $10, $11, etc воспринимаются nginx-ом как $1+'0', $1+'1'. RE> > s> RE> > s> Скажите пожалуйста, как такие параметры получить? RE> > RE> > perldoc perlre RE> > RE> > (?'NAME'pattern) RE> > RE> > (?pattern) RE> > RE> > A named capture group. RE> > RE> > и далее по тексту RE> RE> Это не отвечает на вопрос, как до них добраться из nginx. Это не означает, что их таким образом невозможно получить. Thank you. -- Peter Vereshagin (http://vereshagin.org) pgp: 1754B9C1 From nginx-forum at nginx.us Fri Feb 1 14:15:27 2013 From: nginx-forum at nginx.us (arriah) Date: Fri, 01 Feb 2013 09:15:27 -0500 Subject: =?UTF-8?B?bmdpbngg0Lgg0YXQvtGB0YIg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4=?= Message-ID: <44bc4a1ab888b6cf7fa0cf9b77d37aa4.NginxMailingListRussian@forum.nginx.org> Здравствуйте, Есть такой вопрос. имеем домен domen.ru, в DNS прописаны поддомены sub.domen.ru, sub1.domen.ru sub2.domen.ru и т.д. Все прописано на один IP адрес sub.domen.ru - основной сайт, все остальные не прописаны пока в конфиге nginx, но если зайти по любому из них, то все время открывается sub.domen.ru, даже если ввести IP адрес, все равно открывается sub.domen.ru. Естесствено если в DNS не прописано поддомена, например 123.domen.ru, то и не открывается ничего. Как сделать так. чтобы если поддомен прописанный в DNS, но не сконфигурированный в nginx не открывал основной сайт, либо запрещал доступ, либо открывал какую-нибудь дефолтную страничку. Я пробовал так: listen 80 default_server server_name localhost; deny all; не получается. пробовал и так: listen 80 default_server; location /{ root /usr/local/www/data/default; index index.html } тоже не выходит. Спасибо. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235811,235811#msg-235811 From postmaster at softsearch.ru Fri Feb 1 14:32:08 2013 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Fri, 1 Feb 2013 18:32:08 +0400 Subject: =?UTF-8?B?UmU6IG5naW54INC4INGF0L7RgdGCINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGO?= In-Reply-To: <44bc4a1ab888b6cf7fa0cf9b77d37aa4.NginxMailingListRussian@forum.nginx.org> References: <44bc4a1ab888b6cf7fa0cf9b77d37aa4.NginxMailingListRussian@forum.nginx.org> Message-ID: <1186644940.20130201183208@softsearch.ru> Здравствуйте, arriah. Вот это и решит Вашу проблему и защитит от всякого мусора, который может идти на 80-ый порт. server { listen 1.2.3.4:80 default accept_filter=httpready; server_name for.trash; location / { return 444; } } -- С уважением, Михаил mailto:postmaster at softsearch.ru From nginx-forum at nginx.us Fri Feb 1 15:10:39 2013 From: nginx-forum at nginx.us (arriah) Date: Fri, 01 Feb 2013 10:10:39 -0500 Subject: =?UTF-8?B?UmU6IG5naW54INC4INGF0L7RgdGCINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGO?= In-Reply-To: <1186644940.20130201183208@softsearch.ru> References: <1186644940.20130201183208@softsearch.ru> Message-ID: <57da5c02c12f5df0459fb0d6186067dd.NginxMailingListRussian@forum.nginx.org> Спасибо огромное. Все работает. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235811,235819#msg-235819 From nginx-forum at nginx.us Fri Feb 1 19:27:19 2013 From: nginx-forum at nginx.us (class0yar) Date: Fri, 01 Feb 2013 14:27:19 -0500 Subject: =?UTF-8?B?0YDQtdCy0YDQsNC50YIg0LIg0L/QvtC00L/QsNC/0LrRgw==?= Message-ID: Всем привет, пытаюсь переписать апачевский реврайт RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^files/products/(.+) resize/resize.php?file=$1&token=%{QUERY_STRING} Проблема в том, что я не могу заставить выполнить сам реврайт, не обращая внимания на проверку наличия папки Такой код работает rewrite ^/files/products/(.+) /index.php; но такой rewrite ^/files/products/(.+) /resize/index.php; уже не хочет. У кого какие мыли ? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235828,235828#msg-235828 From onokonem at gmail.com Fri Feb 1 20:05:01 2013 From: onokonem at gmail.com (Daniel Podolsky) Date: Fri, 1 Feb 2013 23:05:01 +0300 Subject: =?UTF-8?B?UmU6INGA0LXQstGA0LDQudGCINCyINC/0L7QtNC/0LDQv9C60YM=?= In-Reply-To: References: Message-ID: > Такой код работает > rewrite ^/files/products/(.+) /index.php; > но такой > rewrite ^/files/products/(.+) /resize/index.php; > уже не хочет. У кого какие мыли ? Мысли у нас такие, что работают оба кода, но ни один из них использовать не надо - есть более прямые пути. From nginx-forum at nginx.us Fri Feb 1 22:08:39 2013 From: nginx-forum at nginx.us (class0yar) Date: Fri, 01 Feb 2013 17:08:39 -0500 Subject: =?UTF-8?B?UmU6INGA0LXQstGA0LDQudGCINCyINC/0L7QtNC/0LDQv9C60YM=?= In-Reply-To: References: Message-ID: <094ebb9814304626f6410165e4259663.NginxMailingListRussian@forum.nginx.org> Я добавлял в index.php сценарий с простым созданием файла - можно отверждать, что не работает Что вы подразумеваете под более прямыми путями ? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235828,235841#msg-235841 From onokonem at gmail.com Sat Feb 2 00:14:32 2013 From: onokonem at gmail.com (Daniel Podolsky) Date: Sat, 2 Feb 2013 03:14:32 +0300 Subject: =?UTF-8?B?UmU6INGA0LXQstGA0LDQudGCINCyINC/0L7QtNC/0LDQv9C60YM=?= In-Reply-To: <094ebb9814304626f6410165e4259663.NginxMailingListRussian@forum.nginx.org> References: <094ebb9814304626f6410165e4259663.NginxMailingListRussian@forum.nginx.org> Message-ID: > Я добавлял в index.php сценарий с простым созданием файла - можно > отверждать, что не работает Можно утверждать, что не работает тот конфиг, что Вы написали. А рерайты работают оба, инфа 100% > Что вы подразумеваете под более прямыми путями ? Обычно то, что в апаче делали рерайтами (от тупизны и привычки к .htaccess) на nginx можно и нужно делать на location с правильными root и/или alias. иногда бывают полезны try_files (но мне вот ни разу не пригодились) From motienko at gmail.com Sat Feb 2 15:07:55 2013 From: motienko at gmail.com (Oleg Motienko) Date: Sat, 2 Feb 2013 19:07:55 +0400 Subject: =?UTF-8?B?UmU6INGA0LXQtNC40YDQtdC60YLRiw==?= In-Reply-To: <7310534648.20130201102550@demiart.ru> References: <7310534648.20130201102550@demiart.ru> Message-ID: Добрый день. proxy_intercept_errors on должен помочь. 2013/2/1 garrotte : > Здравствуйте > Есть связка nginx - apache > конфиг примерно такой > server { > listen 1.1.1.1:80; > server_name host.com; > > location / { > proxy_pass http://apache; > proxy_set_header Host $host; > proxy_set_header X-Real-IP $remote_addr; > proxy_set_header X-Forwarded-For $remote_addr; > } > > location ~* ^.+\.(jpg|jpeg|gif|png|svg|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ { > root /home/host/public_html; > } > > error_page 404 /error-404.php; > > location = /404.html { > root /usr/share/nginx/html; > } > > error_page 500 502 503 504 /50x.html; > location = /50x.html { > root /usr/share/nginx/html; > } > > на апаче куча рерайтов > в данный момент сайт переезжает на другой домен, задача стоит > следующая, если апач возвращает 404, ответ клиенту идет от старого > домена host.com, если ответ апача 200, редирект на новый домен > newhost.com. > Проверять nginx'ом существование файлов и папок из запроса, не имеет > смысла, поскольку большинства из них не существует и реальный запрос к > скриптам ( включая имена самих скриптов ) формируется рерайтами > htaccess > > никак не соображу, как реализовать эту схему (и возможно-ли вообще?) > > подскажите куда копать, заранее спасибо > -- Regards, Oleg From nginx-forum at nginx.us Sat Feb 2 18:08:34 2013 From: nginx-forum at nginx.us (aaaa5) Date: Sat, 02 Feb 2013 13:08:34 -0500 Subject: =?UTF-8?B?0J/QtdGA0LXQvdCw0L/RgNCw0LLQu9C10L3QuNC1L9C+0LHRgNCw0LHQvtGC0Lo=?= =?UTF-8?B?0LAg0L7RgtCy0LXRgtCwIDIwMA==?= Message-ID: Здравствуйте, встала следующая задача: сервер присылает ответ 200, надо его не сразу отдать клиенту, а перенаправить в location для обработки, положим в php, что-то никак не могу понять как это сделать Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235854,235854#msg-235854 From postmaster at softsearch.ru Sat Feb 2 19:18:36 2013 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Sat, 2 Feb 2013 23:18:36 +0400 Subject: =?UTF-8?B?0JrQsNC6INC+0LHQvtC50YLQuNGB0Ywg0LHQtdC3IHJld3JpdGUg0LIgbG9jYXRp?= =?UTF-8?B?b24t0LUg0YEgcmVnZXhwLdC+0Lw/?= Message-ID: <726471396.20130202231836@softsearch.ru> Здравствуйте. Задача простая: выделить из location-а, заданного регэкспом, часть и её использовать в proxy_pass. В голову приходит вот такой конфиг: location ~ ^/dir(?/.+)$ { proxy_pass http://1.2.3.4:80$ruri; } Но проксируется не $ruri , а исходный запрос, начинающийся на /dir. Что соответствует документации: > В ряде случаев часть URI запроса, подлежащую замене, выделить невозможно: > > Если location задан регулярным выражением. > > В этом случае директиву следует указывать без URI. > > Если внутри проксируемого location с помощью директивы rewrite изменяется URI, и именно с этой конфигурацией будет обрабатываться запрос (break): > > location /name/ { > rewrite /name/([^/]+) /users?name=$1 break; > proxy_pass http://127.0.0.1; > } > > В этом случае URI, указанный в директиве, игнорируется, и на сервер передаётся изменённый URI запроса целиком. Т.е. выходит, что нужен второй регэксп, который изменил бы $uri. А можно без него обойтись? Т.е. не игнорировать заданный в директиве uri, а использовать именно его. Его ведь для того и указывают, чтобы использовать, а не игнорировать. Тогда в локейшнах, заданных регэкспами, можно будет отказаться rewrite и сэкономить процессор на запуске ещё одного регэкспа. -- С уважением, Михаил mailto:postmaster at softsearch.ru From postmaster at softsearch.ru Sat Feb 2 19:20:01 2013 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Sat, 2 Feb 2013 23:20:01 +0400 Subject: =?UTF-8?B?UmU6INCf0LXRgNC10L3QsNC/0YDQsNCy0LvQtdC90LjQtS/QvtCx0YDQsNCx0L4=?= =?UTF-8?B?0YLQutCwINC+0YLQstC10YLQsCAyMDA=?= In-Reply-To: References: Message-ID: <358198287.20130202232001@softsearch.ru> Здравствуйте, aaaa5. > Здравствуйте, встала следующая задача: сервер присылает ответ 200, надо его > не сразу отдать клиенту, а перенаправить в location для обработки, положим в > php, что-то никак не могу понять как это сделать http://nginx.org/ru/docs/http/ngx_http_core_module.html#internal -- С уважением, Михаил mailto:postmaster at softsearch.ru From nginx-forum at nginx.us Sat Feb 2 19:39:29 2013 From: nginx-forum at nginx.us (aaaa5) Date: Sat, 02 Feb 2013 14:39:29 -0500 Subject: =?UTF-8?B?UmU6INCf0LXRgNC10L3QsNC/0YDQsNCy0LvQtdC90LjQtS/QvtCx0YDQsNCx0L4=?= =?UTF-8?B?0YLQutCwINC+0YLQstC10YLQsCAyMDA=?= In-Reply-To: <358198287.20130202232001@softsearch.ru> References: <358198287.20130202232001@softsearch.ru> Message-ID: <0fd76002a0289076d4c8eab8c43d7b68.NginxMailingListRussian@forum.nginx.org> Спасибо, что-то не совсем понял, как можно использовать internal для перенаправления, нельзя ли поподробнее? вот есть location / { proxy_pass backend;---------------------# здесь мы от бекенда получаем ответ .......---------------------------------------------# здесь нам надо его перенаправить на другой location для обработки error_page 200 = @processing-------# не работает } location @processing { ...... } Т.е. большинство директив используются для обработки запроса, а не ответа. А нужен именно ответ. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235854,235858#msg-235858 From hell-for-yahoo at umail.ru Sat Feb 2 19:43:31 2013 From: hell-for-yahoo at umail.ru (Andrey Repin) Date: Sat, 2 Feb 2013 23:43:31 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQvtCx0L7QudGC0LjRgdGMINCx0LXQtyByZXdyaXRlINCyIGxv?= =?UTF-8?B?Y2F0aW9uLdC1INGBIHJlZ2V4cC3QvtC8Pw==?= In-Reply-To: <726471396.20130202231836@softsearch.ru> References: <726471396.20130202231836@softsearch.ru> Message-ID: <130972980.20130202234331@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) Михаил Монашёв! ММ> Здравствуйте. ММ> Задача простая: выделить из location-а, заданного регэкспом, часть и её ММ> использовать в proxy_pass. В голову приходит вот такой конфиг: ММ> location ~ ^/dir(?/.+)$ { ММ> proxy_pass http://1.2.3.4:80$ruri; ММ> } ММ> Но проксируется не $ruri , а исходный запрос, начинающийся на /dir. ММ> Что соответствует документации: >> В ряде случаев часть URI запроса, подлежащую замене, выделить невозможно: >> >> Если location задан регулярным выражением. >> >> В этом случае директиву следует указывать без URI. >> >> Если внутри проксируемого location с помощью директивы rewrite изменяется URI, и именно с этой конфигурацией будет обрабатываться запрос (break): >> >> location /name/ { >> rewrite /name/([^/]+) /users?name=$1 break; >> proxy_pass http://127.0.0.1; >> } >> >> В этом случае URI, указанный в директиве, игнорируется, и на сервер передаётся изменённый URI запроса целиком. ММ> Т.е. выходит, что нужен второй регэксп, который изменил бы $uri. ММ> А можно без него обойтись? Т.е. не игнорировать заданный в директиве ММ> uri, а использовать именно его. Его ведь для того и указывают, чтобы ММ> использовать, а не игнорировать. Тогда в локейшнах, заданных ММ> регэкспами, можно будет отказаться rewrite и сэкономить процессор на ММ> запуске ещё одного регэкспа. Можно отказаться от регэкспа в location location /dir/ { rewrite "/dir/([^/]+)" "/$1" break; proxy_pass http://1.2.3.4 ; } -- С уважением Andrey Repin (hell-for-yahoo at umail.ru) суббота, 02.02.2013, <23:41> From vbart at nginx.com Sat Feb 2 21:27:04 2013 From: vbart at nginx.com (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Sun, 3 Feb 2013 01:27:04 +0400 Subject: =?UTF-8?B?UmU6ICDQmtCw0Log0L7QsdC+0LnRgtC40YHRjCDQsdC10LcgcmV3cml0ZSDQsiBs?= =?UTF-8?B?b2NhdGlvbi3QtSDRgSByZWdleHAt0L7QvD8=?= In-Reply-To: <726471396.20130202231836@softsearch.ru> References: <726471396.20130202231836@softsearch.ru> Message-ID: <201302030127.04709.vbart@nginx.com> On Saturday 02 February 2013 23:18:36 Михаил Монашёв wrote: > Здравствуйте. > > Задача простая: выделить из location-а, заданного регэкспом, часть и её > использовать в proxy_pass. В голову приходит вот такой конфиг: > > location ~ ^/dir(?/.+)$ { > proxy_pass http://1.2.3.4:80$ruri; > } > location /dir/ { proxy_pass http://1.2.3.4/; } -- Валентин Бартенев http://nginx.com/support.html http://nginx.org/en/donation.html > Но проксируется не $ruri , а исходный запрос, начинающийся на /dir. > > Что соответствует документации: > > В ряде случаев часть URI запроса, подлежащую замене, выделить невозможно: > > Если location задан регулярным выражением. > > > > В этом случае директиву следует указывать без URI. > > > > Если внутри проксируемого location с помощью директивы rewrite изменяется URI, и именно с этой конфигурацией будет обрабатываться запрос (break): > > location /name/ { > > > > rewrite /name/([^/]+) /users?name=$1 break; > > proxy_pass http://127.0.0.1; > > > > } > > > > В этом случае URI, указанный в директиве, игнорируется, и на сервер > > передаётся изменённый URI запроса целиком. > > Т.е. выходит, что нужен второй регэксп, который изменил бы $uri. > > А можно без него обойтись? Т.е. не игнорировать заданный в директиве > uri, а использовать именно его. Его ведь для того и указывают, чтобы > использовать, а не игнорировать. Тогда в локейшнах, заданных > регэкспами, можно будет отказаться rewrite и сэкономить процессор на > запуске ещё одного регэкспа. From postmaster at softsearch.ru Sat Feb 2 23:17:49 2013 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Sun, 3 Feb 2013 03:17:49 +0400 Subject: =?UTF-8?B?UmVbMl06INCa0LDQuiDQvtCx0L7QudGC0LjRgdGMINCx0LXQtyByZXdyaXRlINCy?= =?UTF-8?B?IGxvY2F0aW9uLdC1INGBIHJlZ2V4cC3QvtC8Pw==?= In-Reply-To: <201302030127.04709.vbart@nginx.com> References: <726471396.20130202231836@softsearch.ru> <201302030127.04709.vbart@nginx.com> Message-ID: <1822691375.20130203031749@softsearch.ru> Здравствуйте, Валентин. >> Задача простая: выделить из location-а, заданного регэкспом, часть и её >> использовать в proxy_pass. В голову приходит вот такой конфиг: >> >> location ~ ^/dir(?/.+)$ { >> proxy_pass http://1.2.3.4:80$ruri; >> } >> > location /dir/ { > proxy_pass http://1.2.3.4/; > } Я в примере намеренно упростил регэксп, видимо зря. Он на самом деле таков, что не упрощается до обычного локейшна. В этом то и суть вопроса. -- С уважением, Михаил mailto:postmaster at softsearch.ru From postmaster at softsearch.ru Mon Feb 4 07:38:55 2013 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Mon, 4 Feb 2013 11:38:55 +0400 Subject: =?UTF-8?B?UmVbMl06INCf0LXRgNC10L3QsNC/0YDQsNCy0LvQtdC90LjQtS/QvtCx0YDQsNCx?= =?UTF-8?B?0L7RgtC60LAg0L7RgtCy0LXRgtCwIDIwMA==?= In-Reply-To: <0fd76002a0289076d4c8eab8c43d7b68.NginxMailingListRussian@forum.nginx.org> References: <358198287.20130202232001@softsearch.ru> <0fd76002a0289076d4c8eab8c43d7b68.NginxMailingListRussian@forum.nginx.org> Message-ID: <1104202222.20130204113855@softsearch.ru> Здравствуйте, aaaa5. > Спасибо, что-то не совсем понял, как можно использовать internal для > перенаправления, нельзя ли поподробнее? > вот есть > location / { > proxy_pass backend;---------------------# здесь мы от бекенда получаем > ответ который должен содержать X-Accel-Redirect !!! > .......---------------------------------------------# здесь нам надо > его перенаправить на другой location для обработки > error_page 200 = @processing-------# не работает > } > location @processing { > ...... > } > Т.е. большинство директив используются для обработки запроса, а не ответа. А > нужен именно ответ. -- С уважением, Михаил mailto:postmaster at softsearch.ru From onokonem at gmail.com Mon Feb 4 09:28:43 2013 From: onokonem at gmail.com (Daniel Podolsky) Date: Mon, 4 Feb 2013 12:28:43 +0300 Subject: =?UTF-8?B?UmU6IFJlWzJdOiDQn9C10YDQtdC90LDQv9GA0LDQstC70LXQvdC40LUv0L7QsdGA?= =?UTF-8?B?0LDQsdC+0YLQutCwINC+0YLQstC10YLQsCAyMDA=?= In-Reply-To: <1104202222.20130204113855@softsearch.ru> References: <358198287.20130202232001@softsearch.ru> <0fd76002a0289076d4c8eab8c43d7b68.NginxMailingListRussian@forum.nginx.org> <1104202222.20130204113855@softsearch.ru> Message-ID: > который должен содержать X-Accel-Redirect !!! Топикстартер хочет получить ответ от бекенда, и затолкать его куда-то на дополнительную обработку. а X-Accel-Redirect - это просто способ сделать rewrite на бекенде. PS ssi - не подойдет ли топикстартеру? From nginx-forum at nginx.us Mon Feb 4 11:34:13 2013 From: nginx-forum at nginx.us (MaxNikitin) Date: Mon, 04 Feb 2013 06:34:13 -0500 Subject: =?UTF-8?B?0JTQvtCx0LDQstC40YLRjCBuZ8Sxbngg0LIg0LDQstGC0L7Qt9Cw0LPRgNGD0Lc=?= =?UTF-8?B?0LrRgyDQv9C+0YHQu9C1INGA0YPRh9C90L7QuSDRgdCx0L7RgNC60Lg=?= Message-ID: Здравствуйте. Centos 6.3. Собрал nginx "ручками" (пути оставлял те, которые по умолчанию), теперь не знаю, как добавить его в автозагрузку. Если после рестарта сервера писать в командной строке nginx, то запускается без проблем. Подскажите, пожалуйста, как сделать автозапуск? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235882,235882#msg-235882 From nefer05 at gmail.com Mon Feb 4 11:53:10 2013 From: nefer05 at gmail.com (=?KOI8-R?B?8s/Nwc4g7c/Ty9fJ1MnO?=) Date: Mon, 4 Feb 2013 14:53:10 +0300 Subject: =?UTF-8?B?UmU6INCU0L7QsdCw0LLQuNGC0YwgbmfEsW54INCyINCw0LLRgtC+0LfQsNCz0YA=?= =?UTF-8?B?0YPQt9C60YMg0L/QvtGB0LvQtSDRgNGD0YfQvdC+0Lkg0YHQsdC+0YDQutC4?= In-Reply-To: References: Message-ID: Универсальный ответ: https://www.google.ru/search?q=centos+init+script&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a 2013/2/4 MaxNikitin > Здравствуйте. Centos 6.3. Собрал nginx "ручками" (пути оставлял те, которые > по умолчанию), теперь не знаю, как добавить его в автозагрузку. Если после > рестарта сервера писать в командной строке nginx, то запускается без > проблем. Подскажите, пожалуйста, как сделать автозапуск? > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,235882,235882#msg-235882 > > _______________________________________________ > 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 Feb 4 13:00:38 2013 From: nginx-forum at nginx.us (aaaa5) Date: Mon, 04 Feb 2013 08:00:38 -0500 Subject: =?UTF-8?B?UmU6IFJlWzJdOiDQn9C10YDQtdC90LDQv9GA0LDQstC70LXQvdC40LUv0L7QsdGA?= =?UTF-8?B?0LDQsdC+0YLQutCwINC+0YLQstC10YLQsCAyMDA=?= In-Reply-To: References: Message-ID: <7533ca6622bcf0da04408c11fcdd1be3.NginxMailingListRussian@forum.nginx.org> всем спасибо. Попробую варианты отпишусь, т.к. не рассматривал ни тот, ни тот Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235854,235886#msg-235886 From gmm at csdoc.com Mon Feb 4 13:06:54 2013 From: gmm at csdoc.com (Gena Makhomed) Date: Mon, 04 Feb 2013 15:06:54 +0200 Subject: =?UTF-8?B?UmU6INCU0L7QsdCw0LLQuNGC0YwgbmfEsW54INCyINCw0LLRgtC+0LfQsNCz0YA=?= =?UTF-8?B?0YPQt9C60YMg0L/QvtGB0LvQtSDRgNGD0YfQvdC+0Lkg0YHQsdC+0YDQutC4?= In-Reply-To: References: Message-ID: <510FB26E.7070809@csdoc.com> On 04.02.2013 13:34, MaxNikitin wrote: > Centos 6.3. Собрал nginx "ручками" (пути оставлял те, которые > по умолчанию), теперь не знаю, как добавить его в автозагрузку. Если после > рестарта сервера писать в командной строке nginx, то запускается без > проблем. Подскажите, пожалуйста, как сделать автозапуск? есть уже готовый пакет для CentOS: http://nginx.org/packages/centos/6/ если готовый бинарник (в виде пакета) чем-то не устраивает можно пересобрать пакет из исходников со своими настройками или взять оттуда только инит-скрипт. (самый худший вариант) -- Best regards, Gena From ru at nginx.com Mon Feb 4 14:20:28 2013 From: ru at nginx.com (Ruslan Ermilov) Date: Mon, 4 Feb 2013 18:20:28 +0400 Subject: =?UTF-8?B?UmU6INCd0LXQtNC+0LrRg9C80LXQvdGC0LjRgNC+0LLQsNC90L3Ri9C1INCy0L4=?= =?UTF-8?B?0LfQvNC+0LbQvdC+0YHRgtC4IHNlY3VyZV9saW5r?= In-Reply-To: <20130121085546.GB69613@lo0.su> References: <50FC1746.9070507@csdoc.com> <1358707577.879022609@f267.mail.ru> <50FC5E91.20502@csdoc.com> <20130121085546.GB69613@lo0.su> Message-ID: <20130204142028.GA25230@lo0.su> On Mon, Jan 21, 2013 at 12:55:46PM +0400, Ruslan Ermilov wrote: > On Sun, Jan 20, 2013 at 11:16:01PM +0200, Gena Makhomed wrote: > > On 20.01.2013 20:46, Ivan wrote: > > > > > смотря что считать официальной. По ссылке > > > http://nginx.org/ru/docs/http/ngx_http_secure_link_module.html > > > > > > почти ничего нет, > > > > официальная документация - это http://nginx.org/ru/docs/ и > > http://nginx.org/en/docs/ > > > > > хотя вот тут все написано: > > > http://wiki.nginx.org/HttpSecureLinkModule > > > > а это просто wiki, там может быть много ошибок и устаревшей информации, > > потому что текст редактировать на wiki.nginx.org может кто угодно... > > Да, на wiki есть неточности, в т.ч. и в описании этого модуля. > Речь ниже только про официальную документацию. > > Модуль secure_link умеет работать в двух режимах, старом и новом. > Старый режим полностью документирован. > > Новый режим сейчас никак не документирован, но патч, исправляющий > это, уже находится в процессе review. Документацию по secure_link обновили: http://nginx.org/ru/docs/http/ngx_http_secure_link_module.html From lufliw at gmail.com Mon Feb 4 14:20:23 2013 From: lufliw at gmail.com (Andrey Semenoff) Date: Mon, 4 Feb 2013 20:20:23 +0600 Subject: =?UTF-8?B?UmU6INCU0L7QsdCw0LLQuNGC0YwgbmfEsW54INCyINCw0LLRgtC+0LfQsNCz0YA=?= =?UTF-8?B?0YPQt9C60YMg0L/QvtGB0LvQtSDRgNGD0YfQvdC+0Lkg0YHQsdC+0YDQutC4?= In-Reply-To: <510FB26E.7070809@csdoc.com> References: <510FB26E.7070809@csdoc.com> Message-ID: 4 февраля 2013 г., 19:06 пользователь Gena Makhomed написал: > On 04.02.2013 13:34, MaxNikitin wrote: > > Centos 6.3. Собрал nginx "ручками" (пути оставлял те, которые >> по умолчанию), теперь не знаю, как добавить его в автозагрузку. Если после >> рестарта сервера писать в командной строке nginx, то запускается без >> проблем. Подскажите, пожалуйста, как сделать автозапуск? >> > > есть уже готовый пакет для CentOS: http://nginx.org/packages/**centos/6/ > > если готовый бинарник (в виде пакета) чем-то не устраивает > можно пересобрать пакет из исходников со своими настройками > или взять оттуда только инит-скрипт. (самый худший вариант) > > -- > Best regards, > Gena > > > ______________________________**_________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/**mailman/listinfo/nginx-ru > Лучше уж тогда: 1) собрать из SRC RPM (http://wiki.nginx.org/Install) http://nginx.org/packages/centos/6/SRPMS/ 2) Указать, добавить или убрать то, что Вас не устроило в сборке из репозитория https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines 3) Собрать пакет и установить http://wiki.centos.org/HowTos/RebuildSRPM В дальнейшем будет удобнее обновлять по уже готовому SPEC. На будущее: старайтесь как можно меньше делать "рукоблудных" скриптов в бинарной системе, всё уже давно придумано. -- С уважением, Семенов Андрей -------------- next part -------------- An HTML attachment was scrubbed... URL: From trurl at mcbyte.net Mon Feb 4 15:35:04 2013 From: trurl at mcbyte.net (Trurl McByte) Date: Mon, 4 Feb 2013 17:35:04 +0200 Subject: =?UTF-8?B?UmU6INCU0L7QsdCw0LLQuNGC0YwgbmfEsW54INCyINCw0LLRgtC+0LfQsNCz0YA=?= =?UTF-8?B?0YPQt9C60YMg0L/QvtGB0LvQtSDRgNGD0YfQvdC+0Lkg0YHQsdC+0YDQutC4?= In-Reply-To: References: <510FB26E.7070809@csdoc.com> Message-ID: если для systemd [Unit] Description=Nginx - a high performance http(s) server After=syslog.target network.target [Service] Type=forking LimitNOFILE=65536 PIDFile=/var/run/nginx.pid WorkingDirectory=/var/lib/nginx ExecStart=/usr/sbin/nginx ExecReload=/usr/sbin/nginx -s reload ExecStop=/usr/sbin/nginx -s stop Restart=on-failure RestartSec=15 [Install] WantedBy=multi-user.target 4 февраля 2013 г., 16:20 пользователь Andrey Semenoff написал: > > > > 4 февраля 2013 г., 19:06 пользователь Gena Makhomed написал: > > On 04.02.2013 13:34, MaxNikitin wrote: >> >> Centos 6.3. Собрал nginx "ручками" (пути оставлял те, которые >>> по умолчанию), теперь не знаю, как добавить его в автозагрузку. Если >>> после >>> рестарта сервера писать в командной строке nginx, то запускается без >>> проблем. Подскажите, пожалуйста, как сделать автозапуск? >>> >> >> есть уже готовый пакет для CentOS: http://nginx.org/packages/**centos/6/ >> >> если готовый бинарник (в виде пакета) чем-то не устраивает >> можно пересобрать пакет из исходников со своими настройками >> или взять оттуда только инит-скрипт. (самый худший вариант) >> >> -- >> Best regards, >> Gena >> >> >> ______________________________**_________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/**mailman/listinfo/nginx-ru >> > > > Лучше уж тогда: > 1) собрать из SRC RPM (http://wiki.nginx.org/Install) > http://nginx.org/packages/centos/6/SRPMS/ > 2) Указать, добавить или убрать то, что Вас не устроило в сборке из > репозитория > https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines > 3) Собрать пакет и установить http://wiki.centos.org/HowTos/RebuildSRPM > > В дальнейшем будет удобнее обновлять по уже готовому SPEC. > На будущее: старайтесь как можно меньше делать "рукоблудных" скриптов в > бинарной системе, всё уже давно придумано. > -- > С уважением, Семенов Андрей > > > _______________________________________________ > 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 Feb 5 07:40:38 2013 From: nginx-forum at nginx.us (garrotte) Date: Tue, 05 Feb 2013 02:40:38 -0500 Subject: =?UTF-8?B?UmU6INGA0LXQtNC40YDQtdC60YLRiw==?= In-Reply-To: References: Message-ID: <7338215299b037196153b432bf3b6782.NginxMailingListRussian@forum.nginx.org> спасибо Oleg, упустил из виду Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235792,235911#msg-235911 From nginx-forum at nginx.us Tue Feb 5 10:29:16 2013 From: nginx-forum at nginx.us (IgorPr) Date: Tue, 05 Feb 2013 05:29:16 -0500 Subject: =?UTF-8?B?NDA1IE5vdCBBbGxvd2VkINC/0YDQuCBQT1NUINC30LDQv9GA0L7RgdC1?= Message-ID: <3616c2b35e79f391cc8f390b1dd7616d.NginxMailingListRussian@forum.nginx.org> Приветствую, хотел бы опять поднять тему 405 Not Allowed. Есть 2 сервера, на них были установлены ispmanager после чего был запущен nginx. Есть сервис, который отправляет post запрос. Проблема в том, что в ответ от одного сервера приходит 405 Not Allowed, а от второго нет, он принимает post. Почитав форум, решил добавить #There is workaround: error_page 405 = @405; location = @405 { root ...; } Вот что получилось в конфиге: server { server_name site.com www.site.com; listen 195.111.118.107; listen 195.111.118.107:443 ssl; set $root_path /var/www/site/data/www/site.com; error_page 405 = @405; location = @405 { root $root_path; } location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ { root $root_path; access_log /var/www/nginx-logs/site isp; access_log /var/www/httpd-logs/site.com.access.log ; error_page 404 = @fallback; } location / { proxy_pass http://195.111.118.107:81; proxy_redirect http://195.111.118.107:81/ /; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; } location ~* ^/(webstat|awstats|webmail|myadmin|pgadmin)/ { proxy_pass http://195.111.118.107:81; proxy_redirect http://195.111.118.107:81/ /; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; } location @fallback { proxy_pass http://195.111.118.107:81; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; } include /usr/local/ispmgr/etc/nginx.inc; ssl_certificate /var/www/httpd-cert/site/site.com.crt; ssl_certificate_key /var/www/httpd-cert/site/site.com.key; } После рестарта nginx ничего не изменилось. Подскажите, что делать? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235915,235915#msg-235915 From tetsio.nainn at gmail.com Tue Feb 5 11:54:46 2013 From: tetsio.nainn at gmail.com (=?UTF-8?B?0Jwu0JAuINCc0L7RhdC90LDRh9C10LLRgdC60LjQuQ==?=) Date: Tue, 5 Feb 2013 21:54:46 +1000 Subject: =?UTF-8?B?UmU6IDQwNSBOb3QgQWxsb3dlZCDQv9GA0LggUE9TVCDQt9Cw0L/RgNC+0YHQtQ==?= In-Reply-To: <3616c2b35e79f391cc8f390b1dd7616d.NginxMailingListRussian@forum.nginx.org> References: <3616c2b35e79f391cc8f390b1dd7616d.NginxMailingListRussian@forum.nginx.org> Message-ID: 5 февраля 2013 г., 20:29 пользователь IgorPr написал: > Приветствую, хотел бы опять поднять тему 405 Not Allowed. > Есть 2 сервера, на них были установлены ispmanager после чего был запущен > nginx. > > Есть сервис, который отправляет post запрос. Проблема в том, что в ответ от > одного сервера приходит 405 Not Allowed, а от второго нет, он принимает > post. > > Почитав форум, решил добавить > #There is workaround: > error_page 405 = @405; > location = @405 { > root ...; > } > > Вот что получилось в конфиге: > > server { > > server_name site.com www.site.com; > listen 195.111.118.107; > listen 195.111.118.107:443 ssl; > set $root_path /var/www/site/data/www/site.com; > > error_page 405 = @405; > location = @405 { > root $root_path; > } > > location ~* > ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ { > root $root_path; > access_log /var/www/nginx-logs/site isp; > access_log /var/www/httpd-logs/site.com.access.log ; > error_page 404 = @fallback; > } > location / { > proxy_pass http://195.111.118.107:81; > proxy_redirect http://195.111.118.107:81/ /; > proxy_set_header Host $host; > proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; > proxy_set_header X-Forwarded-Proto $scheme; > proxy_set_header X-Real-IP $remote_addr; > } > location ~* ^/(webstat|awstats|webmail|myadmin|pgadmin)/ { > proxy_pass http://195.111.118.107:81; > proxy_redirect http://195.111.118.107:81/ /; > proxy_set_header Host $host; > proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; > proxy_set_header X-Forwarded-Proto $scheme; > proxy_set_header X-Real-IP $remote_addr; > } > location @fallback { > proxy_pass http://195.111.118.107:81; > proxy_set_header Host $host; > proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; > proxy_set_header X-Forwarded-Proto $scheme; > proxy_set_header X-Real-IP $remote_addr; > } > include /usr/local/ispmgr/etc/nginx.inc; > ssl_certificate /var/www/httpd-cert/site/site.com.crt; > ssl_certificate_key /var/www/httpd-cert/site/site.com.key; > } > > После рестарта nginx ничего не изменилось. Подскажите, что делать? > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235915,235915#msg-235915 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru А на какой URL отправляете запрос? Может это бэкенд возвращает 405? From nginx-forum at nginx.us Tue Feb 5 13:05:56 2013 From: nginx-forum at nginx.us (IgorPr) Date: Tue, 05 Feb 2013 08:05:56 -0500 Subject: =?UTF-8?B?UmU6IDQwNSBOb3QgQWxsb3dlZCDQv9GA0LggUE9TVCDQt9Cw0L/RgNC+0YHQtQ==?= In-Reply-To: References: Message-ID: <79422090a641a420e23622abf3f4a366.NginxMailingListRussian@forum.nginx.org> Могу я не светить урл? Или могу скинуть в личку, если такова есть. Вот логи от сервиса URL -------------------------------- http://www.site.com/cityads.php Server IP -------------------------------- 81.177.161.181 Request -------------------------------- POST /cityads.php HTTP/1.1 User-Agent: CITYADS_XML Host: www.site.com Accept: */* Content-Length: 150 Content-Type: application/x-www-form-urlencoded xml=%3C%3Fxml+version%3D%221.0%22%3F%3E%3Crequest%3E%3Cdate_from%3E1357416000%3C%2Fdate_from%3E%3Cdate_to%3E1360094399%3C%2Fdate_to%3E%3C%2Frequest%3E Response -------------------------------- HTTP/1.1 405 Not Allowed Server: nginx Date: Tue, 05 Feb 2013 12:51:00 GMT Content-Type: text/html; charset=utf-8 Content-Length: 166 Connection: keep-alive Keep-Alive: timeout=20 405 Not Allowed

405 Not Allowed


nginx
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235915,235920#msg-235920 From mdounin at mdounin.ru Tue Feb 5 14:22:51 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 5 Feb 2013 18:22:51 +0400 Subject: nginx-1.3.12 Message-ID: <20130205142251.GA40753@mdounin.ru> Изменения в nginx 1.3.12 05.02.2013 *) Добавление: директивы proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind поддерживают переменные. *) Добавление: переменные $pipe, $request_length, $time_iso8601 и $time_local теперь можно использовать не только в директиве log_format. Спасибо Kiril Kalchev. *) Добавление: поддержка IPv6 в модуле ngx_http_geoip_module. Спасибо Gregor Kali?nik. *) Исправление: директива proxy_method работала неверно, если была указана на уровне http. *) Исправление: в рабочем процессе мог произойти segmentation fault, если использовался resolver и метод poll. *) Исправление: nginx мог нагружать процессор во время SSL handshake с бэкендом при использовании методов обработки соединений select, poll и /dev/poll. *) Исправление: ошибка "[crit] SSL_write() failed (SSL:)". *) Исправление: в диркетиве client_body_in_file_only; ошибка появилась в 1.3.9. *) Исправление: в директиве fastcgi_keep_conn. -- Maxim Dounin http://nginx.com/support.html From nginx-forum at nginx.us Tue Feb 5 14:57:16 2013 From: nginx-forum at nginx.us (dimn) Date: Tue, 05 Feb 2013 09:57:16 -0500 Subject: =?UTF-8?B?0J7Rh9C40YHRgtC60LAg0LrQtdGI0LAgbmdpbng=?= Message-ID: <91a41c0dff7c837037d649803de6b9e7.NginxMailingListRussian@forum.nginx.org> Здравствуйте. Настроил кеширование для неавторизованных пользователей. Кешируются разные разделы сайта в папку /var/cache/nginx. Как настроить очистку кеша для каждого раздела по своему времени, например, /blogs/ - 5 мин /news/ - 60 мин. PS. Кешируется с помощью proxy_cache - proxy_cache_path /var/cache/nginx levels=2 keys_zone=pagecache:15m inactive=10m max_size=500m; Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235939,235939#msg-235939 From vovansystems at gmail.com Tue Feb 5 16:11:51 2013 From: vovansystems at gmail.com (VovansystemS) Date: Tue, 5 Feb 2013 19:11:51 +0300 Subject: =?UTF-8?B?UmU6INCe0YfQuNGB0YLQutCwINC60LXRiNCwIG5naW54?= In-Reply-To: <91a41c0dff7c837037d649803de6b9e7.NginxMailingListRussian@forum.nginx.org> References: <91a41c0dff7c837037d649803de6b9e7.NginxMailingListRussian@forum.nginx.org> Message-ID: Здравствуйте, dimn. Видимо, нужно использовать два разных кеша для разных разделов сайта с разным inactive. Igor Sysoev wrote: > Cache manager starts to work just after nginx starts or was reconfigured. > It deletes inactive cache entries and checks caches size. http://mailman.nginx.org/pipermail/nginx/2009-August/014472.html А параметр "inactive" определяет время устаревания данных. "Если к данным кэша не обращаются в течение времени, заданного параметром inactive, то данные удаляются, независимо от их свежести." http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_cache_path proxy_cache_path /var/cache/nginx/blogs levels=2 keys_zone=blogs:15m inactive=5m max_size=500m; proxy_cache_path /var/cache/nginx/news levels=2 keys_zone=news:15m inactive=60m max_size=500m; 2013/2/5 dimn : > Здравствуйте. > > Настроил кеширование для неавторизованных пользователей. > Кешируются разные разделы сайта в папку /var/cache/nginx. > Как настроить очистку кеша для каждого раздела по своему времени, например, > /blogs/ - 5 мин > /news/ - 60 мин. > > PS. Кешируется с помощью proxy_cache - > proxy_cache_path /var/cache/nginx levels=2 keys_zone=pagecache:15m > inactive=10m max_size=500m; > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235939,235939#msg-235939 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Tue Feb 5 16:42:33 2013 From: nginx-forum at nginx.us (dimn) Date: Tue, 05 Feb 2013 11:42:33 -0500 Subject: =?UTF-8?B?UmU6INCe0YfQuNGB0YLQutCwINC60LXRiNCwIG5naW54?= In-Reply-To: References: Message-ID: <793810c3f481d2b6df1835dbbfcf2d42.NginxMailingListRussian@forum.nginx.org> А параметр inactive по-моему чуть не то - например при inactive=10м при обращении в течении 10 мин кеш не удалается, а удаляется только тогда, когда не было обращений в течении 10 мин. Или не так? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235939,235947#msg-235947 From postmaster at softsearch.ru Tue Feb 5 16:50:44 2013 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Tue, 5 Feb 2013 20:50:44 +0400 Subject: =?UTF-8?B?UmU6INCe0YfQuNGB0YLQutCwINC60LXRiNCwIG5naW54?= In-Reply-To: <91a41c0dff7c837037d649803de6b9e7.NginxMailingListRussian@forum.nginx.org> References: <91a41c0dff7c837037d649803de6b9e7.NginxMailingListRussian@forum.nginx.org> Message-ID: <46310149.20130205205044@softsearch.ru> Здравствуйте, dimn. > Настроил кеширование для неавторизованных пользователей. > Кешируются разные разделы сайта в папку /var/cache/nginx. > Как настроить очистку кеша для каждого раздела по своему времени, например, > /blogs/ - 5 мин > /news/ - 60 мин. > PS. Кешируется с помощью proxy_cache - > proxy_cache_path /var/cache/nginx levels=2 keys_zone=pagecache:15m > inactive=10m max_size=500m; Поле заголовка ⌠X-Accel-Expires■ задаёт время кэширования ответа в секундах. -- С уважением, Михаил mailto:postmaster at softsearch.ru From vovansystems at gmail.com Tue Feb 5 16:54:22 2013 From: vovansystems at gmail.com (VovansystemS) Date: Tue, 5 Feb 2013 19:54:22 +0300 Subject: =?UTF-8?B?UmU6INCe0YfQuNGB0YLQutCwINC60LXRiNCwIG5naW54?= In-Reply-To: <793810c3f481d2b6df1835dbbfcf2d42.NginxMailingListRussian@forum.nginx.org> References: <793810c3f481d2b6df1835dbbfcf2d42.NginxMailingListRussian@forum.nginx.org> Message-ID: > А параметр inactive по-моему чуть не то - например при inactive=10м при > обращении в течении 10 мин кеш не удалается, а удаляется только тогда, когда > не было обращений в течении 10 мин. Или не так? да, именно так. в Вашем случае следует использовать разный proxy_cache_valid для разных location proxy_cache_valid 200 301 302 5m; proxy_cache_valid 200 301 302 60m; Просто насколько я понимаю, после устаревания таких ответов, они продолжают храниться, т.к. бекенд может упасть и тогда при соответствующей настройке proxy_cache_use_stale будут показываться устаревшие закешированные ответы. Возможно, если отключать proxy_cache_use_stale "proxy_cache_use_stale off;", cache manager удалит устаревшие ответы раньше, чем кеш заполнится полностью или пройдёт время inactive с последнего обращения к закешированному элементу. Но это моё предположение. From nginx-forum at nginx.us Wed Feb 6 11:17:31 2013 From: nginx-forum at nginx.us (Trurl) Date: Wed, 06 Feb 2013 06:17:31 -0500 Subject: watermark patch Message-ID: откопал старый патч watermark patch by Vadym Zakovinko причесал, добавил проверок, убрал memory leaking (надеюсь), переделал с JPG на PNG, добавил полноценную работу с альфаканалом. Работает с версией 1.2.6. пример использования location /images/ { image_filter_buffer 10M; image_filter_watermark "/srv/www/htdocs/images/swtor.png"; image_filter_watermark_position top-right; # top-left|top-right|bottom-right|bottom-left image_filter watermark; expires -1; } сам патч: --- src/http/modules/ngx_http_image_filter_module.c +++ src/http/modules/ngx_http_image_filter_module.c @@ -2,6 +2,7 @@ /* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. + * watermark patch: Vadym Zakovinko updated by Trurl McByte */ @@ -18,6 +19,7 @@ #define NGX_HTTP_IMAGE_RESIZE 3 #define NGX_HTTP_IMAGE_CROP 4 #define NGX_HTTP_IMAGE_ROTATE 5 +#define NGX_HTTP_IMAGE_WATERMARK 6 #define NGX_HTTP_IMAGE_START 0 @@ -46,6 +48,9 @@ ngx_flag_t transparency; + ngx_str_t watermark; + ngx_str_t watermark_position; + ngx_http_complex_value_t *wcv; ngx_http_complex_value_t *hcv; ngx_http_complex_value_t *acv; @@ -150,6 +155,20 @@ offsetof(ngx_http_image_filter_conf_t, buffer_size), NULL }, + { ngx_string("image_filter_watermark"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, + ngx_conf_set_str_slot, + NGX_HTTP_LOC_CONF_OFFSET, + offsetof(ngx_http_image_filter_conf_t, watermark), + NULL }, + + { ngx_string("image_filter_watermark_position"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, + ngx_conf_set_str_slot, + NGX_HTTP_LOC_CONF_OFFSET, + offsetof(ngx_http_image_filter_conf_t, watermark_position), + NULL }, + ngx_null_command }; @@ -518,6 +537,15 @@ return ngx_http_image_resize(r, ctx); } + if (conf->filter == NGX_HTTP_IMAGE_WATERMARK) { + + if (!conf->watermark.data) { + return NULL; + } + + return ngx_http_image_resize(r, ctx); + } + ctx->max_width = ngx_http_image_filter_get_value(r, conf->wcv, conf->width); if (ctx->max_width == 0) { return NULL; @@ -813,6 +841,10 @@ resize = 0; + } else if (conf->filter == NGX_HTTP_IMAGE_WATERMARK) { + + resize = 0; + } else { /* NGX_HTTP_IMAGE_CROP */ resize = 0; @@ -958,6 +990,40 @@ gdImageColorTransparent(dst, gdImageColorExact(dst, red, green, blue)); } + if (conf->filter == NGX_HTTP_IMAGE_WATERMARK && conf->watermark.data) { + FILE *watermark_file = fopen((const char *)conf->watermark.data, "r"); + if (watermark_file) { + gdImagePtr watermark, watermark_mix; + ngx_int_t wdx = 0, wdy = 0; + + watermark = gdImageCreateFromPng(watermark_file); + + if(watermark != NULL) { + watermark_mix = gdImageCreateTrueColor(watermark->sx, watermark->sy); + if (ngx_strcmp(conf->watermark_position.data, + "bottom-right") == 0) { + wdx = dx - watermark->sx - 10; + wdy = dy - watermark->sy - 10; + } else if (ngx_strcmp(conf->watermark_position.data, "top-left") == 0) { + wdx = wdy = 10; + } else if (ngx_strcmp(conf->watermark_position.data, "top-right") == 0) { + wdx = dx - watermark->sx - 10; + wdy = 10; + } else if (ngx_strcmp(conf->watermark_position.data, "bottom-left") == 0) { + wdx = 10; + wdy = dy - watermark->sy - 10; + } + gdImageCopy(watermark_mix, dst, 0, 0, wdx, wdy, watermark->sx, watermark->sy); + gdImageCopy(watermark_mix, watermark, 0, 0, 0, 0, watermark->sx, watermark->sy); + gdImageCopyMerge(dst, watermark_mix, wdx, wdy, 0, 0, watermark->sx, watermark->sy, 75); + gdFree(watermark); + gdFree(watermark_mix); + } else { ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, "watermark file '%s' is not PNG", conf->watermark.data);} + } else { + ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, "watermark file '%s' not found", conf->watermark.data); + } + } + sharpen = ngx_http_image_filter_get_value(r, conf->shcv, conf->sharpen); if (sharpen > 0) { gdImageSharpen(dst, sharpen); @@ -1223,6 +1289,11 @@ ngx_conf_merge_size_value(conf->buffer_size, prev->buffer_size, 1 * 1024 * 1024); + ngx_conf_merge_str_value(conf->watermark, prev->watermark, ""); + + ngx_conf_merge_str_value(conf->watermark_position, + prev->watermark_position, "bottom-right"); + return NGX_CONF_OK; } @@ -1252,6 +1323,9 @@ } else if (ngx_strcmp(value[i].data, "size") == 0) { imcf->filter = NGX_HTTP_IMAGE_SIZE; + } else if (ngx_strcmp(value[i].data, "watermark") == 0) { + imcf->filter = NGX_HTTP_IMAGE_WATERMARK; + } else { goto failed; } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235958,235958#msg-235958 From nginx-forum at nginx.us Wed Feb 6 16:52:55 2013 From: nginx-forum at nginx.us (kosgtx) Date: Wed, 06 Feb 2013 11:52:55 -0500 Subject: =?UTF-8?Q?Nginx_=D0=B8_=2Ehtpasswd?= Message-ID: <5146067e96cdf28e570927a1a25403ba.NginxMailingListRussian@forum.nginx.org> Вечер бодрый! Столкнулся с неприятностью, в виде невозможности установить корректно работающую аутентификацию на аудиторию. У меня сервер CentOS + ISPConfig + Nginx, стоит скрипт интернет-магазина Simpla с конфигом следующего вида: server { listen *:80; server_name somedomain.com.ua www.somedomain.com.ua; root /var/www/somedomain.com.ua/web; index index.html index.htm index.php index.cgi index.pl index.xhtml; error_page 400 /error/400.html; error_page 401 /error/401.html; error_page 403 /error/403.html; error_page 404 /error/404.html; error_page 405 /error/405.html; error_page 500 /error/500.html; error_page 502 /error/502.html; error_page 503 /error/503.html; recursive_error_pages on; location = /error/400.html { internal; } location = /error/401.html { internal; } location = /error/403.html { internal; } location = /error/404.html { internal; } location = /error/405.html { internal; } location = /error/500.html { internal; } location = /error/502.html { internal; } location = /error/503.html { internal; } error_log /var/log/ispconfig/httpd/somedomain.com.ua/error.log; access_log /var/log/ispconfig/httpd/somedomain.com.ua/access.log combined; ## Disable .htaccess and other hidden files location ~ /\. { deny all; access_log off; log_not_found off; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location /stats { index index.html index.php; auth_basic "Members Only"; auth_basic_user_file /var/www/clients/client1/web11/.htpasswd_stats; } location ^~ /awstats-icon { alias /usr/share/awstats/icon; } location ~ \.php$ { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/lib/php5-fpm/web11.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_intercept_errors on; } location /cgi-bin/ { try_files $uri =404; include /etc/nginx/fastcgi_params; root /var/www/clients/client1/web11; gzip off; fastcgi_pass unix:/var/run/fcgiwrap.socket; fastcgi_index index.cgi; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors on; } location ^~ /simpla/ { auth_basic "Administrator Login"; auth_basic_user_file $document_root/simpla/.htpasswd; try_files $uri $uri/ /index.php; index index.php; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; include /etc/nginx/fastcgi_params; fastcgi_intercept_errors on; fastcgi_pass unix:/var/lib/php5-fpm/web11.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; } } location ~ /\. { deny all; } location ~* ^/(api|cache|compiled|config|design/(.*)/html|payment|Smarty|view)/(.*) { deny all; } location / { try_files $uri @rewrite; } location @rewrite { rewrite ^/catalog/([^/]+)/?$ index.php?module=ProductsView&category=$1; rewrite ^/catalog/([^/]+)/([^/]+)/?$ index.php?module=ProductsView&category=$1&brand=$2; rewrite ^/products/([^/]+)/?$ index.php?module=ProductView&product_url=$1; rewrite ^/products/?$ index.php?module=ProductsView; rewrite ^/brands/([^/]+)/?$ index.php?module=ProductsView&brand=$1; rewrite ^/brands/([^/]+)/page_([^/]+)/?$ index.php?module=ProductsView&brand=$1&page=$2; rewrite ^/search/([^/]+)/?$ index.php?module=ProductsView&keyword=$1; rewrite ^/search/?$ index.php?module=ProductsView; rewrite ^/blog/([^/]+)/?$ index.php?module=BlogView&url=$1; rewrite ^/blog/?$ index.php?module=BlogView; rewrite ^/cart/?$ index.php?module=CartView; rewrite ^/cart/([^/]+)/?$ index.php?module=CartView&add_variant=$1; rewrite ^/cart/remove/([^/]+)/?$ index.php?module=CartView&delete_variant=$1; rewrite ^/order/([^/]+)/?$ index.php?module=OrderView&url=$1; rewrite ^/order/?$ index.php?module=OrderView; rewrite ^/user/login/?$ index.php?module=LoginView; rewrite ^/user/register/?$ index.php?module=RegisterView; rewrite ^/user/logout/?$ index.php?module=LoginView&action=logout; rewrite ^/user/password_remind/?$ index.php?module=LoginView&action=password_remind; rewrite ^/user/password_remind/([0-9a-z]+)/?$ index.php?module=LoginView&action=password_remind&code=$1; rewrite ^/user/?$ index.php?module=UserView; rewrite ^/sitemap.xml?$ sitemap.php last; rewrite ^/yandex.xml?$ yandex.php last; rewrite ^/contact/?$ index.php?module=FeedbackView; rewrite ^/order/([^/]+)/([^/]+)/?$ index.php?module=OrderView&url=$1&file=$2; if (!-f $request_filename){ set $rule_26 1$rule_26; } if (!-d $request_filename){ set $rule_26 2$rule_26; } if ($rule_26 = "21"){ rewrite ^/([^/]*)/?$ index.php?module=PageView&page_url=$1; } rewrite ^/?$ index.php?module=MainView&page_url=; rewrite ^ /index.php; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; include /etc/nginx/fastcgi_params; fastcgi_intercept_errors on; fastcgi_pass unix:/var/lib/php5-fpm/web11.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; } location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { if (!-d $request_filename){ set $rule_28 1$rule_28; } if (!-f $request_filename){ set $rule_28 2$rule_28; } if ($rule_28 = "21"){ rewrite ^/files/products/(.+) resize/resize.php?file=$1&token=$args; } expires max; log_not_found off; } } Когда ввожу с адресную строку somedomain.com.ua/simpla/index.php просит логин и пароль, ввожу и данные принимает, но вместо открытия админки, скачивает файл index.php, если уберу необходимость аутентификации, войти могу без проблем и все работает. Кто что подскажет? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235962,235962#msg-235962 From onokonem at gmail.com Wed Feb 6 17:03:16 2013 From: onokonem at gmail.com (Daniel Podolsky) Date: Wed, 6 Feb 2013 20:03:16 +0300 Subject: =?UTF-8?Q?Re=3A_Nginx_=D0=B8_=2Ehtpasswd?= In-Reply-To: <5146067e96cdf28e570927a1a25403ba.NginxMailingListRussian@forum.nginx.org> References: <5146067e96cdf28e570927a1a25403ba.NginxMailingListRussian@forum.nginx.org> Message-ID: > если уберу необходимость аутентификации, войти > могу без проблем и все работает. А как Вы ее убираете? покажите разницу в конфигах.. From nginx-forum at nginx.us Wed Feb 6 17:08:00 2013 From: nginx-forum at nginx.us (kosgtx) Date: Wed, 06 Feb 2013 12:08:00 -0500 Subject: =?UTF-8?Q?Re=3A_Nginx_=D0=B8_=2Ehtpasswd?= In-Reply-To: <5146067e96cdf28e570927a1a25403ba.NginxMailingListRussian@forum.nginx.org> References: <5146067e96cdf28e570927a1a25403ba.NginxMailingListRussian@forum.nginx.org> Message-ID: <4196a890237732a40c65adecf04c1062.NginxMailingListRussian@forum.nginx.org> Убираю это: location ^~ /simpla/ { auth_basic "Administrator Login"; auth_basic_user_file $document_root/simpla/.htpasswd; try_files $uri $uri/ /index.php; index index.php; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; include /etc/nginx/fastcgi_params; fastcgi_intercept_errors on; fastcgi_pass unix:/var/lib/php5-fpm/web11.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; } } Пробовал оставить просто так: location ^~ /simpla/ { auth_basic "Administrator Login"; auth_basic_user_file $document_root/simpla/.htpasswd; try_files $uri $uri/ /index.php; index index.php; } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235962,235965#msg-235965 From onokonem at gmail.com Wed Feb 6 17:30:03 2013 From: onokonem at gmail.com (Daniel Podolsky) Date: Wed, 6 Feb 2013 20:30:03 +0300 Subject: =?UTF-8?Q?Re=3A_Nginx_=D0=B8_=2Ehtpasswd?= In-Reply-To: <4196a890237732a40c65adecf04c1062.NginxMailingListRussian@forum.nginx.org> References: <5146067e96cdf28e570927a1a25403ba.NginxMailingListRussian@forum.nginx.org> <4196a890237732a40c65adecf04c1062.NginxMailingListRussian@forum.nginx.org> Message-ID: > location ^~ /simpla/ { Из документации: "Если у максимального совпавшего префиксного location'а указан модификатор "^~", то регулярные выражения не проверяются." Я так понимаю - и для вложенных локаций тоже. From melifaro at ipfw.ru Wed Feb 6 17:34:48 2013 From: melifaro at ipfw.ru (Alexander V. Chernikov) Date: Wed, 06 Feb 2013 21:34:48 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtC60YHQuCDQr9C90LTQtdC60YEt0KLRg9GA0LHQvg==?= In-Reply-To: <931546CA-5690-4633-9E19-ED053915DD15@symbi.org> References: <16410348687.20130126174210@softsearch.ru> <5107C8E7.3030508@citrin.ru> <1445081436.20130129184733@softsearch.ru> <5107E611.8050200@ipfw.ru> <931546CA-5690-4633-9E19-ED053915DD15@symbi.org> Message-ID: <51129438.9000802@ipfw.ru> On 31.01.2013 00:48, Konstantin Baryshnikov wrote: > Здравствуйте! Добрый день. > > On Jan 29, 2013, at 7:09 PM, Alexander V. Chernikov wrote: > >> На данный момент как-то так: >> >> 5.45.192.64/26 >> 5.45.255.64/26 >> 141.8.189.192/27 >> 37.140.189.192/26 >> >> В будущем, разумеется, эти диапазоны могут (и будут) меняться. > Спасибо за информацию. Можно ли надеяться, что список подсетей будет когда-нибудь размещен (и поддерживаться в актуальном виде) на официальном сайте? Такую информацию хотелось бы иметь из первых рук. Мы думаем про это, но никаких обещаний дать не могу :) > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Wed Feb 6 17:50:48 2013 From: nginx-forum at nginx.us (kosgtx) Date: Wed, 06 Feb 2013 12:50:48 -0500 Subject: =?UTF-8?Q?Re=3A_Nginx_=D0=B8_=2Ehtpasswd?= In-Reply-To: References: Message-ID: <65da2de7d4ef61dff85b55bb985d654d.NginxMailingListRussian@forum.nginx.org> Из Вашего ответа не совсем понимаю что делать, как решить вопрос. Спасибо Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235962,235970#msg-235970 From onokonem at gmail.com Wed Feb 6 19:23:48 2013 From: onokonem at gmail.com (Daniel Podolsky) Date: Wed, 6 Feb 2013 22:23:48 +0300 Subject: =?UTF-8?Q?Re=3A_Nginx_=D0=B8_=2Ehtpasswd?= In-Reply-To: <65da2de7d4ef61dff85b55bb985d654d.NginxMailingListRussian@forum.nginx.org> References: <65da2de7d4ef61dff85b55bb985d654d.NginxMailingListRussian@forum.nginx.org> Message-ID: > Из Вашего ответа не совсем понимаю что делать, как решить вопрос. Ну - написать новый конфиг, с учетом этого предположения :) напримеh - точно ли там нужна эта опция - ^~ ? From postmaster at softsearch.ru Wed Feb 6 20:44:01 2013 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Thu, 7 Feb 2013 00:44:01 +0400 Subject: watermark patch In-Reply-To: References: Message-ID: <1605008743.20130207004401@softsearch.ru> Здравствуйте, Trurl. Функционал весьма полезный. Я б, например, на картинки, которые сторонние сайты запрашивают, вставлял бы водные знаки. А сейчас 403 выдаю. Но хоть я не сишник, но подозреваю, что сделано не самым лучшим образом. При каждом наложении водного знака зачем-то делается заново открытие файла с водным знаком, чтение его с диска (про aio промолчу) и создание изображения. Всё это можно при старте nginx-а делать или делать единожды при первой потребности, а потом много раз использовать. Если водный знак может меняться, то повесить вотчер на изменения файла и по событию перечитывать его. Зачем-то (подозреваю, что это нужно, чтобы иметь изображение нужного формата/цветности) делается аж три копирования изображений, что наверняка сильно грузит процессор, если картинка 10 метров, например. По мелочи: нельзя конфигурировать отступы от края изображения, задавая их в пикселях или процентах ширины исходного изображения. Может кому-то будет полезно влепить водный знак по центру, кстати. И бывает полезно замостить водным знаком всё изображение: http://i38.beon.ru/56/31/2483156/paid-avatars/95391b8e2d23c38f93a5559c9a6a22c3.gif Вопросы: как работает, если изображение с водным знаком больше исходного изображения. Или исходное изображение меньше, чем 10х10? И что с анимированными гифами? -- С уважением, Михаил mailto:postmaster at softsearch.ru From nginx-forum at nginx.us Wed Feb 6 22:09:22 2013 From: nginx-forum at nginx.us (kosgtx) Date: Wed, 06 Feb 2013 17:09:22 -0500 Subject: =?UTF-8?Q?Re=3A_Nginx_=D0=B8_=2Ehtpasswd?= In-Reply-To: References: Message-ID: <9ba1bbe5137550af58622ad6e1e9960d.NginxMailingListRussian@forum.nginx.org> Возможно я смогу подтолкнуть Вас на мысль, как мне решить проблему. Дело в том что я совсем недавно работаю с nginx, до этого работал исключительно на апаче, но тут мне нужно решить очень простую задачу, поставить на директорию simpla или любую другую пароль, что апачем в общем-то делается в два клика... И как я не пытаюсь, у меня не выходит. Я крутил уже по разному, перечитал десятки форумов, ответа на вопрос мой не нашел. Хотя как и в большинстве случаев, скорее всего проблема за малым. Я даже использовал готовые конфиги под эту CMS и в результат всегда одинаковый. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235962,235975#msg-235975 From trurl at mcbyte.net Wed Feb 6 23:03:24 2013 From: trurl at mcbyte.net (Trurl McByte) Date: Thu, 7 Feb 2013 01:03:24 +0200 Subject: watermark patch In-Reply-To: <1605008743.20130207004401@softsearch.ru> References: <1605008743.20130207004401@softsearch.ru> Message-ID: 6 февраля 2013 г., 22:44 пользователь Михаил Монашёв < postmaster at softsearch.ru> написал: > Здравствуйте, Trurl. > > Функционал весьма полезный. Я б, например, на картинки, которые > сторонние сайты запрашивают, вставлял бы водные знаки. А сейчас 403 > выдаю. > > Но хоть я не сишник, но подозреваю, что сделано не самым лучшим > образом. При каждом наложении водного знака зачем-то делается заново > открытие файла с водным знаком, чтение его с диска (про aio промолчу) > и создание изображения. Всё это можно при старте nginx-а делать или > Разница не слишком велика, при интенсивной нагрузке он все равно будет в буффере системы жить, а зря занимать память тоже не охота. Да и лень ) > делать единожды при первой потребности, а потом много раз > использовать. Если водный знак может меняться, то повесить вотчер на > изменения файла и по событию перечитывать его. Зачем-то (подозреваю, > что это нужно, чтобы иметь изображение нужного формата/цветности) > делается аж три копирования изображений, что наверняка сильно грузит > процессор, если картинка 10 метров, например. > Увы, это единственный известный мне способ не потерять альфаканал при совмещении. А красивые ватермарки без него не сделать. Да и все равно подразумевается что там стоит expires 40d; минимум и на внешнем кольце все кешируется.. > > По мелочи: нельзя конфигурировать отступы от края изображения, задавая > их в пикселях или процентах ширины исходного изображения. Может > кому-то будет полезно влепить водный знак по центру, кстати. И бывает > полезно замостить водным знаком всё изображение: > http://i38.beon.ru/56/31/2483156/paid-avatars/95391b8e2d23c38f93a5559c9a6a22c3.gif > Угу, а еще на лету генерировать ватермарки из текста, отдаваемого субреквестом; менять exif картинки; подбирать из набора подходящую ватермарку под пропорции картинки; автоматически подбирать место для ватермарки исходя из динамики цвета на картинке (причем как искать однотонные места, так и наоборот, по выбору) Короче я сам могу еще много придумать, вот только времени нет это все реализовывать ;) > > Вопросы: как работает, если изображение с водным знаком больше > исходного изображения. Или исходное изображение меньше, чем 10х10? И > что с анимированными гифами? > калечит, конечно. Я даже проверку на размеры не делал и вообще весь код был написан прямо в diff файле )) > > -- > С уважением, > Михаил 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 nginx-forum at nginx.us Thu Feb 7 01:16:32 2013 From: nginx-forum at nginx.us (kosgtx) Date: Wed, 06 Feb 2013 20:16:32 -0500 Subject: =?UTF-8?Q?Re=3A_Nginx_=D0=B8_=2Ehtpasswd?= In-Reply-To: <9ba1bbe5137550af58622ad6e1e9960d.NginxMailingListRussian@forum.nginx.org> References: <9ba1bbe5137550af58622ad6e1e9960d.NginxMailingListRussian@forum.nginx.org> Message-ID: Таки да, мне нужно запретить выполнение скриптов и любой доступ к папке и подпадкам без введенного пароля и логина... Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235962,235977#msg-235977 From nginx-forum at nginx.us Thu Feb 7 01:55:35 2013 From: nginx-forum at nginx.us (kosgtx) Date: Wed, 06 Feb 2013 20:55:35 -0500 Subject: =?UTF-8?Q?Re=3A_Nginx_=D0=B8_=2Ehtpasswd?= In-Reply-To: <5146067e96cdf28e570927a1a25403ba.NginxMailingListRussian@forum.nginx.org> References: <5146067e96cdf28e570927a1a25403ba.NginxMailingListRussian@forum.nginx.org> Message-ID: <17646f511abb359f22cefb569e362125.NginxMailingListRussian@forum.nginx.org> Проблема решена - налажал с адресом и после с портом fastcgi_pass Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235962,235978#msg-235978 From nginx-forum at nginx.us Thu Feb 7 06:47:30 2013 From: nginx-forum at nginx.us (gintonic) Date: Thu, 07 Feb 2013 01:47:30 -0500 Subject: =?UTF-8?B?0JrQsNC6INGA0LDQsdC+0YLQsNC10YIg0YHQstGP0LfQutCwIGlwIGhhc2gg0Lgg?= =?UTF-8?B?d2VpZ2h0ID8=?= Message-ID: <17626554fac7aa3bc0b467d99294f2cf.NginxMailingListRussian@forum.nginx.org> Всем привет. Объясните пожалуйста как работает данная связка. Версия nginx 1.2.6 Сейчас в логе есть такие записи: 2013/02/07 07:06:19 [error] 32106#0: *6369192 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 195.72.228.242, server: *.ru, request: "GET /App_Shared/Handlers/Grid.ashx HTTP/1.1", upstream: "http://192.168.1.41:80/App_Shared/Handlers/Grid.ashx", host: "www.site.ru", referrer: "http://www.site.ru/home/home.aspx" 2013/02/07 07:08:19 [error] 32106#0: *6369192 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 195.72.228.242, server: *.ru, request: "GET /App_Shared/Handlers/Grid.ashx HTTP/1.1", upstream: "http://192.168.1.51:80/App_Shared/Handlers/Grid.ashx", host: "www.site.ru", referrer: "http://www.site.ru/home/home.aspx" --------------- Только, пожалуйста, не надо обращать внимание на таймауты бэкенда и то что это aspx! Вопрос не в этом. Почему запросы с одного IP попадают в разные бэкенды? Конфиг такой: upstream backend_web_servers { ip_hash; server 192.168.1.41:80 weight=4 max_fails=3 fail_timeout=30s; server 192.168.1.51:80 weight=6 max_fails=3 fail_timeout=30s; } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235980,235980#msg-235980 From ru at nginx.com Thu Feb 7 08:40:38 2013 From: ru at nginx.com (Ruslan Ermilov) Date: Thu, 7 Feb 2013 12:40:38 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRgNCw0LHQvtGC0LDQtdGCINGB0LLRj9C30LrQsCBpcCBoYXNo?= =?UTF-8?B?INC4IHdlaWdodCA/?= In-Reply-To: <17626554fac7aa3bc0b467d99294f2cf.NginxMailingListRussian@forum.nginx.org> References: <17626554fac7aa3bc0b467d99294f2cf.NginxMailingListRussian@forum.nginx.org> Message-ID: <20130207084038.GD1750@lo0.su> On Thu, Feb 07, 2013 at 01:47:30AM -0500, gintonic wrote: > Всем привет. > Объясните пожалуйста как работает данная связка. Версия nginx 1.2.6 > Сейчас в логе есть такие записи: > 2013/02/07 07:06:19 [error] 32106#0: *6369192 upstream timed out (110: > Connection timed out) while reading response header from upstream, client: > 195.72.228.242, server: *.ru, request: "GET /App_Shared/Handlers/Grid.ashx > HTTP/1.1", upstream: "http://192.168.1.41:80/App_Shared/Handlers/Grid.ashx", > host: "www.site.ru", referrer: "http://www.site.ru/home/home.aspx" > 2013/02/07 07:08:19 [error] 32106#0: *6369192 upstream timed out (110: > Connection timed out) while reading response header from upstream, client: > 195.72.228.242, server: *.ru, request: "GET /App_Shared/Handlers/Grid.ashx > HTTP/1.1", upstream: "http://192.168.1.51:80/App_Shared/Handlers/Grid.ashx", > host: "www.site.ru", referrer: "http://www.site.ru/home/home.aspx" > --------------- > Только, пожалуйста, не надо обращать внимание на таймауты бэкенда и то что > это aspx! Вопрос не в этом. > Почему запросы с одного IP попадают в разные бэкенды? Видимо потому что попытка попасть на бэкенд по значению хэша была неудачной, и не отключено переключение на следующий сервер? http://nginx.org/r/proxy_next_upstream/ru Если переключение нежелательно, есть вариант его отключить директивой "proxy_next_upstream off". Встречный вопрос: а при чём тут веса? > Конфиг такой: > upstream backend_web_servers { > ip_hash; > server 192.168.1.41:80 weight=4 max_fails=3 fail_timeout=30s; > server 192.168.1.51:80 weight=6 max_fails=3 fail_timeout=30s; > } > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235980,235980#msg-235980 From mdounin at mdounin.ru Thu Feb 7 10:58:46 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Thu, 7 Feb 2013 14:58:46 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRgNCw0LHQvtGC0LDQtdGCINGB0LLRj9C30LrQsCBpcCBoYXNo?= =?UTF-8?B?INC4IHdlaWdodCA/?= In-Reply-To: <17626554fac7aa3bc0b467d99294f2cf.NginxMailingListRussian@forum.nginx.org> References: <17626554fac7aa3bc0b467d99294f2cf.NginxMailingListRussian@forum.nginx.org> Message-ID: <20130207105846.GC66348@mdounin.ru> Hello! On Thu, Feb 07, 2013 at 01:47:30AM -0500, gintonic wrote: > Всем привет. > Объясните пожалуйста как работает данная связка. Версия nginx 1.2.6 > Сейчас в логе есть такие записи: > 2013/02/07 07:06:19 [error] 32106#0: *6369192 upstream timed out (110: > Connection timed out) while reading response header from upstream, client: > 195.72.228.242, server: *.ru, request: "GET /App_Shared/Handlers/Grid.ashx > HTTP/1.1", upstream: "http://192.168.1.41:80/App_Shared/Handlers/Grid.ashx", > host: "www.site.ru", referrer: "http://www.site.ru/home/home.aspx" > 2013/02/07 07:08:19 [error] 32106#0: *6369192 upstream timed out (110: > Connection timed out) while reading response header from upstream, client: > 195.72.228.242, server: *.ru, request: "GET /App_Shared/Handlers/Grid.ashx > HTTP/1.1", upstream: "http://192.168.1.51:80/App_Shared/Handlers/Grid.ashx", > host: "www.site.ru", referrer: "http://www.site.ru/home/home.aspx" > --------------- > Только, пожалуйста, не надо обращать внимание на таймауты бэкенда и то что > это aspx! Вопрос не в этом. > Почему запросы с одного IP попадают в разные бэкенды? > Конфиг такой: > upstream backend_web_servers { > ip_hash; > server 192.168.1.41:80 weight=4 max_fails=3 fail_timeout=30s; > server 192.168.1.51:80 weight=6 max_fails=3 fail_timeout=30s; > } Если бекенд не отвечает на запрос (как в данном случае) - запрос отправляется (или не отправляется) на другой бекенд в соответствии с proxy_next_upstream. http://nginx.org/r/proxy_next_upstream/ru Если бекенд уже мёртв в соответствии с max_fails/fail_timeout - запрос сразу отправляется на какой-то другой бекенд. http://nginx.org/r/ip_hash/ru -- Maxim Dounin http://nginx.com/support.html From nginx-forum at nginx.us Thu Feb 7 11:17:48 2013 From: nginx-forum at nginx.us (dimn) Date: Thu, 07 Feb 2013 06:17:48 -0500 Subject: =?UTF-8?B?UmU6INCe0YfQuNGB0YLQutCwINC60LXRiNCwIG5naW54?= In-Reply-To: <91a41c0dff7c837037d649803de6b9e7.NginxMailingListRussian@forum.nginx.org> References: <91a41c0dff7c837037d649803de6b9e7.NginxMailingListRussian@forum.nginx.org> Message-ID: <5014d35571d1fedc5319e84d1bda628b.NginxMailingListRussian@forum.nginx.org> а как вообще устроено кеширование в крупных порталах? Например есть какие то объявления /board/1.html /board/2.html /board/3.html. Наверно лучше будет, если удалять кеш тогда, когда его редактировали(с большим inactive), например, /board/1.html, то удалять только его, а остальные оставить. Или страницы компании на портале, профиль компании редактируется очень редко. Тут можно кешировать на долгий срок. И хотелось бы при редактирование этот кеш удалить. Как в этом случае найти папку и кеш страниц /board/1.html для удаления? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235939,235984#msg-235984 From nginx-forum at nginx.us Thu Feb 7 11:52:45 2013 From: nginx-forum at nginx.us (gintonic) Date: Thu, 07 Feb 2013 06:52:45 -0500 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRgNCw0LHQvtGC0LDQtdGCINGB0LLRj9C30LrQsCBpcCBoYXNo?= =?UTF-8?B?INC4IHdlaWdodCA/?= In-Reply-To: <20130207105846.GC66348@mdounin.ru> References: <20130207105846.GC66348@mdounin.ru> Message-ID: <85c7f6b59ca2ddf660ecac0d4691369e.NginxMailingListRussian@forum.nginx.org> Спасибо!!! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235983,235986#msg-235986 From nginx-forum at nginx.us Thu Feb 7 11:55:03 2013 From: nginx-forum at nginx.us (gintonic) Date: Thu, 07 Feb 2013 06:55:03 -0500 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRgNCw0LHQvtGC0LDQtdGCINGB0LLRj9C30LrQsCBpcCBoYXNo?= =?UTF-8?B?INC4IHdlaWdodCA/?= In-Reply-To: <20130207084038.GD1750@lo0.su> References: <20130207084038.GD1750@lo0.su> Message-ID: <4490dc0bc81d0f34eea7f81568d99554.NginxMailingListRussian@forum.nginx.org> Чтобы 2й бэкенд был загружен больше первого. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235981,235987#msg-235987 From vovansystems at gmail.com Thu Feb 7 12:28:06 2013 From: vovansystems at gmail.com (VovansystemS) Date: Thu, 7 Feb 2013 15:28:06 +0300 Subject: =?UTF-8?B?UmU6INCe0YfQuNGB0YLQutCwINC60LXRiNCwIG5naW54?= In-Reply-To: <5014d35571d1fedc5319e84d1bda628b.NginxMailingListRussian@forum.nginx.org> References: <91a41c0dff7c837037d649803de6b9e7.NginxMailingListRussian@forum.nginx.org> <5014d35571d1fedc5319e84d1bda628b.NginxMailingListRussian@forum.nginx.org> Message-ID: у меня на крупных порталах программисты часто используют nosql кеширование radius и memcached на уровне приложения, чтобы кешировать не всю страницу целиком, а какие-либо данные/части страницы, что позволяет разгузить хосты с пхп и майскл. целиком же кешировать страницу на нормальных сайтах на продолжительный промежуток времени (больше минуты) никто не разрешает. поэтому, если переписывать уровень приложения нет возможности, я обычно кеширую страницы такого домена на 1 минуту, что позволяет существенно снизить нагрузку при т.н. хабра-эффекте. если сайт на wordpress, то можно использовать плагин http://wordpress.org/extend/plugins/nginx-helper/ - он удаляет страницы из кеша после их изменения при соотвествующей конфигурации, обращаясь на специальный локейшн. пример: location ~ \.php$ { ... fastcgi_cache_key "$scheme|$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri"; ... } location ~ /purge(/.*) { log_not_found off; set $uri_orig $1; # энкодим кирилличное выделение fastcgi_cache_purge CACHE "$scheme|$request_method|$http_if_modified_since|$http_if_none_match|$host|$uri_orig$is_args$args"; } Т.е. кеш удаляется по ключу. по которому он был создан. Похожим образом Вы можете организовать своевременное обновление кеша у себя. На самом же деле, у себя я ограничиваю только размер кеша (а он находится на рамдиске), а inactive выставляю в 24h. Таким образом кеш со временем вырастает до своего max_size, а потом cache manager начинает сам оттуда удалять самые старые записи. Время кеширования выставляю в 1m. Если вдруг отвалится бекэнд, то самые просматриваемые страницы сайта будут по-прежнему загружаться, т.к. настроен proxy_cache_use_stale. Минус данного способа в том, что кеш занимает постоянно весь выделенный под него объём, а также в том, что необходимо правильно подобрать экспериментально размер этого самого кеша, учитывая сколько разных страниц одновременно открывают пользователи.. Но в любом случае, для большого сайта, есть смысл управлять кешем на уровне приложения - это просто, удобно и эффективно. From postmaster at softsearch.ru Thu Feb 7 18:11:05 2013 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Thu, 7 Feb 2013 22:11:05 +0400 Subject: =?UTF-8?B?UmVbMl06INCe0YfQuNGB0YLQutCwINC60LXRiNCwIG5naW54?= In-Reply-To: <5014d35571d1fedc5319e84d1bda628b.NginxMailingListRussian@forum.nginx.org> References: <91a41c0dff7c837037d649803de6b9e7.NginxMailingListRussian@forum.nginx.org> <5014d35571d1fedc5319e84d1bda628b.NginxMailingListRussian@forum.nginx.org> Message-ID: <1771784228.20130207221105@softsearch.ru> Здравствуйте, dimn. > а как вообще устроено кеширование в крупных порталах? Так, как этого требует конкретная задача. > Например есть какие то объявления > /board/1.html > /board/2.html > /board/3.html. > Наверно лучше будет, если удалять кеш тогда, когда его редактировали > (с большим inactive), например, /board/1.html, то удалять только > его, а остальные оставить. Можно собирать страничку через ssi, а в урл изменяемой части добавлять т.н. "поколение". Тогда вместо удаления из кэша достаточно увеличить на 1 поколение. А страница со старым поколением сама вытеснится их кэша со временем. -- С уважением, Михаил mailto:postmaster at softsearch.ru From postmaster at softsearch.ru Fri Feb 8 03:55:00 2013 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Fri, 8 Feb 2013 07:55:00 +0400 Subject: watermark patch In-Reply-To: References: <1605008743.20130207004401@softsearch.ru> Message-ID: <1084409608.20130208075500@softsearch.ru> Здравствуйте, Trurl. >> Но хоть я не сишник, но подозреваю, что сделано не самым лучшим >> образом. При каждом наложении водного знака зачем-то делается >> заново открытие файла с водным знаком, чтение его с диска (про aio >> промолчу) и создание изображения. Всё это можно при старте nginx-а >> делать или > Разница не слишком велика, при интенсивной нагрузке он все равно > будет в буффере системы жить, а зря занимать память тоже не охота. > Да и лень ) Это сомнительная экономия, которая может привести к тому, что придётся увеличивать количество воркеров, ибо Ваш код работает так, как будто он в Апаче, а не в nginx-е. -- С уважением, Михаил mailto:postmaster at softsearch.ru From danila at shtan.ru Fri Feb 8 06:54:07 2013 From: danila at shtan.ru (Danila Shtan) Date: Fri, 8 Feb 2013 12:54:07 +0600 Subject: =?UTF-8?B?UmU6IHByb3h5X2NhY2hlINC4IHJhbmdlINC30LDQv9GA0L7RgdGL?= In-Reply-To: References: <20130122120635.GC9787@mdounin.ru> Message-ID: Хочу вернуться к вопросу о патче из http://forum.nginx.org/read.php?2,225815,225826#msg-225826 Мы его используем в production, на двух нодах с 150-200 rps на ноду, все едет с proxy_cache (точнее ? с uwsgi_cache). Больше двух недель, полет стабильный, нареканий нет. Собрано вот так: [501 12:53:23]: # nginx -V nginx version: nginx/1.2.6 TLS SNI support enabled configure arguments: --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-pcre-jit --with-debug --with-file-aio --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_realip_module --with-http_secure_link_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_xslt_module --with-ipv6 --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module --add-module=/opt/nginx-1.2.6/debian/modules/nginx-auth-pam --add-module=/opt/nginx-1.2.6/debian/modules/nginx-echo --add-module=/opt/nginx-1.2.6/debian/modules/nginx-upstream-fair --add-module=/opt/nginx-1.2.6/debian/modules/nginx-dav-ext-module --add-module=/opt/nginx-1.2.6/debian/modules/nginx-syslog --add-module=/opt/nginx-1.2.6/debian/modules/nginx-cache-purge --add-module=/opt/nginx-1.2.6/debian/modules/nginx-pinba --add-module=/opt/nginx-1.2.6/debian/modules/nginx-http-substitution-filter --add-module=/root/nginx-pkg/mod_zip-1.1.6 --add-module=/root/nginx-pkg/nginx-statsd --with-http_image_filter_module Д. 2013/1/22 Danila Shtan > Приветствую. > > > 2013/1/22 Maxim Dounin > >> Hello! >> >> On Tue, Jan 22, 2013 at 02:38:53AM +0600, Danila Shtan wrote: >> >> > Приветствую. >> > >> > 1) Для proxy_cache и range есть небольшой патч от Maxim Dounin ( >> > http://forum.nginx.org/read.php?2,225815,225826#msg-225826) который >> > насколько я понимаю не внесен в основную ветку разработки (из-за проблем >> > при max_ranges >1), но в случае применения его решает проблему получения >> > 200 OK при первом запросе к бэкенду и заполнении кэша. Может быть имеет >> > смысл включить такое поведение по умолчанию при max_ranges 1;? Многие >> > современные браузеры в части воспроизведения HTML5 видео сурово >> завязаны на >> > 206 и правильный Range в ответ на свои запросы, мне кажется, что было бы >> > неплохо учесть существующие реалии. >> >> Может быть. >> >> Опыт использования патча в production имеется? Если да - хотелось >> бы услышать отзывы. >> > > По вышепомянутой ссылке человек, кажется, доволен. > Мы свою сборку с патчем и 3rd-party модулями выкатываем завтра ? через > неделю буду готов поделиться впечатлениями. > > >> > 2) nginx ни за что не отдаст 206 ответ при запросе c Range к >> > закэшированному файлу, если в оригинальном ответе бэкенда не было >> заголовка >> > Accept-Ranges. Поведение мягко говоря не очевидное, стоило мне >> нескольких >> > часов попыток понять, что происходит. RFC говорит, что заголовок >> совершенно >> > опциональный, более того, если nginx уже получил полное тело файла, >> имеет >> > Content-Length ответа и пр. ? еще более непонятно, что мешает ему >> отдавать >> > ожидаемые клиентом 206. >> >> В самом nginx'е допустимость byte-range-запросов однозначно >> приводит к появлению заголовка Accept-Ranges (а отсутствие оной >> поддержки - приводит к его отсутствию), и AFAIK в большинстве >> других серверов так же. Такое поведение - позволяет максимально >> полно дублировать поведение исходного сервера, допуская range'и >> только там, где бекенд их поддерживает. >> > > Там где бэкенд их не поддерживает ему, вероятно, стоит сказать > Accept-Ranges: none > Проблема в том, что эта особенность сервера не описана вообще нигде. :) > > Наверное, теперь, когда есть директива max_ranges, и не желающие >> поддержки range'ей могут от неё отказаться явно, это поведение >> стоит пересмотреть. >> > > По-моему это хорошая идея. > > Д. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mdounin at mdounin.ru Fri Feb 8 10:29:54 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 8 Feb 2013 14:29:54 +0400 Subject: =?UTF-8?B?UmU6IHByb3h5X2NhY2hlINC4IHJhbmdlINC30LDQv9GA0L7RgdGL?= In-Reply-To: References: <20130122120635.GC9787@mdounin.ru> Message-ID: <20130208102953.GP66348@mdounin.ru> Hello! On Fri, Feb 08, 2013 at 12:54:07PM +0600, Danila Shtan wrote: > Хочу вернуться к вопросу о патче из > http://forum.nginx.org/read.php?2,225815,225826#msg-225826 > Мы его используем в production, на двух нодах с 150-200 rps на ноду, все > едет с proxy_cache (точнее ? с uwsgi_cache). > Больше двух недель, полет стабильный, нареканий нет. Спасибо, надо будет на это место ещё разок посмотреть внимательно. [...] > --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl Just FYI: это глупость, и её надо просто убрать из аргументов ./configure. -- Maxim Dounin http://nginx.com/support.html From gmm at csdoc.com Fri Feb 8 10:55:46 2013 From: gmm at csdoc.com (Gena Makhomed) Date: Fri, 08 Feb 2013 12:55:46 +0200 Subject: =?UTF-8?B?UmU6IHByb3h5X2NhY2hlINC4IHJhbmdlINC30LDQv9GA0L7RgdGL?= In-Reply-To: <20130208102953.GP66348@mdounin.ru> References: <20130122120635.GC9787@mdounin.ru> <20130208102953.GP66348@mdounin.ru> Message-ID: <5114D9B2.2020703@csdoc.com> On 08.02.2013 12:29, Maxim Dounin wrote: >> --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl > Just FYI: это глупость, и её надо просто убрать из аргументов > ./configure. скрипт ./configure мог бы сам выдавать warning/error когда ему подсовывают каталоги с заголовочными файлами? -- Best regards, Gena From danila at shtan.ru Fri Feb 8 11:14:28 2013 From: danila at shtan.ru (Danila Shtan) Date: Fri, 8 Feb 2013 17:14:28 +0600 Subject: =?UTF-8?B?UmU6IHByb3h5X2NhY2hlINC4IHJhbmdlINC30LDQv9GA0L7RgdGL?= In-Reply-To: <20130208102953.GP66348@mdounin.ru> References: <20130122120635.GC9787@mdounin.ru> <20130208102953.GP66348@mdounin.ru> Message-ID: Приветствую. 2013/2/8 Maxim Dounin > Hello! > > On Fri, Feb 08, 2013 at 12:54:07PM +0600, Danila Shtan wrote: > > > Хочу вернуться к вопросу о патче из > > http://forum.nginx.org/read.php?2,225815,225826#msg-225826 > > Мы его используем в production, на двух нодах с 150-200 rps на ноду, все > > едет с proxy_cache (точнее ? с uwsgi_cache). > > Больше двух недель, полет стабильный, нареканий нет. > > Спасибо, надо будет на это место ещё разок посмотреть внимательно. > > [...] > > > --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl > > Just FYI: это глупость, и её надо просто убрать из аргументов > ./configure. Мы собираем пакет на базе того, что делают чуваки из dotdeb.org Видимо надо им рассказать, спасибо за информацию. Д. -------------- next part -------------- An HTML attachment was scrubbed... URL: From umask at yandex.ru Fri Feb 8 11:33:39 2013 From: umask at yandex.ru (umask) Date: Fri, 08 Feb 2013 15:33:39 +0400 Subject: =?UTF-8?B?0LzQsNC/0LjQvdCzINCx0L7Qu9GM0YjQvtCz0L4g0LrQvtC7LdCy0LAgVVJM?= Message-ID: <632641360323219@web4g.yandex.ru> Добрый день, есть 200-300к URL, запросы на которые нужно перенаправить на соответствующие им новые URL. Для каждого URL из первого множества, есть соответствующий URL в множестве, куда отображаем. Можно ли это как-то просто сделать и насколько это может нагрузить nginx? Я понимаю, что есть способ нагенерить rewrite'ов с location'ами, но может быть есть более элегантное решение? Спасибо. From citrin at citrin.ru Fri Feb 8 11:51:17 2013 From: citrin at citrin.ru (Anton Yuzhaninov) Date: Fri, 08 Feb 2013 15:51:17 +0400 Subject: =?UTF-8?B?UmU6INC80LDQv9C40L3QsyDQsdC+0LvRjNGI0L7Qs9C+INC60L7Quy3QstCwIFVS?= =?UTF-8?B?TA==?= In-Reply-To: <632641360323219@web4g.yandex.ru> References: <632641360323219@web4g.yandex.ru> Message-ID: <5114E6B5.7010405@citrin.ru> On 02/08/13 15:33, umask wrote: > есть 200-300к URL, запросы на которые нужно перенаправить на соответствующие им новые URL. > > Для каждого URL из первого множества, есть соответствующий URL в множестве, куда отображаем. > > Можно ли это как-то просто сделать и насколько это может нагрузить nginx? > > Я понимаю, что есть способ нагенерить rewrite'ов с location'ами, но может быть есть более элегантное решение? Насколько знаю location-ы (без regexp-ов), хранятся в дереве, так что их может быть много и это не сильно нагрузит nginx. Так что сгенеренного конфига такого вида, должно быть достаточно: location = /old-url1 { rewrite . /new-url1; } location = /old-url2 { rewrite . /new-url2; } -- Anton Yuzhaninov From trurl at mcbyte.net Fri Feb 8 11:58:09 2013 From: trurl at mcbyte.net (Trurl McByte) Date: Fri, 8 Feb 2013 13:58:09 +0200 Subject: watermark patch In-Reply-To: <1084409608.20130208075500@softsearch.ru> References: <1605008743.20130207004401@softsearch.ru> <1084409608.20130208075500@softsearch.ru> Message-ID: На фоне остальных операций в том же ватермарке (включая открытие основного файла) это +5% Так что логичнее вообще пореже этим пользоваться и кешировать наглухо. 8 февраля 2013 г., 5:55 пользователь Михаил Монашёв < postmaster at softsearch.ru> написал: > Здравствуйте, Trurl. > > >> Но хоть я не сишник, но подозреваю, что сделано не самым лучшим > >> образом. При каждом наложении водного знака зачем-то делается > >> заново открытие файла с водным знаком, чтение его с диска (про aio > >> промолчу) и создание изображения. Всё это можно при старте nginx-а > >> делать или > > > Разница не слишком велика, при интенсивной нагрузке он все равно > > будет в буффере системы жить, а зря занимать память тоже не охота. > > Да и лень ) > > Это сомнительная экономия, которая может привести к тому, что придётся > увеличивать количество воркеров, ибо Ваш код работает так, как будто > он в Апаче, а не в nginx-е. > > -- > С уважением, > Михаил 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 nginx-forum at nginx.us Fri Feb 8 12:11:20 2013 From: nginx-forum at nginx.us (slpls) Date: Fri, 08 Feb 2013 07:11:20 -0500 Subject: =?UTF-8?B?UmU6INCe0YfQuNGB0YLQutCwINC60LXRiNCwIG5naW54?= In-Reply-To: <5014d35571d1fedc5319e84d1bda628b.NginxMailingListRussian@forum.nginx.org> References: <91a41c0dff7c837037d649803de6b9e7.NginxMailingListRussian@forum.nginx.org> <5014d35571d1fedc5319e84d1bda628b.NginxMailingListRussian@forum.nginx.org> Message-ID: <89f96a50e3a9608337d17d12b68bdc5b.NginxMailingListRussian@forum.nginx.org> > Или страницы компании на портале, профиль компании редактируется очень > редко. Тут можно кешировать на долгий срок. И хотелось бы при > редактирование этот кеш удалить. можно добавить следующие директивы: proxy_cache_bypass $http_drop $http_mis; proxy_no_cache $http_mis; тогда послав в запросе заголовок "drop:true" вы прогреете кеш новыми значениями с бекенда послав "miss:true" вы просто сходите на бекенд, посмотрите реальный ответ, но в кеш его не занесете имена drop и mis замените на что-нибудь. также интерсные директивы proxy_cache_lock on; proxy_cache_use_stale updating error; первая пустит только один запрос на бекенд, остальные будут ждать таймаута (по умолчанию 5 сек) и потом лезть на сервер, или же если данные в кеше обновятся раньше, чем пройдет таймаут - то отдадутся данные из кеша. вторая - отдаст данные из экспайренного кеша если происходит обновление кеша или, скажем, бекенд не отвечает. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235939,236014#msg-236014 From trurl at mcbyte.net Fri Feb 8 12:18:29 2013 From: trurl at mcbyte.net (Trurl McByte) Date: Fri, 8 Feb 2013 14:18:29 +0200 Subject: =?UTF-8?B?UmU6IFJlWzJdOiDQntGH0LjRgdGC0LrQsCDQutC10YjQsCBuZ2lueA==?= In-Reply-To: <1771784228.20130207221105@softsearch.ru> References: <91a41c0dff7c837037d649803de6b9e7.NginxMailingListRussian@forum.nginx.org> <5014d35571d1fedc5319e84d1bda628b.NginxMailingListRussian@forum.nginx.org> <1771784228.20130207221105@softsearch.ru> Message-ID: На своей практике выяснил что оптимальное время кеширования популярных страниц - от 2х до 5ти минут. Меньше 2х - не выгодно (за некоторыми редкими исключениями). Очень оптимально догружать части (особенно часто обновляющиеся блоки) страниц уже на клиенте, яваскриптом (для крупного портала это вполне приемлемо). При этом еще и канал экономится в перспективе. Про 2 минуты - это _обычно_ минимальное время кеширования на провайдерских проксях (и не надо говорить что ими мало пользуются - разве что портал чисто для айтишников). Использовать ли их для уменьшения трафика и нагрузки - ваше дело. Из-за этих же проксей (а так же всяких ускорителей типа Opera-Turbo) свой кеш чистить вообще смысла мало. Лучше таки использовать "поколение" или "версию" или еще что-то в этом духе. Например - использование epochtime, округленного до сотен секунд - аналог expires 100s; (хотя это уже для извращенцев, но мало ли). У меня вообще код коммита git используется в некоторых местах )) 7 февраля 2013 г., 20:11 пользователь Михаил Монашёв < postmaster at softsearch.ru> написал: > Здравствуйте, dimn. > > > а как вообще устроено кеширование в крупных порталах? > > Так, как этого требует конкретная задача. > > > Например есть какие то объявления > > /board/1.html > > /board/2.html > > /board/3.html. > > > Наверно лучше будет, если удалять кеш тогда, когда его редактировали > > (с большим inactive), например, /board/1.html, то удалять только > > его, а остальные оставить. > > Можно собирать страничку через ssi, а в урл изменяемой части добавлять > т.н. "поколение". Тогда вместо удаления из кэша достаточно увеличить > на 1 поколение. А страница со старым поколением сама вытеснится их > кэша со временем. > > -- > С уважением, > Михаил 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 hell-for-yahoo at umail.ru Fri Feb 8 12:52:36 2013 From: hell-for-yahoo at umail.ru (Andrey Repin) Date: Fri, 8 Feb 2013 16:52:36 +0400 Subject: =?UTF-8?B?UmU6INCe0YfQuNGB0YLQutCwINC60LXRiNCwIG5naW54?= In-Reply-To: References: <91a41c0dff7c837037d649803de6b9e7.NginxMailingListRussian@forum.nginx.org> <5014d35571d1fedc5319e84d1bda628b.NginxMailingListRussian@forum.nginx.org> <1771784228.20130207221105@softsearch.ru> Message-ID: <367198067.20130208165236@mtu-net.ru> Здравствуйте, Уважаемый(-ая, -ое) Trurl McByte! TM> На своей практике выяснил что оптимальное время кеширования популярных TM> страниц - от 2х до 5ти минут. Меньше 2х - не выгодно (за некоторыми редкими TM> исключениями). Очень оптимально догружать части (особенно часто TM> обновляющиеся блоки) страниц уже на клиенте, яваскриптом При этом надо чётко себе представлять, что яваскрипт может 1. сбоить 2. быть отключен В таком разе лучше, действительно, SSI использовать, кешируя отдельные блоки, а не страницу в целом. TM> (для крупного TM> портала это вполне приемлемо). При этом еще и канал экономится в TM> перспективе. Про 2 минуты - это _обычно_ минимальное время кеширования на TM> провайдерских проксях (и не надо говорить что ими мало пользуются - разве TM> что портал чисто для айтишников). Использовать ли их для уменьшения трафика TM> и нагрузки - ваше дело. Из-за этих же проксей (а так же всяких ускорителей TM> типа Opera-Turbo) свой кеш чистить вообще смысла мало. Лучше таки TM> использовать "поколение" или "версию" или еще что-то в этом духе. Например TM> - использование epochtime, округленного до сотен секунд - аналог expires TM> 100s; (хотя это уже для извращенцев, но мало ли). TM> У меня вообще код коммита git используется в некоторых местах )) -- С уважением Andrey Repin (hell-for-yahoo at umail.ru) пятница, 08.02.2013, <16:50> From trurl at mcbyte.net Fri Feb 8 13:44:01 2013 From: trurl at mcbyte.net (Trurl McByte) Date: Fri, 8 Feb 2013 15:44:01 +0200 Subject: =?UTF-8?B?UmU6INCe0YfQuNGB0YLQutCwINC60LXRiNCwIG5naW54?= In-Reply-To: <367198067.20130208165236@mtu-net.ru> References: <91a41c0dff7c837037d649803de6b9e7.NginxMailingListRussian@forum.nginx.org> <5014d35571d1fedc5319e84d1bda628b.NginxMailingListRussian@forum.nginx.org> <1771784228.20130207221105@softsearch.ru> <367198067.20130208165236@mtu-net.ru> Message-ID: 8 февраля 2013 г., 14:52 пользователь Andrey Repin написал: > При этом надо чётко себе представлять, что яваскрипт может > 1. сбоить > Ну в таком случае и html может сбоить. Вероятность даже выше, чем у закешированного js > 2. быть отключен > Я не зря упомянул "крупные порталы", на них включат, никуда не денутся. > > В таком разе лучше, действительно, SSI использовать, кешируя отдельные > блоки, > а не страницу в целом. > Разница в эффективности уж слишком велика, особенно когда трафик считается на сотни мегабит и выше. -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum at nginx.us Fri Feb 8 16:56:59 2013 From: nginx-forum at nginx.us (billgx) Date: Fri, 08 Feb 2013 11:56:59 -0500 Subject: =?UTF-8?B?0KPRgdGC0LDQvdC+0LLQutCwIENvbnRlbnQtUmFuZ2Ug0LIg0LfQsNCy0LjRgdC4?= =?UTF-8?B?0LzQvtGB0YLQuCDQvtGCIFJhbmdlICjRgSDQv9C+0LTQtNC10LvQsNC90L0=?= =?UTF-8?B?0YvQvCBDb250ZW50LUxlbmd0aCk=?= Message-ID: <7a377b94ab08b1fecc03866d72510f36.NginxMailingListRussian@forum.nginx.org> Суть проблемы: Для воспроизведения браузером google chrome из тега