负载平衡是我们大流量网站要做的一个对象,下面我来给各人先容在Nginx处事器长举办负载平衡设置要领,但愿对有需要的同学有所辅佐哦。
负载平衡
先来简朴相识一下什么是负载平衡,单从字面上的意思来领略就可以表明N台处事器平均分管负载,不会因为某台处事器负载高宕机而某台处事器闲置的环境。那么负载平衡的前提就是要有多台处事器才气实现,也就是两台以上即可。
测试情况
由于没有处事器,所以本次测试直接host指定域名,然后在VMware里安装了三台CentOS。
测试域名 :a.com
A处事器IP :192.168.5.149 (主)
B处事器IP :192.168.5.27
C处事器IP :192.168.5.126
陈设思路
A处事器做为主处事器,域名直接理会到A处事器(192.168.5.149)上,由A处事器负载平衡到B处事器(192.168.5.27)与C处事器(192.168.5.126)上。
域名理会
由于不是真实情况,域名就随便利用一个a.com用作测试,所以a.com的理会只能在hosts文件配置。
打开:C:WindowsSystem32driversetchosts
在末端添加
192.168.5.149 a.com
生存退出,然后启动呼吁模式ping下看看是否已配置乐成
从截图上看已乐成将a.com理会到192.168.5.149IP
A处事器nginx.conf配置
打开nginx.conf,文件位置在nginx安装目次的conf目次下。
在http段插手以下代码
upstream a.com {
server 192.168.5.126:80;
server 192.168.5.27:80;
}
server{
listen 80;
server_name a.com;
location / {
proxy_pass
http://a.com;
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
B、C处事器nginx.conf配置
打开nginx.confi,在http段插手以下代码
server{
listen 80;
server_name a.com;
index index.html;
root /data0/htdocs/www;
}
生存重启nginx
测试
当会见a.com的时候,为了区分是转向哪台处事器处理惩罚我别离在B、C处事器下写一个差异内容的index.html文件,以作区分。
打开欣赏器会见a.com功效,刷新会发明所有的请求均别离被主处事器(192.168.5.149)分派到B处事器(192.168.5.27)与C处事器(192.168.5.126)上,实现了负载平衡结果。
B处事器处理惩罚页面
C处事器处理惩罚页面
如果个中一台处事器宕时机奈何?
当某台处事器宕机了,是否会影响会见呢?
我们先来看看实例,按照以上例子,假设C处事器192.168.5.126这台机子宕机了(由于无法模仿宕机,所以我就把C处事器关机)然后再来会见看看。
会见功效:
我们发明,固然C处事器(192.168.5.126)宕机了,但不影响网站会见。这样,就不会担忧在负载平衡模式下因为某台机子宕机而拖累整个站点了。
假如b.com也要配置负载平衡怎么办?
很简朴,跟a.com配置一样。如下:
假设b.com的主处事器IP是192.168.5.149,负载平衡到192.168.5.150和192.168.5.151呆板上
现将域名b.com理会到192.168.5.149IP上。
在主处事器(192.168.5.149)的nginx.conf插手以下代码:
upstream b.com {
server 192.168.5.150:80;
server 192.168.5.151:80;
}
server{
listen 80;
server_name b.com;
location / {
proxy_pass
http://b.com;
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
在192.168.5.150与192.168.5.151呆板上配置nginx,打开nginx.conf在末端添加以下代码: