Nginx负载均衡访问location url不会重定向到微服务页面

Nginx负载均衡访问location url不会重定向到微服务页面

nginx 负载均衡器从昨天开始仍然无法工作。我在 WSL2 实例上的 3 个 docker 容器上运行一个微服务,端口为 4001、4002、4003,通过浏览器访问(sudo docker run -d -p 4003:80 --name asciiflow3 dominicbreuker/asciiflow2)。我没有安装 nginx,所以它只是来自一个 nginx 容器。sudo docker build -t nginx-asciiflow .为 nginx 构建 docker 镜像并运行sudo docker run --name nginx-asciiflow --network host -d nginx-asciiflow当我打开 http://localhost/ 时,我希望显示服务的主页,但它只是 nginx 默认设置。事实是,访问 http://localhost:4001/ 等可以正确重定向到微服务页面。 我的配置文件是

events { worker_connections 1024; }

http {
  upstream worker {
    server localhost:4001;
    server localhost:4002;
    server localhost:4003;
  }

  server {
    listen 80 default_server ssl;
    location / {
      proxy_pass http://worker;
      proxy_set_header Host $host;
      proxy_redirect off;
    }
  }
} 

我尝试过default_server只使用 ,然后不使用两者default_server ssl。我已将传出端口更改为 8080。我尝试过将 url 扩展到http://worker/index并更改location /location /index,但访问 localhost/index 仍然导致 nginx 404 页面。使用 和location /worker/index/也一样https://worker/index/。我尝试过使用和不使用proxy_set_headerproxy_redirect。我确保容器使用正确的端口(例如 4001:80),检查分号,并确保 url 没有尾随斜杠。我尝试拉出上游工作器和服务器块,删除 http。没有其他 nginx 配置可以覆盖此文件。我整晚都在修复这个问题,但什么都没用。我累了,我该如何解决这个问题?我的朋友成功做到了这一点,但他们的建议没有用。

我读过很多类似的问题,但都没有解决。以下是列表:

相关内容