一直学一直嗨,一直嗨一直学

宝塔部署ubuntu+nginx+flask环境

文章目录

[隐藏]

  • 准备
  • 在宝塔界面添加网站
  • 创建Python环境
  • 配置uwsgi
  • 配置nginx
  • 配置supervisor
准备
  1. 搭建好宝塔的vps,我用的是vultr
  2. flask应用在本地运行成功
在宝塔界面添加网站
  1. 设置好域名,数据库,php版本不管,或者在软件管理中卸载php
  2. 创建的web文件在/www/wwwroot/目录下
  3. 在本地的flask应用文件打包上传到刚刚创建的web文件中,解压
创建Python环境
$ sudo apt install python3-venv  $ python3 -m venv venv  # 如果venv/bin/下没有activate,就表示没有成功,解决如下  $ export LC_ALL="en_US.UTF-8"  $ export LC_CTYPE="en_US.UTF-8"  $ sudo dpkg-reconfigure locales  # 进入虚拟环境  $ source venv/bin/activate  # 安装uWSGI和requirements  $ pip install uwsgi  $ pip install -r requirements.txt  # 退出虚拟环境  $ deactivate  
配置uwsgi

在应用根目录创建config.ini文件,内容如下

[uwsgi]  # uwsgi 启动时所使用的地址与端口  socket = 127.0.0.1:8386  # 指向网站目录  chdir = /www/wwwroot/www.itswcg.site  # python 启动程序文件  wsgi-file = main.py  # python 程序内用以启动的 application 变量名  callable = app  # 处理器数  processes = 4  # 线程数  threads = 2  #状态检测地址  stats = 127.0.0.1:9191  
配置nginx

在宝塔面板中,管理网站,设置,配置文件修改如下,
或者在/www/server/panel/vhost/nginx/.conf下修改

server {    listen  80; 如有多个web应用,都是80端口监听    server_name resume.itswcg.com; #地址    location / {      include      uwsgi_params;      uwsgi_pass   127.0.0.1:8386;  # 指向uwsgi 所应用的内部地址,所有请求将转发给uwsgi 处理      uwsgi_param UWSGI_PYHOME /www/wwwroot/www.itswcg.site/venv; # 指向虚拟环境目录      uwsgi_param UWSGI_CHDIR  /www/wwwroot/www.itswcg.site; # 指向网站根目录      uwsgi_param UWSGI_SCRIPT main:app; # 指定启动程序    }  }  

重启

$ sudo service nginx restart  

这时候运行如下,不出错,输入网址就成功了

$ uwsgi config.ini  
配置supervisor

supervisor能同时启动多个应用,能自动重启应用,保证可用性。
安装

$ sudo apt-get install supervisor  

在/etc/supervisor/conf.d下添加.conf文件(resume.conf),内容如下

[program:resume] #resume是<name>  ##注意项目目录和uwsgi的配置文件地址  command=/www/wwwroot/www.itswcg.site/venv/bin/uwsgi /www/wwwroot/www.itswcg.site/config.ini  directory=/www/wwwroot/www.itswcg.site  autostart=true  autorestart=true  user = root  ##log文件的位置  stdout_logfile=/www/wwwroot/www.itswcg.site/logs/uwsgi_supervisor.log  

启动

supervisord -c /etc/supervisor/supervisord.conf  

客户端管理

$ supervisorctl  

这样你就不用每次重启时都运行$ uwsgi config.ini,supervisor帮你自动重启

还有别忘了在宝塔面板安全中,放行端口

原文出处:itswcg -> https://itswcg.com/2018-02/vps-deploy.html

Tags:,