Проблема с распределением трафика с публичного балансировщика нагрузки на nginx - PullRequest
0 голосов
/ 30 мая 2019

Я пытаюсь распространять запросы, поступающие на балансировщик нагрузки, на экземпляры набора Azure Scale.

Я создал набор масштабов, используя образ linux vm. В образе Nginx уже установлен в VM. Конфигурация Nginx показана ниже:

server {
    listen 80 default_server;

    server_name _;

    return 301 https://$host$request_uri;
}

server {

    listen 443;
    listen [::]:443;
    server_name 127.0.0.1 127.0.0.1 *.cloudapp.azure.com;
    ssl_certificate /usr/local/etc/ssl/certs/certi/domain-crt.txt;
    ssl_certificate_key /usr/local/etc/ssl/certs/certi/domain-key.txt;
    ssl on;
    ssl_session_cache builtin:1000 shared:SSL:10m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;
    access_log /var/log/nginx/access.log;
    location / {
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-Host $host; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
        proxy_pass https://127.0.0.1:9000; 
        proxy_redirect http:// https://;
    }


}

Другое приложение (XYZ) работает на порту 9000. Таким образом, Nginx направляет запрос на порт 9000. Затем приложение (XYZ) использует запрос и возвращает ответ.

Теперь я создал набор масштабов с помощью публичного балансировщика нагрузки. Правило балансировки нагрузки должно прослушивать порт 80 и отправлять его на внутренний порт 80.

Чтобы проверить работоспособность экземпляров, я отправляю tcpProbe (ПОРТ 80, Интервал 5, Нездоровый порог 4).

Существует публичный IP-адрес, связанный с loadbalancer.

Однако даже после нажатия общедоступного IP-адреса (или DNS-имени) в браузере я не вижу приложение, работающее в порту 9000.

Я новичок в Azure и Nginx, и мне сложно его реализовать. Все, что я хочу сделать, это запустить несколько экземпляров моего образа виртуальной машины, используя масштабирование и loadbalancer.

Ресурсы, которые были созданы при создании набора масштабов: pip, vnet, scaleset, lb, nsg.

Как мне распределить трафик с балансировщика нагрузки на nginx? Любой намек, предложение о том, как я могу его отладить.

1 Ответ

1 голос
/ 30 мая 2019

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

Клиент на порту 80 -> LB (80) -> Nginx (80) перенаправляет на порт 443 с заголовком местоположения Клиент на порту 443 -> LB (443)) -> Nginx (443) другое перенаправление на порт 9000 (не уверен, если это внутреннее перенаправление)

Поэтому все, что вам нужно сделать, это создать правило LB на порту 443 и на порт 9000, если оно естьперенаправление на клиента, поэтому поток остается неизменным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...