flask+nginx+uwsgi部署

1 篇文章 0 订阅
1 篇文章 0 订阅

最近写了个网站的demo想部署到买的阿里云上,真的艰辛啊,不知道为什么我会遇到那么多奇怪的问题。因此记录一下。

首先是进入服务器,安装pip3,可以先update下apt-get。

apt-get install python3-pip

然后安装虚拟环境

pip3 install virtualenv 

创建虚拟环境并激活环境

virtualenv venv

source venv/bin/activate  

然后通过scp或者git将项目传到服务器。

然后将环境配置下,通过pip freeze > requirements.txt 将安装的包写入文件,然后一键安装

pip3 install -r requirements.txt

然后安装uwsgi

pip3 install uwsgi 

并安装nginx

apt-get install nginx

下面进行配置,首先在项目的目录中创建一个uwsgi.ini的配置文件

[uwsgi]
socket=127.0.0.1:8080
wsgi-file=runserver.py   //启动文件
chdir = /home/mrgj         //项目根目录
home = /home/mrgj/venv    //项目的虚拟环境
callable=app                          
master=true    
logto = /home/mrgj/log/text.log    //日志的位置
processes=4
threads=2
stats=127.0.0.1:9191

可以直接运行

uwsgi uwsgi.ini 

 然后修改nginx的默认配置文件,一般在/etc/nginx/sites-enabled/default,可以直接删掉写一个新的。

server {
    listen 80;
    server_name 47.102.150.26;
    charset utf-8;
    client_max_body_size 75M;

    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8080;
        #uwsgi_param UWSGI_PYTHON /home/mrgj/venv/bin/python;
        #uwsgi_param UWSGI_CHDIR /home/mrgj/runserver;
        #uwsgi_param UWSGI_SCRIPT runserver:app ;
    }
}

现在重启下nginx,后在运行uwsgi.ini

service nginx restart 

大功告成,不过你会发现不能一直 开着,要使其随同服务器启动并作为后台服务运行就要用到Supervisor

先安装

apt-get install supervisor

然后在/etc/supervisor/conf.d/创建一个新的配置文件my.conf

[program:mrgj]
command=uwsgi --ini /home/mrgj/uwsgi.ini

directory=/home/mrgj

user=root

autostart=true
autorestart=true
stdout_logfile=/home/mrgj/log/uwsgi_supervisor.log

这里和上面差不多将相应的地方换成你自己的目录就行啦 ,然后重载下

 supervisorctl reload

检查uwsgi进程是否正常运行

ps aux | grep uwsgi 

至此大工告成,愉快的访问自己的网站吧! 

  

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值