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
    评论
Flask是一个基于Python的轻量级Web框架,它提供了简单易用的工具来构建Web应用程序。Flask具有灵活的设计,可以根据需求进行扩展和定制。它支持RESTful风格的API开发,并且具有良好的可扩展性,适用于开发小型到中型的Web应用。 uWSGI是一个Web服务器和应用服务器,它可以将Web应用程序从框架中分离出来,并通过WSGI协议与框架进行通信。它支持高并发和负载均衡,并且具有内置的缓存机制和性能监控。uWSGIFlask配合使用可以提高Web应用程序的性能和稳定性。 Nginx是一个高性能的开源HTTP服务器和反向代理服务器。它可以处理大量并发连接,并能有效地分发请求到后端服务器。Nginx的反向代理功能可以将请求转发给uWSGI服务器,然后由uWSGI服务器处理Flask应用程序的逻辑。 使用FlaskuWSGINginx的组合可以实现一个高性能的Web应用程序架构。首先,Flask用于开发Web应用程序的逻辑和路由。然后,uWSGI作为应用程序服务器,将Flask应用程序加载到内存中,并以WSGI协议与Nginx进行通信。最后,Nginx作为前端服务器,通过负载均衡和反向代理将请求分发到uWSGI服务器。 这种架构可以提供高并发、可扩展和稳定的Web应用程序。Flask提供了优雅的开发方式,uWSGI处理应用程序的逻辑和性能优化,而Nginx作为前端服务器提供高性能的负载均衡和反向代理。整个架构可以根据需求进行灵活的配置和扩展,以满足不同规模的Web应用程序的需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值