Nginx на докере (сопоставьте несколько сервисов с конкретными URL-адресами) - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть некоторые службы, размещенные в докер-контейнерах, которые организованы через docker compose (не уверен, важно ли это знать).

Но если я это сделаю, местоположение (service1 / service2) будет включено в URL, поэтому целевой URL неверен.Запрос http://localhost/service2/api/values переводится в http://dockercontainer1/service2/api/values, но правильный URL должен быть http://dockercontainer1/api/values.

Вот мой nginx.config.Не могли бы вы просмотреть и сказать, что я делаю не так?Я работаю на localhost, а хост докера - это система Windows.

error_log  /var/log/nginx/error.log;
pid        /var/log/nginx/nginx.pid;

events
{

}

http
{
    server {
        listen       80;
        server_name localhost;

        location /service1/ {  
            proxy_pass http://heliprinter-service1;  
        }
    }
}

@ Дэвид: Да, вы правы, это дубликат исходной задачи.Но есть и другой, который не является частью дубликата.

Предполагая, что мой URL-адрес не является службой, а веб-приложение и веб-приложение на контейнере "mywebui" прослушивают http://localhost:6000,, и существует nginx-местоположение / webui /, передающее этоКонкретный контейнер http://webui/, тогда запрос будет работать.Но после этого будут другие запросы, например, для запроса скриптов jquery или библиотек начальной загрузки.Эти запросы не будут выполнены, поскольку они разрешены как

http://localhost/bootstrap.css,, но это должно быть http://localhost/webui/bootstrap.css.

Есть ли у вас решение или дублирование для этой проблемы?Я думаю, что проблема в том, что веб-приложение ничего не знает о сервере nginx, а http://localhost не использует шаблон / webui /.

...