Flask + nginx + gunicorn + super

2018-12-23  本文已影响0人  大锤在学习

原理图

image.png

配置虚拟环境 virtualenv

//安装virtualenv
sudo apt-get install python-virtualenv
//新建虚拟环境 venv
//venv 虚拟环境文件夹
virtualenv -p python3 venv
//使用虚拟环境
source  venv/bin/activate

gunicorn配置

#安装 gunicorn
pip3 install gunicorn
#启动gunicorn
gunicorn app:app_file_name -b localhost:8000 $

配置supervisor

#安装supervisor
sudo apt-get install supervisor

配置supervisor

#在/etc/supervisor/conf.d新建配置文件supervisor.conf
vim /etc/supervisor/conf.d/supervisor.conf
#supervisor.conf内容
[program:idea-worker]
directory=/home/ubuntu/hello_world #项目地址
command=/home/ubuntu/.env/bin/gunicorn app:app_file_name -b localhost:8000 #启动命令
autostart=true // 在 supervisord 启动的时候也自动启动,如果设置为false 重启服务器后还需要手动执行命令进行运行
autorestart=true // 程序异常退出后自动重启 设置为false supervisord 将不会在程序关闭后重新运行、设置
stderr_logfile=/var/log/idea-worker.err.log // 错误日志
stdout_logfile=/var/log/idea-worker.out.log // 所有日志

注:supervisor不会自动创建文件,所以日志文件要提前建好

supervisor reload并应用配置

#reload
supervisorctl reread
#update
supervisorctl update
#管理应用
supervisorctl
#进入supervisor后,就可以管理任务了
#常用命令
start program #启动任务
stop program #停止任务
restart program #重新启动
status #状态
quit #退出
#开启web界面管理
vi /etc/supervisor/supervisord.conf
#在配置文件中添加以下字段
[inet_http_server]         ; inet (TCP) server disabled by default
port=0.0.0.0:9001          ; (ip_address:port specifier, *:port for ;all iface)
username=user              ; (default is no username (open server))
password=123               ; (default is no password (open server))

配置Nginx

#安装Nginx
sudo apt-get install nginx
#配置Nginx
sudo vim /etc/nginx/conf.d/virtual.conf
#输入如下内容:
server {
    listen       80;
    server_name  your_public_dnsname_here;

    location / {
        proxy_pass http://127.0.0.1:8000;
    }
}
#重新加载配置
sudo nginx -t
#重新启动服务
sudo service nginx restart

参考文档:
python web 部署:nginx + gunicorn + supervisor + flask 部署笔记
利用Nginx和Host把自定义域名指向本地
Deploy flask app with nginx using gunicorn and supervisor
supervisor在deepin安装、使用与卸载

上一篇下一篇

猜你喜欢

热点阅读