Подключение Nginx к балансировщику нагрузки vultr
У нас было много приложений на одном экземпляре облака vultr, но у него есть только одна проверка работоспособности по умолчанию для одного https loadBalancer с сертификатом SSL.
поэтому мы использовали nginx для настройки нескольких URL-адресов / бэкэндов с указанием http и запуска с использованием docker-compose, чтобы приложения работали в одной сети.
server {
listen 80;
listen [::]:80;
server_name *.example.com;
access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://strapi-container:1337/;
}
location /chat {
proxy_pass http://rocketchat-container:3000;
}
location /auth {
proxy_pass http://keycloak-container:8080;
proxy_set_header Host $host;
}
}
}
URL-адрес серверной части: http: // instance-ip /, http: // instance-ip / chat, http: // instance-ip / auth соответственно.
nginx:
image: nginx:1.20
container_name: nginx
ports:
- 80:80
restart: unless-stopped
volumes:
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- strapi-cms
- rocketchat
- keycloak
networks:
- test-network
Все работает нормально, и мы можем получить доступ к приложениям через порт 80 по умолчанию nginx с указанным выше URL-адресом серверной части.
Но мы намерены как-то связать nginx с HTTPS LoadBalancer в vultr, он должен работать как
Например: https://qa.example.com/, https://qa.example.com/chat, https://qa.example.com/auth.
1 ответ
Что вам нужно сделать, так это настроить одно правило пересылки на Vultr Load Balancer.
Правило пересылки
443->443
для TLS на экземпляре
Правило пересылки
443->80
для TLS на LB.
Это заставит LB пересылать весь входящий трафик с определенного порта LB на ваш порт, определенный в NGINX. Затем ваш экземпляр nginx должен направить местоположение на соответствующий proxy_pass, который вы определили.
Что касается проверки работоспособности ... Балансировщики нагрузки Vultr имеют только одну проверку работоспособности, поскольку они были разработаны для работы с отдельными приложениями, находящимися за LB. Однако у вас может быть
/health
конечная точка, которая при попадании проверяет статус всех ваших других приложений и возвращает
200 ok
если они все работают.
У нас есть некоторые подробные документы, доступные на https://www.vultr.com/docs/vultr-load-balancers
Полное раскрытие информации Я технический руководитель по балансировщикам нагрузки для Vultr.