python flask项目部署上线之Gunicorn和Nginx的准备

Posted sherlockjjobs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python flask项目部署上线之Gunicorn和Nginx的准备相关的知识,希望对你有一定的参考价值。

python flask项目部署上线之Gunicorn和nginx的准备

1. Gunicorn

进入虚拟环境之后
pipenv install gunicorn

运行:
gunicorn --workers=4 wsgi:app 需要创建一个wsgi.py
指定主机:
gunicorn --workers=4 --bind=0.0.0.0:8000 wsgi:app
或者
gunicorn -w 4 -b 0.0.0.0:8000 wsgi:app

2. Nginx

sudo apt-get install nginx

Nginx作为代理服务器,监听来自外部的80端口的请求,Gunicorn负责监听本地的8000端口的请求

配置如下:
sudo rm /etc/nginx/sites-enabled/default
sudo vi /etc/nginx/sites-enabled/项目名

输入内容如下:

server {
    listen 80 default_server;
    server_name _; #可以输入域名,也可以不用
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_redirect off;

        proxy_set_header Host            $host;
        proxy_set_header X-Real_IP       $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /static {
        alias 放置静态文件的相对位置;
        expires 30d;
    }
}

配置完之后,检测语法正确性:
sudo nginx -t

最终运行:
sudo service nginx restart
gunicorn -w 4 wsgi:app

-w 4是指线程数,一般设为4~12个,建议为(2XCPU 核心数) + 1

以上是关于python flask项目部署上线之Gunicorn和Nginx的准备的主要内容,如果未能解决你的问题,请参考以下文章

[python]不同应用共存之道:虚拟环境virtualenv

宝塔面板部署Python的Flask框架项目

宝塔部署flask项目

python中django项目上线环境部署

django之项目部署上线

django之项目部署上线