0.准备
将flask项目放到/var/www目录下
设置app.py端口为0.0.0.0
if __name__ == '__main__':
app.run(host='0.0.0.0')
1、安装pip3
apt-get install -y python3-pip
2、安装virtualenv
pip3 install virtualenv
在项目路径下创建虚拟环境
virtualenv venv
激活虚拟环境
source venv/bin/activate
进行相关依赖包的安装
3、安装Nginx
apt-get install -y nginx
配置Nginx
创建并配置Nginx配置文件
vi /etc/nginx/sites-enabled/web.conf
添加
server {
listen 80;
server_name xxx.xxx.xxx.xxx;
charset utf-8;
client_max_body_size 75M;
location / { try_files $uri @yourapplication; }
location @yourapplication {
include uwsgi_params;
uwsgi_pass unix:/var/www/data_analysis/data_analysis_uwsgi.sock;
}
}
4、安装uwsgi
# 须退出虚拟环境
(venv) root@c8c4db4592bb:/var/www/data_analysis# deactivate
使用系统python3的pip3安装uwsgi
pip3 install uwsgi
配置uwsgi
创建并配置uwsgi配置文件
vi uwsgi.ini
[uwsgi]
#application's base folder
base = /var/www/data_analysis
#python module to import
app = app
module = %(app)
home = %(base)/venv
pythonpath = %(base)
#socket file's location
socket = /var/www/data_analysis/data_analysis_uwsgi.sock
#permissions for the socket file
chmod-socket = 666
#the variable that holds a flask application inside the module imported at line #6
callable = app
#location of log files
logto = /var/log/uwsgi/%n.log
# 创建uwsgi日志目录
mkdir -p /var/log/uwsgi
此时使用 uwsgi --ini uwsgi.ini 启动并使用服务器的公网即可访问到项目
5、安装supervisor
apt-get install -y supervisor
验证安装是否成功
echo_supervisord_conf
创建配置文件
mkdir -m 755 -p /etc/supervisor/
cd /etc
echo_supervisord_conf > /etc/supervisor/supervisord.conf
创建并配置supervisor任务
vi /etc/supervisor/conf.d/data_analysis.conf
[program:data_analysis]
command =/usr/local/bin/uwsgi --ini /var/www/data_analysis/uwsgi.ini
directory =/var/www/data_analysis
user =root
autostart=true
autorestart=true
startsecs=5
priority=1
stopasgroup=true
killasgroup=true
stderr_logfile=/var/supervisor/log/error.log
设置包含supervisor配置路径
vi /etc/supervisor/supervisord.conf
[include]
files = ./conf.d/*.conf
启动supervisor
supervisord -c /etc/supervisor/supervisord.conf
可能报日志目录不存在,那么就创建
mkdir -p /var/supervisor/log
配置完成!
现在使用公网ip即可访问到项目
来源:CSDN
作者:彩色豆脑
链接:https://blog.csdn.net/qq_42712552/article/details/103455356