腾讯云 CLB (Cloud Load Balancer) 为例,详细讲解如何配置 Nginx 集群
好的,我们以腾讯云 CLB (Cloud Load Balancer) 为例,详细讲解如何配置 Nginx 集群,以及域名应该如何解析。
核心逻辑
在腾讯云架构中,域名不再解析到后端的任何一台 Nginx 服务器(CVM)的 IP 上,而是直接解析到腾讯云 CLB 的 VIP(即它的服务地址)上。CLB 会自动将流量分发到背后绑定的、健康的 Nginx 服务器上。
整个架构和数据流如下图所示:
flowchart TDA[用户访问域名<br>www.example.com]B[腾讯云DNS解析<br>DNSPod]C[腾讯云CLB实例<br>VIP: 123.123.123.123]subgraph D [Nginx服务器集群]D1[nginx-server-01<br>CVM-IP: 10.0.1.10]D2[nginx-server-02<br>CVM-IP: 10.0.1.11]D3[nginx-server-03<br>CVM-IP: 10.0.1.12]endsubgraph E [后端应用实例]E1[App-01:8080]E2[App-02:8080]E3[App-03:8080]endA -- 1. DNS查询 --> BB -- 2. 返回CLB的VIP --> AA -- 3. 请求发送至CLB VIP --> CC -- 4. 根据规则分发流量 --> DD1 -- 5. 代理到应用实例 --> ED2 -- 5. 代理到应用实例 --> ED3 -- 5. 代理到应用实例 --> EE -- 6. 响应原路返回 --> A
具体配置步骤
第一步:准备基础设施
- 购买并部署多台 CVM(云服务器):
-
- 在这些 CVM 上安装并配置完全相同的 Nginx。确保你们的 Web 服务可以正常访问。
- 假设我们有两台 CVM:
-
-
nginx-server-01
(内网IP:10.0.1.10
)nginx-server-02
(内网IP:10.0.1.11
)
-
-
- 这些 CVM 最好在同一个私有网络(VPC) 内。
- 配置 Nginx:
-
- 在每台 Nginx 上,配置
upstream
指向你们最终的应用服务器(如 Tomcat, Node.js, Java 等)。 - Nginx 自身的配置(如
server_name
,root
,proxy_pass
等)在所有机器上必须保持一致。
- 在每台 Nginx 上,配置
第二步:创建和配置腾讯云 CLB
- 购买 CLB 实例:
-
- 登录腾讯云控制台,进入 CLB 页面。
- 点击“新建”,选择实例类型(通常选择“公网”或“内网”)、所属网络等。公网CLB会自动分配一个公网IP(即VIP)。
- 配置监听器:
-
- 在CLB实例的详情页,点击“监听器管理”。
- 点击“新建”一个监听器。
- 协议和端口:选择
HTTP:80
或HTTPS:443
(如果启用SSL)。 - 调度算法:选择“轮询”、“加权轮询”等,根据业务需求。
- 绑定后端 Nginx CVM:
-
- 在监听器下面,点击“绑定对象”。
- 选择“云服务器”选项卡,然后选择你之前创建的那两台 Nginx CVM (
nginx-server-01
和nginx-server-02
)。 - 设置它们提供服务的端口(例如
80
)。 - 关键点:CLB 的健康检查会定期探测这些 CVM 的指定端口。如果某台 Nginx 宕机,CLB 会自动将其摘除,流量只会转发到健康的机器上。
第三步:配置域名解析(DNS)
这是最关键的一步,域名必须指向 CLB。
- 获取 CLB 的 VIP:
-
- 在CLB实例列表页,找到你刚创建的CLB实例,其“VIP”地址就是你域名需要指向的地址。假设为
123.123.123.123
。
- 在CLB实例列表页,找到你刚创建的CLB实例,其“VIP”地址就是你域名需要指向的地址。假设为
- 登录域名服务商控制台:
-
- 如果你的域名也在腾讯云(DNSPod),可以直接在 DNSPod 控制台 操作。
- 如果不在,请登录你的域名服务商(如Godaddy, Namesilo, 阿里云万网)的管理后台。
- 添加解析记录:
-
- 找到你需要配置的域名(例如
www.example.com
)。 - 添加一条 A 记录:
- 找到你需要配置的域名(例如
-
-
- 主机记录:
www
(如果你希望解析www.example.com
) - 记录类型:
A
- 记录值:
123.123.123.123
(即你的CLB的VIP地址) - TTL:可以使用默认值,或设置为600秒(10分钟)。
- 主机记录:
-
总结与验证
- 域名配置哪个IP? -> 配置腾讯云 CLB 的 VIP 地址。
- 为什么? -> 因为 CLB 提供了统一的人口,并自动实现了流量分发、健康检查和高可用。你后端的 Nginx 服务器可能会变(扩容、缩容、故障替换),但 CLB 的 VIP 是固定的,无需修改域名解析。
验证方法:
- 在本地电脑的命令行中,使用
ping www.yourdomain.com
,查看返回的IP地址是否是CLB的VIP。 - 访问你们的网站,并进行测试。
- 可以尝试关掉其中一台 Nginx 服务器的服务,观察网站是否依然可以访问(CLB健康检查需要一定时间,通常几十秒内会切换)。