2012-04-01 12 views
2

Hallo Ich versuche, eine benutzerdefinierte 502-Seite auf einer Website arbeiten und kann nicht scheinen, es funktioniert zu bekommen.nginx + uwsgi benutzerdefinierte 502 wird nicht funktionieren

Im Grunde die Art, wie ich es teste, ist, ich halte nur uwsgi und Zugriff auf die Seite und jedes Mal, wenn ich die Standard-Nginx 502-Seite. Kann mir bitte jemand erklären, wie das funktioniert? Ich bin seit über einer Woche mit 0 Erfolg dabei. Ich habe eine Datei namens 502.html in public_html und ich kann direkt darauf mit http://ask.ploy.io/502.html zugreifen, aber sobald ich uwsgi stoppe und versuche, auf die Hauptdomäne http://ask.ploy.io zuzugreifen, bekomme ich die Standard 502 Seite. Hier ist die vhost config:

### nginx vhost conf for ployio 
server { 
listen 80; 
server_name ask.ploy.io www.ask.ploy.io; 

access_log /usr/local/apache/domlogs/ask.ploy.io main; 
error_log /home/ployio/access-logs/ask.ploy.io debug; 

root /home/ployio/public_html; 
index index.html index.htm index.php; 

location /502.html { 
root /home/ployio/public_html; 
} 

location ~ /\.ht { 
    deny all; 
} 

location/{ 
    error_page 404 403 = @uwsgi; 
    log_not_found off; 
    error_page 502 /502.html; 
    root /home/ployio/public_html; 

} 

location @uwsgi { 
    internal; 
    uwsgi_pass unix:/home/ployio/.uwsgi/uwsgi.sock; 
    include /usr/local/nginx/conf/uwsgi_params; 
} 

location ~* ^.*\.php$ { 
    if (!-f $request_filename) { 
     return 404; 
    } 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header Host $host; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_pass http://204.61.223.114:8888; 
} 

location /cpanel { 
    rewrite ^/(.*) https://cpanel.ask.ploy.io:2083/$1 permanent; 
} 

} 

Antwort

0

Wenn 502 ist es der einzige Fehlercode, den Sie mit einer benutzerdefinierten Fehlerseite behandeln möchten, müssen Sie nur um genau zu sein in der Lage:

location /502.html { 
    root /home/ployio/public_html; 
} 

Ihr aktueller Standort ist nur mit dem genauen „/50x.html“ Weg angepasst ist, die in der Tat nicht in Ihrem Server nicht vorhanden ist: http://ask.ploy.io/50x.html

zu Es ist auch möglich, mit nginx Variablen ($ uri oder etwas ähnliches), die Wurzel alle 50x Fehler umleiten Verzeichnis, aber für Ihre Bedürfnisse sollte dies sein genug.

+0

Ok saugt so habe ich es aussehen das ... 'root/home/ployio/public_html; index index.html index.htm index.php; error_page 500 502 503 504 /502.html; Standort /502.html { root/home/ployio/public_html; } ' –

+0

Und es funktioniert immer noch nicht. –

+0

Versuchen Sie, auch in der error_page-Direktive genauer zu sein. Verwenden Sie 'error_page 502/502.hml'. Es ist auch möglich, dass Ihre ursprüngliche nginx-Konfiguration funktioniert, wenn Sie Ihre 502.html-Datei in 50x.html umbenennen. – ygneo

0

Das Hauptproblem ist in der location @uwsgi Abschnitt .. es scheint nie die 502 Rückgabe richtig zu behandeln .. vielleicht durch Design?

Dies ist eine Arbeits Config

server { 
    listen 80; 
    server_name ask.ploy.io www.ask.ploy.io; 

    access_log /usr/local/apache/domlogs/ask.ploy.io main; 
    error_log /home/ployio/access-logs/ask.ploy.io debug; 

    root /home/ployio/public_html; 
    index index.html index.htm index.php; 

    location/{ 
     uwsgi_pass unix:/home/ployio/.uwsgi/uwsgi.sock; 
     include /usr/local/nginx/conf/uwsgi_params; 
    } 

    error_page 502 503 504 @maintenance; 
    location @maintenance { 
     root /home/ployio/public_html_502; 
     rewrite ^(.*)$ /502.html break; 
    } 

} 

Stellen Sie sicher, dass die 502.html in einer neuen Wurzel setzen und dort verweisen .. ps .. randall

+0

"Randall saugt" ist völlig unnötig –

Verwandte Themen