Django 无法使用nginx容器访问后端
我有一个带有nginx容器的多容器应用程序。我无法使用此配置访问后端。 “无法访问站点”应用程序正在本地运行。 此配置在不使用nginx作为容器的情况下工作,但是当我尝试在容器中使用它时,我无法访问后端 为什么我不能使用nginx容器访问后端? 这是我的配置Django 无法使用nginx容器访问后端,django,nginx,docker-compose,Django,Nginx,Docker Compose,我有一个带有nginx容器的多容器应用程序。我无法使用此配置访问后端。 “无法访问站点”应用程序正在本地运行。 此配置在不使用nginx作为容器的情况下工作,但是当我尝试在容器中使用它时,我无法访问后端 为什么我不能使用nginx容器访问后端? 这是我的配置 upstream django { ip_hash; server django:8000; } upstream nuxt { ip_hash; server nuxt:3000; } server { # t
upstream django {
ip_hash;
server django:8000;
}
upstream nuxt {
ip_hash;
server nuxt:3000;
}
server {
# the port your site will be served on
listen 80;
# the domain name it will serve for
server_name $SERVER_NAME; # substitute your machine's IP address or FQDN
charset utf-8;
# max upload size
client_max_body_size 75M; # adjust to taste
location /static/ {
alias /static/;
}
location / {
proxy_pass http://nuxt;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $host;
}
location ~ /(api|admin|static)/ {
proxy_pass http://django;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $host;
}
}
Docker compose
django:
container_name: django
build:
context: ./backend
dockerfile: scripts/dev/Dockerfile
env_file: .env
environment:
- DEBUG=True
command: >
sh -c "./wait-for-it.sh db:5432 &&
./autobets/manage.py collectstatic --no-input &&
./autobets/manage.py makemigrations &&
./autobets/manage.py migrate --no-input &&
./autobets/manage.py runserver_plus 0.0.0.0:8000"
expose:
- "8000"
ports:
- "8000:8000"
volumes:
- ./backend:/app
depends_on:
- db
- rabbitmq
restart: on-failure
networks:
- random_name
nginx:
build: ./nginx
container_name: nginx
environment:
- SERVER_NAME=0.0.0.0
ports:
- "80:80"
restart: always
depends_on:
- nuxt
- django
volumes:
- ./nginx/conf:/etc/nginx/conf.d
- ./backend/static:/static
networks:
- random_name
这些是容器中的我的nginx日志
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: error: /etc/nginx/conf.d/default.conf is not a file or does not exist
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
这是我的nginx docker文件
FROM nginx
RUN rm /etc/nginx/conf.d/default.conf
COPY autobets_nginx.conf /etc/nginx/conf.d/