1,首先关闭selinux,或者设置selinux规则,否则会报502错误,nginx后台报错(13: Permission denied) while connecting to upstream。
我在这儿未设置selinux规则,直接:
setenforce 0
2,编写uwsgi的配置文件uwsgi.ini
[uwsgi]
chdir=/root/miniblog/Blog_mini
home=/root/miniblog/myenv
ibuffer-size=32768
module=manage
callable=app
master=true
processes=2
socket=%(chdir)/mysite.sock
chmod-socket=666
logfile-chmod=644
daemonize=%(chdir)/uwsgi.log
uid=root
gid=root
procname-prefix-spaced=mysite
stats = 0.0.0.0:9191
chdir为项目地址
home是python的bin所在地址
ibuffer限制文件大小
module为项目入口文件
callable是项目中的运行app
master设置主进程
processes设置进程个数
socket设置nginx和uwsgi通信的中间文件
chmod-socket设置中间文件的权限
uid和gid设置运行用户
procname设置进程的名称
stats设置uwsgi使用的端口号
3,nginx配置
文件:/etc/nginx/conf.d/default.conf
server {
listen 80;
server_name 127.0.0.1;
charset utf-8;
client_max_body_size 5M;
location / {
include uwsgi_params;
uwsgi_pass unix:/root/miniblog/Blog_mini/mysite.sock;
}
location /static {
alias /root/miniblog/Blog_mini/app/static;
}
}
文件:/etc/nginx/nginx.conf
user一行改为
user root;
因为是用root来运行的,和uwsgi配置中的uid对应。 4,启动uwsgi和nginx
启动uwsgi
uwsgi --ini uwsgi.ini
启动nginx systemctl start nginx
然后可以访问主机ip,测试web应用是否可用
5,更新代码之后的重载:
可以在uwsgi.ini文件中添加这么一行,制定uwsgi的pid文件
pidfile=/tmp/myuwsgi.pid
然后只需要:
uwsgi --reload /tmp/myuwsgi.pid
就可以重载uwsgi
6,uwsgi进程查看:
根据uwsgi.ini文件中的procname-prefix-spaced可以查看
例如:
procname-prefix-spaced=mysite
查看:
ps aux|grep mysite
这样可以对uwsgi进程kill,
或者直接读去pidfile中的进程号。