• Nginx 负载均衡


    什么是负载均衡

    当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。

    我们可以建立很多很多服务器,组成一个服务器集群,当用户访问网站时,先访问一个中间服务器,在让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入该服务器。如此以来,用户的每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况。

    负载均衡是用反向代理的原理实现的。

    需求:

    tomcat1:192.168.2.149:8081

    tomcat2:192.168.2.149:8082

    nginx:192.168.2.111:80

    两个tomcat服务器端口分别为8081、8082,webapps目录下都有个test项目,里面都有个index.html文件,里面分别写着<h1>8081</h1>、<h1>8082</h1>

    nginx实现负载均衡,当用户访问"http://192.168.2.111:80/test"时,请求被平均转发到8081和8082两台服务器上

    步骤:

    1.直接访问两个tomcat,确保tomcat启动成功可以正常访问

    2.修改nginx.conf文件,重启nginx确保配置生效

    [root@centos ~]# vi /usr/local/nginx/conf/nginx.conf
    [root@centos ~]# /usr/local/nginx/sbin/nginx -s reload

    访问nginx80端口的请求,会被转发到mysever(名字自定义)

    3.浏览器访问http://192.168.2.111/test/,每次请求会平均转发到2个tomcat


    以上实现了简单的负载均衡功能,默认使用的是轮询策略,即访问8081--8082--8081--8082...

    nginx提供的几种分配策略:

    1.轮询(默认)

    每个请求按时间顺序逐一分配到不同的服务器,如果服务器down掉,自动剔除。

    2.weight

    表示权重,默认为1,权重越高被分配的客户端越多。

    3.ip_hash

    每个请求按访问的ip的hash结果分配,这样每个访客固定一个服务器,可以解决session问题。

    4.fair(第三方的,需要安装第三方模块)

    按服务器响应时间来分配请求,响应时间短的优先分配。

  • 相关阅读:
    eclipse禁用svg文件Validation
    在centos上安装jenkins
    5.volatile的应用
    4.资源限制
    linux git保存用户名密码(避免每次push输用户名密码)
    mysql 从库落后主库太多优化
    mfs使用指引
    Asura监控---AsuraMonitor,阿修罗监控开源
    docker overlay网络实现
    ELK+kafka日志收集
  • 原文地址:https://www.cnblogs.com/jackzhuo/p/12955009.html
Copyright © 2020-2023  润新知