负载均衡(Load Balance)指将服务请求分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而让多个服务节点共同完成工作任务。
Nginx为了实现负载均衡提供了几种策略:
轮询
轮询是默认策略,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
适合服务器配置相当,无状态且短平快的服务使用。也适用于图片服务器集群和纯静态页面服务器集群。
upstream my-server{ server ip1:8080; server ip2:8080; } server { listen 80; server_name localhost; location / { proxy_pass http://my-server/; } }
复制
加权轮询
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
当后端服务器性能存在差异的时候,通过配置权重,可以让服务器的性能得到充分发挥,有效利用资源。weight和访问比率成正比,用于后端服务器性能不均的情况。权重越高,在被访问的概率越大
upstream my-server{ # 每6个访问5个访问ip1, 1个访问ip2 server ip1:8080 weight=5; server ip2:8080 weight=1; } server { listen 80; server_name localhost; location / { proxy_pass http://my-server/; } }
复制
ip_hash
如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream my-server{ ip_hash; server ip1:8080 weight=5; server ip2:8080 weight=1; } server { listen 80; server_name localhost; location / { proxy_pass http://my-server/; } }
复制
真实ip_hash
关键字hash
http { ... #获取客户端真实ip map $http_x_forwarded_for $clientRealIp { "" $remote_addr; ~^(?P<firstAddr>[0-9\.]+),?.*$ $firstAddr; } ... } upstream my-server{ hash $clientRealIp; server ip1:8080; server ip2:8080; } server { listen 80; server_name localhost; location / { proxy_pass http://my-server/; } }
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
东方通TongHttpServer的安全特性解析
严少安
65次阅读
2025-03-17 23:15:48
Nginx实现TCP四层转发(实现代理MySQL)
IT那活儿
47次阅读
2025-03-05 11:09:26
Nginx 的基础原理篇
巴韭特锁螺丝
12次阅读
2025-03-16 19:37:40
通过nginx代理对SSL请求进行隧道化
IT那活儿
11次阅读
2025-03-11 10:12:46
nginx-ui:全新的 Nginx 在线管理平台
Linux技术宅
9次阅读
2025-03-08 07:03:18
Nginx 解决做反向代理时 静态资源图片、 js、css 访问不到
巴韭特锁螺丝
7次阅读
2025-03-14 00:02:06
nginx 服务器篇
巴韭特锁螺丝
7次阅读
2025-03-17 10:03:41
控制器- deployment01
喵呜
6次阅读
2025-03-31 13:45:40