收藏 分销(赏)

Nginx负载均衡配置.doc

上传人:s4****5z 文档编号:8892218 上传时间:2025-03-06 格式:DOC 页数:8 大小:164.50KB 下载积分:10 金币
下载 相关 举报
Nginx负载均衡配置.doc_第1页
第1页 / 共8页
Nginx负载均衡配置.doc_第2页
第2页 / 共8页


点击查看更多>>
资源描述
Nginx 负载均衡配置详解 一、 测试环境 由于没有服务器,所以本次测试直接host指定域名(my.local) 测试域名:my.local A服务器:172.16.10.181 (主服务器) B服务器:172.16.10.131 C服务器:172.16.10.130 二、域名解析 由于不是真实环境,域名就随便使用一个my.local用作测试,所以my.local的解析只能在hosts文件设置。 打开:C:\Windows\System32\drivers\etc\hosts 在末尾添加 172.16.10.181   my.local 保存退出,然后启动命令模式ping下看看是否已设置成功,如下图 三、 Nginx配置 1) A服务器(主服务器)nginx.conf配置 打开nginx.conf,文件位置在nginx安装目录的conf目录下。 在http段加入以下代码 upstream my.local { ip_hash; #默认可以不加,加上此行则已ip_hash方式进行负载均衡 #weight为权重,数字越大权重越高 server 172.16.10.131:80 weight=1; server 172.16.10.130:80 weight=1; } server{ listen 80; server_name my.local; location / { proxy_pass http://my.local; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 保存重启nginx(/usr/local/nginx/sbin/nginx -s reload) 2) B、C服务器nginx.conf设置 打开nginx.conf,文件位置在nginx安装目录的conf目录下。 在http段加入以下代码 server{      listen 80;      server_name my.local;      index index.html index.htm index.php;      root /home/wwwroot/default;  } 保存重启nginx (/usr/local/nginx/sbin/nginx -s reload) 四、 测试 当访问my.local的时候,为了区分是转向哪台服务器处理分别在B、C服务器下写一个不同内容的index.html文件,以作区分。 打开浏览器访问my.local结果,刷新会发现所有的请求均分别被主服务器(172.16.10.181)分配到B服务器(172.16.10.131)与C服务器(172.16.10.130)上,实现了负载均衡效果。 B服务器: C服务器: 假如其中一台服务器宕机会怎样? 当某台服务器宕机了,是否会影响访问呢? 我们先来看看实例,根据以上例子,假设C服务器172.16.10.130这台机子宕机了(由于无法模拟宕机,所以我就把C服务器关机)然后再来访问看看。 访问结果则都是下图显示结果:   我们发现,虽然C服务器(172.16.10.130)宕机了,但不影响网站访问。这样,就不会担心在负载均衡模式下因为某台机子宕机而拖累整个站点了。 五、 同一台服务器设置多个域名的负载均衡 多个域名配置和my.local的配置一样。 假设second.local的主服务器IP是172.16.10.181,负载均衡到172.16.10.132和172.16.10.133机器上 现将域名second.local解析到172.16.10.181上。 在主服务器(172.16.10.181)的nginx.conf加入以下代码: upstream second.local {        server  172.16.10.132:80;        server  172.16.10.133:80;  }  server{      listen 80;      server_name second.local;      location / {          proxy_pass         http://second.local;          proxy_set_header   Host             $host;          proxy_set_header   X-Real-IP        $remote_addr;          proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;      }  } 保存重启nginx 在172.16.10.132与172.16.10.133机器上设置nginx,打开nginx.conf在末尾添加以下代码: server{      listen 80;      server_name second.local;      index index.html index.htm index.php;      root /home/wwwroot/default;  } 保存重启nginx 完成以上步骤后即可实现second.local的负载均衡配置了。 六、主服务器提供服务 以上例子中,我们都是应用到了主服务器负载均衡到其它服务器上,那么主服务器本身能不能也加在服务器列表中,这样就不会白白浪费拿一台服务器纯当做转发功能,而是也参与到提供服务中来。 如以上案例三台服务器: A服务器:172.16.10.181 (主服务器) B服务器:172.16.10.131 C服务器:172.16.10.130 我们把域名解析到A服务器,然后由A服务器转发到B服务器与C服务器,那么A服务器只做一个转发功能,现在我们让A服务器也提供站点服务。 我们先来分析一下,如果添加主服务器到upstream中,那么可能会有以下两种情况发生: 1、主服务器转发到了其它IP上,其它IP服务器正常处理; 2、主服务器转发到了自己IP上,然后又进到主服务器分配IP那里,假如一直分配到本机,则会造成一个死循环。 怎么解决这个问题呢?因为80端口已经用来监听负载均衡的处理,那么本服务器上就不能再使用80端口来处理my.local的访问请求,得用一个新的。于是我们把主服务器的nginx.conf加入以下一段代码: server{      listen 8081;      server_name my.local;      index index.html index.htm index.php;      root /home/wwwroot/default;  } 重启nginx,在浏览器输入my.local:8081试试看能不能访问。结果可以正常访问  既然能正常访问,那么我们就可以把主服务器添加到upstream中,但是端口要改一下,如下代码: upstream my.local { ip_hash; #默认可以不加,加上此行则已ip_hash方式进行负载均衡 #weight为权重,数字越大权重越高 server 172.16.10.131:80 weight=1; server 172.16.10.130:80 weight=1; server 172.16.10.181:8081 weight=1; } 由于这里可以添加主服务器IP 172.16.10.181或者127.0.0.1均可以,都表示访问自己。 重启Nginx,然后再来 刷新 访问my.lcoal看看会不会分配到主服务器上。   主服务器也能正常加入服务了。 七、总结 1)负载均衡不是nginx独有,著名鼎鼎的apache也有,但性能可能不如nginx。 2)多台服务器提供服务,但域名只解析到主服务器,而真正的服务器IP不会被ping下即可获得,增加一定安全性。 3)upstream里的IP不一定是内网,外网IP也可以。不过经典的案例是,局域网中某台IP暴露在外网下,域名直接解析到此IP。然后又这台主服务器转发到内网服务器IP中。 4)某台服务器宕机、不会影响网站正常运行,Nginx不会把请求转发到已宕机的IP上
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服