负载均衡

负载均衡,一般包含两方面的含义。一方面是,将单一的重负载分担到多个网络节点上做并行处理,每个节点处理结束后将结果汇总返回给用户,这样可以大幅提高网络系统的处理能力;第二个方面的含义是,将大量的前端并发访问或数据流量分担到多个后端网络节点上分别处理,这样可以有效减少前端用户等待响应的时间。
Nginx服务器的负载均衡策略可以划分为两大类:即内置策略和扩展策略。内置策略主要包含轮询、加权轮询和IP hash三种;扩展策略主要通过第三方模块实现,种类比较丰富,常见的有url hash、fair等。

  • 开启nginx:linux服务器下,进入终端,在超级用户的模式下,输入:(访问的是nginx的默认路径),然后在浏览器输入127.0.0.1就可以访问
    实现原理

架构图解释:在这个图中,用户提交请求先到Nginx主服务器,然后由Nginx进行对这些请求的转发,转发到各个分服务器上,然后nginx进行逻辑处理。

部署

在新建一个项目,如test.com

  • 在192.168.172.131,192.168.172.132和本机(负载服务器)安装好nginx,并新建好站点test.com,配置文件为test.com.conf,本机hosts绑定不同ip测试
  • 在本机nginx/config/vhost/ 下执行vim test.com.conf 进行如下编辑
 #服务器的集群  
 upstream  test.com {  #服务器集群名字   
    server    192.168.172.131:80 fail_timeout:60s  weight=1;#服务器配置   weight是权重的意思,权重越大,分配的概率越大。  
    server    192.168.172.132:80 fail_timeout:60s   weight=2;  
 }  
server{
    listen  80;
    listen 443;
    server_name test.com; 
    index index.php index.html index.htm default.php default.htm default.html;
    root D:/wwwroot/test;
...
    location / {  
          proxy_pass test.com;  
          proxy_set_header Host  $host;  
          proxy_set_header X-real-Ip  $remote_addr;  
          proxy_set_header X-Forwarded-For  $proxy_add_x_forworded_for;  
   }  
...
}

  • 重启nginx
  • 在浏览器地址栏输入:test.com,就可以进入压力比较小的服务器,重新进入会进入不一样的页面。

conf文件分析 HTTP Upstream

  • 1.jpg
  • ip_hash
2.jpg
如何实现让用户每次访问的是一个服务器:
    用ip_hash;
3.jpg
4.jpg
关闭nginx=>killall -9 nginx
再打开nginx
清空浏览器的cookie,再次访问8080端口,那么多次访问都是你进入的当前浏览器,直到这个浏览器崩溃。
  • server指令的操作
    可以设置服务器的权重weight=2,哪个服务器的权重比较大,被访问的概率比较大。
    先关闭ip_hash,在测试
5.jpg

关闭重新打开nginx
清空cookie,访问8080,访问182,18,79,243的概率比较大

  • upstream 指令
6.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容