美文网首页
阿里云服务器部署flask

阿里云服务器部署flask

作者: 小道小姐姐 | 来源:发表于2018-06-25 15:47 被阅读0次

记录一下将本地的flask web后台部署到阿里云服务器的整个过程:

  1. 安装python环境
    由于不同的项目可能会引用不同的python包,为了避免不同版本和应用之间的冲突而造成“依赖地狱”,我们使用virtualenv为不同的应用创建独立的开发环境:
   pip install virtualenv
   mkdir myproject
   cd myproject
   python3 -m venv venv

激活venv:
. venv/bin/activate

  1. 将代码从本地上传到服务器上
    使用scp命令上传代码
  2. 安装uwsgi并配置
(venv)my_flask_project root$ pip install uwsgi

接着需要配置uwsgi, 在项目目录下创建一个config.ini,如下所示:

[uwsgi]

# uwsgi 启动时所使用的地址与端口
socket = 127.0.0.1:8001 

# 指向网站目录
chdir = /home/www/ 

# python 启动程序文件
wsgi-file = manage.py 

# python 程序内用以启动的 application 变量名
callable = app 

# 处理器数
processes = 4

# 线程数
threads = 2

#状态检测地址
stats = 127.0.0.1:5000

这边的stats是flask起服务时的端口号,socket是uwsgi起的端口号。

  1. 下载supervisor并配置
    下载配置好uwsgi后并没有大功告成,我们需要对应用的进程进行保护,在进程异常中断时能够重启。supervisor便是用来实现进程保护。
    安装:
apt-get install supervisor

Supervisor 的全局的配置文件位置在:

/etc/supervisor/supervisor.conf

正常情况下我们不需要对该文件进行任何操作,只需要添加一个新的*.conf即可,比如在该目录下新建一个my_flask_supervisor.conf,并进行如下配置:

[program:my_flask]
# 启动命令入口
command=/home/www/my_flask/venv/bin/uwsgi /home/www/my_flask/config.ini
# 命令程序所在目录
directory=/home/www/my_flask
#运行命令的用户名
user=root
autostart=true
autorestart=true
#日志地址
stdout_logfile=/home/www/my_flask/logs/uwsgi_supervisor.log  

启动supervisor
ubantu

service supervisor start

centos :
supervisord
停止supervisor

service supervisor stop
  1. 配置nginx
    找到nginx.conf
    由于我是https协议,所以监听的端口号是443,如果是http协议,则对应的端口号为80。配置如下:
  server {
      listen  443;
      server_name XXX.XXX.XXX; #公网地址
    
      location / {
        include      uwsgi_params;
        uwsgi_pass   127.0.0.1:8001;  # 指向uwsgi 所应用的内部地址,所有请求将转发给uwsgi 处理
        uwsgi_param UWSGI_PYHOME /home/www/my_flask/venv; # 指向虚拟环境目录
        uwsgi_param UWSGI_CHDIR  /home/www/my_flask; # 指向网站根目录
        uwsgi_param UWSGI_SCRIPT manage:app; # 指定启动程序
      }
      location ~/uri {
        include      uwsgi_params;
        uwsgi_pass   127.0.0.1:8001;  # 指向uwsgi 所应用的内部地址,所有请求将转发给uwsgi 处理
        uwsgi_param UWSGI_PYHOME /home/www/my_flask/venv; # 指向虚拟环境目录
        uwsgi_param UWSGI_CHDIR  /home/www/my_flask; # 指向网站根目录
        uwsgi_param UWSGI_SCRIPT manage:app; # 指定启动程序
      }
    }

另外 在python代码中app.route('uri/')
uri后面需要加/,否则会报404

相关文章

网友评论

      本文标题:阿里云服务器部署flask

      本文链接:https://www.haomeiwen.com/subject/rsueyftx.html