uwsgi配置
uwsgi安装
安装uwsgi
pip install uwsgi
启动uwsgi
uwsgin --ini uwsgi.ini
# 后台启动
nohup uwsgi --ini uwsgi.ini &
uwsgi配置
[uwsgi]
# 是否作为主进程
master = true
# 启动uwsgi的端口号,非项目端口,
http=:8080 # 坑:这里用http可以直接用外网访问,如果要用nginx代理则需要改成socket
# 项目目录
chdir = /home/paul/tb_commodity/
# 启动文件
wsgi-file=/home/paul/tb_commodity/manage.py
# 实例Flask对象的app名如果是(all_app)则写callable=all_app
callable=app
# 进程数
processes=4
# 线程数
threads=2
buffer-size = 65536
vacuum=true
# pid存储的路径
pidfile =./uwsgi.pid
# python环境
home=/home/paul/virtual_env/tb_commodity_env/
# 启动文件名,如果是app则写app
module=manage
nginx安装部署
nginx安装
配置EPEL源
sudo yum install -y epel-release
sudo yum -y update
安装Nginx
yum install -y nginx
启动Nginx
systemctl start nginx
停止nginx
systemctl stop nginx
重启nginx
systemctl restart nginx
查看nginx状态
systemctl status nginx
禁止开机启动nginx
systemctl disable nginx
nginx配置
# flask项目
server {
# 监听你外网访问的端口号
listen 80;
# 配置域名或者ip
server_name 121.199.68.77;
location /{
include uwsgi_params;
# 转发到那个地址,转发到uwgi的地址,在通过uwsgi来启动我们的项目
uwsgi_pass 0.0.0.0:8999;
uwsgi_connect_timeout 60;
}
}
坑
uwsgi配置中的坑
1.如果要看uwsgi启动没有,可以用用命令netstat -anp|grep 端口号
来查看,这里的端口号,不是你项目中的端口号,而是你在uwsgi中配置的端口号
2.uwsgi中,如果你用的是http=:8080
则可以通过外网直接来访问,但是用nginx代理会报错,我报的错误是504
和502
,而如果要用nginx来反向代理的话需要改成socket=:8080
,但是改成socket后,直接访问uwsgi访问不了。(个人碰到比较坑的地方)
3.如果是云服务器,一定不要忘记安全组要放行端口,刚开始就是直接启动服务,怎么都访问不了。能ping通ip的话,端口访问不了,就从服务器控制台-安全组,防火墙,SElinux来排查。
技术支持
安装nginx技术支持:https://yq.aliyun.com/articles/699966