Nginx集群粗糙的理解
2019-08-14 本文已影响0人
cyhai
个人理解可能不是很透彻,简单的理解,粗略的说法就是,把处理数据分发给多个服务器处理,减少单个服务器的压力,因为处理数据环节是对服务器压力最大的,一旦访问量大,极有可能让服务器宕机,但是开启了集群就可以大可能避免这种情况,就算出现单个服务器宕机情况也不影响其他服务器的正常运作,同时也极大的提高了处理效率问题,Nginx是作为接收数据请求和分发、返回的中间传递。那么这里就意味着,处理数据的服务器存在两个或以上,才有所谓的意义。
一个简单的集群操作,首先开启两个服务器,比如使用docker,部署两个SpringBoot项目,映射的端口分别是8082,8083。请求接口为
image.png image.png
返回数信息分别是
集群服务器001
集群服务器002
找到Nginx的nginx.conf,我使用的是mac电脑,路径为/usr/local/etc/nginx/nginx.conf。
使用vim 打开,并修改
image.png
#修改这里做转发
upstream springboot{
server 127.0.0.1:8082;
server 127.0.0.1:8083;
}
server {
listen 8181;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
# root html;
#index index.html index.htm;
#引入代理转发
proxy_pass http://springboot/;
proxy_redirect default;
}
wq保存退出,重启nginx,
nginx -s reload
然后再浏览器键入
image.png
注意,我这里修改了Nginx的默认端口为8181
然后反复刷新页面,你会发现下面两个信息
交替出现
image.png image.png这就是服务器交替是处理数据,如果设置了weight(负载的权重),就会出现某个服务器处理的次数会变多
server 127.0.0.1:8082 weight=1;
server 127.0.0.1:8083 weight=2;
这样就会出现端口为8083的服务器处理数据是8082的两倍,也就意味着8083的服务性能应该要更高。