Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » nginx cache

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

artemka1988



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
приветствую.
помогите пожалуйста советом.
есть сайт на wordpress, nginx+php-fpm
где используеться кэш. кусок конфига:

Код:
 
fastcgi_cache_path /var/run/nginx-cache levels=1:2 keys_zone=WORDPRESS:500m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header http_500;
        location ~ \.php$ {
                fastcgi_pass unix:/run/php/php7-fpm.sock;
                include snippets/fastcgi-php.conf;
                include fastcgi_params;
                fastcgi_buffer_size 32k;
                fastcgi_buffers 4 32k;
                # Cache setup
                fastcgi_cache_bypass $no_cache;
                fastcgi_no_cache $no_cache;
                fastcgi_cache WORDPRESS;
                fastcgi_cache_valid 200 60m;
                fastcgi_read_timeout 600;
        }
#fastcgi_cache start
set $no_cache 0;
# POST requests and urls with a query string should always go to PHP
if ($request_method = POST) {
    set $no_cache 1;
}
if ($query_string != "") {
    set $no_cache 1;
}
# Don't cache uris containing the following segments
if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp|sitemap(_index$
    set $no_cache 1;
}
# Don't use the cache for logged in users or recent commenters
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
    set $no_cache 1;
}
}
 

вроде все стандарно и работает. но сегодня появилась новая функция на сайте, переключение языков. языки переключаються на основе cookie. собственно, переключалка языков не работает, так как кэш делается по всей странице и игнорирует кукисы.
как выкрутиться можно?

Всего записей: 40 | Зарегистр. 08-09-2009 | Отправлено: 21:42 19-09-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
artemka1988

Цитата:
языки переключаються на основе cookie.

лучше переключать на основе куска URL.  
ну а так придется формировать ключ кэширования с учетом значения языковой куки тоже.
Цитата:
fastcgi_cache_key "$scheme$request_method$host$request_uri";


Всего записей: 15115 | Зарегистр. 20-09-2014 | Отправлено: 21:53 19-09-2017
artemka1988



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
на основе куска урла, не могут... дабы не испортить сами урлы...  
раньше переключения языка не было, не хотят портить урлы (  
поменял ключ на такой:

Код:
fastcgi_cache_key "$scheme$request_method$host$request_uri$cookie_lang";

и вроде заработало )

Всего записей: 40 | Зарегистр. 08-09-2009 | Отправлено: 22:00 19-09-2017
Onanden

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, мне это решение помогло, была аналогичная проблема,весь измучился,пока не нашел




Ну хватит уже крутить счетчик, мы же всё видим Почти все посты бессмысленные. /emx/

Всего записей: 20 | Зарегистр. 29-08-2017 | Отправлено: 12:20 27-09-2017 | Исправлено: emx, 09:43 28-09-2017
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » nginx cache


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru