nginx+uwsgi+flask+https 部署与配置

目录

1. 建立虚拟环境并安装配置uwsgi

2. 安装与配置nginx

3. 启动app


1. 建立虚拟环境并安装配置uwsgi

建立和激活虚拟环境:

apt-get install python3-venv
python3 -m venv ~/pyenv/venv
. ~/pyenv/venv/bin/activate

安装wheel与uwsgi:

pip3 install wheel
pip3 install uwsgi

配置uwsgi:

1. 新建一个ini文件,nano /uwsgi/uwsgi.ini,写入:

[uwsgi]
socket = 0.0.0.0:7666
# 项目文件路径
chdir = /xx/xx/xx
# 启动文件路径
wsgi-file = /xxxx/xxxx.py
callable = app
processes = 4
threads = 2

# 设置程序随着python文件变动自动更新
py-autorelouad = 1
# 设置log文件的位置,存储http请求信息和error
logto = /xxxx/xxx.log
# 设置stats文件路径
stats = /uwsgi/uwsgi.status
# 设置pid文件路径(方便重启)
pidfile = /uwsgi/uwsgi.pid

2. 开启uwsgi:

uwsgi --ini /uwsgi/uwsgi.ini &
  • 重启uwsgi:
uwsgi --reload /uwsgi/uwsgi.pid

如果顺序不对导致重启失败,则进入以下步骤:

1. 找到uwsgi的第一个pid,比如6666

ps -aux |grep uwsgi

2. nano /uwsgi/uwsgi.pid,把里面的东西改成刚刚的那个pid

3. 再次重启uwsgi

4. 再次开启uwsgi

如果未配置pidfile导致重启uwsgi失败,则更新配置文件后再次进入以上重启失败的步骤。

2. 安装与配置nginx

1. 安装nginx并启动:

sudo apt-get install nginx
nginx

2. 配置/etc/nginx/nginx.conf,在http{}中加入:

        server{
                listen 80;
                # 监听443端口(默认安全连接)
                listen 443 default ssl;
                # 域名
                server_name www.xxxx.com;

                #ssl on;
                #从腾讯云获取到的第一个文件的全路径
                ssl_certificate ./cert/1_www.xxxx.com_bundle.crt;
                #从腾讯云获取到的第二个文件的全路径
                ssl_certificate_key ./cert/2_www.xxxx.com.key;
                
                location / {
                        include uwsgi_params;
                        # 跳转到的端口
                        uwsgi_pass 0.0.0.0:7666;
                        # 虚拟环境
                        uwsgi_param UWSGI_PYTHON /home/pyenv/venv;
                        # 项目文件的名称
                        uwsgi_param UWSGI_CHDIR /etc/nginx/mylinks;
                        # 项目启动文件为run.py
                        uwsgi_param UWSGI_SCRIPT run:app;
                }
        }
  • 重启nginx:
nginx -c /etc/nginx/nginx.conf

3. 启动app

nohup uwsgi --socket 0.0.0.0:7665 --protocol=http -p 3 -w run:app > &

在与app本身占用的不同的端口启动,不然会报错;这样log文件会在uwsgi配置中logto的位置

  • 手动重启app:
ps -aux |grep uwsgi

然后kill掉所有--socket 0.0.0.0:7665 --protocol=http -p 3 -w run:app的进程并再次启动即可

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值