2016-09-15 14 views
5

powiedzmy, że teraz mam inną aplikację uruchomione na tym samym serwerze, na inną ścieżkę:Docker Nginx Proxy: jak droga ruchu do innego pojemnika za pomocą ścieżki i nie hostname

  • 10.200.200.210/ app1
  • 10.200.200.210/ app2
  • 10.200.200.210/ app3

Chcę uruchomić każdą aplikację na innym kontenerze Docker, używając nginx jako proxy.

Próbowałem jwilder/nginx-proxy i działa świetnie, jeśli używam różnych nazw domen (app1.domena.com, app2.domena.com, itp.), Ale nie jestem w stanie używać domen, potrzebuję użyć tego samego adresu IP.

również nie można stosować różne porty jak:

  • 10.200.200.210:81/ APP1
  • 10.200.200.210:82/ App2
  • 10.200.200.210:83/ app3

wszystko musi działać na porcie 80.

  1. Istnieje sposób konfiguracji jwilder/nginx-proxy, aby to zrobić?
  2. Istnieje inny obraz Docker, taki jak jwilder/nginx-proxy, który go tworzy.
  3. lub pls możesz podać mi wskazówkę, aby samodzielnie zbudować kontener dokera nginx?
+1

Możesz robić co chcesz u śpiewaj niestandardową konfigurację w pliku nginx.conf i buduj z nią kontener. Ale to nie będzie zautomatyzowane. https://www.nginx.com/resources/admin-guide/reverse-proxy/ –

+1

Spróbuję tego: https://www.airpair.com/scalable-architecture-with-docker-consul-and-nginx using konsul-szablon i rejestrator może być automatyczny. –

Odpowiedz

0

Wystarczy użyć nginx obraz, aby utworzyć pojemnik, ** pamiętam ustawić netto „host” **, które uczynią Państwa akcji pojemnik sam adres i port z hosta machine.mount nginx.conf plik konfiguracyjny i proxy table.for przykład: komenda

doker:

docker run --name http-proxy -v /host/nginx.conf:/etc/nginx/nginx.conf --net host -itd --restart always nginx 

nginx.conf:

server { 
    listen 80; 
    location /app1 { 
    proxy_pass YOUR_APP1_URL; 
    } 
    location /app2 { 
    proxy_pass YOUR_APP2_URL; 
    } 
}