当我在gunicorn上运行Flask应用程序时设置app.wsgi_app = ProxyFix(app.wsgi_app)会发生什么?

 rorather_0979107 发布于 2023-02-10 14:15

我使用Flask构建了一个基本的Web应用程序,并且能够使用其本机http服务器从虚拟机运行它.我很快意识到,通过这个设置,请求被阻止(我无法对资源进行并发请求;任何新请求都要等到早期请求完成),并决定尝试使用gunicorn运行应用程序来解决此问题.我按照文档,特别是使用此行运行:

gunicorn -w 4 -b 127.0.0.1:4000 myproject:app 

但是,它无法启动这样做,并抱怨没有WSGI应用程序.在互联网上闲聊,我发现有很多人发布了以下示例:

from werkzeug.contrib.fixers import ProxyFix
app.wsgi_app = ProxyFix(app.wsgi_app)

我补充说,它解决了我的问题.我很困惑,因为这显然是为了解决在HTTP代理后面服务的问题,但是增加的gunicorn会强加一个HTTP代理吗?或者我总是落后于代理,而Flask的内置服务器并不重要?

此外,Werkzeug关于Fixers的文档警告"出于安全原因,不要在非代理设置中使用此中间件." 考虑到修复显然是必要的,我可以假设我正在进行代理设置吗?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有