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就可以正常访问应用了

 

posted @ 2020-09-10 23:25  smilepassed  阅读(236)  评论(0)    收藏  举报