2016-07-25 14 views
0

i nächste Konfiguration nginx haben:nginx dienen Lage mit Proxy-Pass und den Ort mit Fehlerseiten

http { 

... 

server { 
    listen 80; 
    server_name localhost; 

    # Only allow these request methods 
    if ($request_method !~ ^(GET|HEAD|POST)$) { 
    return 444; 
    } 

    location/{ 
    proxy_cache cache; 
    proxy_cache_valid 10m; 
    proxy_cache_valid 404 1m; 
    proxy_pass http://localhost:8888/; 
    proxy_redirect off; 
    proxy_buffering off; 
    proxy_read_timeout 150; 
    proxy_connect_timeout 300; 
    proxy_intercept_errors on; 

    if (-f /usr/share/nginx/closed) { 
     return 503; 
    } 

    .... 

    } 
... 
} 

Jetzt brauche ich benutzerdefinierte Fehlerseiten mit eingeschlossen css und js, kann ich dies tun

error_page 404 /404.html; 
    location /404.html { 
    root /usr/share/nginx/html; 
    } 

Und das funktioniert, aber ich kann 404.css und 404.js für ein Beispiel nicht dienen, ich kann nur 404.html sehen.

fand ich diesen Fall css und js für Fehler Seite zu dienen:

error_page 500 502 503 @error_page; 

    location @error_page { 
    root /var/nginx/app/htdocs; 
    internal; 
    } 

Aber es ist aus irgendeinem Grund nicht für mich arbeiten. Wie kann ich Server benutzerdefinierte Fehlerseiten mit CSS und JS enthalten?

+1

Würden die CSS und JS nicht von Ihren normalen Dateien geliefert werden? Sie müssen die Pfade korrekt behandeln, da Sie wahrscheinlich relative Pfade nicht verwenden können. – Toby

Antwort

0

Ich denke, Toby hat Recht. Sie sollten ein/static/location (oder ähnliches) einrichten, um Ihre statischen Dateien zu liefern, und das sollte außerhalb Ihres Root-Verzeichnisses liegen, das den proxy_pass enthält. Und dann sollte Ihre Fehlerseite auf die richtigen URLs zu den statischen Assets verweisen (z. B. /static/404.css). Ihre 404.css und 404.js würden nur wie jedes andere Asset serviert werden.

server { 
    listen 80; 

    ... 

    location /static/ { 
     alias /path/to/htdocs/static/; 
     access_log off; 
    } 

    location/{ 

     .... 
    } 


} 
+0

tat ich. Funktioniert nicht. – dikkini