负载均衡部署Django服务的配置设置

nginx.conf

worker_processes auto;

events {
    worker_connections 1024;  # 最大连接数
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    sendfile on;
    proxy_connect_timeout 3600s; # 连接超时时间
    proxy_send_timeout 3600s;    # 发送数据超时时间
    proxy_read_timeout 3600s;    # 读取响应超时时间

    # gzip on;  # 开启Gzip压缩
    # gzip_disable "msie6";
    # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    # 主服务器块
    server {
        listen 8000;
        # server_name example.com;  # 替换为你的域名

        # 根URL请求的代理设置
        location / {
            proxy_pass http://django_backend;  # Django应用服务的地址
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }

        # 静态文件缓存
        location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
            expires 30d;
            add_header Cache-Control "public, max-age=2592000";
        }

        # SSL/TLS配置(需要配置SSL证书和密钥)
        # listen 443 ssl;
        # ssl_certificate /path/to/ssl/certificate.crt;
        # ssl_certificate_key /path/to/ssl/private.key;
        # ssl_protocols TLSv1.2 TLSv1.3;
        # ssl_prefer_server_ciphers on;
        # ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384';
    }

    # 后端Django应用服务的负载均衡配置
    upstream django_backend {
        server django-1:8000;
        server django-2:8000;
        server django-3:8000;
    }
}

docker-compose.yml

version: '3'
services:
  django-1:
    build: .
    ports:
      - "8001:8000"
  django-2:
    build: .
    ports:
      - "8002:8000"
  django-3:
    build: .
    ports:
      - "8003:8000"
  nginx:
    image: nginx:latest
    ports:
      - "8081:8000"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    depends_on:
      - django-1
      - django-2
      - django-3

Dockerfile


# 使用一个官方的Python镜像作为基础镜像
FROM python:3.8.9

# 设置环境变量
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# 在容器中创建一个工作目录
WORKDIR /Users/App/skr_qa_tools

# 安装依赖
COPY requirements.txt /Users/App/skr_qa_tools
RUN pip install --no-cache-dir -r requirements.txt

# 将当前目录的内容复制到容器中的/app/目录下
COPY . /Users/App/skr_qa_tools

# 暴露uWSGI将要监听的端口
EXPOSE 8000

# 启动uWSGI服务器
CMD ["uwsgi", "--ini", "uwsgi.ini"]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值