We are happy to announce that Vesta is back under active development as of 25 February 2024. We are working on v1 candidate and expect to engage more with the community over the coming months. We are committed to open source, and we encourage contributors to help us build the future of Vesta.
Nginx+php-fpm cache ЧПУ?
-
- Posts: 39
- Joined: Wed Jul 27, 2016 8:01 pm
Nginx+php-fpm cache ЧПУ?
Подскажите пожалуйста, как закешировать ЧПУ-ные страницы.
Движок DLE, кто знает там все криворуко сделано, и потому дохера всяких рерайтов надо писать, если мне добавить в локейшн с .php то кешируються только php файлы, а мне надо чтобы ЧПУ-ные страницы кешировались.
Куда мне надо добавить вот эту конструкцию, чтобы закешировать .html URL
Движок DLE, кто знает там все криворуко сделано, и потому дохера всяких рерайтов надо писать, если мне добавить в локейшн с .php то кешируються только php файлы, а мне надо чтобы ЧПУ-ные страницы кешировались.
Куда мне надо добавить вот эту конструкцию, чтобы закешировать .html URL
Code: Select all
fastcgi_cache mycache;
fastcgi_cache_valid 200 301 302 60m;
add_header X-FastCGI-Cache $upstream_cache_status;
-
- Posts: 39
- Joined: Wed Jul 27, 2016 8:01 pm
Re: Nginx+php-fpm cache ЧПУ?
Вообщем сам и отвечу. Проблема бы с заголовками, надо игнорировать заголовки Cache-Control Expires.
Правильный конфиг, вставлять в локейш с обработкой php.
В заголовках появится строка X-FastCGI-Cache - принимает значение MISS или HIT. HIT- значить страница закеширована.
Ну и конечно можно вставлять блоки для игнорирования кэша определенных страниц, например админки и тп.
Например:
Да и не забываем в главную секцию http прописать зону кеша. (/etc/nginx/nginx.conf):
Правильный конфиг, вставлять в локейш с обработкой php.
Code: Select all
fastcgi_cache myCacheZone;
fastcgi_cache_valid 200 301 302 60m;
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
add_header X-FastCGI-Cache $upstream_cache_status;
Ну и конечно можно вставлять блоки для игнорирования кэша определенных страниц, например админки и тп.
Например:
Code: Select all
location ~ [^/]\.php(/|$) {
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
#Cache everything by default
set $no_cache 0;
#Don't cache the following URLs
if ($request_uri ~* "/(admin|administrator/|login.php)")
{
set $no_cache 1;
}
#cache zone
fastcgi_cache myCacheZone;
fastcgi_cache_valid 200 301 302 60m;
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
add_header X-FastCGI-Cache $upstream_cache_status;
fastcgi_cache_bypass $no_cache;
fastcgi_no_cache $no_cache;
fastcgi_pass 127.0.0.1:9004;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}
Code: Select all
fastcgi_cache_path /etc/nginx/cache/myCacheZone levels=1:2 keys_zone=myCacheZone:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";