NGINX proxy_pass to RabbitMQ manager работает только через мобильное устройство
Я столкнулся с очень специфической проблемой с моей настройкой NGINX/RabbitMQ, в которой желаемый результат доступен только через мобильное устройство. Я надеюсь, что есть кто-то, кто сможет пролить свет на то, что я делаю неправильно:). У меня есть следующие настройки:
Две капли на DigitalOcean:
- Капля А с установленным на ней сервером ранчера
- Капелька 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/ = 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 по запросу, но я не думаю, что она сейчас имеет большое значение.
Оба изображения встроены в стек на 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 ответ
Хорошо, я думаю, что мне удалось это исправить. Любое или оба из следующего должны были сделать что-то с этим:
Я включил соединение через ipv6 на дроплете DigitalOcean, добавил адрес ipv6 как запись AAAA (для обоих www.mydomain.nl как mydomain.nl) в DNS-записи с регистратором домена. Я не знаю много об этом предмете, но думал, что мобильное устройство могло соединиться с ipv4, в то время как настольный компьютер пытался соединиться с другим (который не был настроен должным образом). Я вошел в firefox ocnfig (введите about:config в адресной строке) и установил для network.dns.disableIPv6 значение true. Это, казалось, помогло.
Я ждал день. Возможно, для правильного распространения DNS (обычных A-записей) потребовалось немного больше времени