带有 NGINX 的 Docker RabbitMQ 反向代理返回未找到队列

问题描述 投票:0回答:1

我使用 NGINX 在 RabbitMQ 容器上实现了反向代理。我可以看到主页上的一切看起来都很好,如下图所示。

我还可以看到队列

当我点击 Test_queue 队列时,出现以下错误:

以下是我的 docker-compose 代码:

version: '3.9'
services:
  postgres:
   image: postgres:latest
   restart: always
   container_name: db-postgres
   volumes:
     - postgres-volume:/var/lib/postgresql/data:rw
   ports:
     - "5432"
   env_file:
     - ./env/postgres.env
   networks:
     - local-test-networks

  rabbit:
    image: rabbitmq:3-management
    restart: unless-stopped
    deploy:
      restart_policy:
      condition: on-failure
    volumes:
       - ~/.docker-conf/rabbitmq/data/:/var/lib/rabbitmq/:rw
       - ~/.docker-conf/rabbitmq/log/:/var/log/rabbitmq/:rw
    ports:
       - "5672"
       - "15672"
    environment:
      DOCKER_DEFAULT_PLATFORM: linux/amd64
    networks:
      - local-test-networks

  nginx:
   image: nginx:latest
   build: 
      context: .
      dockerfile: ./nginx/Dockerfile
   depends_on:
      - rabbit
      - postgres

   links:
      - frontend
      - backend
      - pgadmin
      - rabbit
   ports:
      - "80:80"

   networks:
      - local-test-networks

我的 Nginx 配置是:

  server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

        location /rabbit {
            rewrite ^/rabbit$ /rabbit/ permanent;
            rewrite ^/rabbit/(.*)$ /$1 break;

            proxy_set_header X-Script-Name /rabbit;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            
            proxy_pass http://rabbit:15672/;

            proxy_redirect off;
            proxy_buffering off;
        }
    
        location / {

            proxy_set_header X-Real $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            proxy_set_header Host $host;
            proxy_set_header X-NginX-Proxy true;
      
            proxy_pass http://wallstreetlens:3003;
            proxy_redirect off;
        }
}

期待您的指导。

谢谢您!

docker nginx rabbitmq
1个回答
0
投票

我用这个来解决问题

  location /rabbitmq/api/ {
        rewrite ^ $request_uri;
        rewrite ^/rabbitmq/api/(.*) /api/$1 break;
        return 400;
        proxy_pass http://localhost/rabbitmq$uri;
    }
© www.soinside.com 2019 - 2024. All rights reserved.