首页 > 其他分享 >正反向代理与负载均衡

正反向代理与负载均衡

时间:2024-07-16 22:58:18浏览次数:18  
标签:index 负载 正反 代理 server 均衡 服务器 客户端

3、正反向代理与负载均衡


3.1正向代理(Forward Proxy)

工作原理:

1、正向代理位于客户端和原始服务器之间,为客户端发送请求到目标服务器进行代理。客户端不直接访问目标服务器,而是通过正向代理来访问。

2、客户端向正向代理发送请求,然后正向代理将这些请求转发给目标服务器,并将目标服务器的响应再返回给客户端。

用途:
1、访问控制与安全性:正向代理可以通过中间代理服务器隐藏客户端的真实 IP 地址,增加访问的安全性和隐私性。
2、访问限制:可以通过正向代理实现对某些特定资源的访问控制,例如内部网络资源或者受限访问的外部资源。
3、访问内容的控制:可以对客户端请求或者响应进行修改、过滤或者记录,以实现内容控制或者日志记录等功能。


配置示例:
http {
    # 定义正向代理服务器
    server {
        listen 8080;

        location / {
            resolver 8.8.8.8;
            proxy_pass http://$http_host$request_uri;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}
在上面的配置中,Nginx 监听在 8080 端口,作为正向代理服务器,将客户端的请求转发给目标服务器。
=========================================================================================================================================

 3.2 反向代理(Reverse Proxy)

工作原理:
1、反向代理位于客户端和原始服务器之间,为原始服务器接收到的请求进行代理。客户端不直接与原始服务器通信,而是与反向代理通信。
2、客户端向反向代理发送请求,反向代理根据请求的内容将其转发给内部的一组服务器(如 Web 服务器集群),然后将服务器的响应返回给客户端。

用途:
1、负载均衡:反向代理可以根据负载均衡策略将请求分发给多个服务器,以提高系统的整体性能和可用性。
2、安全性:反向代理可以作为安全屏障,隐藏了后端服务器的实际信息,有效防止直接暴露服务器的一些细节。
3、缓存:反向代理可以缓存静态内容,减轻后端服务器的负载,提高用户访问的响应速度。

配置示例:
http {
    # 定义反向代理服务器
    server {
        listen 80;

        location / {
            proxy_pass http://backend_servers;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

    upstream backend_servers {
        server backend1.example.com;
        server backend2.example.com;
        # 可以添加更多的后端服务器
    }
}
在上面的配置中,Nginx 监听在 80 端口,作为反向代理服务器,将客户端的请求转发给 backend_servers 中定义的一组后端服务器。

总结
1、正向代理:代理客户端,隐藏真实客户端,帮助客户端访问其他服务器。
2、反向代理:代理服务器端,隐藏真实服务器,为客户端提供服务,并通过负载均衡、安全性等功能增强服务质量。
3、这两种代理方式在实际应用中有着不同的用途和优势,可以根据具体的需求来选择合适的代理方式配置 Nginx。

3.3反向代理与负载均衡搭建

创建三台nginx服务器,博主是先创建一台配置好yum源,安装好nginx服务后,克隆的另外两台。

服务器一和服务器二只需要启动nginx服务就行,无需修改其他配置

 服务器一的配置参数

服务器二的配置参数

服务器三的配置参数

这里我是把反向代理,负载均衡,基于端口的虚拟主机,把主服务器也加入到负载均衡后端服务器一起进行的配置。

1、可以实现一台主服务器做代理,另外两台做后端口负载服务器

2、可以实现一台服务器做代理,另外两个目录做虚拟主机

3、可以实现一台主服务器做转发,从服务器做负载,主服务器既做代理又启用另外端口做负载

#定义一组后端服务器实现负载均衡
    upstream backend {
       server 192.168.31.26:8080 weight=1;
       server 192.168.31.27:8080 weight=2;
       server 192.168.31.28:8080 weight=1;
       server localhost:9001;
       server localhost:9002;
}
#添加本机虚拟主机1
    server {
        listen 9001;
        server_name localhost; # 指定域名

        root /var/www/test8080;  # 指定目录
        index index.html index.htm;

        location / {
        #try_files $uri $uri/ =404; # 尝试提供文件,如果找不到则返回404错误
    }
}
#添加本机虚拟主机2 
 server {
        listen 9002;
        server_name localhost; # 指定域名

        root /var/www/test8081;  # 指定目录
        index index.html index.htm;

        location / {
        #try_files $uri $uri/ =404; # 尝试提供文件,如果找不到则返回404错误
    }
}
#本机也参与负载均衡队列,另外启用8080端口提供服务
    server {
        listen 8080;
        server_name localhost; # 指定域名

        #root /var/www/test8080;  # 指定目录
        #index index.html index.htm;

        location / {
        #try_files $uri $uri/ =404; # 尝试提供文件,如果找不到则返回404错误
            }
}
#负载均衡与反向代理
    server {
        listen       80;
        server_name  www.test.com;
       
        location / {
        proxy_pass   http://backend; #指示Nginx 将请求代理到定义在backend中的多个后端服务器上,根据负载均衡策略分发请求。

            root   html;
            index  index.html index.htm;
        }
}

测试结果:正常

以上实验测试正常:可以实现上述要求的负载均衡、主从负载、虚拟端口等功能的实现

标签:index,负载,正反,代理,server,均衡,服务器,客户端
From: https://blog.csdn.net/weixin_43145281/article/details/140435610

相关文章

  • 【误码率仿真】双选择信道上FBMC传输(不同 MMSE 均衡和干扰消除方法的误码率)【含Matlab
    ✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信或扫描文章底部QQ二维码。......
  • 载均衡技术全解析:Pulsar 分布式系统的最佳实践
    背景Pulsar有提供一个查询Broker负载的接口:/***Getloadforthisbroker.**@return*@throwsPulsarAdminException*/LoadManagerReportgetLoadReport()throwsPulsarAdminException;publicinterfaceLoadManagerReportextends......
  • OpenFeign 服务调用与负载
    需要建两个工程,一个是服务提供者,一个是服务调用者服务提供者一个普通的nacos服务,增加一个controller方法即可,上一篇文章刚说了,这里简单说下<!--服务提供者不调用其他服务,所以只需要注册到nacos的依赖--><dependency><groupId>com.alibaba.cloud</groupId><a......
  • 锂离子电池BMS各种均衡模型汇总
    基于模糊控制的buck-boost电池均衡仿真模型【闲鱼】https://m.tb.cn/h.gi2kUQh?tk=gfIg3YQBY2OHU7632「我在闲鱼发布了【基于模糊控制的buck-boost电池均衡仿真模型】」点击链接直接打开双层锂离子电池均衡模型【闲鱼】https://m.tb.cn/h.giIKCKT?tk=MkSe3YQBuxZCZ......
  • Nginx与负载均衡不得不说的秘密
    Nginx是一款高性能的HTTP和反向代理服务器,它以事件驱动和异步非阻塞的方式运行,能够处理数以万计的并发连接,并且占用的内存资源相对较少。Nginx也常用于负载均衡、缓存、静态文件服务等场景。Nginx的特点:高并发:Nginx能够支持数以万计的并发连接,适合高流量网站。低内存占......
  • 在 PostgreSQL 里如何实现数据的分布式查询的负载均衡?
    文章目录在PostgreSQL中实现数据分布式查询的负载均衡在PostgreSQL中实现数据分布式查询的负载均衡在当今数字化时代,数据量呈爆炸式增长,对于大规模数据处理的需求也日益迫切。在PostgreSQL中实现数据的分布式查询负载均衡成为了提升系统性能和可用性的关键......
  • 【云原生技术】微服务模式如何建立负载均衡体系?
    微服务模式如何建立负载均衡体系?1.**选择适当的负载均衡策略**2.**使用服务注册与发现**3.**动态调整和监控**4.**使用反向代理和网关**5.**容错和弹性设计**示例)建立有效的负载均衡体系对于微服务架构至关重要,它可以确保各个微服务实例能够均衡地分担请求负......
  • 负载均衡
    作用:解决大并发情况下,将流量分散到多台后端服务器上,避免某台服务器流量过大,导致服务器崩溃。解决了大并发情况下能正常访问的问题。从而解决web达不到,访问不了的问题提高了网站的性能(并发量)和用户体验。方便网站的性能扩展可以让业务服务器之间可以起到冗余功能--》高可用TC......
  • RPC api与Rest api的区别 微服务 正反向代理
    参考链接:https://blog.csdn.net/weixin_43871785/article/details/129922143  RPC:本地化REST:国际化HTTP与RPC的关系就好比国际化与地方化的关系(可以认为标准的国际拳击手和随意的自由拳击手)。要进行跨企业服务调用时,往往都是通过HTTPAPI,虽然效率不高,但是通用,没有......
  • Linux (10) 配置HAProxy,实现负载均衡器的主备模式
    《WindowsAzurePlatform系列文章目录》 最近有1个客户需求,在这里记录一下。客户提出需要使用Azure负载均衡器(四层负载均衡器),实现主备模式。场景是负载均衡器后有2台虚拟机-平时100%的流量都发送到第一台虚拟机-如果第一台虚拟机发生......