Как nginx в контейнере Docker может использовать обратный прокси-сервер для порта на хост-компьютере, если этот порт не отображается в контейнере nginx - PullRequest
0 голосов
/ 05 ноября 2019

На работе в контейнере есть nginx, который является прокси и передает наш экземпляр gitlab (также в контейнере).

Контейнер Nginx предоставляет только порт 80:80 и 443: 443, его конфигурация proxy_pass - http://127.0.0.1:8000, где находится экземпляр gitlab.

Однако порт 8000 не отображается в контейнере док-станции nginx. Мне было интересно, как nginx делает этот прокси-сервер, когда подключены только порты 80:80 и 443: 443 (согласно проверке докера).

Мой второй вопрос: я пытался продублировать эту настройку для другого веб-приложения вместо gitlab. Но на этот раз nginx не может разрешить веб-приложение.

Это конфигурация как для gitlab, так и для моего веб-приложения.

server {
    listen       80;
    server_name  mydomain.com;

location / {
  proxy_pass http://127.0.0.1:5001$request_uri;

  proxy_http_version 1.1;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Request-URI $request_uri;
}
}
...