nginx集群搭建——四层

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
应用型负载均衡 ALB,每月750个小时 15LCU
简介: nginx集群搭建——四层

nginx负载均衡

环境:四台虚拟机、系统centos7.9、nginx

hostname ip 说明
lb 192.168.133.142 nginx主负载均衡器
rs1 192.168.133.130 web服务器1
rs2 192.168.133.137 web服务器2
client 192.168.133.139 客户端—测试用

安装nginx

这里我们选择yum源安装,因为centos7yum源里没有nginx,所以我们要先安装拓展源

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

1.配置用于测试的两台web服务器

# cd /etc/nginx/conf.d/
# mv default.conf{,.bak}
# cat vhost.conf
server {
  listen 80;
  server_name bbs.yunjisuan.com;
  location / {
    root /usr/share/nginx/html/bbs;
    index index.html index.htm;
  }
  access_log /usr/share/nginx/html/bbs/logs/access_bbs.log main;
}
server {
  listen 80;
  server_name www.yunjisuan.com;
  location / {
    root /usr/share/nginx/html/www;
    index index.html index.htm;
  }
  access_log /usr/share/nginx/html/www/logs/access_www.log main;
}

2.配置web服务的内容

mkdir -p /usr/share/nginx/html/{www,bbs}/logs
echo "`hostname -I `www" > /usr/share/nginx/html/www/index.html
echo "`hostname -I `bbs" > /usr/share/nginx/html/bbs/index.html

用client服务器测试结果

[root@localhost ~]# curl -H host:bbs.yunjisuan.com 192.168.133.130
192.168.133.130 bbs
[root@localhost ~]# curl -H host:bbs.yunjisuan.com 192.168.133.137
192.168.133.137 bbs
[root@localhost ~]# curl -H host:www.yunjisuan.com 192.168.133.137
192.168.133.137 www
[root@localhost ~]# curl -H host:www.yunjisuan.com 192.168.133.130
192.168.133.130 www

3.配置lb的nginx负载均衡

# 定义一个服务器池
upstream ServerPools {
        server 192.168.133.130:80 weight=1;  # 第一个服务器
        server 192.168.133.137:80 weight=1;  # 第二个服务器
}
# 配置针对 www.yunjisuan.com 的请求
server {
        listen 80;  # 监听 80 端口
        server_name www.yunjisuan.com;  # 配置 server_name 为 www.yunjisuan.com
        location / {  # 配置 location 匹配根路径
                proxy_pass http://ServerPools;  # 将请求转发到upstream服务器池
                proxy_set_header Host $host;  # 设置 Host 头部,针对多台虚拟主机的情况
                proxy_set_header X-Forwarded-For $remote_addr;  # 设置 X-Forwarded-For 头部,在日志中显示客户端ip
        }
}
# 配置针对 bbs.yunjisuan.com 的请求
server {
        listen 80;  # 监听 80 端口
        server_name bbs.yunjisuan.com;  # 配置 server_name 为 bbs.yunjisuan.com
        location / {  # 配置 location 匹配根路径
                proxy_pass http://ServerPools;  # 将请求转发到upstream服务器池
                proxy_set_header Host $host;  # 设置 Host 头部,针对多台虚拟主机的情况
                proxy_set_header X-Forwarded-For $remote_addr;  # 设置 X-Forwarded-For 头部,在日志中显示客户端ip
        }
}
  1. upstream模块:定义一个上游服务器池,用于存储多个上游服务器的信息,这样可以实现负载均衡。
  2. server模块:定义一个虚拟主机,用于监听指定的端口和主机名,可以配置多个server模块实现一个nginx服务器对多个网站的服务。
  3. server_name指令:配置虚拟主机的域名。
  4. location指令:用于匹配请求的URI,指定在请求URI匹配时所应该执行的操作。
  5. proxy_pass指令:将请求转发到上游服务器池。
  6. proxy_set_header指令:设置HTTP请求头部的值,这里用于设置Host和X-Forwarded-For头部。Host头部指定目标服务器的主机名,X-Forwarded-For头部指定客户端的IP地址。

4.测试

修改测试服务器的hosts文件

[root@localhost ~]# vim /etc/hosts
192.168.133.142 www.yunjisuan.com bbs.yunjisuan.com

测试

[root@localhost ~]# for i in {1..10}; do curl www.yunjisuan.com ; done
192.168.133.130 www
192.168.133.137 www
192.168.133.130 www
192.168.133.137 www
192.168.133.130 www
192.168.133.137 www
192.168.133.130 www
192.168.133.137 www
192.168.133.130 www
192.168.133.137 www
[root@localhost ~]# for i in {1..10}; do curl bbs.yunjisuan.com ; done
192.168.133.130 bbs
192.168.133.137 bbs
192.168.133.130 bbs
192.168.133.137 bbs
192.168.133.130 bbs
192.168.133.137 bbs
192.168.133.130 bbs
192.168.133.137 bbs
192.168.133.130 bbs
192.168.133.137 bbs

这边可以看见实现了最基本的wrr的负载均衡,测试结果也是成功的

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
负载均衡 应用服务中间件 Linux
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
1123 0
|
3月前
|
Java 应用服务中间件 Shell
Nginx+Keepalived+Tomcat 实现Web高可用集群
Nginx+Keepalived+Tomcat 实现Web高可用集群
115 0
|
3月前
|
负载均衡 前端开发 应用服务中间件
FastDFS+Nginx+fastdfs-nginx-module集群搭建
FastDFS+Nginx+fastdfs-nginx-module集群搭建
|
3月前
|
应用服务中间件 Nacos 数据库
Nacos 1.2.1 集群搭建(三) Nginx 配置 集群
Nacos 1.2.1 集群搭建(三) Nginx 配置 集群
64 1
|
3月前
|
物联网 应用服务中间件 Linux
CentOS7.9 Nginx+EMQX集群组建MQTTS平台
通过以上步骤,您已成功搭建了一个基于CentOS 7.9、Nginx和EMQX的MQTTS平台。这个平台既能保证数据传输的安全性,又能利用Nginx的负载均衡能力和EMQX的高性能、高并发处理能力,实现稳定高效的消息服务。在部署和配置过程中,务必注意证书、域名以及EMQX配置的正确性,确保系统安全和稳定运行。此外,定期更新软件和系统,以及监控系统性能,也是保证MQTTS平台长期稳定运行的重要环节。
101 4
|
3月前
|
物联网 应用服务中间件 Linux
CentOS7.9 Nginx+EMQX集群组建MQTTS平台
通过以上步骤,您已成功搭建了一个基于CentOS 7.9、Nginx和EMQX的MQTTS平台。这个平台既能保证数据传输的安全性,又能利用Nginx的负载均衡能力和EMQX的高性能、高并发处理能力,实现稳定高效的消息服务。在部署和配置过程中,务必注意证书、域名以及EMQX配置的正确性,确保系统安全和稳定运行。此外,定期更新软件和系统,以及监控系统性能,也是保证MQTTS平台长期稳定运行的重要环节。
127 3
|
3月前
|
物联网 应用服务中间件 Linux
CentOS7.9 Nginx+EMQX集群组建MQTTS平台
通过以上步骤,您已成功搭建了一个基于CentOS 7.9、Nginx和EMQX的MQTTS平台。这个平台既能保证数据传输的安全性,又能利用Nginx的负载均衡能力和EMQX的高性能、高并发处理能力,实现稳定高效的消息服务。在部署和配置过程中,务必注意证书、域名以及EMQX配置的正确性,确保系统安全和稳定运行。此外,定期更新软件和系统,以及监控系统性能,也是保证MQTTS平台长期稳定运行的重要环节。
93 0
|
6月前
|
存储 运维 负载均衡
Heartbeat+Nginx实现高可用集群
通过Heartbeat与Nginx的结合,您可以建立一个高可用性的负载均衡集群,确保在服务器故障时仍能提供无中断的服务。这种配置需要仔细的计划和测试,以确保系统在故障情况下能够正确运行。
86 2
|
6月前
|
应用服务中间件 nginx
nginx配置集群轮训策略
nginx配置集群轮训策略
671 0
|
运维 负载均衡 中间件
【运维知识进阶篇】集群架构-Nginx动静分离详解
【运维知识进阶篇】集群架构-Nginx动静分离详解
93 0