J'utilise fastcgi_cache dans nginx afin d'accélérer le php, qui connecte la base de données et sélectionne les articles.utilise beaucoup de ssi avec fastcgi_cache dans nginx
Voici mon flux:
d'abord, ajouter un ssi-inclure dans mon index:
<\!--# include file="/templates/1-5-list.html" -->
, j'ajouter une route emplacement pour gérer html -> php dans nginx-conf
location ~(\d*?)-(\d*?)-list.html
{
try_files $uri /articles/list.php?p1=$1&p2=$2;
}
après, je demande fastcgi_cache
pour list.php
# outside the server{}
fastcgi_cache_path /home/cache/articles levels=1 keys_zone=articles_cache:10m max_size=1024m inactive=1h;
fastcgi_cache_key $scheme$host$request_uri$request_method;
# outside the server{}
location ~/list.php$ {
fastcgi_cache articles_cache;
fastcgi_cache_valid 200 2h;
...
}
Tout va bien maintenant, et la fonction de mise en cache fonctionne bien.
Cependant, si j'ai deux ou plusieurs ssi dans mon index:
<\!--# include file="/templates/1-5-list.html" -->
<\!--# include file="/templates/2-5-list.html" -->
Le second ssi reviennent exactement le même résultat que le premier, FAIL!
je recherche dans le répertoire de cache, et je trouve que, le KEY
en utilisant la mise en cache est httplocalhost/articlesGET
, ce qui signifie que ces deux ssi partagent le même KEY
. Et je pense que c'est la cause.
Ma question est comment puis-je modifier le fastcgi_cache_key
de telle sorte qu'ils peuvent avoir différents KEY
? J'ai essayé d'ajouter fastcgi_cache_key
à l'intérieur location{}
mais échoue.