[英]Nginx connectivity with vultr loadbalancer
我們在單個 vultr 雲實例上有許多應用程序,但是對於具有 SSL 證書的單個 https loadBalancer,它只有一個默認的健康檢查。
so we used nginx to configure mutliple /backend URL with http specified and running using docker-compose to make applications running on a single network.
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;
}
}
}
The backend url is http://instance-ip/, http://instance-ip/chat, http://instance-ip/auth respectively
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
一切正常,我們可以通過 nginx 默認端口 80 使用上述后端 URL 訪問應用程序。
但我們的意圖是在 vultr 中以某種方式將 nginx 與 HTTPS LoadBalancer 連接起來,它應該像
例如: https://qa.example.com/、https : //qa.example.com/chat、https://qa.example。
您要做的是在 Vultr 負載均衡器上設置一個轉發規則。
實例上 TLS 的轉發規則443->443
LB 上 TLS 的轉發規則443->80
。
這將使 LB 將定義的 LB 端口上的所有傳入流量轉發到您的 NGINX 定義的端口。 然后,您的 nginx 實例應將該位置路由到您定義的相應 proxy_pass。
至於健康檢查……Vultr 負載均衡器只有一個健康檢查,因為它們被設計為與 LB 后面的單個應用程序一起工作。 但是,您可以有一個/health
端點,當被點擊時會檢查所有其他應用程序的狀態,如果它們都在運行,則返回200 ok
。
我們在https://www.vultr.com/docs/vultr-load-balancers提供了一些詳細的文檔
全面披露我是 Vultr 負載均衡器的技術主管。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.