-
什么是集群?
通俗点理解就是好多计算机(服务器)组成一个计算机(服务器)小队,但是对外显只有一个计算机(服务器)
-
我们为什么需要集群?
传统的web访问,压力大,响应请求的时间长,单点故障会有一部分用户无法访问网站
部署集群之后!一台服务器宕机了可以直接切换到另一台,不会影响网站的访问,⽤户处理速度也得到提升
-
部署nginx集群需要什么?
任务描述:将172.201.1.102:9081 和 172.201.1.102:9082配成一个对外统一的集群服务,并将对外提供服务的端口命名为9099,并在172.201.1.103上部署,使得,不管是172.201.1.102服务还是172.201.1.103服务 只要有一个服务起来了,对外提供服务的网站都能够正常访问
Nginx负载均衡(监听多个端口)配置集群服务
这里我们需要设置Nginx同时监听9081和9082两个端口
-
去哪里监听啊!
先在172.201.1.103服务器上找到nginx.conf
find . -name nginx.conf
如果找不到的话就敲cd /去根目录下再敲一遍find命令
然后我这里出现了三个不同路径的nginx.conf
那我们应该选择哪个编辑呢,别急!
一个一个cd到路径里然后 vim nginx.conf 看看他们listen的都是啥,就看这个地方
以我这里举例
第一个第三个都是listen的80端口 那我们打开一个浏览器,在地址栏输入当前IP地址加端口 ,我输入的是172.201.1.103:80 (查看当前服务器IP地址的命令:hostname -i)然后我进去之后是点不开的 没办法正常访问网页
第二个它listen的8899端口 在浏览器地址栏输入172.201.1.103:8899 然后可以正常访问这个网页
啊找到了 第二个路径的端口,在浏览器是可以访问的 就说明这个端口是起作用的,那我们就在这个路径下的nginx.conf添加!还记得我们想监听的端口吗
-
写点什么可以让他监听我想监听的端口呢?
以下操作在cd /usr/local/nginx/conf 然后 vim nginx.conf 进入编辑页面后添加,也就是在我刚刚确定了的正确路径下的nginx.conf里添加(敲字母o插入,即可添加)(按esc键退出插入)(写完之后:wq!保存且退出)
#防错删,以下是我新添加的
upstream jwlc {
server 172.201.1.102:9081;
server 172.201.1.102:9082;
keepalive_requests 100;
}
server {
listen 9099;
server_name clustersvr;
location / {
proxy_pass http://jwlc;
}
}
我的小逼逼叨:upstream后面跟的jwlc 是我们这边项目的一个缩写,你给改成web啥的都可以;前两个server后面跟的就是我想监听的端口加上了它的IP地址;keepalive是一行参数;后面server里的listen 9099 里的9099是我自己为对外提供服务的端口命名的,你给他命名八万啥的都行呀;server_name 后面名字无所谓的 你就随便给,叫localhost也行呢;最后http后面的jwlc和前面的一致就行
写进去之后就是这样
-
这样就行了?这么简单?
下面我们来验证一下
验证集群
在浏览器地址栏输入部署集群的IP和自己命名的端口(我这输入172.201.1.103:9099)看看页面能不能正常访问,可以的话就是服务通了
验证子节点
1.在对应服务器上操作(172.201.1.102服务器),停掉9081端口
使用find命令也就是敲find . -name nginx.conf 找到nginx.conf ,我在该服务器依旧是找到了三个不同路径的nginx.conf 一个个cd进去 vim nginx.conf 直到看见 listen 9081,并在listen 9081 前添加一个#号,把这个注释掉,下面这个图是我的操作过程
(敲字母o插入,即可添加)(按esc键退出插入)(写完之后:wq!保存且退出)
注释掉之后,进入nginx安装目录下的sbin下,敲./nginx -s reload 重启nginx
在浏览器输入停掉的端口的ip和你停掉的端口(我这里输入172.201.1.102:9081),因为停掉了所以不能访问,如果可以访问的话,就是依旧在监听这个端口,去敲more nginx.conf看一下,看见listen 9081 就说明没有注释掉,可能是前面那个步骤出错了,没有保存上之类的
在浏览器输入对外统一的集群服务端口和它的IP地址(我这里输入172.201.1.103:9099),前面部署了集群,所以页面可以正常访问
在浏览器输入另一个子节点的端口和它的IP地址(我这里输入172.201.1.102:9082),我又没有注释它,所以是可以正常访问的
2.在对应服务器上操作(172.201.1.102服务器),停掉9082端口
在上一步骤的位置里,把listen 9081前的#号删掉(光标放到#上,按字母x就可以把#删掉),放开9081端口,并用同样的方法找到listen 9082 并在前面添加#号 ,把9082那里注释了(写完之后:wq!保存且退出),然后重启nginx (./nginx -s reload )
在浏览器输入停掉的端口的ip和你停掉的端口(我这里输入172.201.1.102:9082),因为停掉了所以不能访问
在浏览器输入对外统一的集群服务端口和它的IP地址(我这里输入172.201.1.103:9099),前面部署了集群,所以页面可以正常访问
在浏览器输入另一个子节点的端口和它的IP地址(我这里输入172.201.1.102:9081),我依旧放开了它的注释了,所以是可以正常访问的
最后的最后!验证完了记得放开listen 9082 !把它前面的#号删掉,然后:wq! 保存
现在就可以去摸鱼啦