0%

使用使用Flask,Gunicorn和Nginx部署一个云端ubuntu上的服务器

前期下载配置

# 更新软件包列表
sudo apt-get update

# 安装Flask
sudo pip3 install flask

# 安装Gunicorn
sudo pip3 install gunicorn

# 安装Nginx
sudo apt-get install nginx

创建一个Flask app

# app.py
# 导入Flask模块
from flask import Flask

# 创建Flask应用实例
app = Flask(__name__)

# 定义根路由和视图函数
@app.route("/")
def index():
return "<h1>Hello, World!</h1>"

# 如果是主模块,运行Flask应用
if __name__ == "__main__":
app.run()

创建gunicorn.conf.py

  • 注意要在当期目录下创建./logs文件夹
    # gunicorn.conf.py
    import logging
    import os

    # 设置日志的输出路径
    log_path = os.path.join(os.path.dirname(__file__), 'logs')
    if not os.path.exists(log_path):
    os.mkdir(log_path)

    # 设置日志的格式
    log_format = '%(asctime)s %(levelname)s %(process)d %(message)s'
    date_format = '%Y-%m-%d %H:%M:%S'

    # 设置日志的级别
    log_level = 'info'

    # 设置日志的文件名
    access_log_file = os.path.join(log_path, 'access.log')
    error_log_file = os.path.join(log_path, 'error.log')

    # 设置日志的配置项
    accesslog = access_log_file
    errorlog = error_log_file
    loglevel = log_level
    format = log_format
    datefmt = date_format

    # 设置绑定的IP和端口号
    bind = '0.0.0.0:5000'

    使用上面的配置文件启动gunicorn

  • gunicorn -c gunicorn.conf.py <py主文件名>:app

    创建nginx的配置文件

  • /etc/nginx/sites-available/flask.conf
    # 定义一个名为flask的server块
    server {
    # 监听80端口
    listen 80;

    # 定义服务器名称,可以是域名或者IP地址
    server_name 52.184.77.113;

    # 定义根路由的处理方式
    location / {
    # 转发请求到Gunicorn服务器,注意IP和端口要与Gunicorn绑定的一致
    proxy_pass http://0.0.0.0:5000;

    # 设置一些代理相关的头部信息
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    }
  • 创建软连接
    # 创建符号链接
    sudo ln -s /etc/nginx/sites-available/flask.conf /etc/nginx/sites-enabled/
  • 重启nginx服务
    # 重启Nginx服务
    sudo service nginx restart
  • 如果服务器需要配置外网端口访问的话在相应的平台配置即可