Re: proxy_pass uri

2017-05-19 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2016-04-05 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2016-04-05 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2016-04-05 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2016-04-04 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2016-04-04 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2016-04-02 Пенетрантность Oleksandr V. Typlyns7;kyi
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?

2016-03-12 Пенетрантность Oleksandr V. Typlyns7;kyi
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: Хочу написать патч

2015-08-26 Пенетрантность Oleksandr V. Typlyns7;kyi
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: Хочу написать патч

2015-08-26 Пенетрантность Oleksandr V. Typlyns7;kyi
Today Aug 26, 2015 at 16:43 navern wrote:

> В апаче есть mod_itk и там такой проблемы нет. Но там fork работает, 
> поэтому что-то подобное проще сделать.

  И производительность с ним в 2-3 раза ниже, а число процессов вдвое выше.
  Ибо висят они изначально от root, а под каждый запрос делают fork.
-- 
WNGS-RIPE

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Re: Re: Re: Наследование fastcgi param

2015-06-27 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2015-06-27 Пенетрантность Oleksandr V. Typlyns7;kyi
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 ... не работает.

2015-06-10 Пенетрантность Oleksandr V. Typlyns7;kyi
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 ... не работает.

2015-06-10 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2015-06-10 Пенетрантность Oleksandr V. Typlyns7;kyi
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 ... не работает.

2015-06-10 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2015-05-27 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2015-05-27 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2015-04-17 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2015-01-11 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2014-11-26 Пенетрантность Oleksandr V. Typlyns7;kyi
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: Два вопроса

2014-11-25 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2014-11-03 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2014-09-21 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2014-09-12 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2014-09-06 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2014-09-06 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2014-09-05 Пенетрантность Oleksandr V. Typlyns7;kyi
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: Странное поведение при редиректе по параметрам

2014-02-05 Пенетрантность Oleksandr V. Typlyns7;kyi
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: Странное поведение при редиректе по параметрам

2014-02-05 Пенетрантность Oleksandr V. Typlyns7;kyi
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: Исключения из редиректа!

2013-12-25 Пенетрантность Oleksandr V. Typlyns7;kyi
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-параметров при редиректе?

2013-12-01 Пенетрантность Oleksandr V. Typlyns7;kyi
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: Управление бэкендами

2013-11-01 Пенетрантность Oleksandr V. Typlyns7;kyi
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: Сервер по-умолчанию для конкретного домена

2013-11-01 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2013-10-16 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2013-10-16 Пенетрантность Oleksandr V. Typlyns7;kyi
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)

2013-09-01 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2013-08-29 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2013-08-23 Пенетрантность Oleksandr V. Typlyns7;kyi
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?

2013-08-04 Пенетрантность Oleksandr V. Typlyns7;kyi
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

2013-06-08 Пенетрантность Oleksandr V. Typlyns7;kyi
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