Nginx und Apache, wie konfiguriert man Proxy-Cache?

Nginx und Apache, wie konfiguriert man Proxy-Cache?

Ich habe Nginx als Frontend-Proxy für Apache installiert, wobei Apache PHP und Nginx statische Dateien bedient. Ich habe ein Problem damit, Nginx so zu konfigurieren, dass die Ausgabe von PHP in einer statischen Datei zwischengespeichert wird. Ich habe es mit proxy_cache versucht, aber offensichtlich mache ich etwas falsch.

Hier ist meine Basiskonfiguration:

    server {
            listen   80;

            root /var/www/web;
            index index.php index.html index.htm;

            server_name web.com;

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

            # cache static files
            location ~*  \.(jpg|jpeg|png|gif|ico|css|js)$ {
                    expires 365d;
                    access_log off;
                    add_header Cache-Control public;
            }

            location ~ \.php$ {
                    proxy_pass http://127.0.0.1:8080;

                    # Set header to be what we requested
                    proxy_set_header        Host    $host;
                    # Set proxy_cache expiry time
                    proxy_cache_valid  200 302  5m;
                    proxy_cache_valid  404      1m;
                    proxy_cache_valid  301      1h;
                    # Need this for snooping with tcpdump (turns off upstream compression)
                    proxy_set_header        Accept-Encoding  "";
                    # Set real IP header (needed for client IP detection in apache)
                    proxy_set_header  X-Real-IP  $remote_addr;
                    # Explicitly allow critical headers
                    proxy_pass_header Set-Cookie;
                    # Prevent 304 responses being returned from Apache and cached by nginx
                    proxy_set_header If-None-Match "";
            }

            location ~ /\.ht {
                    deny all;
            }
    }

Antwort1

SatzProxy-Cache-Pfadin Ihrem http{} - Kontext und definieren Sie Ihre Zone und Parameter

http { 
...

proxy_cache_path /tmp/cache/blue blue:100m ...;
proxy_cache_path /tmp/cache/white white:100m  ...;

... 
}

SatzProxy-Cachezone/off im entsprechenden Server/Standort-Kontext und deine Optionen sowie

zB Cachepfade global definieren und für jeden Server/Standort aktivieren/deaktivieren

location /blue {


proxy_cache blue;
proxy_cache_...


}

location /white {


proxy_cache white;
proxy_cache_...


}


location /red {


proxy_cache off;
proxy_cache_...


}

Vorsicht, Ihre zwischengespeicherten Dateien liegen im Binärformat vor

verwandte Informationen