{
192.168.5.126:80;
192.168.5.27:80;
{
80;
;
/ {
;
;−真实−;
X——对于$d_for;
保存并重启nginx
B.C服务器nginx.conf设置
打开nginx.confi,在http部分添加如下代码
{
80;
;
索引 索引.html;
根/data0//www;
保存并重启nginx
测试
在访问的时候,为了区分要重定向到哪个服务器,我在B和C服务器上分别写了一个内容不同的index.html文件,用来区分。
打开浏览器访问结果,刷新页面会发现所有请求都由主服务器(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)宕机了,但是并没有对网站访问造成影响。这样一来,在负载均衡模式下,就不用担心某台服务器宕机会影响整个网站了。
如果您想设置负载平衡怎么办?
很简单,就像设置一样。如下:
假设主服务器IP为192.168.5.149,负载均衡到192.168.5.150和192.168.5.151机器上
域名现在解析为192.168.5.149IP。
在主服务器(192.168.5.149)的nginx.conf中添加如下代码:
{
192.168.5.150:80;
192.168.5.151:80;
{
80;
;
/ {
;
;−真实−;
X——对于$d_for;
保存并重启nginx
在192.168.5.150和192.168.5.151机器上设置nginx,打开nginx.conf,在最后添加如下代码:
{
80;
;
索引 索引.html;
根/data0//www;
保存并重启nginx
完成以下步骤即可实现负载均衡配置。
主服务器无法提供服务吗?
上面的例子中,我们已经将主服务器的负载均衡应用到其他服务器上。那么主服务器本身是否可以也添加到服务器列表中呢?这样我们就不会浪费一台服务器纯粹用于转发功能,还可以参与提供服务。
例如,在上面的例子中,有三台服务器:
服务器IP:192.168.5.149(主)
服务器B IP:192.168.5.27
C服务器IP:192.168.5.126
我们将域名解析到服务器A,然后服务器A转发给服务器B和服务器C。服务器A只起到转发的作用。现在我们让服务器A也提供站点服务。
我们先来分析一下,如果添加一个主服务器,可能会出现以下两种情况:
1、主服务器转发到其他IP,其他IP服务器处理正常;
2.主服务器转发到自己的IP,然后再到主服务器分配的IP,如果一直分配给本机,就会造成死循环。
那如何解决这个问题呢?因为80端口已经用来监听负载均衡进程了,服务器不能再使用80端口来处理访问请求了,所以必须使用新的端口。所以我们在主服务器的nginx.conf中添加如下代码:
{
8080;
;
索引 索引.html;
根/data0//www;
重启nginx,在浏览器输入:8080查看是否可以访问,结果是可以正常访问
既然可以正常访问,那么我们就将主服务器添加到其中,但是需要更改端口,如下代码所示:
{
192.168.5.126:80;
192.168.5.27:80;
127.0.0.1:8080;
因为这里可以添加主服务器IP 192.168.5.149或者127.0.0.1,都是代表访问自己。
重启Nginx,然后再次访问,查看是否会被分配到主服务器。
主服也能正常加入服务。
终于
1、负载均衡并不是nginx独有的,也有比较知名的,但是性能可能没有nginx好。
2、多台服务器提供服务,但域名只解析到主服务器,不会通过ping获取到真实服务器IP,增加了一定的安全性。
第三,局域网内的IP不一定非要在内网,外网IP也可以。不过最经典的情况就是局域网内某个IP暴露在外网,域名直接解析到这个IP,然后这个主服务器再转发到内网服务器的IP。
4.服务器崩溃不会影响网站的正常运行,Nginx 不会将请求转发到宕机 IP
扫一扫在手机端查看
-
Tags : 负载均衡 nginx负载均衡配置
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。