nginx + uwsgi + flask - Deaktiviert benutzerdefinierte Fehlerseiten

Ist es möglich, die benutzerdefinierten Fehlerseiten von nginx zu deaktivieren, um die Ausnahmeseiten meines Frameworks anzuzeigen?

Ich kann mein werkzeug-Debugger-Tool nicht wirklich in HTML rendern ...

AKTUALISIEREN

OK, ich muss eine sehr sehr einfache Kolbenanwendung erstellen, um zu funktionieren, und ich werde die Teile posten:

/home/my_user/.virtualenvs/nginx-test/etc/nginx.conf

worker_processes 1;
events { worker_connections 1024; }
http {
        server {
                listen 5000;
                server_name localhost;
                access_log /home/my_user/.virtualenvs/nginx-test/lib/nginx/access.log;
                error_log /home/my_user/.virtualenvs/nginx-test/lib/nginx/error.log;

                location / {
                        include uwsgi_params;
                        uwsgi_pass unix:/tmp/uwsgi.sock;
                }
        }
}

/home/my_user/dev/nginx_test/___init___.py

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    raise Exception()

if __name__ == '__main__':
    app.run('0.0.0.0', debug=True)

Umgebungsvariable PYTHONPATH:

$ echo $PYTHONPATH
/home/my_user/dev/

So starte ich uwsgi:

$ uwsgi -s /tmp/uwsgi.sock --module nginx_test --callable app

So starte ich nginx:

$ nginx -c ~/.virtualenvs/nginx-test/etc/nginx.conf -p ~/.virtualenvs/nginx-test/lib/nginx/

Wenn ich auf die Root-Seite gehe:

Wenn ich nginx manuell starte wie:

python /home/my_user/dev/nginx_test/___init___.py

Ich werde stattdessen sehen und was ich sehen möchte:

Natürlich habe ich dafür gesorgt, dass es funktioniert, wenn ich die Ausnahme nicht ausgelöst habe, aber 'Hello World' zum Beispiel für meine index () -Funktion zurückgegeben habe.

Dies bezieht sich auf benutzerdefinierte Fehlerseiten in .NET. Ich möchte dieses deaktivieren und nginx / uwsgi die vom Debugger erzeugte HTML direkt an den Browser anstatt an die interne Serverfehlersache weitergeben lassen.

UPDATE 2

Wenn ich nun meine Kolben-App ändere, um den Debugging-Modus zu aktivieren, geschieht Folgendes:

/home/my_user/dev/nginx_test/___init___.py

from flask import Flask

app = Flask(__name__)
app.config.update(DEBUG=True)
@app.route('/')
def index():
    raise Exception()

if __name__ == '__main__':
    app.run('0.0.0.0', debug=True)

Dann bekomme ich 502 fehler.

Aber wenn ich stattdessen Exception auslöse:

/home/my_user/dev/nginx_test/___init___.py

from flask import Flask

app = Flask(__name__)
app.config.update(DEBUG=True)
@app.route('/')
def index():
    return 'Hello World'

if __name__ == '__main__':
    app.run('0.0.0.0', debug=True)

Ich bekomme 'Hello World' in meinem Browser, wenn ich auf die Seite klicke (http: // localhost: 5000).

Antworten auf die Frage(3)

Ihre Antwort auf die Frage