当我们在本地完成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
出现以下内容,则说明安装成功!
这个时候,我们去浏览器里,在地址栏输入服务器的IP地址,如果返回以下内容则说明nginx启动成功!
三、安装项目所需要的环境
假设你的项目是用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 将这段代码上传到服务器。
接下来,回到服务器中,运行这段代码。
出现以下界面则说明已经执行了这段代码。
但是这样这是在本地启动,我们需要将其部署到公网让任何人都可以访问。
四、安装和配置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
运行结果如下所示:
可以返回“Hello”了。
至此,Flask项目就部署成功了。
五、使用uwsgi + nginx
除了使用gunicorn进行部署以外,还可以使用uwsgi + nginx进行部署。使用uwsgi配置的话,性能会好一点,但是配置起来会比较麻烦,我会放在下一篇帖子进行讲解。如果你感兴趣的话,麻烦给我一个关注哦~