Gunicorn+Nginx+Flask项目部署

时间:2021-09-25 21:33:39

安装python3.6

1)前往用户根目录
>: cd ~ 2)下载 或 上传 Python3.6.7
>: wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz
>: scp -r 本地Python-3.6.7.tar.xz ssh root@39.98.154.56:服务器路径
>: scp -r C:\Users\dell\Desktop\pkg\Python-3.6.7.tar.xz ssh root@339.98.154.56~ 3)解压安装包
>: tar -xf Python-3.6.7.tar.xz 4)进入目标文件
>: cd Python-3.6.7 5)配置安装路径:/usr/local/python3
>: ./configure --prefix=/usr/local/python3 6)编译并安装
>: make && sudo make install 7)建立软连接:终端命令 python3,pip3
>: ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
>: ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3 8)删除安装包与文件:
>: rm -rf Python-3.6.7
>: rm -rf Python-3.6.7.tar.xz

安装gunicorn

pip3 install gunicorn

启动gunicorn

-w代表开启几个进程运行

-b指明把当前服务器绑定到那个IP上

--acess-logfile指定记录用户访问信息的文件

mian指的是启动文件main.py

app指的是main.py中的app

-D以守护进程的方式运行,将程序放在后台运行(只能使用kill命令杀死gunicorn)。

gunicorn -w 4 -b 127.0.0.1:5000 --access-logfile -D ./logs/gunicorn_log main:app

安装nginx

1)前往用户根目录
>: cd ~ 2)下载nginx1.13.7
>: wget http://nginx.org/download/nginx-1.13.7.tar.gz 3)解压安装包
>: tar -xf nginx-1.13.7.tar.gz 4)进入目标文件
>: cd nginx-1.13.7 5)配置安装路径:/usr/local/nginx
>: ./configure --prefix=/usr/local/nginx 6)编译并安装
>: make && sudo make install 7)建立软连接:终端命令 nginx
>: ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx 8)删除安装包与文件:
>: rm -rf nginx-1.13.7
>: rm -rf nginx-1.13.7.tar.xz 9)测试Nginx环境,服务器运行nginx,本地访问服务器ip
>: nginx
>: 服务器绑定的域名 或 ip:80

nginx配置

# 如果有多台服务器的话,可以使用upstream
# flask是组名,可以写其他的
upstream flask {
server 10.211.55.2:5000;
server 10.211.55.2:5001;
} server {
listen 80;
server_name localhost; # 改为自己的域名,如果没有域名就修改为127.0.0.1 # charset koi8-r; # access_log logs/host.access.log main; location / {
proxy_pass http://10.211.55.2:5000; # 此处可以写单个主机信息(前面的gunicorn启动的ip地址),也可以写upstream的组名。
# proxy_pass http://flask;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}

启动nginx

1)启动
>: nginx 2)关闭nginx
>: nginx -s stop 3)重启nginx
>: nginx -s reload 4)查看端口,强行关闭
>: ps -aux|grep nginx
>: kill <pid:进程编号>

访问

Gunicorn+Nginx+Flask项目部署