我的docker-compose和nginx设置的行为特别奇怪。我正在尝试向后端Web服务发送nginx proxy_pass请求。 Web服务是Spring Boot,但我认为这无关紧要。我的Web服务将向未经身份验证的用户发出302重定向,将其发送到/ login页面。除了我启动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; } } }