繁体   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