nginx кеширование ответов 404

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

JwsD
Сообщения: 129
ОС: ArchLinux

nginx кеширование ответов 404

Сообщение JwsD »

Всем доброго времени суток.
Начитался я тут вашего форума, нашел замечательную утилитку apachetop, поковырял ею сервер....
Все замечательно! На сервере висит ISPManager. висит её конфиг, в некоторых местах с ручными костылями.

Код: Выделить всё

                location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
                        root /var/www/user/data/www/supersite.ru;
                        error_page 404 = @fallback;
                }

Отсюда можно увидеть, что если nginx не нашел файлы ico\js\css то их стоит спросить у апача. Что и правильно. Но(!!!), так как на каждый favicon.ico у меня запускает целый процесс апача, чтобы отдать ему 404. Мне кажется это через чур жирно! Естественно, есть такие жепеги\гифы и другие графические фиговины которые средствами htaccess делаются из php. Про них тоже нужно не забыть. В итоге созрел план.
Нужно научить nginx кешировать 404 ответы(может еще подскажите) для тех фйлов которые лезут через fallback. Есть идея кешировать по $uri , если там "статика" , и ответ 404 то кешим на 10 минут.

В конфиге хренолиард строк, больше 10тыщь. sed'ить их не вариант, перестраивать конфиг средствами ISP тоже не вариант, собьется куча самодельных костылей(кеш вешал на некоторые сайты). Нужно в секцию http влепить такое, чтобы оно делало то что мне нужно) благо proxy_cache можно использовать в http.
ЗЫ сам буду копать в эту сторону, если откопаю, непременно отпишусь, но и вы тоже посодействуйте ;) мысли лишними не будут)))
Спасибо сказали:
JwsD
Сообщения: 129
ОС: ArchLinux

Re: nginx кеширование ответов 404

Сообщение JwsD »

Вот такой кусок в http не канает почемуто, в папке наблюдаю кучу ответов 200, с самим содержимым. А он ведь их потом отдает... Хотя этого делать нельзя.

Код: Выделить всё

proxy_cache_path /var/cache/nginx/cache_404 levels=1:2 keys_zone=fnf:22m inactive=1d max_size=256m;
proxy_cache fnf;
proxy_cache_key "$request_method|$is_args|$host|$request";
proxy_hide_header "Set-Cookie";
proxy_ignore_headers "Cache-Control" "Expires";
proxy_cache_valid 404 5m;


Как заставить nginx кешировать только ответы 404?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: nginx кеширование ответов 404

Сообщение sash-kan »

JwsD писал(а):
27.04.2010 19:05
Отсюда можно увидеть, что если nginx не нашел файлы ico\js\css
не вижу здесь:
JwsD писал(а):
27.04.2010 19:05
^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$
суффикса ico.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
JwsD
Сообщения: 129
ОС: ArchLinux

Re: nginx кеширование ответов 404

Сообщение JwsD »

sash-kan писал(а):
28.04.2010 11:03
JwsD писал(а):
27.04.2010 19:05
Отсюда можно увидеть, что если nginx не нашел файлы ico\js\css
не вижу здесь:
JwsD писал(а):
27.04.2010 19:05
^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$
суффикса ico.

Ну не удачный пример. Согласен)) А вот по делу, есть идеи?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: nginx кеширование ответов 404

Сообщение sash-kan »

сумбурно у вас как-то описано.
видимо, вы подразумеваете что-то вроде:
proxy_cache_valid 404 5m;
proxy_cache_valid any 0; //не уверен насчёт нуля. если не сработает, то что-нибудь вроде 1ms попробуйте.

http://sysoev.ru/nginx/docs/http/ngx_http_...oxy_cache_valid
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: