Добрый день,
подскажите пожалуйста можно ли использовать
ngx_http_auth_request_module с php скриптом, который запускается через
php-fpm (fastcgi) и как это сделать?
задача: при попытке доступа к /test.php нужно проверить содержится ли
IP посетителя в базе. если содержится, то не пускать.
пробую
а, кажется разобрался. так работает:
location = /test.php {
auth_request /is_proxy.php;
fastcgi_pass fcgi_pool;
}
location = /is_proxy.php {
fastcgi_pass_request_body off;
fastcgi_intercept_errors off;
fastcgi_pass fcgi_pool;
}
cat is_proxy
Добрый день,
> Валентин Бартенев, несомненно всё так. Вы правы во всём, но мы же говорим не
> о продакшене. а о разработчиках
> Многим просто удобно работать на Windows.
а WSL не решит Ваших проблем?
https://msdn.microsoft.com/en-us/commandline/wsl/about
__
> Вот налетело пользователей 2.5 к чего то делают там на сайте.
> Все работает проблемм нет. При этом nginx в top на первых местах по
> нагрузке, за ним php-fpm, это при том, что сайт на скрипте.
> Как понять, почему nginx грузит проц, чем он занят ? Ведь основная логика на
> php, он и должен поеда
Добрый день,
читайте этот тред:
http://mailman.nginx.org/pipermail/nginx-ru/2017-November/060604.html
https://forum.nginx.org/read.php?21,277438
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Добрый день,
нужно посчитать количество запросов для каждого IP адреса. сейчас мы
это делаем логгируя в файл IP адрес клиента для каждого запроса и
потом считая уникальные вхождения, но это какой-то странный способ
получения этой метрики.
возможно ли использовать nginScript для этой цели создав а
> В текущей реализации время жизни njs объектов это время жизни объекта
> запроса, поэтому сбор статистики организовать таким образом не получится.
хорошо, значит я правильно понял документацию
> В данный момент работа по добавлению в njs функциональности по
> взаимодействию с персистентным храни
добрый вечер,
> Поскольку сайт работает через chroot, то его sendmail лежит здесь
> /home/rima/www/usr/sbin/
> Даже через него напрямую из консоли ./sendmail можно спокойно отправить
> тестовое письмо, но из самого php скрипта не не удается. Всему каталогу с
> сайтом, директориями и файлам заданы
Добрый вечер,
> *) Добавление: параметр "delay" директивы "limit_req".
>Спасибо Владиславу Шабанову и Петру Щучкину.
прочитал документацию несколько раз, но мне кажется я так и не понял
как именно работает delay:
> Если же избыточные запросы в пределах лимита всплесков
> задерживать
Добрый день,
> Кроме того, соединение не будет закрыто, если используется
> кэширование или fastcgi_store, так как в этих случаях ответ
> бэкенда полезен вне зависимости от того, будет ли он отправлен
> конкретному клиенту.
вот это уточнение прямо очень интересное, спасибо за него, Максим!
__
> Скрипт сайта, в ответ на запрос с заголовком
> "If-Modified-Since" отдает Nginx-су заголовок "Content-Length 0" и не
> нулевые данные. Скрипт делает все верно
почему верно? в RFC 2616 написано, что:
14.13 Content-Length
The Content-Length entity-header field indicates the size of the
ent
Добрый день,
нужно избирательно кешировать ответы бэкэнда в nginx. Некоторые ответы
содержат Set-Cookie заголовки.По-умолчанию их кешировать не нужно, но
если встречается определённая куки, то такой ответ нужно кешировать.
пример:
кешируем ответ с заголовком:
Set-Cookie: pll_language=en; expires
Добрый день,
> У вас map выполняется в proxy_cache_bypass, то есть до отправки
> запроса на бэкенд, и запоминает результат (некорректный, так как
> он основан на ещё не полученных от бэкенда заголовках ответа).
Спасибо большое за быстрый ответ, - помогло!
Результирующая конфигурация для моих цел
Добрый день,
nginx используется как кеширующий реверс-прокси, апстрим с Апачем
выставляет заголовок:
Cache-Control: public, max-age=0, must-revalidate
Nginx руководствуется этим заголовком для того, чтобы определить каким
образом кешировать ответ апстрима, но посетителю Nginx отдаёт ответ с
загол
> Убрать конфигурацию, которая прячет исходный заголовок
> Cache-Control (proxy_hide_header?) и добавляет вместо него
> "no-cache,no-store"?
>
> По умолчанию nginx отдаёт клиенту ровно тот заголовок
> Cache-Control, какой получил от бэкенда. Чтобы вернуть что-то
> другое - нужно это явно сконфигур
>> RewriteCond %{REQUEST_URI} /(.+?)/pagina-(.+?)/ [NC]
>> RewriteRule (.*) /%1/?page=%2 [L,QSA,NC]
>
>
> Подозреваю, что апачевскую абракадарбу знают далеко не все из читающих
> данный maillist, поэтому вероятность ответа по делу сильно повысится если
> сформулироваить словам, какого поведения нуж
> RewriteCond %{REQUEST_URI} /(.+?)/pagina-(.+?)/ [NC]
> RewriteRule (.*) /%1/?page=%2 [L,QSA,NC]
итак,
[NC] - (no case) - без учёта регистра
[L] - last|L - Stop the rewriting process immediately and don't apply
any more rules. Especially note caveats for per-directory and
.htaccess context
[QS
Здравствуйте, Михал,
>> location / {
>> rewrite /(.+?)/pagina-(.+?)/ /%1/?page=%2 break;
>> }
>
> Это один из вариантов и как бы написав такой локейшн ничего не
> произойдёт. proxy_pass до апача нужен.
подразумевается, что в конфиге nginx есть блоки для обработки
php-сценариев через fastcgi (на
> Тоже наблюдаю картину когда запросы с одного ip попадают на разные бекенды.
> Если убрать weight то всё ок. Нигде не могу найти описание алгоритма работы
> ip_hash совместно в weight.
"Метод гарантирует, что запросы одного и того же клиента будут всегда
передаваться на один и тот же сервер. Если
>> И так работает всегда. Weight в данном случае ни на что не влияет.
>> Если конфиг верный, возможно периодически "пропадают" сервера (нужно
>> копать в сторону fail_timeout и max_fails и тестировать стабильность
>> связи). Выше Максим всё это расписал подробно.
>
> Да, я читал, что писал Максим,
Добрый день!
Чтобы обновить страницу в кеше, необходимо сначала удалить из кеша
устаревшую версию. Для этого необходимо по ключу удалить
соотвествующий элемент директивой fastcgi_cache_purge модуля
ngx_cache_purge ( http://wiki.nginx.org/CachePurgeChs ).
2013/3/8 Namaste :
> Привет!
>
> Юзаю fast
> См. директиву proxy_cache_bypass.
> http://nginx.org/r/proxy_cache_bypass/ru
а я всегда ошибчно полагал, что такой ответ не будет помещён в кэш
независимо от директивы proxy_no_cache. только теперь понял, что ответ
будет браться не из кэша, но сам закэшируется, спасибо.
так что мой вариант приве
Добрый день.
Подскажите как грамотнее написать конфиг для сайта, который использует
фреймворк и несколько отдельно лежащих php сценариев.
иерархия примерно такая:
/application/
/system/
/modules/
/static/
/upload/
/customphp1/
/customphp2/
..
/customphp30/
index.php
где customphp - папка с прои
> Что то вроде
> server_name www.*
> #тут редирект на домен без www
> В голову приходит только пропустить $host через регулярку.
у меня для этих целей есть отдельный блок server:
server {
# редирект на основной домен (он без www) для всех сайтов.
#
> chroot = /home/kursk.dyndns.org/www
..
> Если разместить в /home/kursk.dyndns.org/www/ файл index.php со строчкой
> phpinfo();
> то всё прекрасно открывается. Но если залить тот же phpBB3, то всё время
> наблюдается белая страница (в php.ini прописан параметр display_errors=1).
> Если chroot убра
Добрый день
> а можно сюда добавить еще хидер, например:
>
> X-Cache-Invalid: "/users/top/123?all=yes"
>
> - определяет что с данного момента определенный набор страниц
> находящихся в кеше (набор = если несколько таких заголовков выдали)
> невалиден.
>
> Тогда если бакенд выдал такой заголово
>> удалить элемент из кеша можно директивой
>> http://nginx.org/r/proxy_cache_bypass/ru по ключу (т.е. новый элемент
>> возмётся не из кеша, но закешируется)
>
> нет это совсем не то что в фичареквесте.
>
...
>
> я хочу получить механизм внутри обработчика сбросить кеш на другом
> роуте.
> как вари
> Главная страница грузится, а другие страницы предлагает сохранить и в итоге
> Подскажите
> плыс...
http://codex.wordpress.org/Nginx
вот тут неплохо описано
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Добрый день,
скажите, пожалуйста, каким образом правильнее в nginx 1.5.x + php5-fpm (chroot):
1. выставлять разные параметры кеширования для различных локейшнов,
при использовании CMS на основе kohana (всё реврайтится на index.php)?
сейчас я делаю это через if и $request_uri.
2. Есть ли смысл в
> Нет. При кешировании заголовки If-Modified-Since и If-None-Match
> на бекенд не передаются (за исключением ревалидации кеша самим
> nginx'ом), так что в ключе их указывать бессмысленно и может
> принести лишь проблемы.
спасибо!
> Если нужна обработка одним и тем же index.php, то в нужных
> loc
> Лучше ещё переделать конфиг так, чтобы fastcgi_cache был включён
> только там, где используется.
>
> Ибо если кеш выключен - это одно, а если он включён, но ему
> сказали bypass / no cache - это немного другое. В частности, при
> обработке HEAD-запросов, а равно условных запросов будут различия
>> Половина попыток подключиться будет обламываться по таймауту.
> в итоге клиенты будут не довольны ?
да. я уже много лет с нетерпением жду того момента, когда браузеры
научатся понимать SRV записи типа а они имеют вид:
_service._proto.name. TTL class SRV priority weight port target.
т.е. когда
> Кстати, готовые решения есть? А то постоянно приходиться самому че-то
> сочинять.
есть route 53 амазона, он умеет проверять на доступность и изменять
днс записи по соответствующим правилам.
> Едва ли это можно назвать "фэловер" при ненулевом TTL.
да :(
__
добрый день,
> Сайт имеет две версии http и https.
> https используется только для определенных uri, с которых запросы
> редиректятся на http.
> Соответственно на http не поступает оригинальный реферер (тот который
> приходит на https).
> Нужно его как-то получать в http запросах уже после редир
> На этих uri нельзя использовать небезопасное соединение. :(
я не предлагаю Вам использовать небезопасное соединение на этих uri, я
предлагаю Вам изменить политику передачи реферера браузером при
переходе с ресурса, доступного по протоколу https на протокол http,
путём добавления специального тега
> А можете подсказать как это реализовать?
а Вы не могли бы ещё раз подробно рассказать как сейчас у Вас всё
настроено и как оно работает?
чтобы лучше понять проблему, я поднял тестовые конфигурации вида:
srv1:443 - он перенаправляет только специальный ури на http с кодом 301
server {
l
если же по Вашему сценарию srv2 это https сайт и ссылка, по которой
кликает клиент находится по ури https://srv2/test.html , то тогда
реферер не будет передаваться.
чтобы такое поведение изменить можно в локейшне с редиректом заново
переопределить этот заголовок, например так:
location = /x.php
> Можно ли задавать разные настройки php для разных location но с одним пулом?
если это настройки php.ini, то можно так
fastcgi_param PHP_VALUE sessions.save_path=/home/www/sessions/
fastcgi_param PHP_ADMIN_VALUE open_basedir=/home/www/docs
___
nginx-ru
конфиг:
server {
listen 80;
server_nametest.com;
error_log /home/user/logs/test.com.error.log error;
access_log /home/user/logs/test.com.access.log wtimes buffer=16k flush=1m;
root /www/user/domains/test.com/public_html/;
set $sock unix:/home/user/domains/test
прошу прощения за допущенные в предыдущем письме неточности
> проверяем через print_r(ini_get_all(null, false));
>
> делаем запрос к http://test.com - показывает [memory_limit] => 512M
> делаем запрос к http://test.com/z.php - показывает [memory_limit] => 64M
конечно же, наоборот:
делаем запрос к
Добрый день,
есть старый, но довольно большой https legacy-сайт на php и у
владельцев нет ресурсов его переделывать. сайт состоит из нескольких
миллионов страниц в районе 60 кб каждая (14 кб после gzip на nginx).
основной трафик на сайт - поисковый по низкочастотным запросам и если
распарсить лог
> Включить gzip в nginx
сейчас gzip на nginx включён (клиентам отдаётся сжатая страница), но в
кеш всё равно кладутся оригинальные ответы fastcgi без сжатия.
а если Вы имеете в виду дополнительно пропустить через nginx, который
сожмёт ответы
( php5-fpm -> nginx (gzip) -> nginx (fastcgi_cache) ), то
> Есть url domain.ru/sub/ нужно сделать так чтобы при переходе на
> domain.ru/sub/sub1 открывался domain.ru/sub
> Сделал так но ни чего не получается
> location ^/sub/* { rewrite ^/sub/(.*)$ /sub/ break; }
>
> Подскажите пожалуйста как грамотно сделать location и rewrite
location ~* ^/sub/(.*)$ {
Добрый день,
попробуйте так:
location = /js/data/city_base.js {
include /etc/nginx/am_proxy.conf;
}
подробнее: http://nginx.org/ru/docs/http/request_processing.html
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listin
Добрый день,
пытаюсь настроить ревалидацию страниц сайта в кеше директивой
fastcgi_cache_revalidate on;
ожидаю, что если элемент кеша устарел, то nginx сам сделает запрос к
бекэнду с заголовком If-Modified-Since (как это описано тут
http://whitequark.org/blog/2014/04/05/page-caching-with-nginx/ ),
>> fastcgi_param HTTP_IF_NONE_MATCH $http_if_none_match if_not_empty;
>> fastcgi_param HTTP_IF_MODIFIED_SINCE $http_if_modified_since
>> if_not_empty;
>
> У вас в конфиге написано: установить заголовки If-None-Match и
> If-Modified-Since в запросах к бекенду в полученные от клиента
> значе
> Вы изначально в ответе отдавали заголовки валидаторы (ETag и/ил
> Last-Modified)?
> Посмотрите на содержимое в папке кеша Nginx, есть ли там заголовки ETag и/ил
> Last-Modified, без них ревалидация кеша невозможно.
да, спасибо огромное дело оказалось именно в этом! заголовки-то мы
отдавали, и у р
Добрый вечер,
подскажите пожалуйста, в каких случаях нужно включать multi_accept on
и как именно он работает?
документацию читал http://nginx.org/r/multi_accept/ru
из того, что мне удалось нагуглить, ничто не проясняет ситуацию для меня:
http://mailman.nginx.org/pipermail/nginx-ru/2009-October/0
> подскажите пожалуйста, в каких случаях нужно включать multi_accept on
> и как именно он работает?
anyone? может быть кто-то использует в production - опишите пожалуйста
для чего и в чём выигрыш и какой у вас тип нагрузки?
P.S. я спрашиваю, потому что в интернетах во многих конфигах для
хайлоада
> При включенном multi_accept, nginx будет пытаться обработать все новые
> входящие соединения
> http://nginx.org/ru/docs/ngx_core_module.html#multi_accept
да, спасибо, я это читал и искал пояснения в рассылке, но к пониманию
работы директивы меня это не приблизило.
(предыдущее письмо с тем, что я
> Если директива выключена , то есть установлено
> значение off, то один процесс будет принимать одно соединение.
> Если вы включаете multi accept, nginx попытается обработать максимальное
> количество входящий соединений. Если значение worker_connections мало то
> быстро исчерпается лимит.
а како
> [..]
> Если поступающих соединений очень много, то второй вариант работы может
> оказаться чуть оптимальнее, за счет того, что рабочий процесс для получения
> каждого соединение не ходит за событием в ядро.
> [..]
теперь понятно!
Валентин, большое спасибо за подробное разъяснение
__
Добрый вечер,
у меня есть некоторое количество серверов небогатых клиентов, которые
хотели бы хоть какой-то WAF, но приобрести на его как сервис позволить
себе не могут. naxsi, на мой взгляд, вполне может справится с задачей,
но раньше я его не использовал, т.к. не хотел собирать nginx из
исходник
> Да модуль версия зависим
это понятно. но планируется ли (и возможно ли) сделать такую
архитектуру подключения модулей, которая бы обеспечила возможность
собрать один раз модуль как dll для программы под windows, а затем
обновлять только по мере необходимости, а не при каждом выходе новой
версии n
54 matches
Mail list logo