flask通过nginx转发80端口
背景
最近做一个项目通过flask框架完成,由于flask默认端口是5000,为了不暴露端口,需要使用80,但是发现flask直接用80端口无法使用,后面就想到通过该80端口进行转发。
依赖包
-
gunicorn
Gunicorn是一个unix上被广泛使用的高性能的Python WSGI UNIX HTTP Server。和大多数的web框架兼容,并具有实现简单,轻量级,高性能等特点。
具体参考: Gunicorn -
flask
文档: flask
nginx配置
server {
listen 80;
server_name 127.0.0.1; # 实际外界访问的地址
location / {
proxy_pass http://127.0.0.1:5001/; # 对应不同环境访问的地址
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
gunicorn配置
# 并行工作线程数
workers = 4
# 监听内网端口5000【按需要更改】
bind = '127.0.0.1:5001'
# 设置守护进程【关闭连接时,程序仍在运行】
daemon = False
# 设置超时时间120s,默认为30s。按自己的需求进行设置
timeout = 120
项目启动
gunicorn app:app -c ./gunicorn/gunicorn.conf