【发布时间】:2016-04-22 11:45:04
【问题描述】:
我正在运行一个使用 Gunicorn 和 Nginx 作为反向代理的 Python Flask 应用程序。页面由 Gunicorn 提供,Nginx 直接从我的静态文件夹提供文件。
除了我在静态资源上得到 404 之外,它工作正常。
我在 Flask 中设置了自定义错误处理程序,以在 HTTP 错误代码上显示“漂亮”的错误页面。当我请求一个不存在的页面时,这也可以正常工作。 但是,当静态资源不存在时,nginx 会提供自己的默认 404 页面,而不是 Flask 应用程序的 404 页面(这是有道理的,因为它绕过了 Gunicorn)。如果遇到提供静态资源的错误,有没有办法告诉 nginx 通过 Gunicorn 提供 Flask 错误处理程序页面?
这是我当前用于此服务器的 nginx 配置文件:
server {
listen 80;
server_name example.com;
access_log /home/aaron/dev/apwd-flask/logs/access.log;
error_log /home/aaron/dev/apwd-flask/logs/error.log;
location / {
include proxy_params;
proxy_pass http://localhost:8000;
}
location /static {
alias /home/aaron/dev/apwd-flask/app/static/;
}
}
我正在考虑(希望)我可以使用 error_page 指令将控制权交还给 Gunicorn,并告诉它为适当的自定义错误处理程序提供服务,但无法弄清楚这是否可能或如何去做来自文档。
【问题讨论】:
标签: python http nginx flask gunicorn