У меня особенно странное поведение при настройке docker-compose и nginx. Я пытаюсь получить запросы nginx proxy_pass к бэкэнд-веб-сервису. Веб-сервис Spring Boot, но я не верю, что это актуально. Мой веб-сервис выдаст редирект 302 пользователям, которые не прошли проверку подлинности, отправив их на страницу / логин. Кажется, что все это работает, как и ожидалось, за исключением неопределенного периода времени, когда я собираю docker-compose. Ранние запросы к сервису, которые приводят к 302 ответам, приводят к тайм-аутам, в то время как запросы, непосредственно направленные на страницу / login, возвращаются, как и ожидалось, немедленно. После неопределенного периода времени, обычно минут, что-то стабилизируется, и все работает как положено. Я проверил поведение, используя chrome с клиентского компьютера и свернувшись прямо на хосте, на котором работает compose. Я верю, что ответы 302 почему-то сбрасываются, но я не уверен.
Может кто-нибудь заметить проблему?
version: '3.5'
services:
proxy:
image: nginx:latest
container_name: "proxy"
restart: always
volumes:
- blah:/etc/nginx
ports:
- 80:80
- 443:443
webservice:
image: "webservice:latest"
container_name: "webservice"
restart: always
ports:
- 8080:8080
Конфигурация Nginx:
worker_processes auto;
events { }
http {
server {
listen 80 default_server;
listen 443 default_server ssl;
ssl_certificate /etc/nginx/cert;
ssl_certificate_key /etc/nginx/key;
if ($scheme = http) {
return 301 https://$host:443$request_uri;
}
gzip on;
gzip_types text/plain application/xml application/json application/javascript;
location / {
proxy_http_version 1.1;
proxy_pass http://webservice:8080/;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
access_log /etc/nginx/log/access.log combined;
error_log /etc/nginx/log/error.log warn;
}
}
}