NGINX proxy_pass to RabbitMQ manager работает только через мобильное устройство - PullRequest
0 голосов
/ 25 сентября 2018

Я столкнулся с очень специфической проблемой, связанной с настройкой NGINX / RabbitMQ, в которой желаемый результат доступен только через мобильное устройство.Я надеюсь, что есть кто-то, кто сможет пролить свет на то, что я делаю неправильно :).У меня есть следующие настройки:

Две капли в DigitalOcean:

  • Капля A с установленным на ней сервером ранчера
  • Капля B, которая действует как хост, управляемыйвладелец ранчо. для этого примера предположим, что его ip-адрес равен 123.45.678.90

Два изображения в докер-хабе:

  • 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 = капля 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 по запросу, но я не думаю, что в данный момент это имеет большое значение.

Оба изображения встроены в стек на Rancher через следующий docker-compose.yml :

version: '2'

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

, который выглядит следующим образом

Сейчас

Когда я пытаюсь получить доступ к своему менеджеру RabbitMQ через www.mydomain.nl / rabbitmq на мобильном устройстве все работает правильно.Когда я пытаюсь сделать то же самое с любым браузером на моем рабочем столе (или ноутбуком), ничего не получается.Я даже не вижу попытки войти в Rancher (контейнер nginx).Я также пробовал это в режиме инкогнито и / или с отключенным ad-block-plus / Disconnect, но безрезультатно.

Что не так с этой конфигурацией?

Заранее спасибо.

1 Ответ

0 голосов
/ 26 сентября 2018

Хорошо, думаю, мне удалось это исправить.Любое или оба из следующих действий должны были что-то с этим сделать:

  • Я включил соединение через ipv6 на капле DigitalOcean, добавил адрес ipv6 в качестве записи AAAA (для обоих доменов www.mydomain.нл как mydomain.nl) в DNS-записи с регистратором домена.Я не знаю много об этом предмете, но думал, что мобильное устройство могло соединиться с ipv4, в то время как настольный компьютер пытался соединиться с другим (который не был настроен должным образом).Я зашел в firefox ocnfig ( type about: config в адресной строке ) и установил для network.dns.disableIPv6 значение true.Это, казалось, помогло.

  • Я ждал день.Возможно, для правильного распространения DNS (обычных A-записей) потребовалось немного больше времени

...