> Убрать конфигурацию, которая прячет исходный заголовок
> Cache-Control (proxy_hide_header?) и добавляет вместо него
> "no-cache,no-store"?
>
> По умолчанию nginx отдаёт клиенту ровно тот заголовок
> Cache-Control, какой получил от бэкенда. Чтобы вернуть что-то
> другое - нужно это явно сконфигур
Добрый день,
nginx используется как кеширующий реверс-прокси, апстрим с Апачем
выставляет заголовок:
Cache-Control: public, max-age=0, must-revalidate
Nginx руководствуется этим заголовком для того, чтобы определить каким
образом кешировать ответ апстрима, но посетителю Nginx отдаёт ответ с
загол
Добрый день,
> У вас map выполняется в proxy_cache_bypass, то есть до отправки
> запроса на бэкенд, и запоминает результат (некорректный, так как
> он основан на ещё не полученных от бэкенда заголовках ответа).
Спасибо большое за быстрый ответ, - помогло!
Результирующая конфигурация для моих цел
Добрый день,
нужно избирательно кешировать ответы бэкэнда в nginx. Некоторые ответы
содержат Set-Cookie заголовки.По-умолчанию их кешировать не нужно, но
если встречается определённая куки, то такой ответ нужно кешировать.
пример:
кешируем ответ с заголовком:
Set-Cookie: pll_language=en; expires
> Скрипт сайта, в ответ на запрос с заголовком
> "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
Добрый день,
> Кроме того, соединение не будет закрыто, если используется
> кэширование или fastcgi_store, так как в этих случаях ответ
> бэкенда полезен вне зависимости от того, будет ли он отправлен
> конкретному клиенту.
вот это уточнение прямо очень интересное, спасибо за него, Максим!
__
Добрый вечер,
> *) Добавление: параметр "delay" директивы "limit_req".
>Спасибо Владиславу Шабанову и Петру Щучкину.
прочитал документацию несколько раз, но мне кажется я так и не понял
как именно работает delay:
> Если же избыточные запросы в пределах лимита всплесков
> задерживать
добрый вечер,
> Поскольку сайт работает через chroot, то его sendmail лежит здесь
> /home/rima/www/usr/sbin/
> Даже через него напрямую из консоли ./sendmail можно спокойно отправить
> тестовое письмо, но из самого php скрипта не не удается. Всему каталогу с
> сайтом, директориями и файлам заданы
> В текущей реализации время жизни njs объектов это время жизни объекта
> запроса, поэтому сбор статистики организовать таким образом не получится.
хорошо, значит я правильно понял документацию
> В данный момент работа по добавлению в njs функциональности по
> взаимодействию с персистентным храни
Добрый день,
нужно посчитать количество запросов для каждого IP адреса. сейчас мы
это делаем логгируя в файл IP адрес клиента для каждого запроса и
потом считая уникальные вхождения, но это какой-то странный способ
получения этой метрики.
возможно ли использовать nginScript для этой цели создав а
Добрый день,
читайте этот тред:
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
> Вот налетело пользователей 2.5 к чего то делают там на сайте.
> Все работает проблемм нет. При этом nginx в top на первых местах по
> нагрузке, за ним php-fpm, это при том, что сайт на скрипте.
> Как понять, почему nginx грузит проц, чем он занят ? Ведь основная логика на
> php, он и должен поеда
Добрый день,
> Валентин Бартенев, несомненно всё так. Вы правы во всём, но мы же говорим не
> о продакшене. а о разработчиках
> Многим просто удобно работать на Windows.
а WSL не решит Ваших проблем?
https://msdn.microsoft.com/en-us/commandline/wsl/about
__
а, кажется разобрался. так работает:
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
Добрый день,
подскажите пожалуйста можно ли использовать
ngx_http_auth_request_module с php скриптом, который запускается через
php-fpm (fastcgi) и как это сделать?
задача: при попытке доступа к /test.php нужно проверить содержится ли
IP посетителя в базе. если содержится, то не пускать.
пробую
> Да модуль версия зависим
это понятно. но планируется ли (и возможно ли) сделать такую
архитектуру подключения модулей, которая бы обеспечила возможность
собрать один раз модуль как dll для программы под windows, а затем
обновлять только по мере необходимости, а не при каждом выходе новой
версии n
Добрый вечер,
у меня есть некоторое количество серверов небогатых клиентов, которые
хотели бы хоть какой-то WAF, но приобрести на его как сервис позволить
себе не могут. naxsi, на мой взгляд, вполне может справится с задачей,
но раньше я его не использовал, т.к. не хотел собирать nginx из
исходник
> [..]
> Если поступающих соединений очень много, то второй вариант работы может
> оказаться чуть оптимальнее, за счет того, что рабочий процесс для получения
> каждого соединение не ходит за событием в ядро.
> [..]
теперь понятно!
Валентин, большое спасибо за подробное разъяснение
__
> Если директива выключена , то есть установлено
> значение off, то один процесс будет принимать одно соединение.
> Если вы включаете multi accept, nginx попытается обработать максимальное
> количество входящий соединений. Если значение worker_connections мало то
> быстро исчерпается лимит.
а како
> При включенном multi_accept, nginx будет пытаться обработать все новые
> входящие соединения
> http://nginx.org/ru/docs/ngx_core_module.html#multi_accept
да, спасибо, я это читал и искал пояснения в рассылке, но к пониманию
работы директивы меня это не приблизило.
(предыдущее письмо с тем, что я
> подскажите пожалуйста, в каких случаях нужно включать multi_accept on
> и как именно он работает?
anyone? может быть кто-то использует в production - опишите пожалуйста
для чего и в чём выигрыш и какой у вас тип нагрузки?
P.S. я спрашиваю, потому что в интернетах во многих конфигах для
хайлоада
Добрый вечер,
подскажите пожалуйста, в каких случаях нужно включать multi_accept on
и как именно он работает?
документацию читал http://nginx.org/r/multi_accept/ru
из того, что мне удалось нагуглить, ничто не проясняет ситуацию для меня:
http://mailman.nginx.org/pipermail/nginx-ru/2009-October/0
> Вы изначально в ответе отдавали заголовки валидаторы (ETag и/ил
> Last-Modified)?
> Посмотрите на содержимое в папке кеша Nginx, есть ли там заголовки ETag и/ил
> Last-Modified, без них ревалидация кеша невозможно.
да, спасибо огромное дело оказалось именно в этом! заголовки-то мы
отдавали, и у р
>> 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 в запросах к бекенду в полученные от клиента
> значе
Добрый день,
пытаюсь настроить ревалидацию страниц сайта в кеше директивой
fastcgi_cache_revalidate on;
ожидаю, что если элемент кеша устарел, то nginx сам сделает запрос к
бекэнду с заголовком If-Modified-Since (как это описано тут
http://whitequark.org/blog/2014/04/05/page-caching-with-nginx/ ),
Добрый день,
попробуйте так:
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
> Есть url domain.ru/sub/ нужно сделать так чтобы при переходе на
> domain.ru/sub/sub1 открывался domain.ru/sub
> Сделал так но ни чего не получается
> location ^/sub/* { rewrite ^/sub/(.*)$ /sub/ break; }
>
> Подскажите пожалуйста как грамотно сделать location и rewrite
location ~* ^/sub/(.*)$ {
> Включить gzip в nginx
сейчас gzip на nginx включён (клиентам отдаётся сжатая страница), но в
кеш всё равно кладутся оригинальные ответы fastcgi без сжатия.
а если Вы имеете в виду дополнительно пропустить через nginx, который
сожмёт ответы
( php5-fpm -> nginx (gzip) -> nginx (fastcgi_cache) ), то
Добрый день,
есть старый, но довольно большой https legacy-сайт на php и у
владельцев нет ресурсов его переделывать. сайт состоит из нескольких
миллионов страниц в районе 60 кб каждая (14 кб после gzip на nginx).
основной трафик на сайт - поисковый по низкочастотным запросам и если
распарсить лог
прошу прощения за допущенные в предыдущем письме неточности
> проверяем через print_r(ini_get_all(null, false));
>
> делаем запрос к http://test.com - показывает [memory_limit] => 512M
> делаем запрос к http://test.com/z.php - показывает [memory_limit] => 64M
конечно же, наоборот:
делаем запрос к
конфиг:
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
> Можно ли задавать разные настройки 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
если же по Вашему сценарию srv2 это https сайт и ссылка, по которой
кликает клиент находится по ури https://srv2/test.html , то тогда
реферер не будет передаваться.
чтобы такое поведение изменить можно в локейшне с редиректом заново
переопределить этот заголовок, например так:
location = /x.php
> А можете подсказать как это реализовать?
а Вы не могли бы ещё раз подробно рассказать как сейчас у Вас всё
настроено и как оно работает?
чтобы лучше понять проблему, я поднял тестовые конфигурации вида:
srv1:443 - он перенаправляет только специальный ури на http с кодом 301
server {
l
> На этих uri нельзя использовать небезопасное соединение. :(
я не предлагаю Вам использовать небезопасное соединение на этих uri, я
предлагаю Вам изменить политику передачи реферера браузером при
переходе с ресурса, доступного по протоколу https на протокол http,
путём добавления специального тега
добрый день,
> Сайт имеет две версии http и https.
> https используется только для определенных uri, с которых запросы
> редиректятся на http.
> Соответственно на http не поступает оригинальный реферер (тот который
> приходит на https).
> Нужно его как-то получать в http запросах уже после редир
> Кстати, готовые решения есть? А то постоянно приходиться самому че-то
> сочинять.
есть route 53 амазона, он умеет проверять на доступность и изменять
днс записи по соответствующим правилам.
> Едва ли это можно назвать "фэловер" при ненулевом TTL.
да :(
__
>> Половина попыток подключиться будет обламываться по таймауту.
> в итоге клиенты будут не довольны ?
да. я уже много лет с нетерпением жду того момента, когда браузеры
научатся понимать SRV записи типа а они имеют вид:
_service._proto.name. TTL class SRV priority weight port target.
т.е. когда
> Лучше ещё переделать конфиг так, чтобы fastcgi_cache был включён
> только там, где используется.
>
> Ибо если кеш выключен - это одно, а если он включён, но ему
> сказали bypass / no cache - это немного другое. В частности, при
> обработке HEAD-запросов, а равно условных запросов будут различия
> Нет. При кешировании заголовки If-Modified-Since и If-None-Match
> на бекенд не передаются (за исключением ревалидации кеша самим
> nginx'ом), так что в ключе их указывать бессмысленно и может
> принести лишь проблемы.
спасибо!
> Если нужна обработка одним и тем же index.php, то в нужных
> loc
Добрый день,
скажите, пожалуйста, каким образом правильнее в nginx 1.5.x + php5-fpm (chroot):
1. выставлять разные параметры кеширования для различных локейшнов,
при использовании CMS на основе kohana (всё реврайтится на index.php)?
сейчас я делаю это через if и $request_uri.
2. Есть ли смысл в
> Главная страница грузится, а другие страницы предлагает сохранить и в итоге
> Подскажите
> плыс...
http://codex.wordpress.org/Nginx
вот тут неплохо описано
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
>> удалить элемент из кеша можно директивой
>> http://nginx.org/r/proxy_cache_bypass/ru по ключу (т.е. новый элемент
>> возмётся не из кеша, но закешируется)
>
> нет это совсем не то что в фичареквесте.
>
...
>
> я хочу получить механизм внутри обработчика сбросить кеш на другом
> роуте.
> как вари
Добрый день
> а можно сюда добавить еще хидер, например:
>
> X-Cache-Invalid: "/users/top/123?all=yes"
>
> - определяет что с данного момента определенный набор страниц
> находящихся в кеше (набор = если несколько таких заголовков выдали)
> невалиден.
>
> Тогда если бакенд выдал такой заголово
> chroot = /home/kursk.dyndns.org/www
..
> Если разместить в /home/kursk.dyndns.org/www/ файл index.php со строчкой
> phpinfo();
> то всё прекрасно открывается. Но если залить тот же phpBB3, то всё время
> наблюдается белая страница (в php.ini прописан параметр display_errors=1).
> Если chroot убра
> Что то вроде
> server_name www.*
> #тут редирект на домен без www
> В голову приходит только пропустить $host через регулярку.
у меня для этих целей есть отдельный блок server:
server {
# редирект на основной домен (он без www) для всех сайтов.
#
Добрый день.
Подскажите как грамотнее написать конфиг для сайта, который использует
фреймворк и несколько отдельно лежащих php сценариев.
иерархия примерно такая:
/application/
/system/
/modules/
/static/
/upload/
/customphp1/
/customphp2/
..
/customphp30/
index.php
где customphp - папка с прои
> См. директиву proxy_cache_bypass.
> http://nginx.org/r/proxy_cache_bypass/ru
а я всегда ошибчно полагал, что такой ответ не будет помещён в кэш
независимо от директивы proxy_no_cache. только теперь понял, что ответ
будет браться не из кэша, но сам закэшируется, спасибо.
так что мой вариант приве
Добрый день!
Чтобы обновить страницу в кеше, необходимо сначала удалить из кеша
устаревшую версию. Для этого необходимо по ключу удалить
соотвествующий элемент директивой fastcgi_cache_purge модуля
ngx_cache_purge ( http://wiki.nginx.org/CachePurgeChs ).
2013/3/8 Namaste :
> Привет!
>
> Юзаю fast
>> И так работает всегда. Weight в данном случае ни на что не влияет.
>> Если конфиг верный, возможно периодически "пропадают" сервера (нужно
>> копать в сторону fail_timeout и max_fails и тестировать стабильность
>> связи). Выше Максим всё это расписал подробно.
>
> Да, я читал, что писал Максим,
> Тоже наблюдаю картину когда запросы с одного ip попадают на разные бекенды.
> Если убрать weight то всё ок. Нигде не могу найти описание алгоритма работы
> ip_hash совместно в weight.
"Метод гарантирует, что запросы одного и того же клиента будут всегда
передаваться на один и тот же сервер. Если
Здравствуйте, Михал,
>> location / {
>> rewrite /(.+?)/pagina-(.+?)/ /%1/?page=%2 break;
>> }
>
> Это один из вариантов и как бы написав такой локейшн ничего не
> произойдёт. proxy_pass до апача нужен.
подразумевается, что в конфиге nginx есть блоки для обработки
php-сценариев через fastcgi (на
> 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
>> RewriteCond %{REQUEST_URI} /(.+?)/pagina-(.+?)/ [NC]
>> RewriteRule (.*) /%1/?page=%2 [L,QSA,NC]
>
>
> Подозреваю, что апачевскую абракадарбу знают далеко не все из читающих
> данный maillist, поэтому вероятность ответа по делу сильно повысится если
> сформулироваить словам, какого поведения нуж
54 matches
Mail list logo