У меня есть два док-контейнера, которые должны общаться друг с другом.Одним из них является контейнер nginx для внешнего интерфейса, который должен взаимодействовать с внутренним компонентом Spring в другом контейнере.Связь работает нормально при запуске вне Docker, но когда я докеризирую проекты, я получаю следующую ошибку при попытке отправить любые запросы от внешнего интерфейса до внутреннего:
org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL was not normalized.
от SpringStrictHttpFirewall.
nginx.conf
load_module "modules/ngx_http_perl_module.so";
env HELIUM_LOCATION;
http {
perl_set $helium_location 'sub { return $ENV{"HELIUM_LOCATION"}; }';
server {
listen 8000;
root /usr/share/nginx/html;
include /etc/nginx/mime.types;
client_max_body_size 10M;
location /api {
rewrite ^/api(.*) /$1 break;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Prefix /api;
proxy_pass http://$helium_location;
}
location /health {
default_type application/json;
return 200 '{"status": "UP"}';
}
location / {
try_files $uri $uri/ /index.html;
}
}
}
Загрузочная версия Spring - 2.1, а контейнер nginx - nginx: 1.11.8-alpine.Это работает при использовании Spring boot 1.5.7, поэтому что-то изменилось с тем, как Spring обрабатывает эти запросы?
Если есть какая-либо другая информация, которая будет полезна для решения этой проблемы, дайте мне знать, и я получу ее дляты, как я могу.Спасибо!