下面是一个基于 Gunicorn、Flask 和 Docker 的高并发部署基础教程。我们将逐步创建一个简单的 Flask 应用,并使用 Gunicorn 作为 WSGI 服务器,通过 Docker 容器化部署。
步骤 1: 创建 Flask 应用
首先,我们需要创建一个简单的 Flask 应用。创建一个新的目录并进入该目录:
mkdir flask_app
cd flask_app
然后,创建一个名为 app.py
的文件,内容如下:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Hello, World!"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
步骤 2: 创建 requirements.txt
在同一目录下,创建一个 requirements.txt
文件,列出 Flask 和 Gunicorn 作为依赖:
Flask==2.0.3
gunicorn==20.1.0
步骤 3: 创建 Dockerfile
接下来,我们需要创建一个 Dockerfile 来定义我们的 Docker 镜像。创建一个名为 Dockerfile
的文件,内容如下:
# 使用官方 Python 镜像
FROM python:3.9-slim
# 设置工作目录
WORKDIR /app
# 复制依赖文件
COPY requirements.txt .
# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt
# 复制应用代码
COPY app.py .
# 暴露端口
EXPOSE 5000
# 启动 Gunicorn 服务器
CMD ["gunicorn", "-b", "0.0.0.0:5000", "app:app", "--workers", "4"]
步骤 4: 构建 Docker 镜像
在终端中,确保你在 flask_app
目录下,然后运行以下命令来构建 Docker 镜像:
docker build -t flask_app .
步骤 5: 运行 Docker 容器
构建完成后,可以运行 Docker 容器:
docker run -d -p 5000:5000 flask_app
步骤 6: 测试应用
现在,你可以在浏览器中访问 http://localhost:5000
,应该会看到 "Hello, World!" 的消息。
步骤 7: 高并发测试
为了测试高并发性能,可以使用工具如 ab
(Apache Benchmark)或 wrk
。以下是使用 ab
的示例:
ab -n 1000 -c 10 http://localhost:5000/
这里,-n
表示总请求数,-c
表示并发请求数。