Falsk的建立这里再叙述,主要说的是部署方面的内容。
使用gunicorn部署Flask程序
安装gunicorn
pip install gunicorn
使用gunicorn启动flask
gunicorn -w4 -b0.0.0.0:8080 web:app
注:web为主程序的名字
此时,我们需要用 8080 的端口进行访问,原先的5000并没有启用。其中 gunicorn 的部署中,,-w 表示开启多少个 worker,-b 表示 gunicorn 开发的访问地址。
结束gunicorn 需要执行 pkill gunicorn,我们还可以使用一个进程管理工具来管理系统的进程----supervisor
安装supervisor
pip install supervisor
echo_supervisord_conf > supervisor.conf # 生成 supervisor 默认配置文件
vim supervisor.conf # 修改 supervisor 配置文件,添加 gunicorn 进程管理
在 supervisor.conf配置晚间底部添加
[program:web]
command=/home/zxjd/Web/venv/bin/gunicorn -w4 -b0.0.0.0:8080 web:app ; supervisor启动命令
directory=/home/zxjd/Web/ ; 项目的文件夹路径
startsecs=0 ; 启动时间
stopwaitsecs=0 ; 终止等待时间
autostart=false ; 是否自动启动
autorestart=false ; 是否自动重启
stdout_logfile=/home/zxjd/Web/log/gunicorn.log ; log 日志
stderr_logfile=/home/zxjd/Web/log/gunicorn.err ; 错误日志
supervisor的基本使用命令
supervisord -c supervisor.conf 通过配置文件启动
supervisorsupervisorctl -c supervisor.conf status 察看supervisor的状态
supervisorctl -c supervisor.conf reload 重新载入 配置文件
supervisorctl -c supervisor.conf start [all]|[appname] 启动指定/所有 supervisor管理的程序进程
supervisorctl -c supervisor.conf stop [all]|[appname] 关闭指定/所有 supervisor管理的程序进程
supervisor还可以使用web的管理界面,相关配置请看其他教程
使用supervisor启动gunicorn。
supervisord -c supervisor.conf
安装配置Nginx
sudo apt-get install nginx
可以采用supervisor管理Nginx进程
supervisor的配置如下:
[program:nginx]
command=/usr/sbin/nginx
startsecs=0
stopwaitsecs=0
autostart=false
autorestart=false
stdout_logfile=/home/zxjd/Web/log/nginx.log
stderr_logfile=/home/zxjd/Web/log/nginx.err
Nginx的配置:
配置文件为/etc/nginx/sites-avaliable/default
server {
listen 80;
server_name example.org; # 这是HOST机器的外部域名,用地址也行
location / {
proxy_pass http://127.0.0.1:8080; # 这里是指向 gunicorn host 的服务地址
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
启动服务
supervisor -c supervisor.conf start all
根据主机的ip地址和8080端口其他客户端就可以访问了。