У меня есть некоторые службы, размещенные в докер-контейнерах, которые организованы через 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 /.