以下是在阿里云ECS服务器上配置基于统信UOS Server的Nginx+Gunicorn+Python+Flask环境的教程:

1. 准备工作
  • 购买并配置ECS实例
    • 在阿里云购买ECS实例,选择统信UOS Server操作系统。
    • 设置安全组规则,开放HTTP(80端口)和HTTPS(443端口)。
  • 远程连接服务器
    • 使用SSH工具连接到ECS服务器。
2. 安装依赖
# 更新系统软件包
sudo apt update
sudo apt upgrade

# 安装基础依赖
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
3. 安装Python和Flask
# 安装Python3(通常已预装)
sudo apt install python3 python3-pip

# 创建虚拟环境(可选,推荐)
python3 -m venv venv
source venv/bin/activate

# 安装Flask
pip install Flask
4. 编写Flask应用

在项目目录下创建app.py文件:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run(debug=True)
5. 安装和配置Gunicorn
# 安装Gunicorn
pip install gunicorn

# 启动Gunicorn(测试)
gunicorn app:app

访问http://服务器IP:8000,查看Flask应用是否运行正常。

6. 安装和配置Nginx
# 安装Nginx
sudo apt install nginx

# 启动Nginx
sudo systemctl start nginx
sudo systemctl enable nginx
7. 配置Nginx反向代理

编辑Nginx配置文件:

sudo nano /etc/nginx/conf.d/default.conf

修改内容如下:

server {
    listen 80;
    server_name 你的域名或服务器IP;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
8. 重启Nginx
sudo nginx -t  # 检查配置语法
sudo systemctl restart nginx
9. 配置Gunicorn系统服务(可选)

创建Gunicorn服务文件:

sudo nano /etc/systemd/system/gunicorn.service

内容如下:

[Unit]
Description=Gunicorn instance to serve your Flask app
After=network.target

[Service]
User=你的用户名
Group=你的用户组
WorkingDirectory=/path/to/your/project
ExecStart=/path/to/your/project/venv/bin/gunicorn --workers 3 --bind unix:/path/to/your/project.sock app:app

[Install]
WantedBy=multi-user.target

重新加载systemd并启动Gunicorn:

sudo systemctl daemon-reload
sudo systemctl start gunicorn
sudo systemctl enable gunicorn
10. 测试应用

访问http://你的域名或服务器IP,应能看到Flask应用的页面。

11. 配置HTTPS(可选)
  • 获取SSL证书
    • 使用Let’s Encrypt或其他途径获取证书。
  • 配置Nginx
    • 编辑Nginx配置文件,添加HTTPS配置块。
    • 重启Nginx。

以上步骤完成后,你的Flask应用将通过Nginx和Gunicorn在阿里云ECS服务器上运行。

在这里插入图片描述

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐