NGINX如何实现负载均衡

大家好,我是IT修真院深圳分院第5期学员,一枚正直善良的JAVA程序员。

今天给大家分享一下,修真院官网JAVA任务6中,NGINX如何实现负载均衡。

一、背景介绍

什么是ngnix

Nginx是一个http服务器。是一个使用c语言开发的高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。nginx能够支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。


.知识剖析

1.我们主要用NGINX来做什么。

1、反向代理:反向代理(ReverseProxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,简单来说就是真实的服务器不能直接被外部网络访问,想要访问必须通过代理。


2、动静分离:运用Nginx的反向代理功能分发请求:所有动态资源的请求交给应用服务器,而静态资源的请求(例如图片、视频、CSS、JavaScript文件等)则直接由Nginx返回到浏览器,这样能大大减轻应用服务器的压力。

3、负载均衡:负载均衡也是 Nginx常用的一个功能,当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。我们可以建立很多很多服务器,组成一个服务器集群,当用户访问网站时,先访问一个中间服务器,在让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入该服务器。如此以来,用户的每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况。负载均衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡。



.常见问题

1、nginx负载均衡是如何实现的


2、nginx的upstream哪几种方式的分发策略


.解决方案

答:

a.两台或以上的应用服务器 b.在nginx.conf中写入相关配置,主要是对proxy_pass,upstream的使用



2.1)、轮询(默认)——每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

 2.2)、weight ——指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

2. 3)、ip_hash ——每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器。

 2.4)、backup——其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

2. 5)、down——表示单前的server暂时不参与负载




五。编码实战


七、参考文献

百度,知乎,CSDN


八.更多讨论

1。都是http服务器,nginx和tomcat的区别是什么?


虽然Tomcat也可以认为是HTTP服务器,内部集成了http服务器的相关功能,但通常它仍然会和Nginx配合在一起使用。严格的来说,Nginx 应该叫做「HTTP Server」;而 Tomcat 则是一个「Application Server」,或者更准确的来说,是一个「Servlet/JSP」应用的容器(Ruby/Python 等其他语言开发的应用也无法直接运行在 Tomcat 上),这种特性导致了它们在使用中有明确的分工职责。

2.linux服务器配置两个tomcat,需要更改什么配置?

答:理论上来讲,应该更改三个端口,conf下面的service.xml,我是把所有的端口号都加了一。有shutdown,http,port。

3.其他还有什么要注意的?

答:部署文件也要部署两个,展示页面稍微有一点点不一样,以区分不同。经过修改nginx里面的不同配置,然后重启nginx,你就会发现,展示页面会各有不同。



腾讯视频

感谢大家观看

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~

我的邀请码:19214843,

或者你可以直接点击此链接:http://www.jnshu.com/login/1/19214843

猜你喜欢

转载自blog.csdn.net/weixin_41315469/article/details/80785104