Nginx: Wie werden Fehlerseiten (404 usw.) mithilfe der UWSGI-URL serverseitig bereitgestellt?

Nginx: Wie werden Fehlerseiten (404 usw.) mithilfe der UWSGI-URL serverseitig bereitgestellt?

Ich weiß, dass es möglich ist, statische Dateien mit error_page in NGinx zu servern, aber ich habe mich gefragt, ob es möglich ist, eine URL von meiner lokalen (gesockelten) Flask-App zu servern, die über UWsgi bereitgestellt wird.

Hier ist die NGinx-Konfiguration:

server {
    listen       80;
    server_name www.myproject.com;
    access_log /var/log/nginx/myproject_frontend.access.log;
    error_log /var/log/nginx/myproject_frontend.error.log;

    # Something like :
    error_page 404 uwsgi_pass unix:/tmp/uwsgi_myproject.sock;/errors/404

    location / { try_files $uri @yourapplication; }
    location @yourapplication {
      include uwsgi_params;
      uwsgi_pass unix:/tmp/uwsgi_myproject.sock;
    }
}

Ist das möglich? Würde es funktionieren, wenn ich statt eines Sockets nur einen lokalen (127.0.0.1) Zugriff erlauben würde?

Vielen Dank für Ihre Einblicke.

Antwort1

Versuchen Sie Folgendes zu ersetzen:

error_page 404 uwsgi_pass unix:/tmp/uwsgi_myproject.sock;/errors/404

von:

error_page 404 /errors/404;

location /errors/ {
    uwsgi_intercept_errors on;
    include uwsgi_params;
    uwsgi_pass unix:/tmp/uwsgi_myproject.sock;
}

Quelle:http://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_intercept_errors

verwandte Informationen