Обратный прокси-сервер Nginx два контейнера-докера веб-приложений на одном сервере по пути - PullRequest
0 голосов
/ 10 июля 2019

У меня есть два веб-приложения, работающие на сервере докеров-контейнеров через docker-compose, и все работает отлично. Я пытаюсь использовать nginx в качестве обратного прокси-сервера для пересылки запроса клиента в другое веб-приложение на основе шаблона URL. (Я хочу развернуть два приложения в одном домене / сервере). Proxy_pass работает только для корневого пути, определенного в конфигурации nginx, поскольку в каждом приложении определены маршруты, любое взаимодействие с перенаправлением / отправкой формы не будет работать с nginx proxy_pass и будет отображать 404.

Вот мои текущие настройки для конфигурации nginx:

server {
  listen          80;
  server_name 0.0.0.0;
  location /app1/ {
     proxy_pass http://app1:8000/;
  }

  location /app2/ {
     proxy_pass http://app2:8080/;
  }
}

app1 и app2 работают в контейнерах. В идеале я хочу что-то вроде этого:

http://serverdomain/app1/.... ->  http://app1:8000/....
http://serverdomain/app2/.... ->  http://app2:8080/....

Каждое приложение имеет логику и маршрут для конкретного приложения, который обрабатывается индивидуально, например, я также ожидаю, что в app1 маршрут / upload должен быть перенаправлен на http://app1:8000/upload, но на самом деле он направляет меня на http://serverdomain/upload.

Я исследовал это, но ни один из методов не работает. Очень ценю вашу помощь!

...