gunicorn和flask部署应用时,监听端口以谁为准?

gunicorn -w 4 -b 168.61.9.41:9876 run:app

gunicorn监听端口和flask配置中监听端口一致,此时curl此端口没有问题,可以处理请求。
但是如果两者监听端口不同,比如gunicorn监听A端口,flask配置监听B端口,此时A端口在netstat可以查看状态,B端口则不能,访问A端口返回404,访问B端口则被拒绝(因为未开放?),那么这两者端口的联系是什么呢?gunicorn配置中的端口的意义是什么呢?

我发现,如果flask不配置生产环境监听端口的话,就会以gunicorn为准,但是如果配置的话就要两者一样,是这么个逻辑吗??

阅读 9.4k
3 个回答

flask自带的app.run只适用于用来开发调试,并不适用用于生产环境,一般会配合WGSI容器来进行,也就是gunicorn了,所以你用了gunicorn启动的时候,不应该再使用app.run来启动

你所说的Flask配置的端口,不过是Flask内置的一个开发Web Server而已,官方文档也有说明,不推荐(不能)生产环境使用。
而Gunicorn就是一个WSGI HTTP Server。当你gunicorn -w 4 -b 0.0.0.0:9876 run:app 这样是不需要FLask配置的端口的,因为配置了也没用。

你的问题应该是168.61.9.41 这个IP的问题,你换成0.0.0.0试试。

你需要访问的端口是 9876

gunicorn的为准,你部署gunicorn就是通过它去代理你flask程序的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题