Ich versuche, ein Docker-Beispiel mit Nginx (in einem Container ausgeführt) zu konfigurieren, die 3 Container mit einer Python-App in uwsgi zeigt.404 Fehler beim Zugriff vom lokalen Host: NGINX uWSGI
Wenn Sie Nginx über Docker IP für den Container versuchen, ist die App ohne irgendein Problem zugänglich; Wenn ich jedoch versuche, über die Host-URL (nginx ist Host-Host mit Port 9999) mit localhost: 9999 zuzugreifen, kann ich auf die nginx-Seite zugreifen, aber alle app-URLs oder/admin/uri werden mit einem 404-Fehler angezeigt.
Ich habe Tonnen von Foren und Stackoverflow Antworten ohne Glück durchgelaufen, könnte mir bitte jemand helfen, dies zu lösen?
Weitere Informationen unten angehängt:
meine Docker compose Datei sieht aus wie folgt:
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
Website-fähigen conf für nginx sieht wie folgt aus:
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 diese ist meine Docker-Datei für NGINX Ich habe keine Änderungen an der Standard-Datei nginx.conf
012 vorgenommenFrom 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 schlägt vor, nginx Ihren 'server' nginx Konfigurationsblock nicht erreicht; Vielleicht überschreiben Parameter in der Standard-Nginx-Konfigurationsdatei Ihre Konfiguration? Hast du versucht es zu löschen? Wenn das nicht hilft, poste bitte den Inhalt deiner nginx/Dockerfile. – rafalmp
der nginx-Server dient den uwsgi-Inhalt beim Zugriff über die Nginx-Container-IP (erhalten durch "sudo docker inspect | grep IPAddress". –
user2693188
gerade meine nginx Dockerfile hinzugefügt, denke ich, ob ich die Docker-Vernetzung direkt mit der Datei verfassen .. – user2693188