范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

13Nginx入门教程Nginx负载均衡(下)

  这一小节中,我们将实战 Nginx 的四层和七层负载均衡功能。条件有限,使用一台公网主机,在上面搭建好 Nginx 服务。公网 IP 为 180.76.152.113。
  首先会进行简单的四层负载均衡实验,不会涉及多种负载均衡算法,只使用默认的 Round-Robin算法。在后续的七层负载均衡实验中,会重点测试不同的负载均衡策略,完成相关实验。 1. Nginx的四层负载均衡实验
  首先在 nginx.conf 中添加如下 stream 指令块配置: stream {     server {         listen 3000;         return "3000 server get ip: $remote_addr! ";     }      server {         listen 3001;         return "3001 server get ip: $remote_addr! ";     }      upstream servers {          server 127.0.0.1:3000 weight=2;          server 127.0.0.1:3001;      }      server {         listen 30;         proxy_connect_timeout 3s;         proxy_timeout 3s;         proxy_pass servers;     }      }
  上述配置用端口3000和3001模拟两个上游服务器,然后在 upstream 指令块中指定这两个上游服务器的地址,同时给第一个设置权重为2。由于默认采用的是加权的 Round-Robin 算法,默认服务器的权重为1。设置为2,表明3次请求中,2次会转发到3000端口,一次会转发到3001端口,下面的测试也验证了这一点。 # 第一次请求,转发到3000 [shen@shen ~]$ telnet 180.76.152.113 30 Trying 180.76.152.113... Connected to 180.76.152.113. Escape character is "^]". 3000 server get ip: 127.0.0.1! Connection closed by foreign host.  [shen@shen ~]$ telnet 180.76.152.113 30 Trying 180.76.152.113... Connected to 180.76.152.113. Escape character is "^]". 3001 server get ip: 127.0.0.1! Connection closed by foreign host.  [shen@shen ~]$ telnet 180.76.152.113 30 Trying 180.76.152.113... Connected to 180.76.152.113. Escape character is "^]". 3000 server get ip: 127.0.0.1! Connection closed by foreign host.  [shen@shen ~]$ telnet 180.76.152.113 30 Trying 180.76.152.113... Connected to 180.76.152.113. Escape character is "^]". 3000 server get ip: 127.0.0.1! Connection closed by foreign host. 2. Nginx的七层负载均衡实验
  和四层的配置其实差不多,在七层中除了测试最基本的,我们还将测试前面提到的几种负载均衡策略,进一步熟悉 Nginx 中的负载均衡配置。 2.1 简单的七层负载均衡
  在 nginx.conf 中添加如下的 http 指令块: http {     include       mime.types;     default_type  application/octet-stream;      log_format  main  "$remote_addr - $remote_user [$time_local] "$request" "                       "$status $body_bytes_sent "$http_referer" "                       ""$http_user_agent" "$http_x_forwarded_for"";      access_log  logs/access.log  main;      sendfile        on;      keepalive_timeout  65;      gzip  on;      server {         listen 8000;         return 200 "8000, server ";     }      server {         listen 8001;         return 200 "8001, server ";     }      server {         listen 8002;         return 200 "8002, server ";     }        upstream backends {         # ip_hash         # hash user_$arg_username;         server 127.0.0.1:8000;         server 127.0.0.1:8001;         server 127.0.0.1:8002;     }        server {        listen  80;         location / {           proxy_pass http://backends;           proxy_http_version 1.1;           proxy_set_header Connection "";        }     }  }
  上述配置中,我们用8000,8001和8002三个端口模拟了3个上游服务器,默认使用轮询负载均衡算法,而且三个的权重均为1。进行如下的 http 请求操作,可以看到 Nginx 转发 http 请求会均匀地分配到3个服务器上。 [shen@shen ~]$ curl http://180.76.152.113 8000, server [shen@shen ~]$ curl http://180.76.152.113 8001, server [shen@shen ~]$ curl http://180.76.152.113 8002, server [shen@shen ~]$ curl http://180.76.152.113 8000, server 2.2 负载均衡的hash算法
  我们打开 ip_hash 指令的注释,这个时候默认是使用客户端的 ip 地址作为 hash 的 key,然后重启 Nginx 服务并进行如下的命令行操作: # 使用本机的ip地址,无论请求多少出,通过hash转发到的上游服务器地址都是一致的 [shen@shen ~]$ curl http://180.76.152.113 8002, server [shen@shen ~]$ curl http://180.76.152.113 8002, server [shen@shen ~]$ curl http://180.76.152.113 8002, server  # 只有换了ip之后,请求转发的上游地址才可能有变化 [shen@shen ~]$ curl -H "X-Forwarded-For: 111.10.1.3" http://180.76.152.113 8000, server [shen@shen ~]$ curl -H "X-Forwarded-For: 111.10.2.3" http://180.76.152.113 8001, server  2.3 使用其他key做hash
  接下来,注释 ip_hash 指令,我们打开 hash user_$arg_username 这行配置的注释, hash 指令可以让我们根据我们设置的 key 进行 hash,然后根据 hash 值选择上游的服务器。具体测试参看下面的 Linux 命令: [shen@shen ~]$ curl http://180.76.152.113?username=shen 8001, server [shen@shen ~]$ curl http://180.76.152.113?username=test 8000, server [shen@shen ~]$ curl http://180.76.152.113?username=test 8000, server [shen@shen ~]$ curl http://180.76.152.113?username=test 8000, server
  这里我们可以看到,在请求中带上 username 参数,Nginx 中配置的 hash 算法会根据请求中带的 username 参数作为 key 去进行 hash,然后在根据 hash 结果映射上游服务器。username 相同时,选择的上游服务器肯定是一样的,只有在 username 的值发生变化时,返回的响应才可能有变化。 3. 小结
  今天我们完成了几个测试实验,主要是针对 Nginx 的四层和七层的负载均衡功能进行了测试。这个功能在微服务部署中会有较多的应用。因为高流量企业为保证服务的高可用性,往往会水平扩展多个相同功能的服务,部署在多台主机上,这个时候负载均衡技术就能派上用场了,而 Nginx 提供了完善的负载均衡功能以及多种负载均衡算法,能满足大部分企业的需求,如果还不够,可以通过编写内部开发模块并集成到 Nginx,实现相应的需求。所以说 Nginx 是非常值得学习和深入研究的。

贵阳标致4008限时大促,直降9。43观望很久的标致4008终于降价了,贵州钟裕东风标致店11。0311。05,店铺活动购车最高优惠9。43,真是迫不及待的想要到店一睹标致4008的风采啊促销时间2021年11月03日贵阳标致508L限时大促,限时特惠1。3万元今天给大家推荐一款车它就是标致508L,特别适合日常使用,据悉贵州钟裕东风标致店11。0111。02限时回馈用户,最高优惠8。14,对标致508L感兴趣的朋友不妨亲自体验一下促销时东风标致408你的家庭首选说到家庭出行,在1015万级的区间里,座驾的挑选有很多不错的选项,不过德系车略显严肃,日系车空间又稍稍不足,而拥有优雅设计外观和品质大空间的东风标致408这款法系车,恰是最能和假期贵阳标致408热销中,降价1。8万元心心念念的标致408,等了这么久终于有优惠了,小编打听到贵州钟裕东风标致店11。0111。02购车优惠1。8万元,这么好的机会朋友们是不是也和小编一样迫不及待的想到店去感受一下呢促YOGAPro13s2021体验评测精致唯美,颜王YOGA我们在选购笔记本时,最在意什么?有的小伙伴在意性能,有的小伙伴在意设计,而作为文字工作者的我则在意轻薄,只有真正的轻薄,才能带来真正的便携,很多小伙伴让我推荐轻薄笔记本,经过再三选realmeQ3评测千元旗舰潮范儿十足视频加载中今年的旗舰杀疯了,但质感和性能却带到了千元机当中,看我手中的realmeQ3,是不是潮流的不像千元机,新潮的设计,花样的造型,科幻黑的配色之上有着别样的潮流符号。骁龙75iQOOZ3体验评测升杯升配,重构千元机对于旗舰手机来说快充性能高刷是一个都不能少,但对于千元机来说,我们的选择标准却没有那么苛刻,有的时候往往能满足其一就已经很不错了,甚至谈不上机身的设计。但对于iQOO来说,Z系列一一加9评测影像值得记录,色彩展现极致总有故事被影像看见,唯有体验才能感受极致,对于一加9来说,这是一款看似低调但又充满硬核旗舰手机,在我们选择一加9系列时很容易在Pro之下忽视一加9,但当真正上手体验时,才能感知到它罗技VOICEM380评测告别指指点点,能听会写的智能无线鼠标鼠标作为我们的掌上工具,关乎着我们的工作效率,作为日打万字点击鼠标成百上千次的文字工作者,科科对于鼠标的期望可不只是指指点点那么简单,而是希望赋予它能多的功能,就在最近老科也终于解男同事跟我抱怨说用小米手机档次有点低今天有个男同事用小米手机的,他和我说他分享在网上了,他用小米手机别人都说他,网上人都说他用小米比较low,说小米手机就是没钱的人用的,买不起更好的,只能买个小米,来展现自己的优越感凯迪仕K20V智能门锁评测既是智能门锁,也是家中的守门员作为一名年轻人出门在外,只想带着一部手机,至于钱包和钥匙,根本就无处安放,毕竟现在智能设备相当普及,也是时候得为家中升级一把智能锁了。当然既然是智能锁,那么我们对于锁的要求就不止是
供水管网远程监控系统供水管网远程监控系统产品概述力必拓供水管网远程采集及控制系统它将城市供水热力燃气等管网生产监控调度数据分析模型和业务管理统一到一个综合性的系统平台,实现了供水全过程生产运行数据(水蔚来疑似销毁证据,网友两害相权取其轻今年8月,蔚来或许无法在销量上夺冠,但在舆论热度上绝对是当之无愧的第一名。多有网友在蔚来事件的评论下感慨这瓜能吃一个月!。刚要步入8月份,上海浦东新区就发生了一起严重交通事故,一辆世界上最好吃的汉堡包连锁店开在上海了我是标题党我是标题党ShakeShack最早是纽约麦迪逊广场花园的热狗摊,售卖汉堡,热狗,薯条,冰激凌,奶昔等。网红汉堡,不管是在美国,还是在上海,排队超多。2019年ShakeS魔都狂吃狂吃之你必须吃的脏馆子我是标题党不要骂我我是标题党不要骂我(全文3823字,34图)我是一个不挑食的北方人,下文如有不符合真实情况的文字,都是我主观臆断,请直接骂我,谢谢铁子先分享下我旅行吃喝的方法,我安桥将于日本发起TX8390立体声放大器的众筹活动日本安桥宣布将于8月30日起在众筹网站GREENFUNDING上发布配备HDMI输入输出MQA播放和AccuEQ自动音场修正功能的立体声放大器TX8390,定价89800日元(约合1400万人在快手围观FILA行走巅峰大秀,媒体号深度赋能品牌营销9月23日,意大利百年运动时尚品牌FILA于110周年上演行走巅峰主题云端大秀,快手媒体号封面新闻我们视频同步开启直播,累计在线人数超过1400万人,累计点赞达24。5万。随着高端2020年到了,家长在不了解的情况下该如何带孩子去电脑城配电脑导读今天是2019年最后一天,距离2020年还有55分钟,老程在这里提前预祝大家新年快乐,万事如意,老程也刚刚从工作的一线回来,这个时候能给小伙伴出去装机的师傅绝对都是真心实意对你日本福冈描绘100岁社会的模样福冈100行动计划中有一句话引人深思,应对老龄化挑战,要建立一个让个人和社会都快乐的机制。随着人均寿命不断增加,100岁也常见的时代或许不再遥远。如何创造一个能从容变老的未来?理想豆瓣8。4!这部沙雕韩剧,每次看完都能哈140乐子前不久,tvN这个宝藏台又送出一部新剧很便宜,千里马超市,听名字就很与众不同。同样是漫改剧,隔壁偶然发现的一天画风是这样的但是到了很便宜,千里马超市,画风却是这样的不仅造型魔性到洗豆瓣高分韩剧,李钟硕老搭档新剧果然魅力无限说实话小编昨天第一次看到这部花样年华生如夏梦,其实并不是特别想看,因为这部剧剧名没有第一时间打动小编,没有想让人想一探究竟的魔力。刷了好几次新剧发现该看的都已经看过了,所以再次刷到华为Mate50系列定档明年上半年,继续牵手高通,仍然无缘5G自从华为最后一次从代工厂运回大量5G芯片,麒麟芯片时代也正式告一段落,当然,这并不是结束,只是一个转折。麒麟5G芯片何时重现人间,还取决于国产芯片产业链的发展速度。但华为依然不屈不