- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Nginx负载均衡配置.
Nginx 负载均衡配置详解
测试环境
由于没有服务器,所以本次测试直接host指定域名
打开:C:\Windows\System32\drivers\etc\hosts
在末尾添加
81?? my.local
保存退出,然后启动命令模式ping下看看是否已设置成功,如下图
Nginx配置
A服务器(主服务器)nginx.conf配置
打开nginx.conf,文件位置在nginx安装目录的conf目录下。
在http段加入以下代码
保存重启nginxB、C服务器nginx.conf设置
打开nginx.conf,文件位置在nginx安装目录的conf目录下。
在http段加入以下代码
保存重启nginx
打开浏览器访问my.local结果,刷新会发现所有的请求均分别被主服务器(81)分配到B服务器(31)与C服务器(30)上,实现了负载均衡效果。
B服务器:
C服务器:
假如其中一台服务器宕机会怎样?
当某台服务器宕机了,是否会影响访问呢?
我们先来看看实例,根据以上例子,假设C服务器30这台机子宕机了(由于无法模拟宕机,所以我就把C服务器关机)然后再来访问看看。
访问结果则都是下图显示结果:
?
我们发现,虽然C服务器(30)宕机了,但不影响网站访问。这样,就不会担心在负载均衡模式下因为某台机子宕机而拖累整个站点了。
同一台服务器设置多个域名的负载均衡
多个域名配置和my.local的配置一样。
假设second.local的主服务器IP是81,负载均衡到32和33机器上
现将域名second.local解析到81上。
在主服务器(81)的nginx.conf加入以下代码:
upstream second.local {?????? server? 32:80;?????? server? 33: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
在32与33机器上设置nginx,打开nginx.conf在末尾添加以下代码:
server{???? listen 80;???? server_name second.local;???? index index.html index.htm index.php;???? root /home/wwwroot/default;? }
保存重启nginx
完成步骤后即可实现的负载均衡配置
如以上案例三台服务器:
A服务器:81 (主服务器)
B服务器:31
C服务器:30
我们把域名解析到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 31:80 weig
文档评论(0)