部署了两天,踩了无数坑,终于搞定了。话不多说,直接上干货,这篇主要讲述配置文件如何配置
uwsgi配置flask项目
uwsgi可以通过两种方式启动
方式一(安装uwsgi成功后执行该命令):
uwsgi --socket 127.0.0.1:3031 --wsgi-file manage.py --callable app --processes 4 --threads 2 --stats 127.0.0.1:9191
方式二(创建xxx.ini文件,配置该文件然后执行):
可以通过"uwsgi xxx.ini"命令启动uwsgi
[uwsgi]
# uwsgi监听端口(小弟不才,这里也踩了一个坑,0.0.0.0代表的是监听公网,127.0.0.7代表监听本地。一开始我设置了127.0.0.1,然后想从公网访问,却一直失败,捣鼓了好久才知道是这里的问题)
socket = 0.0.0.0:8000
# 项目根目录
chdir = /home/xxx/Project
# flask程序的启动文件
wsgi-file = manage.py
# 程序变量名
callable = app
# 进程数
processes = 4
# 线程数
threads = 2
# 状态检测地址
stats = 127.0.0.1:9191
nginx配置文件(在修改配置文件后得重启nginx)
在/etc/nginx/conf.d/下创建一个xxx.conf文件,在这个文件夹下创建的配置文件会被引用到/etc/nginx/nginx.conf中,原因是nginx.conf中使用了include语句,请看下图
这里写图片描述
配置内容如下:
server{
listen 80;
# 服务器公网IP
server_name xx.xx.xx.xx;
# 日志位置
access_log /xxx/xxx.log;
error_log /xxx/xxx.log;
location / {
include uwsgi_params;
# 指向uwsgi所应用的内部地址,所有请求将转发给uwsgi处理
uwsgi_pass 0.0.0.0:8000;
# 指向虚拟环境(venv),注意是要python执行文件
uwsgi_param UWSGI_PYHOME /home/Project/bin/python;
# 网站根目录
uwsgi_param UWSGI_CHDIR /home/Project/;
# 启动程序
uwsgi_param UWSGI_SCRIPT manage:app;
}
}
如果你想从公网访问的话,需要在阿里云的安全组中添加80端口规则,不知道怎么设置的请百度
最后需要注意的地方是,nginx是最外层的代理,也就是说所有的请求会先通过nginx再到uwsgi,所以测试时请求的端口应该是nginx监听的端口,例如我这里nginx监听的端口是80
下面是一下会用到的命令
启动uwsgi: uwsgi xxx.ini
结束所有uwsgi进程: killall -9 uwsgi
启动nginx: service nginx start
重启nginx: service nginx restart(在修改配置文件后得重启nginx)
查询相关的进程运行情况:ps -ef|grep nginx
网友评论