Nginx 7层负载均衡的搭建

目录

负载均衡的理解

修改配置文件

测试

[1. 选择在 DMZ 区测试,使用 db 服务器进行测试](#1. 选择在 DMZ 区测试,使用 db 服务器进行测试)

2.选择在外网测试负载均衡效果


负载均衡的理解

负载均衡:load balancer,简称LB
Nginx 既是一个 web 服务器软件,也是一个负载均衡软件(反向代理),也就是说负载均衡是在nginx这个软件做的,本质是更改nginx配置文件开启负载均衡器upstream,将后端服务器(real server)加入到upstream下。这样在访问这个拥有负载均衡器的服务器ip时候就会转发。

负载均衡
* 四层负载均衡:工作在传输层 -> 根据端口号做转发 --with-stream 表示四层负载开启 效率高 tcp udp 作用在传输层

* 七层负载均衡:工作在应用层 -> 根据协议做转化(http协议) 默认支持七成负载均衡

总结:负载均衡器通常称为四层交换机或七层交换机。四层交换机主要分析IP层及TCP/UDP层,实现四层流量负载均衡。七层交换机除了支持四层负载均衡以外,还有分析应用层的信息,如HTTP协议URI或Cookie信息。
负载均衡器的作用:

  1. 是一个中间件(软件),可以解决大量用户同时访问的时候,将流量均衡分配到后端的业务服务器上,避免某台服务器流量过大,导致服务器崩溃。解决了大并发情况下能正常访问的问题。
  2. 提高了网站的性能(并发量)和用户体验。
  3. 方便网站的性能扩展
  4. 可以让业务服务器之间可以起到冗余功能--》高可用

修改配置文件

复制代码
[root@lb-1 ~]# cd /usr/local/wangguang/conf/
[root@lb-1 conf]# vim nginx.conf
worker_processes 2;
events {
worker_connections 2048;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#定义一个负载均衡器 scapp
upstream scapp {
server 192.168.50.144;
server 192.168.50.149;
}
server {
listen 80;
server_name localhost;
location / {
#访问网页根目录直接转发到负载均衡器上进行处理
proxy_pass http://scapp;
}
}
}

修改配置文件以后一定要测试配置文件语法是否正确并重启

root@lb-1 conf# nginx -t
nginx: the configuration file /usr/local/wangguang/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/wangguang/conf/nginx.conf test is successful
root@lb-1 conf# nginx -s reload

测试

这一步的操作比较多,首先需要两个web服务器安装nginx,同时修改首页index.html文件,能从页面看出web服务器的不同,之前已经实现过。

1. 选择在 DMZ 区测试,使用 db 服务器进行测试

如果多次执行访问,出现不同的页面,表示负载均衡效果成功。注意访问的是这个负载均衡器所在的ip地址

复制代码
[root@db-mysql ~]# curl 192.168.50.150
看到
<h1>Welcome to www!</h1>
同时再一次访问
[root@db-mysql ~]# curl 192.168.50.150
看到
<h1>Welcome to nginx!</h1>

2.选择在外网测试负载均衡效果

需要在防火墙服务器上修改 DNAT 策略,发布负载均衡器 LB1 ,用户访问 web 业务直接转发
到 LB1 服务器上

root@firewall \~# vim set_fw_snat_dnat.sh
#!/bin/bash
#开启路由功能
echo 1 >/proc/sys/net/ipv4/ip_forward
#修改/etc/sysctl.conf 里添加下面的配置
#net.ipv4.ip_forward = 1
#清除防火墙规则
iptables=/usr/sbin/iptables
iptables -F iptables -t nat -F
#set snat policy
iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o ens33 -j MASQUERADE #set dnat policy 使用 2 个外网的 ip 对应内部的 2 个 vip,将 2 个 vip 发布出去,提供 web 服务 **iptables -t nat -A PREROUTING -d 192.168.1.125 -i ens33 -p tcp --dport 80 -j DNAT
--to-destination 192.168.50.150**
#发布堡垒机,访问防火墙的 2233 端口转发到堡垒机的 22 端口
$iptables -t nat -A PREROUTING -d 192.168.1.125 -i ens33 -p tcp --dport 2233 -j DNAT
--to-destination 192.168.50.145:22
root@firewall \~#
执行脚本
root@firewall \~# bash set_fw_snat_dnat.sh
在 windows 机器上进行测试
直接去访问 ip 地址 http://192.168.1.125,也就是我们的WAN口,测试如图,直接刷新

相关推荐
东莞和裕包装2 小时前
如何管控广州定制纸箱生产中的啤切精度与印刷色差质量问题
大数据·运维·网络·人工智能
小飞侠在吗3 小时前
Windows 下 Nginx 访问 127.0.0.1 报 50x 错误:根因是路径里 \t 被当成 Tab
运维·windows·nginx
九硕智慧建筑一体化厂家4 小时前
楼宇自控|智慧建筑核心引擎!楼宇自控系统,赋能建筑高效低碳运维
运维·人工智能·笔记·智慧城市
90后小陈老师4 小时前
Google账号申诉处理建议
运维
怪侠_岭南一只猿4 小时前
[简单理解]小龙虾是怎么一回事?
运维·服务器·ai
海兰4 小时前
【应用】Wastnet 框架的 SSE (Server-Sent Events)从协议原理到实践指南
运维·服务器·人工智能
向生5 小时前
FRP 0.61.0 完整保姆级部署教程
运维
2401_894915535 小时前
Geo 优化源码部署实战:环境配置、参数调优完整指南
运维·服务器·数据库·tcp/ip·安全
liuyicenysabel6 小时前
Flask 个人站 iProfile 上线笔记(k3s + Nginx + Let‘s Encrypt)
笔记·nginx·flask
爱和冰阔落6 小时前
【Linux】Ctrl+C 到底做了什么?从键盘、kill 到 alarm,一次讲清信号的产生
linux·运维·c++·安卓