博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阿里云部署 Flask + uWSGI + Nginx
阅读量:2240 次
发布时间:2019-05-09

本文共 2795 字,大约阅读时间需要 9 分钟。

一、引言

  今天入手了一台阿里云服务器,是centeros 7.5版本。本文解决的是 Flask 的部署问题。假设你的Flask的应用已经完成,现在只是部署的问题,本文以部署我的二次开发微信订阅号的项目(项目代码参考:)

  我采用的部署方案是:

    - Web 服务器采用 uwsgi host Flask;

    - 用 supervisor 引用 uwsgi 作常规启动服务;

    - 基于 Nginx 作反向代理;

  首先, 阿里云服务器可以通过 SSH 指令在本机的终端进行远程连接

ssh root@云服务器地址

  输入密码后可连接至云服务器。

二、安装python3、安装并配置虚拟环境

  参考博客:

三、在虚拟环境下安装flask以及项目的其他依赖

1、我是用清单文件一次性安装Flask和他的相关依赖的,这样会更快。我的引用清单(requirements.txt)内容如下: 

certifi==2018.11.29chardet==3.0.4Click==7.0Flask==1.0.2Flask-Script==2.0.6idna==2.8itsdangerous==1.1.0Jinja2==2.10MarkupSafe==1.1.0requests==2.21.0SQLAlchemy==1.2.17urllib3==1.24.1Werkzeug==0.14.1

2、安装清单文件中依赖的命令如下:

(wechatEnv) [root@wanglili my_flask]# pip3 install -r requirements.txt

  注意:一定要在运行这个安装之前启用了python 虚拟环境,否则会直接安装到全局去的!

3、上传 Flask的项目文件,整个项目文件结构如下:

/root/my_flask        ├── app        │   ├── __init__.py         │   ├── templates        │   │       └── index.html        │   └── views        │         └── wx_demo.py        ├── logs        ├── manager.py        ├── settings.py        └── requirements.txt

四、安装并配置uWSGI

  到此,项目的准备工作已经做完了,我们接下来要安装uWSGI,使用配置文件的方式启动项目,步骤如下:

(wechatEnv) [root@wanglili my_flask]# pip3 install -i https://pypi.douban.com/simple uwsgi                # 安装uwsgi
(wechatEnv) [root@wanglili my_flask]# touch uwsgi.ini             # 创建配置文件,写入如下内容
[uwsgi]# uwsgi 启动时所使用的地址与端口http-socket = 0.0.0.0:5000# 指向网站目录chdir = /root/my_flask# python 启动程序文件wsgi-file = manager.py# python 程序内用以启动的 application 变量名callable = my_app# 处理器数processes = 4# 线程数threads = 2# 状态检测地址stats = 0.0.0.0:8000

  安装完成后,使用命令启动,验证配置是否正确:

(wechatEnv) [root@wanglili my_flask]# uwsgi uwsgi.ini

五、安装Nginx

1、安装nginx,

2、nginx的配置

server {        listen       80;        # 配置成自己服务器的url地址        server_name  39.xx.xx.130;        ......        location / {             # 配置nginx的反向代理功能,自己服务器的5000端口,因为接下来的项目使用flask,且将其运行在自己的服务器的5000端口            proxy_pass  http://39.xx.xx.130:5000;              # root   html;            # index  index.html index.htm;        }        ......  }

六、安装supervisor并配置

[root@wanglili my_flask]# easy_install supervisor       # 注意此时要退出虚拟环境执行
(wechatEnv) [root@wanglili my_flask]# echo_supervisord_conf > /etc/supervisor.conf      # 使用命令生成supervisor的配置文件
(wechatEnv) [root@wanglili my_flask]# vi /etc/supervisor.conf      # 编辑,在最后写入如下内容
[program:my_flask] # 启动命令入口command=/root/Envs/wechatEnv/bin/uwsgi /root/my_flask/uwsgi.ini # 命令程序所在目录directory=/root/my_flask # 运行命令的用户user=root autostart=trueautorestart=true # 日志地址stdout_logfile=/root/my_flask/logs/uwsgi_supervisor.log
(wechatEnv) [root@wanglili my_flask]# supervisord -c  /etc/supervisor.conf    # 启动supervisord服务端,指定配置文件启动
(wechatEnv) [root@wanglili my_flask]# supervisorctl -c  /etc/supervisor.conf    # 进入supervisor的交互模式,可以启动或者关闭服务supervisor> start my_flask

 

转载于:https://www.cnblogs.com/li-li/p/10390364.html

你可能感兴趣的文章
mysql事务和隔离级别笔记
查看>>
事务的传播属性(有坑点)自调用失效学习笔记
查看>>
REDIS缓存穿透,缓存击穿,缓存雪崩原因+解决方案
查看>>
动态代理实现AOP
查看>>
23种常见的java设计模式
查看>>
ThreadLocal 那点事儿(续集)
查看>>
阳台做成榻榻米 阳台做成书房
查看>>
深入分析java线程池的实现原理
查看>>
mybatis中"#"和"$"的区别
查看>>
Hibernate与MyBatis区别
查看>>
如何禁用Eclipse的Validating
查看>>
据说看完这21个故事的人,30岁前都成了亿万富翁。你是下一个吗?
查看>>
SpringMVC学习笔记2
查看>>
Oracle知识点连载(一)
查看>>
Oracle知识点连载(二)
查看>>
Oracle知识点连载(三)
查看>>
Oracle知识点连载(五)
查看>>
关于三元运算符的类型转换问题
查看>>
笔记本怎么设置WIfi热点
查看>>
如何实现字符串的反转及替换?
查看>>