On ne touche qu’à la configuration de nginx.

La doc : https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html

block http

Dans le block http on a :

fastcgi_cache_path /home/cache 
    levels=1:2 
    keys_zone=MyCMS:100m 
    max_size=10g 
    inactive=60m 
    use_temp_path=off;

fastcgi_cache_key "$scheme$request_method$host$request_uri";

block server

Un exemple pour wordpress :


server {

    listen 80;
    server_name mycms.net;
    root /var/www/mycms; 

    set $skip_cache 0;

    if ($request_method = POST) {
        set $skip_cache 1;
    }

    if ($query_string != "") {
        set $skip_cache 1;
    }

    if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-..php|^/feed/|/tag/./feed/|/.sitemap..(xml|xsl)") {
        set $skip_cache 1;
    }

    if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
        set $skip_cache 1;
    }

    location ~ \.php$ {
        fastcgi_cache MyCMS;
        fastcgi_cache_valid 200 301 302 60m;
        fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;
        fastcgi_cache_min_uses 1;
        # fastcgi_cache_lock on;
        fastcgi_cache_bypass $skip_cache;
        fastcgi_no_cache $skip_cache;
        add_header X-FastCGI-Cache $upstream_cache_status;

        try_files $uri $uri/ /index.php;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;

        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        add_header X-Frame-Options "SAMEORIGIN";
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    }

    location / {
        index index.php;
        try_files $uri $uri/ /index.php?$args;
    }

    location ~* \.(js|png|jpg|jpeg|gif|ico|css|woff2|svg|ttf|woff)$ {
        access_log off;expires 365d;log_not_found off;
    }

    location ~ /\.well-known/acme-challenge { allow all;}
    location ~* /(uploads|files)/.*\.php$ { deny all; }
    location = /favicon.ico { log_not_found off; access_log off; }
    location ~ /\. { deny all; }
    location = /robots.txt { allow all; log_not_found off;  access_log off; }
}