Linux ❀ Nginx负载均衡配置参数详解

Posted 国家级干饭型选手°

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux ❀ Nginx负载均衡配置参数详解相关的知识,希望对你有一定的参考价值。

1、部署前准备工作


将反向代理的案例进行延伸,分别配置8080端口与8081端口下的Tomcat服务,在webapps目录下创建edu目标,并配置test.html文件内容,产生特异性标识,以便后续进行测试;

[root@localhost ~]# mkdir /tmp/tomcat8081/apache-tomcat-9.0.54/webapps/edu
[root@localhost ~]# echo '<h1>test server A port is 8080 !!!</h1>' > /tmp/tomcat8080/apache-tomcat-9.0.54/webapps/edu/test.html 
[root@localhost ~]# echo '<h1>test server B port is 8081 !!!</h1>' > /tmp/tomcat8081/apache-tomcat-9.0.54/webapps/edu/test.html 

#检测Tomcat服务是否开启;

[root@localhost ~]# ps -ef | grep -w tomcat
root        2844       1  0 01:03 ?        00:00:11 /usr/bin/java -Djava.util.logging.config.file=/tmp/tomcat8080/apache-tomcat-9.0.54/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /tmp/tomcat8080/apache-tomcat-9.0.54/bin/bootstrap.jar:/tmp/tomcat8080/apache-tomcat-9.0.54/bin/tomcat-juli.jar -Dcatalina.base=/tmp/tomcat8080/apache-tomcat-9.0.54 -Dcatalina.home=/tmp/tomcat8080/apache-tomcat-9.0.54 -Djava.io.tmpdir=/tmp/tomcat8080/apache-tomca-9.0.54/temp org.apache.catalina.startup.Bootstrap start
root        2881       1  0 01:03 ?        00:00:11 /usr/bin/java -Djava.util.logging.config.file=/tmp/tomcat8081/apache-tomcat-9.0.54/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /tmp/tomcat8081/apache-tomcat-9.0.54/bin/bootstrap.jar:/tmp/tomcat8081/apache-tomcat-9.0.54/bin/tomcat-juli.jar -Dcatalina.base=/tmp/tomcat8081/apache-tomcat-9.0.54 -Dcatalina.home=/tmp/tomcat8081/apache-tomcat-9.0.54 -Djava.io.tmpdir=/tmp/tomcat8081/apache-tomca-9.0.54/temp org.apache.catalina.startup.Bootstrap start
root        4235    3577  0 02:26 pts/0    00:00:00 grep --color=auto -w tomcat

2、配置负载均衡功能


修改nginx配置文件;

[root@localhost ~]# cat /etc/nginx/nginx.conf
http {
~
    #负载均衡服务名称myserver可以自定义;
    upstream myserver{
        #IP:Port 权重值;
        server 192.168.174.129:8080;
        server 192.168.174.129:8081;
    }

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  192.168.174.129;
        root         /usr/share/nginx/html;
      
        location / {
            proxy_pass http://myserver;
            #跳转到负载均衡服务;
        }
~
}

#重启Nginx服务;

[root@localhost ~]# systemctl restart nginx

验证负载均衡功能;

刷新页面即可跳转到另一个端口;

3、负载均衡支持算法


(1)轮询

每个请求按照时间顺序逐一分配到不同的后端服务器,如果后端服务器down机,则自动进行删除;

    upstream myserver{
        server 192.168.174.129:8080;
        server 192.168.174.129:8081;
    }

(2)加权轮询

weight代表权重值,默认为1,权重值越高的服务器被分配的请求数量就越多;
权重值为比值,非数值

    upstream myserver{
        server 192.168.174.129:8080 weight=1;
        server 192.168.174.129:8081 weight=3;
    }

(3)ip_hash

每个请求按照访问IP的hash值结果进行分配,只要IP不被改变即同一台服务器进行响应;

    upstream myserver{
        ip_hash;
        server 192.168.174.129:8080;
        server 192.168.174.129:8081;
    }

(4)fair

按照服务器的响应时间来分配请求,响应时间越短的优先级越高;

    upstream myserver{
        server 192.168.174.129:8080;
        server 192.168.174.129:8081;
        fair;
    }

以上是关于Linux ❀ Nginx负载均衡配置参数详解的主要内容,如果未能解决你的问题,请参考以下文章

Nginx在linux服务器中配置负载均衡upstream详解

图文详解 配置Nginx+Tomcat负载均衡动静分离集群

Nginx + Tomcat 负载均衡配置详解

nginx配置优化+负载均衡+动静分离详解

nginx配置详解-url重写反向代理负载均衡

使用Nginx配置TCP负载均衡