技术饭

阿里云负载均衡SLB服务器配置与服务器NGINX的301跳转处理方案

copylian    0 评论    19587 浏览    2020.11.15

阿里云提供全托管式在线负载均衡服务,通过流量分发来提升应用系统的服务能力,通过消除单点故障来提升应用系统的可用性。负载均衡具有即开即用,超大容量,稳定可靠,弹性伸缩,按需付费等特点,支持基于4层(TCP/UDP)负载均衡和基于7层(HTTP/HTTPS)反向代理。

正常我们做小项目都是使用一台服务就可以完成了,但是对于并发数高,流量的的一台服务器正常是扛不住的,并发一高CPU就蹭蹭蹭往上飙,直到服务器超负载奔溃为止,所以我们就有理由去做多台服务器的负载均衡,当然你如果有钱也可以买一台配置超牛逼的服务器,本篇就讲讲简单的阿里云负载均衡SLB服务器配置。

1、简单配置

1)、购买SLB之后就可以开始配置,配置相对比较简单,主要是配置端口监听负载流量分发服务器组

2)、正常情况下是配置443端口的https监听和配置80端口重定向到443的监听,当然了https的话还需要申请一个证书

3)、配置完成之后域名解析到负载提供的ip即可;

4)、配置自己服务器NGINX配置到自己的项目,这里需要注意的是:自己的服务器端口走80就好了,无需配置成https证书形式,因为证书负载均衡已经给配置好了,重定向的话可以使用NGINX,也可以直接负载均衡监听80端口重定向到443即可;

5)、负载均衡健康检查,如果配置了出现问题,问题基本上是NGINX没配置好,正常是需要配置一个默认的80响应

1.png

2、保持会话

1)、配置完成负载之后,访问域名多次刷新,流量会根据负载的配置权重等进行分发,也就是一直会切换服务器;

2)、我们的需求是同一个客户端请求一次之后,后续请求就都保持在同一台服务器就好了,负载SLB提供了植入cookie、重写cookie保持会话的方式

重写cookie的方式需要配置:add_header Set-Cookie name=BACKEND_SERVER; 然后就是在自己的程序里设置cookie:

7.png

3)、需要注意的是:由于使用的是cookie方式,开启了会话保持之后,单纯使用网页访问(请求一次,同域名下)是没有问题,但是如果跑接口,每个接口都会保持,但是同时访问接口1、接口2(不同域名),这两者可能会分发到不同的服务器去,原因是每次请求接口的时候都会生成不同的cookie,所以当你代码生成文件的时候可能就不是生成在同一台,这时候访问文件可能会不存在

2.png

3.png

3、301重定向

1)、负载SLB监听80端口的重定向,缺点是80端口被监听之后就没办法再解析其他的域名到负载IP了,除非监听其他端口;

4.png

5.png

2)、NGINX自身进行http重定向到https,这个操作就需要开启附加HTTP头字段配置了,然后直接301重定向即可;

9.png

8.png

总结:走了很多的弯路,也提了很多的工单,最后的做法还是:负载分发+NGINX配置http重定向到https+文件上传到OSS(不同接口会话保持是不一致的)+Redis

只袄早~~~
感谢你的支持,我会继续努力!
扫码打赏,感谢您的支持!

文明上网理性发言!

  • 还没有评论,沙发等你来抢