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

德里里乌斯

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

DigitalOcean上的两个液滴:

  • 安装了rancher服务器的Droplet 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容器)上。我也以隐身模式和/或禁用了ad-block-plus / Disconnect尝试了此操作,但无济于事。

此配置有什么问题?

提前致谢。

德里里乌斯

好吧,我认为我设法解决了这个问题。以下两者之一或两者必须做一些事情:

  • 我通过DigitalOcean小站上的ipv6启用了连接,并通过域名注册机构在DNS记录中添加了ipv6地址作为AAAA记录(对于www.mydomain.nl作为mydomain.nl)。我对此主题了解不多,但认为移动设备可能已与ipv4连接,而台式机尝试与其他设备连接(未正确设置)。我进入了firefox ocnfig(在地址栏中输入about:config),并将network.dns.disableIPv6设置为true。这似乎有所帮助。

  • 我等了一天。DNS(正常的A记录)可能需要花费一些时间才能正确传播

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章