您的位置:首页 > 新闻 > 热点要闻 > 织梦cms侵权_工业品电商平台排行榜_站长统计app软件下载官网_安卓系统优化app

织梦cms侵权_工业品电商平台排行榜_站长统计app软件下载官网_安卓系统优化app

2025/2/23 7:31:18 来源:https://blog.csdn.net/2401_83342251/article/details/145641100  浏览:    关键词:织梦cms侵权_工业品电商平台排行榜_站长统计app软件下载官网_安卓系统优化app
织梦cms侵权_工业品电商平台排行榜_站长统计app软件下载官网_安卓系统优化app

一、正反向代理

正向代理是在客户端和目标服务器之间充当中间人的代理服务器。当客户端请求访问目标服务器时,请求先发送到正向代理服务器,然后由代理服务器转发请求给目标服务器,并将目标服务器的响应返回给客户端。正向代理隐藏了客户端的真实IP地址,使得目标服务器无法直接识别和追踪客户端。 简而言之:正向代理是客户端访问代理服务器去访问目标服务器,并且对目标服务器隐藏了客户端的真实信息(IP等信息)。

 反向代理是在服务器端和客户端之间充当中间人的代理服务器。当客户端发送请求访问反向代理服务器时,代理服务器会根据一定的规则将请求转发给后端的多个服务器中的一台,然后将后端服务器的响应返回给客户端。反向代理隐藏了真实的服务端,对于客户端而言,它们并不知道具体访问的是哪一台后端服务器。 简而言之:反向代理是指代理服务器接收客户端的请求,然后反向代理将客户端的请求分发给一个或多个目标服务器,最后将响应返回给客户端,对于客户端隐藏了真实的服务端信息。

二、负载均衡的配置 

Nginx 负载均衡的核心工作原理是通过 反向代理 将客户端请求智能分发到多个后端服务器,结合多种算法和健康检查机制,实现高可用、高性能的服务架构。

1.基础配置

在 代理服务器Nginx 子配置文件目录中通过 upstream 模块定义后端服务器池,并在 server 模块中反向代理到该池

[root@lb ~]# vim /etc/nginx/conf.d/lb.conf

upstream webPools { #upstream集群组的名字 # 定义后端服务器列表

        server 192.168.8.156;

        server 192.168.8.157;
    #server关键字是固定的,后面可以接域名(门户会用)或IP。如果不指定端口,默认是80端口。weight代表权重,数值越大被分配的请求越多,结尾有分号。

}

server {

         listen 80;       

           server_name example.com; location / {
     # 访问example.com,请求发送给www_server_pools里面的节点,在实际的反向代理工作中,会通过location功能匹配指定的URI,然后把接收到的符合匹配URI的请求通过proxy_pass抛给定义好的upstream节点池。

        proxy_pass http://webPools;
     #在代理向后端服务器发送的http请求头中加入host字段信息后,若后端服务器配置有多个虚拟主机,它就可以识别代理的是哪个虚拟主机

        proxy_set_header Host $host;
     #接收记录真实用户的 IP ,而不是代理服务器的IP

        proxy_set_header X-Real-IP $remote_addr;

}

实现 Nginx 负载均衡的组件说明

 ngx_http_proxy_module :  proxy 代理模块, 用于把请求拋给服务器节点或 upstream 服务器池

ngx_http_upstream_module :  负载均衡模块, 可以实现网站的负载均衡功能及节点的健康检査

Nginx反向代理案例:

web01服务器、web02服务器、lb负载均衡器、客户端
1、服务器和负载均衡器均下载Nginx
[root@all ~]# yum install nginx -y2、web服务器的配置
2.1、准备测试页面
[root@web ~]# mkdir -p /usr/share/nginx/html/{www,bs}/logs
[root@web ~]# echo "`hostname -I `www" > /usr/share/nginx/html/www/index.html
[root@web ~]# echo "`hostname -I `bbs" > /usr/share/nginx/html/bbs/index.html2.2、配置虚拟主机
[root@web01 ~]# cd /etc/nginx/conf.d/
[root@web01 conf.d]# vim vhosts.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.3、启动服务
[root@web01 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf sntax is ok
nginx: configuration file /etc/nginx/nginx.conf test s successful
[root@web01 conf.d]# systemctl restart nginx3、lb负载均衡器的配置
[root@lb ~]# vim /etc/nginx/conf.d/lb.conf
upstream webPools {server 192.168.8.156;server 192.168.8.157;
}server {listen 80;server_name www.yunjisuan.com;location / {proxy_pass http://webPools;proxy_set_header X-Forwarded-For $remote_addr;proxy_set_header Host $host;}
}
server {listen 80;server_name bbs.yunjisuan.com;location / {proxy_pass http://webPools;proxy_set_header X-Forwarded-For $remote_addr;proxy_set_header Host $host;}
}[root@lb ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf sntax is ok
nginx: configuration file /etc/nginx/nginx.conf test s successful
[root@lb ~]# systemctl restart nginx4、客户端的配置与测试
[root@localhost ~]# vim /etc/hosts 
192.168.8.154 www.yunjisuan.com  bbs.yunjisuan.com[root@localhost ~]# for ((i=1;i<=6;i++));do curl bbs.unjisuan.com;done
192.168.8.156 bbs
192.168.8.157 bbs
192.168.8.156 bbs
192.168.8.157 bbs
192.168.8.156 bbs
192.168.8.157 bbs
[root@localhost ~]# for ((i=1;i<=6;i++));do curl www.yunjisuan.com;done
192.168.8.156 www
192.168.8.157 www
192.168.8.156 www
192.168.8.157 www
192.168.8.156 www
192.168.8.157 www[root@web02 conf.d]# tail /usr/share/nginx/html/bbs/logs/access_bbs.log 
192.168.8.154 - - [14/Feb/2025:17:47:06 +0800] "GET / HTTP/1.0" 200 18 "-" "curl/7.79.1" "192.168.8.158"
192.168.8.154 - - [14/Feb/2025:17:47:07 +0800] "GET / HTTP/1.0" 200 18 "-" "curl/7.79.1" "192.168.8.158"
192.168.8.154 - - [14/Feb/2025:17:47:07 +0800] "GET / HTTP/1.0" 200 18 "-" "curl/7.79.1" "192.168.8.158"
192.168.8.154 - - [14/Feb/2025:17:47:07 +0800] "GET / HTTP/1.0" 200 18 "-" "curl/7.79.1" "192.168.8.158"
192.168.8.154 - - [14/Feb/2025:17:47:08 +0800] "GET / HTTP/1.0" 200 18 "-" "curl/7.79.1" "192.168.8.158"
192.168.8.154 - - [14/Feb/2025:17:47:08 +0800] "GET / HTTP/1.0" 200 18 "-" "curl/7.79.1" "192.168.8.158"
192.168.8.154 - - [14/Feb/2025:17:47:08 +0800] "GET / HTTP/1.0" 200 18 "-" "curl/7.79.1" "192.168.8.158"
192.168.8.154 - - [14/Feb/2025:19:57:52 +0800] "GET / HTTP/1.0" 200 18 "-" "curl/7.79.1" "192.168.8.158"
192.168.8.154 - - [14/Feb/2025:19:57:52 +0800] "GET / HTTP/1.0" 200 18 "-" "curl/7.79.1" "192.168.8.158"
192.168.8.154 - - [14/Feb/2025:19:57:52 +0800] "GET / HTTP/1.0" 200 18 "-" "curl/7.79.1" "192.168.8.158"

2、负载均衡算法

Nginx 支持多种负载均衡策略,根据场景选择合适算法:

2.1、轮询(Round Robin)

  • 默认策略:按顺序分配请求到后端服务器。

  • 加权轮询:通过 weight 参数分配权重。

upstream webPools {server 192.168.8.156 weight=2;  # 处理2倍请求server 192.168.8.157 weight=1;
}

2.2、IP哈希(IP Hash

基于客户端 IP 分配请求,确保同一用户访问固定服务器(适合会话保持)

upstream webPools {ip_hash;server 192.168.8.156 ;server 192.168.8.157 ;
}

2.3、最少连接(Least Connections)

将请求分发到当前连接数最少的服务器。

upstream webPools {least_conn;server 192.168.8.156 ;server 192.168.8.157 ;
}

3、健康检查 

Nginx 默认通过被动健康检查剔除故障节点:

upstream webPools {server 192.168.8.156 max_fails=3 fail_timeout=30s ;server 192.168.8.157 max_fails=2 fail_timeout=20s ;
}
  • max_fails: 允许的连续失败次数。

  • fail_timeout: 故障服务器暂停服务时间。

4. 动态调整与扩展

4.1、临时下线节点:标记服务器为 down

这标志着服务器永远不可用,这个参数可配合 ip_hash 使用;类似与注释。
server 192.168.8.157 down;

4.2、热备服务器:通过 backup 标记备用节点。

热备配置( RS 节点的高可用),当前面激活的 RS 都失败后会自动启用热备 RS,这标志看这个服务器作为备份服务器,若主服务器全部宕机了,就会向它转发请求。 注意: 当负载调度算法为ip_hash 时,后端服务器在负载均衡调度中的状态不能是weight backup
server 192.168.8.158 backup;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com