NGINX proxy_pass 到 RabbitMQ 管理器只能通过移动设备工作



我的NGINX/RabbitMQ设置遇到了一个非常具体的问题,其中所需的结果只能通过移动设备访问。我希望有人能照亮我做错了什么:)。我有以下设置:

数字海洋上的两个液滴:

  • 安装了牧场主服务器的液滴A
  • 液滴B充当宿主,由牧场主控制。对于此示例,假设其 IP 地址为 123.45.678.90

docker-hub上的两个映像:

  • MyAccount/customnginx
  • MyAccount/CustomRabbitmq

MyAccount/customnginx

Dockerfile

FROM nginx:latest
COPY nginx.conf /etc/nginx/nginx.conf

nginx.conf (其中 http://123.45.678.90:15672 = Droplet B + RabbitMQ 端口(

worker_processes 1;
events {
worker_connections 1024;
}
http {
log_format compression '$remote_addr - $remote_user [$time_local] '
'"$request" $status $upstream_addr '
'"$http_referer" "$http_user_agent" "$gzip_ratio"';
server {
listen 80 default_server;
server_name www.mydomain.nl mydomain.nl;
access_log /dev/stdout;
location /rabbitmq/ {
proxy_pass http://123.45.678.90:15672/;  
rewrite ^/rabbitmq$ /rabbitmq/ permanent;
rewrite ^/rabbitmq/(.*)$ /$1 break;
proxy_buffering                    off;
proxy_set_header Host              $http_host;
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;
}
}

}

MyAccount/CustomRabbitmq

我可以根据要求提供 rabbitMQ 配置,但我认为它目前并不重要。

这两个映像都通过以下docker-compose.yml构建到Rancher上的堆栈中

version: '2'
services:
rabbitmq:
image: myaccount/customrabbitmq
ports:
- 5672:5672
- 15672:15672
nginx:
image: myaccount/customproxy
ports:
- 80:80       

看起来像这样

现在

当我尝试通过移动设备上的www.mydomain.nl/rabbitmq 访问我的 RabbitMQ 管理器时,一切正常。当我尝试对台式机(或笔记本电脑(上的任何浏览器执行相同的操作时,没有任何效果。我什至没有看到记录在Rancher(nginx容器(上的尝试。我也在隐身模式下和/或在禁用广告拦截加/断开连接的情况下尝试过这个,但无济于事。

此配置有什么问题?

提前谢谢。

好的,我想我设法解决了这个问题。以下任一或两项都必须与它有关:

  • 我在 DigitalOcean droplet 上启用了通过 ipv6 的连接,在与域注册商的 DNS 记录中添加了 ipv6 地址作为 AAAA 记录(对于两个 www.mydomain.nl 都作为 mydomain.nl(。我对这个主题了解不多,但认为移动设备可能已连接到ipv4,而桌面尝试与另一个连接(设置不正确(。我进入Firefox ocnfig(在地址栏中键入about:config(并将network.dns.disableIPv6设置为true。这似乎有所帮助。

  • 我等了一天。也许 DNS(普通 A 记录(需要更长的时间才能正确传播

最新更新