nginx学习-2--负载均衡

负载均衡:就是把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器,从而不会产生集群中大量请求只请求某一台服务器,从而使该服务器宕机的情况。

创建负载均衡环境:创建两个tomcat服务:8091和8093,同一个项目复制之后改个名字或者端口号就可以了

nginx学习-2--负载均衡_第1张图片

nginx学习-2--负载均衡_第2张图片

 idea中服务搭建成功之后,现在在nginx中部署负载均衡

1.1轮询策略:根据配置文件中的服务器的顺序,以此访问服务器

#tomcats是自定义的,不是一定要命名这样的
upstream tomcats{
		server localhost:8091;
		server localhost:8093;
	}
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http:tomcats;
        }
    }    

 启动tomcat服务一级nginx服务,重启nginx,访问:localhost/wer

nginx学习-2--负载均衡_第3张图片

访问接口,每次刷新都会在这两个端口来回跳动 

1.2权重策略:根据服务器的性能,灵活的进行访问的配比

upstream tomcats{
		server localhost:8091 weight=8;
		server localhost:8093 weight=2;
	}
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://tomcats;
        }
    }

nginx.exe -s reload命令重启nginx,然后重新访问localhost/wer即可,可以看出,端口8091出现的次数多 

1.3IPHASH策略:如果需要用户与tomcat用户服务器进行绑定,可以选用iphash策略,可以保证每次用户访问都访问同一个tomcat服务器,可以解决会话Session丢失的问题

upstream tomcats{
		ip_hash;
		server localhost:8091 weight=6;
		server localhost:8093 weight=4;
	}
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://tomcats;
        }
    }

重启nginx一级重新访问localhost/wer,不管访问多少遍都是同一个结果

nginx的高可用实现

问题描述:当nginx访问tomcat服务器时,如果后端服务器宕机,则nginx依然会访问故障机,这样会造成用户响应变慢,如何优化?

1.down属性:用来表示tomcat服务器,告知nginx,该服务器已经下线,以后不会访问该服务器

2.backup:设定备用机,正常情况下,不会主动提供服务,当服务器遇忙时/或者主机下线时,才起作用

(反向代理的时候监听端口千万不要写成80,要不然页面一直出现什么404 Not Found,换个接口,当然,能换个局域网名称就不用改了,还有最重要的使用英文版的标点符号)

upstream tomcats{
		server localhost:8091 weight=6 down;
		server localhost:8093 weight=4;
	}
	
    server {
        listen       1111;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://tomcats;
        }
}

 一直刷新结果都是8093,backup同理,这里就不作实验了

nginx学习-2--负载均衡_第4张图片

tomcat高可用实现

1.max_fails=1指定最大的失败的次数,规定最大的失败次数1

2.fail_timeout=60s;如果失败的次数达到最大失败次数60s内,nginx就不会再次访问

upstream tomcats{
		server localhost:8091 weight=6 max_fails=1 fail_timeout=60s;
		server localhost:8093 weight=4 max_fails=1 fail_timeout=60s;
	}
	
    server {
        listen       1111;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://tomcats;
        }
}

在线部署步骤

需求:要求用户正常使用,并且完成项目升级,打成jar包,重新部署,如何操作

关键点:原有的服务必须关闭,之后才能升级

步骤:1.将设计部署的策略2.通过down属性标识下线 3.之后部署新的项目,如果没有问i题,则上线运行

4.重复执行上述的操作即可 5.上述的操作一般都有脚本完成,几分钟即可上线操作,linux运维 

你可能感兴趣的:(负载均衡,nginx,学习)