nginx反向代理服务器及负载均衡服务配置

这篇具有很好参考价值的文章主要介绍了nginx反向代理服务器及负载均衡服务配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、正向代理与反向代理

正向代理:是一个位于客户端和原始服务器(oricin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。

正向代理的典型用途是为在防火墙内的局域网客户端提供访问internet的途径。

nginx反向代理服务器及负载均衡服务配置,架构师进阶路线,nginx,负载均衡,轮训,加权轮训

正向代理一般是在客户端设置代理服务器,通过代理服务器转发请求,最终访问到目标服务器。

反向代理:反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。用户不需要知道目标服务器的地址,也无须在用户端作任何设定。

nginx反向代理服务器及负载均衡服务配置,架构师进阶路线,nginx,负载均衡,轮训,加权轮训

配置示例:

server {
  listen       80;
  server_name  example.com;
  
  location / {
    proxy_pass http://backend_servers;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
  }
}

上述配置中,listen指定了Nginx监听的端口,server_name指定了反向代理的域名。

location /表示将所有的请求都转发给后端服务器。proxy_pass配置后端服务器的地址,可以是IP地址或域名。proxy_set_header可以设置一些HTTP头信息,如Host和X-Real-IP等。

二、负载均衡

负载均衡是指将请求分发到多个后端服务器,以达到提高系统的性能和可用性的目的。Nginx支持多种负载均衡算法,如轮询、加权轮询、最少连接等。

配置示例:

upstream backend_servers {
  server 192.168.0.1:8080;
  server 192.168.0.2:8080;
  server 192.168.0.3:8080;
  server 192.168.0.4:8080;
}

server {
  listen       80;
  server_name  example.com;

  location / {
    proxy_pass http://backend_servers;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
  }
}
Nginx支持以下几种负载均衡方式:
  • 轮询(Round Robin):这是默认的负载均衡方式。每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
  • 权重(Weight):不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此Nginx允许指定每个服务器的处理能力。权重越高,分配的请求越多。
  • IP Hash:每个请求的IP的hash结果分配,每个访客固定访问一个后端服务器,可以解决session的问题。
  • 最少连接(Least Connections):优先分配给当前连接数最少的服务器,适用于请求处理时间相差较大的情况。
  • URL Hash:按照访问URL的hash结果来分配请求,使得每个URL定向到同一个后端服务器,可以在后端服务器生成缓存的情况下提高系统效率。

以上负载均衡方式中,轮询、权重和IP Hash是Nginx内置支持的,最少连接和URL Hash需要使用Nginx的第三方模块,如ngx_http_upstream_least_conn_module和ngx_http_upstream_hash_module。

(1)基于轮询的算法

原理是每一个请求按时间顺序逐一被分发到不同的应用服务器,如果接收请求的应用服务器挂了,并且请求超过最大失败次数max_fails(1次),则在失效时间fail_timeout(10秒)内不会再转发请求到该节点~

upstream defaultReverseProxyServer{
    server 192.168.0.1:8080; 
    server 192.168.0.2:8080; 
}
(2)基于权重的算法

原理是每一个请求按权重被分发到不同的应用服务器,同样,如果接收请求的应用服务器挂了,并且请求超过最大失败次数max_fails(默认1次或可设置N次),则在失效时间fail_timeout(默认10秒,可设置N秒)内,不会再转发请求到该节点~

upstream weightReverseProxyServer{
    server 192.168.0.1:8080 weight=10 max_fails=2 fail_timeout=5s;
    server 192.168.0.2:8080 weight=5 max_fails=2 fail_timeout=5s;
}
(3)基于ip_hash的算法

原理是每一个请求按用户访问IP的哈希结果分配,如果请求来自同一个用户IP则固定这台IP访问一台应用服务器,该算法可以有效解决动态网页中存在的session共享问题。

upstream ipHashReverseProxyServer{
    ip_hash;
    server 192.168.0.1:8080;
    server 192.168.0.2:8080;
}

一般使用的是基于权重的算法,因为现在很多情况下都是集群部署,而且集群下的各个服务器资源大多都是不均匀的,资源高的则分配权重高一些,资源低的则分配权重低一些,这种情况使用基于权重的负载均衡算法,可以更高效的利用资源和提高并发处理能力~文章来源地址https://www.toymoban.com/news/detail-767037.html

到了这里,关于nginx反向代理服务器及负载均衡服务配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【网络面试(8)】防火墙原理、正向代理、反向代理、缓存服务器、负载均衡和内容分发服务器

     接上一篇:【网络面试必问(7)】聊聊集线器、交换机和路由器  作为一个程序员,其实很少去了解http请求消息在到达服务器之前,所经过的众多组件的,今天借着机会聊一聊标题中提到的正向代理、反向代理、缓存服务器、负载均衡和内容分发服务器等内容。 1.1 部署

    2024年02月22日
    浏览(44)
  • Jtti:Apache服务的反向代理及负载均衡怎么配置

    配置Apache服务的反向代理和负载均衡可以帮助您分散负载并提高应用程序的可用性和性能。下面是一些通用的步骤,以配置Apache反向代理和负载均衡。 1. 安装和配置Apache: 确保您已经安装了Apache HTTP服务器。通常,Apache的配置文件位于/etc/httpd/或/etc/apache2/目录下。在这里,我

    2024年02月08日
    浏览(46)
  • Vue 3中的反向代理 和如何在服务器配置反向代理

    如何在Vue 3项目中配置反向代理,让前端开发变得爽到爆!还有个小插曲,Vite为我们提供了更简单的方式,就像找对象一样直接。 首先,我们来谈谈反向代理是什么。简单来说,反向代理就像是前端和后端之间的婚姻介绍所。前端需要向后端请求数据,但由于某些原因(比如

    2024年04月13日
    浏览(42)
  • Spring Cloud Alibaba 微服务1,系统架构演变 + Nginx反向代理与负载均衡

    🏆作者简介: 哪吒 ,CSDN2022博客之星Top1、CSDN2021博客之星Top2、多届新星计划导师✌、博客专家💪 , 专注Java硬核干货分享,立志做到Java赛道全网Top N。 🏆本文收录于 Java基础教程系列(进阶篇) ,本专栏是针对大学生、初级Java工程师精心打造, 针对Java生态,逐个击破,

    2024年02月02日
    浏览(52)
  • 【云服务器 ECS 实战】负载均衡 SLB 概述及配置选型

    1. 负载均衡概述 负载均衡就是 将访问流量根据转发策略分发到后端的多台服务器中 。负载均衡建立在现有网络结构之上,提供一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。简单理解就是将负载(

    2024年01月22日
    浏览(43)
  • centos7系统keepalived安装配置(服务器主备、负载均衡)

    https://gitcode.net/zengliguang/nginx_keepalived.git 主备服务器上都需要安装 主服务器脚本 备服务器脚本 虚拟机ip:192.168.11.56 主服务器:192.168.11.53 备服务器:192.168.11.54 keepalived安装之后,在 etc 里面生成目录 keepalived,有文件 keepalived.conf /etc/keepalived  需要修改的内容如下 hostname 需要

    2024年04月23日
    浏览(76)
  • Nginx 反向代理负载均衡

    Nginx 反向代理负载均衡 普通的负载均衡软件,如 LVS,其实现的功能只是对请求数据包的转发、传递,从负载均衡下的节点服务器来看,接收到的请求还是来自访问负载均衡器的客户端的真实用户;而反向代理就不一样了,反向代理服务器在接收访问用户请求后,会代理用户

    2024年02月03日
    浏览(53)
  • nginx反向代理 负载均衡

    目录 1.反向代理介绍:  2.七层代理和四层代理:   2.1 七层代理:   2.2 四层代理: 3.反向代理web服务器:   3.1 代理服务器配置: 3.2 服务器配置 : 3.3 客户端访问: 3.4 代理不同端口: 4.反向代理动静分离:   4.1  准备:   4.2 代理服务器配置:   4.3 动态服务器配置:

    2024年02月10日
    浏览(43)
  • nginx反向代理、负载均衡

         

    2024年02月12日
    浏览(40)
  • nginx负载均衡+反向代理

    最近业务上遇到一个需求,其它系统因业务校验需要调用上级系统进行数据发送或校验,如果上级系统停机维护,其它下级系统发送的http通讯会丢失,还要一次次补发数据,耗费人工与时间。使用nginx+反向代理解决了部分需求。 目标:当服务A停机维护,其它系统会调用服务

    2024年02月08日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包