Flask+Gunicorn+Nginx部署web应用
Gunicorn 是一个Python WSGI UNIX的HTTP服务器,该服务器与各种Web框架兼容,特点是轻量级、资源消耗少以及运行迅速。
一、安装Gunicorn
应该安装在virtualenv环境下
$ pip install gunicorn
二、安装Nginx
在Linux的Centos下执行下面两行命令,完成安装Nginx
$ sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-rel ease-centos-7-0.el7.ngx.noarch.rpm
$ sudo yum install -y nginx
安装完成后执行查看Nginx进程是否已经启动
$ ps -ef | grep nginx
![]()
如果未启动执行命令来启动Nginx服务
$ sudo service nginx start
进入/etc/nginx/nginx.conf修改配置文件
server { listen 80 default_server; listen [::]:80 default_server; server_name 101.37.246.198; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { proxy_pass http://127.0.0.1:8000; #这里指向gunicorn host的服务地址 proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
server_name为该服务器可以访问的外部域名或者公网IP,location中添加上述内容,修改后保存nginx.conf文件,对Nginx进行重启
$ sudo service nginx restart
也可以执行reload进行平滑加载更改
$ sudo service nginx reload
三、通过Gunicorn启动应用
进入项目执行文件app.py所在目录/python_data/Flask_dev下执行命令
$ gunicorn -w 4 -b 127.0.0.1:8000 app:app # -w 4 为启动4个进程 # app:app 前一个app指要执行的python文件后缀.py省略,后一个app指Flask的代码中的实例名称(app = Flask(__name__))
注:在阿里云服务器上,需要在阿里云控制台把80端口开放
进入浏览器输入在Nginx中配置的域名或者公网IP就可以正常访问应用了

浙公网安备 33010602011771号