要求:实现负载均衡及nginx状态监控(负载均衡类型为反向代理负载均衡)
一、准备
- 一台本地主机
- 用于验证web负载均衡
- 本地主机IP地址为固定IP地址 172.16.123.100/24
- 一台代理服务器
- 使用本地虚拟机
- 配置有两块网卡,其一为桥接网络,其二为内部网络
- 桥接网络IP地址为 172.16.123.106/24
- 配置桥接网络的网关为172.16.123.1 DNS为8.8.8.8
- 内部网络IP地址为 10.0.0.254/24
- 不配置内部网络的网关和DNS信息
- 一台内部网络服务器
- 使用本地虚拟机
- IP地址为 10.0.0.1/24
- 不配置此服务器的网关和DNS信息
- 一台内部网络服务器
- 使用本地虚拟机
- IP地址为 10.0.0.2/24
- 不配置此服务器的网关和DNS信息
二、配置代理服务器的桥接网络
- 通过复制虚拟机的方式得到本虚拟机
- 在管理界面配置两块网卡,分别为桥接网络和内部网络
- 登录虚拟机后配置设备可以连接到互联网
- 编辑 /etc/sysconfig/network-scripts/ifcfg-enp0s3 文件
- 按照第一点中修改IP地址、网关、DNS等信息
- yum update #更新系统
- yum install -y nginx #安装nginx服务
- setenforce 0
- 编辑 /etc/selinux/config 文件,将 SELINUX对应值由enforcing 修改为 disable #关闭selinux
三、配置代理服务器的内部网络
- 通过 nmcli 命令可以看到目前有两块网卡,enp0s3和enp0s8,我们已经通过enp0s3的配置文件配置完成了桥接网络,接下来需要配置enp0s8网卡对应的内部网络
- enp0s8没有对应的配置文件,我们可以使用 nmtui 命令通过可视化的方式配置enp0s8网卡
- nmtui 进入界面,add、Ethernet、Profile name和Device配置为enp0s8、下方IPv4地址处配置IP地址信息 10.0.0.254/24,保存退出,重启设备
- 重启后使用 nmcli 命令查看发现两块网卡均已启用
四、配置内部服务器
- 通过复制虚拟机模板的方式得到内部服务器-1
- 首先设置本虚拟机的上网方式为桥接网络
- 设置桥接网络的目的为连接到互联网以达到更新、在线安装服务的目的
- yum update #更新系统
- yum install -y httpd #安装apache服务
- systemctl start httpd #开启apache服务
- systemctl enable httpd #配置apache服务随开机启动
- echo “<h1>site-1</h1>” > /var/www/html #创建网页文件
- systemctl stop firewalld #临时关闭防火墙
- systemctl disable firewalld #关闭防火墙开机自启动功能
- setenforce 0 #临时关闭selinux
- 编辑 /etc/selinux/config 文件,将 SELINUX对应值由enforcing 修改为 disable #关闭selinux
- 重启设备并将上网方式修改为内部网络
- 重启并修改为内部网络
- 编辑配置文件 /etc/sysconfig/network-scripts/ifcfg-enp0s3 ,删除DNS、网关的配置信息,修改IP地址为 10.0.0.1,掩码 prefix 为 24
- 内部服务器-1配置完成
- 通过复制虚拟机内部服务器-1的方式得到内部服务器-2
- 登入系统,修改IP地址为10.0.0.2
- 修改网页文件内容为 <h1>site-2</h1>
五、配置代理服务器以开启负载均衡
- 编辑 /etc/nginx/nginx.conf 文件,红色部分为增加内容:
include /etc/nginx/conf.d/*.conf;
upstream load1{
server 10.0.0.1:80 weight=1; #weight为权重,此处代表权重为1/2,可根据服务器负载能力配置
server 10.0.0.2:80 weight=1;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://load1; #将请求转发到自定义服务器组 load1
}
error_page 404 /404.html;
}
- 保存并退出,执行 systemctl relaod nginx 来重载nginx服务
- 此时在本地主机浏览器访问代理服务器IP地址,即172.16.123.106,成功访问
- 不断刷新浏览器,可以看到内容显示为 “site-1” 或者 “site-2” ,web负载均衡成功
六、简单实现nginx监控
- 编辑 /etc/nginx/nginx.conf 文件,红色部分为增加内容:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://load1;
allow 172.16.123.1/24; #限制访问IP范围
deny all;
}
location /status{
stub_status;
}
error_page 404 /404.html;
}
- 在本地主机浏览器访问 http://172.16.123.106/status ,可看到当前状态
原创文章,作者:witersen,如若转载,请注明出处:https://www.witersen.com