Re: proxy_pass uri
Today May 19, 2017 at 11:20 Vasil Mikhalenya wrote: > не похоже, что этот момент разрешает противоречие, т.к. следующая > конструкция, состоящая не только из переменных, работает > > proxy_pass $o_upstream/pp$uri; > > подскажите, какой вариант является правильным? Тут "полностью" - это полностью сформированный передаваемый URI - без расчета на замену префикса и подстановку окончания. В случае $o_upstream/pp/ - это просто /pp/ для любого запроса пользователя. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: reverse proxy + mysql + video
Today Apr 5, 2016 at 15:11 Daniel Podolsky wrote: > > Я понимаю в чем "подвох" вопроса - ФС тоже можно считать БД. > ну только если с большой натяжкой. Отчего же? Данные есть? Их структурировано сохранять и получать можно? Индексы директорий, у некоторых даже журнал, контрольные суммы, транзакции-снэпшоты. Сам себя перемудрил? > разница есть, она существенна, но, похоже, никто не дает себе труда > задуматься - в чем она :( Я уже писал в чем разница для отдачи больших blob-ов. > > А непрерывной отдачи - усугубляться. > с чего бы? Random read -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: reverse proxy + mysql + video
Today Apr 5, 2016 at 12:20 Daniel Podolsky wrote: > > Вы так и не рассказали топикстартеру почему это всё не нужно и как он > > может "дать возможность перемотки видео в плеере" прямо из базы. > с одной стороны - топикстартер меня не просил ни о чем. и проблемы его > мне не интересны, а интересно мне повоспитывать увольнятелей. > > с другой - я правильно понял, что ответа на вопрос "в чем разница" вы > не знаете? печально... Я понимаю в чем "подвох" вопроса - ФС тоже можно считать БД. > с третьей - не надо хранить видео одним куском, надо хранить его > чанками, и проблема перемотки будет решаться тривиальным запросом. А непрерывной отдачи - усугубляться. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: reverse proxy + mysql + video
Today Apr 5, 2016 at 09:39 Daniel Podolsky wrote: > > Возможностью делать вышеперечисленное. > Ну, конечно... > > совсем не все файловые системы имеют "возможность делать > вышеперечисленное". NFS, к примеру. или SquashFS... Вы так и не рассказали топикстартеру почему это всё не нужно и как он может "дать возможность перемотки видео в плеере" прямо из базы. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: reverse proxy + mysql + video
Today Apr 5, 2016 at 02:50 Daniel Podolsky wrote: > > И для отдачи небольшого byte range от большого blob-а? > большая блоба не нужна Расскажите это топикстартеру. > > Даже сразу клиенту по HTTP используя sendfile? > sendfile не нужен Расскажите это топикстартеру. > > И любое другое ПО к такому blob-у самостоятельно на раз-два произвольный > > доступ получит? > произвольный доступ не нужен Расскажите это топикстартеру. > Еще раз - чем отличаются ФС и БД? Возможностью делать вышеперечисленное. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: reverse proxy + mysql + video
Today Apr 5, 2016 at 01:58 Daniel Podolsky wrote: > > Тем, что она находится на файловой системе, тем самым добавляет оверхед? > безграмотный ответ номер раз, извините > > 1. совсем не все базы находятся на файловых системах > 2. никакого значительного оверхеда нахождение на фс не добавляет ни > для каких операций. а мы про различия, все же. И для отдачи небольшого byte range от большого blob-а? Даже сразу клиенту по HTTP используя sendfile? И любое другое ПО к такому blob-у самостоятельно на раз-два произвольный доступ получит? -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: reverse proxy + mysql + video
Today Apr 2, 2016 at 11:58 tepkuh wrote: > Насчет технических ваших PS'ов: > >P.S. как вы думаете, почему файловые системы называются файловыми? А ещё, > как вы думаете, зачем они используют кеш в >оперативной памяти для часто > используемых файлов? > > В базах данных также используется кэш в памяти для часто используемых > запросов. И более того в БД это гибче настраивается чем на файловых > системах. Если вы беспокоитесь насчет скорости отдачи файла из БД или из > файловой системы, но спешу вам сообщить, что скорость отдачи контента между > файловой системы и БД почти не отличается (разница составляет миллисекунды и > это объективные данные от группы перфоманс тестирования) и основные затраты > идут на передачу самих данных по сети, а не на поиск самих данных. Если всё так прекрасно, то почему же вы пришли с вопросом о проксировании и кешировании? Тут впору искать плеер, который будет воспроизводить видео прямо из СУБД. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Возможно ли проверять права пользователя перед отдачей фотографий через NGINX?
Today Mar 12, 2016 at 11:08 Alexandr Porunov wrote: > Здравствуйте Владимир, > > Я не говорю что я хочу сделать проверку именно таким образом, я просто > привел один из примеров. Я новичек и не знаю как правильно сделать проверку > прав. Подскажите пожалуйста как лучше это сделать? Выдавать пользователям специальные ссылки: http://nginx.org/r/secure_link/ru Проверять на бекенде каждый запрос: http://nginx.org/r/auth_request/ru -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Хочу написать патч
Today Aug 26, 2015 at 18:45 Alex Domoradov wrote: > В рассылке mpm-itk выкладывали сравнения производительности, падение было > 5-10%, так что 2-3 раза то вы загнули Это на обслуживании только динамики, где львиную долю занимает интерпретатор языка или сайта вцелом с кучей fork-ов на кучу картиночек? Я пробовал использовать его с apache 2.2 лет 7 назад и проседание производительности было существенным. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Хочу написать патч
Today Aug 26, 2015 at 16:43 navern wrote: > В апаче есть mod_itk и там такой проблемы нет. Но там fork работает, > поэтому что-то подобное проще сделать. И производительность с ним в 2-3 раза ниже, а число процессов вдвое выше. Ибо висят они изначально от root, а под каждый запрос делают fork. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Re: Re: Re: Наследование fastcgi param
Today Jun 27, 2015 at 14:16 Amanda Sproule wrote: > >>очистки предыдущей конфигурации, > > очистка не требуется, так как есть и другие локейшены (дочернии директивы). Ещё как требуется и тем больше, чем глубже вложенность. В JunOS, например, цепочки правил можно настраивать на уровне блока протокола, для группы пиров в блоке протокола и отдельного пира в группе. В случае слияния как исключить работу правил предыдущих уровней? Сейчас всё четко - задал для пира свои правила и работают только они. И возьмём упомянутые 400 location. Вы хотите задать десяток proxy_set_header на уровне server и дополнить в некоторых location - тут слияние выглядит привлекательным. Сейчас приходиться копировать все опции в те location. В случае добавления новых - просматривать весь конфиг и добавлять в нескольких местах. Будет слияние - не нужно копировать. А если теперь в некоторых location нужно будет оставить всего несколько опций proxy_set_header и другие с уровня server в них убрать? Они переопределяются пустой строкой, но каждый раз когда на уровне server нужно добавить ещё один заголовок, то опять же придётся смотреть и добавлять переопределения. Уровень сложности поддержки не меньше, но возможность сказать "сделай именно вот так и никак не иначе" отсутствует из-за длинных цепочек слияний. > А как еще на примере двух массивов параметров произвести наследование от > одного массива другим ? - думаю догадались - слиянием (merge). Нет наследования массивов. Есть наследование конфигурации по каждой директиве отдельно. Есть директива - она нам и нужна, нету - берём с предыдущего уровня. Никаких витиеватых выпадов с подвывертом и заворотом. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Re: Re: Наследование fastcgi param
Today Jun 27, 2015 at 02:45 Amanda Sproule wrote: > Мой текущий конфиг щас содержит свыше 400 server locations, и пилить каждый > конфиг по методу копипаста не получится (посчитайте сколько времени уйдёт, > чтобы проанализировать каждый сайт - выявить все возможные локейшены и > прописать их, но по возможности конечно же так и делаю, и лишение этого > "синтаксического сахара" в виде банального наследования (слияния) > конфигурации убивает всесь тот кайф выпиливанием лобзиком конфига). Наследование(inheritence) и слияние(merge) всё же разные механизмы. Наличие слияния требует ещё одной опции - очистки предыдущей конфигурации, а то мало-ли какое месиво выйдет. И даже с ней нашлись бы вопрошающие очистки только с определённых уровней. Без слияния же что задал на нужном уровне - именно то и будет работать. Не задал - получишь default или наследование с предыдущего. Вы с JunOS сталкивались? Там тоже есть блоки в конфигурации и наследование, но не слияние. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: $sent http ... не работает.
Today Jun 10, 2015 at 08:48 warzoni wrote: > Прошу извинить я поспешил с выводом. опишу более подробно. > > У нас есть мобильная версия основного сайта, который использует кеш нгинкса. > Определением мобильников и редиректами туда занимается нгинкс. Необходимо > сделать механизм, с помощью которого можно сообщить нгинксу о том, что > мобильной версии конкретной страницы нету, и редирект совершать не нужно. Если редирект делает nginx правилами rewrite, то работает это до каких-либо запросов к бэкэнду. Если множество таких страниц заранее известно, то нужно учесть эти URI в правилах редиректа. Если же нет, то вывод, думаю, очевиден - делать перенаправление в коде, который отлично знает про версии страниц. Пройти мимо кеша для мобильных клиентов поможет cache_bypass. Если кешируете и редиректы, то аналогичные переменные нужны в no_cache или как часть cache_key. Переменные задавать по условиям для редиректов через map или if+set. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: $sent http ... не работает.
Today Jun 10, 2015 at 08:02 warzoni wrote: > хорошо понимаю, но а как-же управления кешем работает X-Accel-, с php nginx > понимает и управляет кешем , мы так-же хотим передать с странице что-либо и Определение брать-ли ответ из кеша работает до запроса к бэкенду и есть только то, что пришло в запросе от клиента. Сохранение в кеш идёт после получения ответа и тут уже есть заголовки ответа. Специальные заголовки - это специальные заголовки. Не нужно мешать в одну кучу коней и людей. > сказать nginx что это не мобильный сайт и посылать на нормальную версию > сайта, это разве не возможно ? может есть идеи ? буду рад любому совету. Мобильный или нет важно не серверу, а клиенту. Вот пусть код и отдаёт редирект клиенту (код ответа 302). -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Отмена error page
Today Jun 10, 2015 at 07:58 dant4z wrote: > Да, в документации я видел, что могу переопределить ее. Но как мне > переопределить ее, чтобы вернуть поведение по умолчанию? Переопределить я > могу лишь перенаправив запрос или подменив ответ. А как сохранить ответ > бэкенда? есть или такая возможность? Не сохранить ответ, а отключить перехват. Для этого есть proxy_intercept_errors, fastcgi_intercept_errors и т.д. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: $sent http ... не работает.
Today Jun 10, 2015 at 07:39 warzoni wrote: > Спасибо за ответ ! Если можете помогите советом, как увидеть кастомный > заголовок ответа сервера "респонсе хедер" в нгинксе - и передать в > управления if реврайта.. В rewrite - никак - эта фаза работает ДО отправки запроса к backend. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: cache_methods GET HEAD
Today May 27, 2015 at 17:08 Валентин Бартенев wrote: > > > > > header('Cache-Control: max-age=1000'); > > header("X-Method: $_SERVER[REQUEST_METHOD]"); > [..] > > Тут вы просто выводите значение переменной окружения, а как вы ее настроили > такое > там значение и будет. > Если у вас в конфигурации указано: >fastcgi_param REQUEST_METHOD $request_method;> > то будет передаваться значение переменной $request_method, а оно всегда > содержит > оригинальный метод запроса. И именно такое значение в штатном fastcgi_params. > Cтрого говоря в случае протокола FastCGI такого понятия, как запрос "HEAD > методом" > не существует. Протокол FastCGI ничего не знает о HTTP методах запроса. И > ваше > приложение может не разбираться в HTTP методах и все методы обрабатывать > одинаково > и это будет задача сервера отбросить тело в случае HEAD запроса. В примере код делает "echo 'BODY';" без привязки к методу, но тела нет в обоих ответах. Явно есть ошибка, но скорее всего в конфигурации. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: cache_methods GET HEAD
Today May 27, 2015 at 07:54 S.A.N wrote: > В Nginx/1.9.1, с включенным кэшированием, на бекенд отправляется запрос HEAD > методом. > > Вот простой скрипт РНР. > > header('Cache-Control: max-age=1000'); > header("X-Method: $_SERVER[REQUEST_METHOD]"); > > echo 'BODY'; > ?> > > curl -i -X HEAD http://host.dev/ > > HTTP/1.1 200 OK > Server: nginx/1.9.1 > Date: Wed, 27 May 2015 11:36:15 GMT > Content-Type: text/html; charset=UTF-8 > Connection: keep-alive > X-Powered-By: PHP/5.6.9 > Cache-Control: max-age=1000 > X-Method: HEAD > X-Cache-Status: MISS > > > curl -i -X GET http://host.dev/ > > HTTP/1.1 200 OK > Server: nginx/1.9.1 > Date: Wed, 27 May 2015 11:37:14 GMT > Content-Type: text/html; charset=UTF-8 > Transfer-Encoding: chunked > Connection: keep-alive > X-Powered-By: PHP/5.6.9 > Cache-Control: max-age=1000 > X-Method: HEAD > X-Cache-Status: HIT Как он ответил HIT на второй запрос при fastcgi_cache_min_uses 2? А если попробовать убрать fastcgi_keep_conn - вдруг бекенд с ним глючит? -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: PUT & access_by_lua_file
Yesterday Apr 17, 2015 at 11:12 itcod wrote: > Resolving host name "dav.example.com" ... > Connecting ( home.itcod.com => ip: 10.1.1.1, port: 80 ) > Connected (10.1.1.1:80) > <<< PROPFIND / HTTP/1.1 > <<< Host: home.itcod.com > >>> HTTP/1.1 207 Multi-Status > >>> Server: nginx/0.8.54 Заметил древнюю версию и сделал аналогичный запрос, а в теле ответа другая: 401 Authorization Required nginx/1.7.11 У Вас один nginx за другим nginx? Если да, то первый полностью принимает запрос и лишь после этого отправляет его второму, а тот возвращает 405. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: bug: try files не перенаправляет в location @ и генерит 404
Today Jan 11, 2015 at 14:38 Valeriy wrote: > возникшую проблему - я у себя решил, написав два отдельных регулярных > выражения > я всегда думал что одно регулярное выражение лучше двух, поэтому и > использовал if Ещё откройте для себя именованные выделения в регулярных выражениях и поймёте, что set тоже не нужен: location ~* ^/(?[^/]+)/?(?src[^/]*)?/?(?.*) -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Отключить acess_log внутри If
Today Nov 26, 2014 at 22:02 Андрей Василишин wrote: > Всем привет! > Есть ли элегантный способ исключить логирование чтобы зря не засорять > access_log внутри такой конструкции, которая находится на уровне server? > if ($args ~ "^id=[0-9]{10,}&msg=$") { > return 444; > } В 1.7 у access_log появился параметр if. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Два вопроса
Yesterday Nov 25, 2014 at 22:45 Sergey Smitienko wrote: > Здравствуйте, > >> 1. Насколько я понимаю, proxy_сache на скрипт, который возвращает > >> X-Accel-Redirect не поддерживается ? > >> > >> Делайте proxy_pass на скрипт, , который возвращает X-Accel-Redirect. > Стоит proxy_pass и proxy_cache в одном location. proxy_pass отрабатывает > - редирект происходит, но результат в кеш не записывается. Максим уже неоднократно отвечал на этот вопрос. http://mailman.nginx.org/pipermail/nginx/2013-August/040188.html http://mailman.nginx.org/pipermail/nginx/2013-March/037826.html -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: sticky route и ASP.NET SessionId
Today Nov 3, 2014 at 13:10 Andrey Oktyabrskiy wrote: > On 02.11.2014 00:45, iskander wrote: > > Есть два IIS, перед ними балансировщиком стоит Nginx-plus, во всех примерах > > маршрут выбирается по JSESSIONID > > при указании ASP.NET_SessionId вместо JSESSIONID перестает "держать" на > > одном и том-же IIS. > > > > upstream backend { > > ... ... > > sticky learn create=$upstream_cookie_ASP.NET_SessionId > > lookup=$cookie_ASP.NET_SessionId zone=client_sessions:1m; > > } > > > > Как сделать чтоб использовалась кука "ASP.NET_SessionId" не нашел рабочих > > примеров нигде :( > "Эта директива доступна как часть коммерческой подписки" (c) Так человек и написал "стоит Nginx-plus". А значит можно попросить помощи у plus-supp...@nginx.com > Не так удобно, конечно, как "sticky learn ...", но когда нет возможности > купить коммерческую подписку, вполне сойдёт такой костылик. С 1.7.2 есть ещё http://nginx.org/r/hash/ru -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx-ru Digest, Vol 59, Issue 13
Today Sep 21, 2014 at 09:18 Sergey Kagansky wrote: > Как я понимаю, geo может быть использован только в контексте http > В моём случае есть сотни виртуальных хостов у каждого свой список > разрешённых IP и юзер-агентов. И чему это мешает? Более внимательному прочтению документации? "Поскольку переменные вычисляются только в момент использования, само по себе наличие даже большого числа объявлений переменных "geo" не влечёт за собой никаких дополнительных расходов на обработку запросов." С map аналогично. > Есть ли решение для такого случая? Генератор конфига. http://nginx.org/r/perl_set/ru http://nginx.org/r/auth_request/ru http://wiki.nginx.org/HttpLuaModule#access_by_lua > >>> Задавать значение переменной через geo(http://nginx.org/r/geo/ru) и > >>> потом использовать её в map(http://nginx.org/r/map/ru) по > >>> $http_user_agent: > >>> > >>> geo $listips { > >>>default 1; > >>>127.0.0.1 0; > >>>192.168.1.0/24 0; > >>>... > >>> } > >>> > >>> map $http_user_agent $nottrusted { > >>>default $listips; > >>>"~Opera Mini" 0; > >>>... > >>> } > >>> > >>> location /test { > >>>if ($nottrusted) {return 403;} > >>>proxy_pass http://127.0.0.1; > >>> } -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Доступ по User-Agent или ip
Today Sep 12, 2014 at 13:19 Anton Sayetsky wrote: > http://nginx.org/ru/docs/http/ngx_http_core_module.html#satisfy Вредный совет. Нет access модуля для проверки User-Agent. > 12 сентября 2014 г., 13:16 пользователь Sergey Kagansky > написал: > > Добрый день. > > У меня есть такая конфигурация: > > > > location /test { > > include list.ips; > > proxy_pass http://127.0.0.1; > > } > > > > В файле list.ips содержится список разрешённых IPs в конце файла deny all; > > И теперь возникла нужда дать доступ к локейшену еще и по User-Agent в > > дополнение к списку адресов. > > > > Пробовал инклюд в if - не работает > > Пробовал инклюд с переменной - не работает > > Как то это можно реализовать? Задавать значение переменной через geo(http://nginx.org/r/geo/ru) и потом использовать её в map(http://nginx.org/r/map/ru) по $http_user_agent: geo $listips { default 1; 127.0.0.1 0; 192.168.1.0/24 0; ... } map $http_user_agent $nottrusted { default $listips; "~Opera Mini" 0; ... } location /test { if ($nottrusted) {return 403;} proxy_pass http://127.0.0.1; } -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx несколько IP
Today Sep 6, 2014 at 04:38 arriah wrote: > Форум у меня живет на "дополнительном" адресе. а вот если через форум > отправлять письма пользователям, то он соединяется с сервером отправки почты > с "основного" адреса. Это конечно не критично, но все же это можно > как-нибудь настроить? Наверно придется файрволом делать форвард? Подумайте, как системе на уровне сетевого стека понять форум это или нет? Нужен приложению определённый адрес - пусть делает bind(2) на него. Например, в PHP для этого есть socket_bind: http://php.net/manual/en/function.socket-bind.php В Postfix есть smtp_bind_address: http://www.postfix.org/postconf.5.html#smtp_bind_address И всё это к nginx уже отношения не имеет. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx несколько IP
Today Sep 6, 2014 at 01:35 arriah wrote: > Есть сервер с двумя IP с одним сетевым интерфейсом.. IP прописан альясом > nginx слушает на стандартном порту по "дополнительному" IP, а отвечает с > "основного" > Как настроить nginx, чтобы он отвечал с того же IP, на который приходит > запрос? Без дополнительных манипуляций в виде трансляции адресов сервер будет отвечать именно с того адреса, к которому установлено соединение. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: [emerg] duplicate listen options for X.X.X.X:80 in /usr/local/etc/nginx/nginx.conf:9
Today Sep 5, 2014 at 12:19 Илья Шипицин wrote: > если делаю вот так > > server { > listen X.X.X.X:80 accept_filter=httpready; > server_name 1.local; > } > > server { > listen X.X.X.X:80 accept_filter=httpready; > server_name 2.local; > } > > то получаю ошибку. http://nginx.org/r/listen/ru : В директиве listen можно также указать несколько дополнительных параметров, специфичных для связанных с сокетами системных вызовов. Эти параметры можно задать в любой директиве listen, но только один раз для указанной пары адрес:порт. > также есть забавные ситуации > > (spdy будет включен в обоих случаях) > > server { > listen X.X.X.X:443 ssl spdy; > server_name 1.local; > } > > server { > listen X.X.X.X:443 ssl; > server_name 2.local; > } Это свойства сокета, а не виртуального сервера. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Странное поведение при редиректе по параметрам
Today Feb 5, 2014 at 14:53 Anton Kiryushkin wrote: > Прошу прощения. Вы об этом: > "Если в строке замены указаны новые аргументы запроса, то предыдущие > аргументы запроса добавляются после них. Если такое поведение нежелательно, > можно отказаться от этого добавления, указав в конце строки замены знак > вопроса" ? > > Стоит отметить, что в строке замены новых аргументов нет. А если их нет, то аргументы остаются без изменений - директива меняет только URI. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Странное поведение при редиректе по параметрам
Today Feb 5, 2014 at 12:40 Anton Kiryushkin wrote: > Понятно. Нужно делать принудительный сброс аргументов. Вышел из положения > так: > if ($arg_arg ~* noname) { >set $args ""; >rewrite ^ http://domain.com permanent; > } В документации о rewrite написано про добавление аргументов и как этого избежать: http://nginx.org/r/rewrite/ru Но в данном случае лучше использовать return: return 301 http://domain.com; -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Исключения из редиректа!
Today Dec 25, 2013 at 11:31 Максим Осоян wrote: > if ( $scheme = "http" ) { > rewrite ^/(.*)$ https://$host/$1 permanent; > } > > Исключить из него нужно вот такой файлик - site.example.md/cron.php > > Подскажите пожалуйста как это правильно сделать?! Прописать location /cron.php без rewrite. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Как избавиться от GET-параметров при редиректе?
Today Dec 1, 2013 at 11:36 Tyrone wrote: > Дальше начал копать в сторону аналогичных правил для nginx. Но с помощью > rewrite смог добиться ровно тех же результатов. Редирект есть, но > get-параметры при перенаправлении сохраняются. Нужно всего-навсего прочесть документацию: http://nginx.org/r/rewrite/ru "Если такое поведение нежелательно, можно отказаться от этого добавления, указав в конце строки замены знак вопроса" -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Управление бэкендами
Today Nov 1, 2013 at 14:23 Sergey Kobzar wrote: > Приветсвую > > Nginx стоит как frontend. За ним находится несколько десятков или более > бэкендов (разные servername). Необходимо динамически управлять на какой > бэкенд запрос упадет. > > Править nginx.conf и перечитывает его не вариант, т.к. это может > происходить ежесекундно. http://nginx.org/r/upstream_conf Одно но: This directive is available as part of our commercial subscription only. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Сервер по-умолчанию для конкретного домена
Today Nov 1, 2013 at 16:07 Никита Кардашин wrote: > Прописать для каждого из доменов сервер с server_name *.domainX.tld я тоже > не могу, т.к. тогда туда пойдут не только запросы к несуществующим > приложениям, а вообще ВСЕ запросы (т.е. в приложение никто не попадет). http://nginx.org/r/server_name/ru При поиске виртуального сервера по имени, если имени соответствует несколько из указанных вариантов, например, одновременно подходят и имя с маской, и регулярное выражение, будет выбран первый подходящий вариант в следующем порядке приоритета: 1. точное имя 2. самое длинное имя с маской в начале, например .*.example.com. 3. самое длинное имя с маской в конце, например .mail.*. 4. первое подходящее регулярное выражение (в порядке следования в конфигурационном файле) Используйте точные имена в server_name для приложений или проследите дабы они были выше по конфигу чем с перенаправлением. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: WebDav на Windows
Today Oct 16, 2013 at 03:16 antarey wrote: > :) ну ето понятно - ребята тоже работают и хотят заработать, и сделали все > максимально для того чтобы обращались в комерческий отдел - есть частичный > функционал, - надо что-то дополнительно - пожалуйста компильте, не можете - > добро пожаловать за бабки :) > Подтверждение тому - инструкция по компиляции на винде, не понятно нифига Вы упустили в первом же абзаце фразу "версия nginx под Windows рассматривается пока как бета-версия". Есть ещё альтернативная сборка: http://mailman.nginx.org/pipermail/nginx/2013-October/040664.html Можете попробовать попросить её автора добавить дополнительный модуль. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: allow/deny and return
Yesterday Oct 15, 2013 at 20:57 Maxim Dounin wrote: > > файла нет. но есть location /closed и есть директивы задания доступа > > кому allow, а кому deny. то что return срабатывает раньше deny - это > > будет совершенно неожиданно для более чем 99% пользователей nginx... > > С якобы багом разобрались - отлично. Возвращаемся к исходному > разговору - если есть идеи, как _хорошо_ объяснить пользователям, > почему так - you are welcome. Не совсем хорошо(не все прочтут до написания подобного конфига), но явно (для этапа разбирательства "почему так?") будет дополнить описание порядка обработки директив rewrite ещё и переходами к другим фазам. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: 400 Bad Request 1.5.4 (1.5.3 = OK)
Today Sep 1, 2013 at 10:02 locojohn wrote: > (Status-Line) HTTP/1.1 400 Bad Request > Server: nginx/1.5.4 > Date: Sun, 01 Sep 2013 13:57:50 GMT > Content-Type: text/html; charset=utf-8 > Content-Length: 172 > Connection: close > devel.coursemanagement.bimv.com access log: > > 91.188.52.162 - - [01/Sep/2013:15:57:50 +0200] "GET > /??/_common/jquery/jquery-1.7.1.min.js,/_common/jquery/ui/jquery-ui-1.8.17.custom.min.js,/_common/jquery/jquery.cookie.min.js,/_common/jquery/jquery.json.min.js,/_common/jquery/json3.min.js,/_common/jquery/jquery.cookiejar.min.js,/_common/jquery/jquery.blockUI.min.js,/_common/jquery/jquery.spin.min.js,/_common/jquery/jquery.toggleElements.min.js,/_common/jquery/linkselect/lib/jquery.linkselect.min.js,/_common/jquery/jquery.tablesorter.min.js,/_common/jquery/jquery.asmselect.mod.js,/_common/jquery/brTip.src.js,/_common/jquery/validate/jquery.validate.min.js,/_common/jquery/jqGrid-4.5.2/js/i18n/grid.locale-en.js,/_common/jquery/jqGrid-4.5.2/js/jquery.jqGrid.min.js,/_common/jquery/jqGrid-4.5.2/plugins/grid.setcolumns.js,/js/ui.imageuploader.js > HTTP/1.1" 400 338 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:14.0) > Gecko/20100101 Firefox/14.0.1" "-" 0.050 1 > > Как видно из указанного выше, в access_log есть ответ со статусом 400. В > *error_log ничего не наблюдаем. Как видно из кода стороннего модуля(а туда тоже следовало бы посмотреть), там несколько return NGX_HTTP_BAD_REQUEST без записи чего-либо в лог ошибок. И они явно намекают на content type который теперь application/javascript. Добавление его в concat_types должно помочь. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Баг try_files + valid_referers
Today Aug 29, 2013 at 16:56 Андрей Василишин wrote: > 29.08.2013 15:00, Maxim Dounin пишет: > > > Варианты - уйти в другой location и писать отдельный лог там, > > писать лог с переменными в имени. > > Что-то не могу придумать, как без if это сделать. Не без if, а без неявного вложенного location в if. Из if уйти в другой location (error_page+return, rewrite) со своим логом и try_files. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx + memcached + pecl-memcache compression
Today Aug 23, 2013 at 12:32 Kron wrote: > Выключить сжатие всегда можно, просто удобнее было бы что бы они > все-таки сжимались клиентом (модулем memcache) и свободно отдавались > nginx`ом через модуль memcached. Сжатие на лету, экономия памяти и > отсутствие костылей. А кто мешает сжимать в PHP функцией gzencode, записывать в memcached со свои флагом и потом указать его в memcached_gzip_flag? -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Как правильно переопределить SERVER PORT?
Today Aug 4, 2013 at 05:37 Argyn wrote: > 1) Директивы BindAddress и Port более не существуют. Эквивалентная > функциональность предоставляется более гибкой директивой Listen. > 2) В Apache 1.3 директива Port использовалась, кроме всего прочего, для того > чтобы сервер мог формировать правильные ссылки на самого себя. В Apache 2.0 > для тех же целей служит новый синтаксис директивы ServerName: он был изменён > таким образом, что теперь имя хоста и номер порта можно указывать в одной > этой директиве. > > ServerName domain.ru:80 решает проблему. Речь идёт о ссылках в редиректах? http://nginx.org/r/proxy_redirect/ru -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Проблема с error page
Today Jun 8, 2013 at 02:30 SenatoR wrote: > Столкнулся с непонятной мне проблемой. nginx 1.4.1. Имеется связка nginx + > php-fpm. Возникла необходимость в одном домене заблокировать несколько ip > адресов для режима post. Написал вот такой листинг: > > location ~ \.php$ { > if ($request_method = POST) { > return 412; > } > error_page 412 = @check; > } > > location @check > { > deny ip1; > deny ip2; > error_page 403 http://sitename.ru/error_blocked.html; > } > Однако, все равно мне выводится стандартное уведомление об ошибке. Я > пробовал вместо адреса с http указывать новый location: > error_page 403 @why; > Не работает! Пробовал указывать новый путь: > error_page 403 /error_403.html; > не работает > > В связи с этим вопросы: > 1) Перенаправление на проверку явно сделано не самым удобным образом (через > пененаправление error_page 412), может кто-то подскажет способ лучше? http://nginx.org/r/limit_except/ru Вначале deny тем некоторым IP, а после allow all. И error_page 403 /error_403.html в этом location. > 2) Что я делаю не так с error_page? Мне нужно, чтобы он открыл заготовленный > файл с расшифровкой "почему нельзя" и все. Несколько перенаправлений через error_page по умолчанию запрещены: http://nginx.org/r/recursive_error_pages/ru -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru