簡體   English   中英

Nginx 與 vultr 負載均衡器的連接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM