Gunicorn+Nginx 部署Flask应用
Gunicorn
Gunicorn是一个应用容器,用来处理并发请求。使用如下。
安装
1 | pip3 install gunicorn |
使用
- 开启服务
切换到Flask应用根目录1
gunicorn rocket:app -p rocket.pid -D
其中,rocket
为应用文件名rocket.py
,app
为该文件中的app实例名,-p rocket.pid
:将应用的进程id存在文件中,-D
:后台运行。
上面命令运行后,程序默认运行在127.0.0.1:8000,可使用-b 127.0.0.1:7999
更换端口
- 停止服务
1
kill cat rocket.pid
使用Nginx代理
Gunicorn是运行在本地的,如果需要外网访问,可使用Nginx代理。也就是当外网访问某个地址时,将请求转发给Gunicorn处理。
配置Nginx
- 编写配置
在/etc/nginx/site-available
新建一个文件,名字随意比如site.conf
,内容如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19server {
listen 443;
server_name *****.cn; #填写绑定证书的域名
ssl on;
ssl_certificate 1_******.crt;
ssl_certificate_key 2_******.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
location / {
root /var/www/html;
index index.html index.htm;}
location /api/ {
proxy_pass http://127.0.0.1:8000/;
}
}
说明:上面这个配置开启了443端口的监听也就是监听https
,如果配置在80端口则所有ssl的配置都不需要。证书位置如果是上述格式需将文件放在nginx
根目录下。
location
:访问http://yourdomain/api/test.txt
会匹配到Flask中的http://127.0.0.1:8000/test.txt
,注意在:8000
后加/
。
创建软连接
sudo ln -s /etc/nginx/sites-available/site.conf /etc/nginx/sites-enabled/site.conf
重启nginx
service nginx restart
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com
文章标题:Gunicorn+Nginx 部署Flask应用
本文作者:子非鱼
发布时间:2019-05-03, 10:08:49
最后更新:2019-05-03, 10:55:57
原始链接:https://Wangsr.cn/2019/05/03/Gunicorn-Nginx-部署Flask应用/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。