docker-compose进行水平扩展和负载均衡flask应用,redis做数据库,使用nginx做反向代理

3. Dockerfile文件
“`
FROM python:3.9-slim

WORKDIR /usr/src/app

COPY app /usr/src/app

RUN bash run.sh

EXPOSE 5000

ENTRYPOINT [“flask”, “run”]
CMD [“-h”, “0.0.0.0”]

4. nginx/nginx.conf文件 

server {
listen 80;
server_name 域名或公网IP;

location / { proxy_pass http://flask:5000; } 
5. app/app.py文件 

import socket
import os

import redis
from flask import Flask

pool = redis.ConnectionPool(host=os.environ.get(“REDIS_HOST”), port=6379, db=0, encoding=”utf-8″)
redis_ = redis.Redis(connection_pool=pool)

app = Flask(name)

@app.route(“/”)
def hello():
redis_.incr(“hits”)
return f”hello container world, I have been seen 【{redis_.get(‘hits’).decode(‘utf-8’)}】 times and myhostname is {socket.gethostname()} 哈哈哈\n”

6. app/requirements.txt文件 

flask
redis

7. app/run.sh文件 
8. 使用水平扩展的方式启动3个flask应用,同时docker engine有dns解析功能和负载均衡功能 启动命令: `sudo docker-compose up -d --scale flask=3` 打开浏览器访问nginx配置文件中的server_name试试吧,大功告成。

原文链接:https://www.dianjilingqu.com/349595.html

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享