是否可以禁用 nginx 的自定义错误页面 - 如果我可以这样称呼它们 - 以显示我的框架的异常页面?
我真的看不到我的 werkzeug 调试器工具以 html 呈现...
更新
好的,我必须制作一个非常简单的烧瓶应用程序才能工作,我将发布这些位:
/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)
PYTHONPATH 环境变量:
$ echo $PYTHONPATH
/home/my_user/dev/
我如何运行 uwsgi:
$ uwsgi -s /tmp/uwsgi.sock --module nginx_test --callable app
我如何运行 nginx:
$ nginx -c ~/.virtualenvs/nginx-test/etc/nginx.conf -p ~/.virtualenvs/nginx-test/lib/nginx/
如果我点击根页面:
如果我像这样手动运行 nginx:
python /home/my_user/dev/nginx_test/___init___.py
相反,我会看到,以及我想看到的:
当然,当我没有引发异常时,我确保它会起作用,而是在我的 index() 函数中返回“Hello World”。
这被称为 .NET 中的自定义错误页面。我想禁用它,让 nginx/uwsgi 将调试器生成的 html 直接传递给浏览器,而不是内部服务器错误的东西。
更新 2
现在,如果我通过以下方式更改我的烧瓶应用程序以启用调试模式:
/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)
然后我得到502错误。
但是,如果我不提出异常:
/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)
当我点击页面(http://localhost:5000)时,我的浏览器上会出现“Hello World”。