Stron
Dseda
Diseñador
Verificación en dos pasos activada
Verificado por Whatsapp
Pues basicamente lo tengo configurado como lo muestra el tutorial que puse ahi, pero simplemente no genera cache, no se cual sea el problema,Y que es lo que no te funciona? no dices nada.
Pone la configuración que tienes.
fastcgi_cache_path /etc/nginx/cache levels=1:2 keys_zone=%domain%:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
add_header X-Cache $upstream_cache_status;
server {
listen %ip%:%web_port%;
server_name %domain_idn% %alias_idn%;
root %docroot%;
index index.php index.html index.htm;
access_log /var/log/nginx/domains/%domain%.log combined;
access_log /var/log/nginx/domains/%domain%.bytes bytes;
error_log /var/log/nginx/domains/%domain%.error.log error;
#Cache everything by default
set $skip_cache 0;
# POST requests and urls with a query string should always go to PHP
if ($request_method = POST) {
set $skip_cache 1;
}
#Don't cache if the URL contains a query string
if ($query_string != "") {
set $skip_cache 1;
}
location / {
try_files $uri $uri/ /index.php?$args;
location ~* ^.+\.()$ {
expires 1d;
}
location ~ [^/]\.php(/|$) {
fastcgi_cache_valid 200 301 302 60m;
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
fastcgi_cache %domain%;
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
try_files $uri =404;
fastcgi_pass %backend_lsnr%;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}
/etc/nginx/cache/
con sus respectivos permisos 700.https://dnschecker.org/server-headers-check.php
y revisa este parametro "X-Cache" si te sale HIT entonces funciona el cache sino te dirá MISSClaro, en e fragmento que pase no puse eso, pero si estoy excluyendo en login, En cuanto al directorio si existe, pero quiero pensar que el problema es el usuario / grupo que maneja el directorio, ¿que usuario y grupo debería poner al directorio?Existe el directorio/etc/nginx/cache/%domain%
con sus respectivos permisos 700.
Revisa si esta haciendo caching, pone tu web en esta urlhttps://dnschecker.org/server-headers-check.php
y revisa este parametro "X-Cache" si te sale HIT entonces funciona el cache sino te dirá MISS
Cabe mencionar que como mencionas que es un script a medida tienes que adaptar el cache a ti sitio porque como lo tienes ahi va hacer cache de todo, incluyendo logins que eso va a crear brechas de seguridad porque estas haciendo caching al login del usuario del primero que se trato identificarse así que cuidado.
/etc/nginx/cache/
Pues basicamente lo tengo configurado como lo muestra el tutorial que puse ahi, pero simplemente no genera cache, no se cual sea el problema,
(fragmeto de codigo)
/usr/local/vesta/data/templates/web/nginx/php-fpm/mi_configuracion.tpl / stpl
Insertar CODE, HTML o PHP:fastcgi_cache_path /etc/nginx/cache levels=1:2 keys_zone=%domain%:100m inactive=60m; fastcgi_cache_key "$scheme$request_method$host$request_uri"; add_header X-Cache $upstream_cache_status; server { listen %ip%:%web_port%; server_name %domain_idn% %alias_idn%; root %docroot%; index index.php index.html index.htm; access_log /var/log/nginx/domains/%domain%.log combined; access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error;
Insertar CODE, HTML o PHP:#Cache everything by default set $skip_cache 0; # POST requests and urls with a query string should always go to PHP if ($request_method = POST) { set $skip_cache 1; } #Don't cache if the URL contains a query string if ($query_string != "") { set $skip_cache 1; } location / { try_files $uri $uri/ /index.php?$args; location ~* ^.+\.()$ { expires 1d; } location ~ [^/]\.php(/|$) { fastcgi_cache_valid 200 301 302 60m; fastcgi_ignore_headers Cache-Control Expires Set-Cookie; fastcgi_cache %domain%; fastcgi_cache_bypass $skip_cache; fastcgi_no_cache $skip_cache; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; try_files $uri =404; fastcgi_pass %backend_lsnr%; fastcgi_index index.php; include /etc/nginx/fastcgi_params; }
fastcgi_cache_path /var/lib/nginx/cache/%domain% levels=1:2 keys_zone=%domain%:512m max_size=10g inactive=60m use_temp_path=off;
set $skip_cache 0;
if ($query_string != ""){ set $skip_cache 1; }
if ($request_method = POST) { set $skip_cache 1; }
set $var_desktop "fullversion";
set $var_mobile "mobileversion";
# VERSIONES
map $http_user_agent $mobile_request {
default fullversion;
"~*ipad" mobileversion;
"~*tablet" mobileversion;
"~*android.*mobile" mobileversion;
"~*iphone" mobileversion;
"~*ipod.*mobile" mobileversion;
"~*BlackBerry*Mobile Safari" mobileversion;
"~*BB*Mobile Safari" mobileversion;
"~*Opera.*Mini/7" mobileversion;
"~*IEMobile/10.*Touch" mobileversion;
"~*IEMobile/11.*Touch" mobileversion;
"~*IEMobile/7.0" mobileversion;
"~*IEMobile/9.0" mobileversion;
"~*Firefox.*Mobile" mobileversion;
"~*webOS" mobileversion;
}
location ~ \.php$ {
Vale, probare los ajustes que menciona, ya les comento a ver que pasa.@Stron la carpeta de Cache para Nginx va con usuario y grupo nginx:nginx sobre permisos 755 en /var/cache/nginx o /var/lib/nginx
el cache path si no esta duplicado en alguna ruta de Vesta en tu archivo tpl lo puedes incluir en la linea #1 de la siguiente forma por ej.
fastcgi_cache_path /var/lib/nginx/cache/%domain% levels=1:2 keys_zone=%domain%:512m max_size=10g inactive=60m use_temp_path=off;
Y retocar los settings de fastcgi de la siguiente forma..
fastcgi_cache %domain%;
fastcgi_cache_lock on;
fastcgi_cache_min_uses 2;
fastcgi_cache_revalidate on;
fastcgi_no_cache $skip_cache;
fastcgi_cache_bypass $skip_cache;
fastcgi_cache_valid 200 301 302 60m;
fastcgi_cache_valid 404 500 502 504 1m;
fastcgi_cache_key "$scheme$request_method$mobile_request$host$request_uri";
fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;
Por fuera tal y como lo tenias anteriormente entre lineas.
set $skip_cache 0; if ($query_string != ""){ set $skip_cache 1; } if ($request_method = POST) { set $skip_cache 1; }
Pero agregando..
set $var_desktop "fullversion"; set $var_mobile "mobileversion";
y en nginx.conf estableciendo..
# VERSIONES map $http_user_agent $mobile_request { default fullversion; "~*ipad" mobileversion; "~*tablet" mobileversion; "~*android.*mobile" mobileversion; "~*iphone" mobileversion; "~*ipod.*mobile" mobileversion; "~*BlackBerry*Mobile Safari" mobileversion; "~*BB*Mobile Safari" mobileversion; "~*Opera.*Mini/7" mobileversion; "~*IEMobile/10.*Touch" mobileversion; "~*IEMobile/11.*Touch" mobileversion; "~*IEMobile/7.0" mobileversion; "~*IEMobile/9.0" mobileversion; "~*Firefox.*Mobile" mobileversion; "~*webOS" mobileversion; }
Si a pesar de esto no te funciona, el encabezado que llama al PHP la puedes cambiar por:
location ~ \.php$ {
Haces un rebuild con /usr/local/vesta/bin/v-rebuild-user y el usuario a cual le tienes asignada la plantilla, luego verificas que tan efectivos fueron los mismos. Cualquier cosa me puedes escribir por privado y lo vemos a detalle.
(Debes comprobar que las rutas de cache existen y tienen sus respectivos permisos)
Utilizamos cookies y tecnologías similares para los siguientes fines:
¿Aceptas las cookies y estas tecnologías?
Utilizamos cookies y tecnologías similares para los siguientes fines:
¿Aceptas las cookies y estas tecnologías?