nginx + uwsgi + flask - wyłączanie niestandardowych stron błędów
Czy można wyłączyć niestandardowe strony błędów nginx - jeśli mogę je tak nazwać - aby wyświetlić strony wyjątków mojego systemu?
Naprawdę nie widzę mojego narzędzia debugera werkzeug renderowanego w html ...
AKTUALIZACJA
OK, muszę zrobić bardzo prostą aplikację do kolb i będę publikować bity:
/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)
Zmienna środowiskowa PYTHONPATH:
$ echo $PYTHONPATH
/home/my_user/dev/
Jak prowadzę uwsgi:
$ uwsgi -s /tmp/uwsgi.sock --module nginx_test --callable app
Jak uruchamiam nginx:
$ nginx -c ~/.virtualenvs/nginx-test/etc/nginx.conf -p ~/.virtualenvs/nginx-test/lib/nginx/
Jeśli trafię na stronę główną:
Jeśli uruchomię nginx ręcznie, jak:
python /home/my_user/dev/nginx_test/___init___.py
Zobaczę zamiast tego i co chcę zobaczyć:
Oczywiście upewniłem się, że zadziała, gdy nie zgłosiłem wyjątku, ale zwróciłem „Hello World” na przykład na moją funkcję index ().
Dotyczy to niestandardowych stron błędów w .NET. Chcę to wyłączyć i pozwolić nginx / uwsgi przekazać html wygenerowany przez debuger bezpośrednio do przeglądarki zamiast wewnętrznego błędu serwera.
AKTUALIZACJA 2
Teraz, jeśli zmienię aplikację kolby, aby włączyć tryb debugowania:
/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)
Wtedy otrzymuję błąd 502.
Ale jeśli zamiast podnieść wyjątek:
/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)
Dostaję „Hello World” w mojej przeglądarce, gdy trafię na stronę (http: // localhost: 5000).