Flask基本的配置和代码就暂时不贴了,这里主要是说一下nginx + gunicorn的通信。
首先是gunicorn的配置 gun.conf:
import os
bind = '127.0.0.1:5000' # 你想要绑定的IP地址和端口号
workers = 8 #启动的进程数
backlog = 2048
worker_class = "gevent" #使用gevent模式
dubug = True
chdir = '你flask应用的路径'
proc_name = 'gunicorn.proc' #为你的gunicorn起一个名字
你的flask的app.py文件:
from flaskserver import app
if __name__ == '__main__':
app.run()
app.py文件位于你项目的根目录。
首先在你的虚拟环境(如果是全局配置则不需要)下进去你flask项目的根目录(与)gun.conf同级目录
使用命令:
gunicorn -k gevent -c gun.conf app:app
这里会启动8个进程,如果出现以下代码则说明启动成功
[2019-03-06 16:56:02 +0800] [47734] [INFO] Starting gunicorn 19.9.0
[2019-03-06 16:56:02 +0800] [47734] [INFO] Listening at: http://127.0.0.1:5000 (47734)
[2019-03-06 16:56:02 +0800] [47734] [INFO] Using worker: gevent
[2019-03-06 16:56:02 +0800] [47737] [INFO] Booting worker with pid: 47737
[2019-03-06 16:56:02 +0800] [47738] [INFO] Booting worker with pid: 47738
[2019-03-06 16:56:02 +0800] [47739] [INFO] Booting worker with pid: 47739
[2019-03-06 16:56:02 +0800] [47740] [INFO] Booting worker with pid: 47740
[2019-03-06 16:56:02 +0800] [47741] [INFO] Booting worker with pid: 47741
[2019-03-06 16:56:02 +0800] [47742] [INFO] Booting worker with pid: 47742
[2019-03-06 16:56:02 +0800] [47743] [INFO] Booting worker with pid: 47743
[2019-03-06 16:56:02 +0800] [47744] [INFO] Booting worker with pid: 47744
为了设置后台启动则需要对命令行增加 -D --daemon参数来做进程守护。
然后是nginx的配置:
server {
listen 80; #你对外暴露的端口号
server_name xxx.xxx.xxx.xxx; # 你监听的IP或者你的公网域名
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://127.0.0.1:5000; # 你的gunicorn配置的ip和端口号
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
这样就完成了nginx的转发。