Python Web服务完整部署流程

163 阅读3分钟

当我们在本地完成Web项目的时候,这个时候需要部署到服务器上,这个时候,就要求我们需要懂得如何部署到服务端。

注:本文的系统是Ubuntu

一、选择服务器

因为无法确保自己的电脑24小时全天在线,所以需要购买一台云服务器

推荐大家购买雨云服务器。

雨云成立于 2018年, 是具有自主知识产权的国产云计算服务提供商。 雨云为广大用户提供简单易用、便宜实惠、可信赖的云产品。 主营包括云服务器、裸金属物理机、虚拟主机、游戏云、对象存储、CDN内容分发等广受好评的云服务产品。

雨云是国内为数不多的自主开发财务及产品系统的厂商,成立至今服务国内外数十万名客户,包括学生、开发者、企业。

二、安装Nginx

Nginx​​ 是部署Web项目的核心组件,负责​​反向代理、负载均衡、静态文件处理​​,比Apache更轻量、更高并发。 输入以下命令进行安装:

sudo apt update  
sudo apt install -y nginx  
 
# 启动Nginx并设置开机自启  
sudo systemctl start nginx  
sudo systemctl enable nginx  

我们输入以下命令查看nginx的运行状态:

sudo systemctl status nginx  

image.png 出现以下内容,则说明安装成功!

这个时候,我们去浏览器里,在地址栏输入服务器的IP地址,如果返回以下内容则说明nginx启动成功!

image.png

三、安装项目所需要的环境

假设你的项目是用Flask写的,那么,你需要将项目上传到服务端之后,安装对应的Python库。我这里以一个简单的Flask为例。

from flask import Flask
 
app = Flask(__name__)
 
 
@app.route("/")
def hello():
    return "Hello"
 
 
if __name__ == "__main__":
    app.run(host='0.0.0.0', port=5000)

可以看到,这就是非常简单的一个Flask项目,当用户访问的时候,返回"Hello"!

接下来,我们使用 Xftp 将这段代码上传到服务器。

image.png 接下来,回到服务器中,运行这段代码。

image.png 出现以下界面则说明已经执行了这段代码。

image.png 但是这样这是在本地启动,我们需要将其部署到公网让任何人都可以访问。

四、安装和配置gunicorn

使用以下命令安装gunicorn:

pip install gunicorn

修改nginx.ini配置文件

server {
    listen 80;
    server_name 123.com;
 
    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
 
}

重启nginx

sudo systemctl restart nginx

使用 gunicorn运行flask项目

gunicorn -w 4 -b 0.0.0.0:5000 main:app

运行结果如下所示:

image.png 可以返回“Hello”了。  至此,Flask项目就部署成功了。

五、使用uwsgi + nginx

除了使用gunicorn进行部署以外,还可以使用uwsgi + nginx进行部署。使用uwsgi配置的话,性能会好一点,但是配置起来会比较麻烦,我会放在下一篇帖子进行讲解。如果你感兴趣的话,麻烦给我一个关注哦~