【问题标题】:Incorrect redirect of NGINX with Docker使用 Docker 重定向 NGINX 不正确
【发布时间】:2022-01-04 19:46:42
【问题描述】:

我正在使用 Django、NGINX 和 Docker 构建我的第一个项目。下面nginx.conf:

upstream project {
    server website:8000;
}
server {
    listen 80;
    server_name MY-DOMAIN;
    location / {
        proxy_pass http://project;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_redirect off;
        client_max_body_size 4G;
    }
    location /static/ {
        alias /app/static-folder/;
    }
    location /media/ {
        alias /app/media-folder/;
    }
}

还有docker-compose:

version: '3.7'

services:
  website:
    container_name: web_project
    image: project/django
    build: ./djangodocker
    restart: always
    env_file: prod.env
    command: sh -c "cd djangodocker/ &&
                    gunicorn djangodocker.wsgi:application --bind 0.0.0.0:8000"
    volumes:
      - static-folder:/app/static-folder
      - media-folder:/app/media-folder
    expose:
      - 8000

  nginx:
    container_name: nginx_web_project
    image: project/nginx
    build: ./nginx
    volumes:
      - static-folder:/app/static-folder
      - media-folder:/app/media-folder
    ports:
      - 8000:80
    depends_on:
      - website

volumes:
  static-folder:
  media-folder:

我可以构建图像,但我无法在正确的 url 中看到网站。我看到的网站是 MY-DOMAIN:8000 而不是 MY-DOMAIN,这是我的问题。

【问题讨论】:

    标签: django docker nginx


    【解决方案1】:

    你把nginx端口映射到8000端口就行了

    - 8000:80
    

    在您的 docker-compose 文件中。将其更改为

    - 80:80
    

    这样,nginx 会监听宿主机的 80 端口,你不需要指定端口号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-27
      • 2021-12-06
      • 1970-01-01
      • 1970-01-01
      • 2015-02-03
      • 2021-06-26
      • 2019-03-11
      • 2020-02-09
      相关资源
      最近更新 更多