Я пытаюсь настроить пример компоновки докеров с помощью nginx (работает в контейнере), выходя из 3 контейнеров, запускающих приложение python в uwsgi.Ошибка 404 при доступе с локального хоста: NGINX uWSGI
при попытке nginx через докер ip для контейнера, приложение доступно без каких-либо проблем; однако при попытке получить к нему доступ из URL-адреса хоста (nginx привязан к хосту с использованием порта 9999), используя localhost: 9999 Я могу получить доступ к странице nginx, однако любые URL-адреса приложения или/admin/uri отображаются с ошибкой 404.
Я прошел через множество форумов и ответов Stackoverflow без везения, может кто-то, пожалуйста, помогите мне разрешить это?
Более подробная информация прилагается ниже:
мой файл докер Compose выглядит следующим образом:
version: '2'
services:
nginxlb:
build: ./nginx
ports:
- "9999:80"
links:
- my-app1:my-app1
- my-app2:my-app2
- my-app3:my-app3
volumes:
- ./logs/nginx/:/opt/my-logs/nginx/
my-app1:
build: ./my
expose:
- 8080
- 8081
volumes:
- ./logs/node1:/opt/my-logs/node1/
my-app2:
build: ./my
volumes:
- ./logs/node2/:/opt/my-logs/node2/
expose:
- 8080
- 8081
my-app3:
build: ./my
volumes:
- ./logs/node3:/opt/my-logs/node3
expose:
- 8080
- 8081
сайт с поддержкой конф для Nginx выглядит следующим образом:
upstream node-app {
least_conn;
server my-app1:8080;
server my-app2:8080;
server my-app3:8080;
}
server {
listen 80 default;
server_name _;
location/{
proxy_pass http://node-app;
include /etc/nginx/uwsgi_params;
}
}
EDIT это это мой файл Docker для NGINX. Я не внес никаких изменений для файла nginx.conf по умолчанию.
From nginx
MAINTAINER DevOps
# Update the container
RUN apt-get update
# Create directories and set working directory
RUN mkdir /opt/myapp/
RUN mkdir /opt/myapp/django-static/
RUN mkdir /opt/myapp/django-media/
RUN mkdir /opt/myapp/webroot/
run mkdir -p /opt/myapp-logs/nginx/
WORKDIR /opt/myapp/
# Copy configs and code to Container
ADD config/nginx.conf /etc/nginx/nginx.conf
ADD config/nginx-site.conf /etc/nginx/sites-enabled/nginx.conf
ADD config/uwsgi_params /etc/nginx/uwsgi_params
EXPOSE 80
404 предлагает Nginx не доходит до вашего 'server' Nginx конфигурации блока; возможно, параметры в файле конфигурации nginx по умолчанию переопределяют вашу конфигурацию? Вы пытались его удалить? Если это не поможет, разместите содержимое своего файла nginx/Docker. – rafalmp
Сервер nginx обслуживает содержимое uwsgi при доступе через контейнер nginx ip (полученный через «sudo docker проверит | grep IPAddress». –
user2693188
только что добавил мой nginx Dockerfile, я думаю, что я делаю сетевое право докеры с помощью файла компоновки .. – user2693188