Hi.
Ich habe einen nginx Server reverse Proxy Server eingerichtet, welcher auf einem kleinen v-Server läuft.
Als Backend Server dient ein Homeserver, der über VDSL angebunden ist.
Auch Node.js und PHP laufen auf dem Homeserver.
Hier die proxy_params
Code:
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_temp_path /tmp/proxy_temp 1 2;
proxy_cache_path /tmp/proxy levels=1:2 keys_zone=my_cache:10m max_size=10m inactive=10m;
proxy_buffering on;
proxy_buffer_size 128k;
proxy_buffers 256 8k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_max_temp_file_size 0;
proxy_read_timeout 30;
hier die Proxy Konfiguration in /sites-available/default
Code:
proxy_cache my_cache;
proxy_cache_use_stale error updating timeout invalid_header http_500 http_502 http_503 http_504;
proxy_intercept_errors on;
proxy_cache_valid 200 1s;
proxy_pass http://some-homehosting.dd-dns.de;
proxy_set_header Host $host;
Der nginx cached nun alles, und liefert auch den letzten Cache Stand aus, wenn der Homeserver down ist.
Allerdings liefert er auch dann aus dem Cache, wenn der Server nicht down ist. Wirklich neu Abgerufen wird nur 1 mal pro Sekunde.
Ich hätte nun gerne, dass nginx im Hintergrund bei einer Anfrage immer aktualisiert, wenn dies möglich ist.
Und nur dann, wenn die Leitung überlastet ist, (sprich, wenn tatsächlich innerhalb von ca 3 Sekunde keine Antwort da ist) oder der Homeserver nicht erreichbar ist, erst dann einspringt.
Wie würde man das hinbekommen?
bei proxy_cache_valid ist der kleinste Wert leider 1 Sekunde.
Grüße
Lesezeichen