Путь прокси к другому серверу и порт с nginx - PullRequest
0 голосов
/ 13 марта 2020

Я пытаюсь создать тестовую среду на основе docker. Это включает в себя несколько контейнеров для nginx, gitea, vault, jenkins, nexus, ....

Сформируйте мой (windows) хост, где я запускаю docker рабочий стол, я хочу подключиться к нескольким серверы с браузером.

DNS-имена для контейнеров (например, "vault" и "jenkins") просто разрешимы для контейнеров docker, а не для хоста windows. Я планирую подключиться к серверу nginx (с локальным хостом), и nginx перенаправит запросы на целевой сервер.

https://localhost -> Startpage
https://localhost/gitea -> https://gitea:30443
https://localhost/jenkins -> https://jenkins:40443

Сервер nginx отвечает и показывает стартовую страницу, как и ожидалось (docker перенаправляет с 443 на 20443). В nginx я создал следующий конфиг (пример gitea, местоположение будет создано для jenkins, хранилища и всего остального позже):

server {
    resolver 127.0.0.11; #docker local dns
    listen 20443 ssl;
    server_name  frickeldave.global;

    ssl_certificate      /home/appuser/data/certificates/cer.pem;
    ssl_certificate_key  /home/appuser/data/certificates/key.pem;

    access_log  /home/appuser/data/nginx/log/nginx-access.log;
    error_log   /home/appuser/data/nginx/log/nginx-error.log;

    error_page   500 502 503 504  /50x.html;

    location / {
        root   /home/appuser/data/nginx/html;
        index  index.html index.htm;
    }

    location /gitea {
        set $gitea_server gitea;
        proxy_pass https://$gitea_server:30443;
    }
}

Когда я вызываю это в браузере на docker windows хост, он перенаправляет меня на https://localhost: 20443 / gitea (на самом деле 20443, ошибки при наборе нет). Что я могу сделать, чтобы "туннелировать" все трафики c через обратный прокси и просто сделать URL "localhost / gitea" видимым на хосте docker windows?

С уважением

Dave

...