Nginx的反向代理和负载均衡
创始人
2024-03-27 19:29:17
0

Nginx:

Nginx作为面试中的大…小头目,自然是不能忽视的,而以下两点就是它能成为面试中头目的招牌。
反向代理和负载均衡

在此之前,我们先对Nginx做一个简单的了解

Nginx概述:

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。在连接高并发的情况下,Nginx能够支持高达 50,000 个并发连接数的响应。

Nginx的应用场景:

http 服务器。Nginx 是一个 http 服务可以独立提供 http 服务。可以做网页静态服务器
虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用 nginx 做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。


代理:

对Nginx做了简单了解后,我们去了解一下它的最核心的两个功能:
想要了解反向代理,我们需要去了解一下什么是代理

代理概述:

代理服务器(Proxy Server)是一种重要的服务器安全功能,它的工作主要在开放系统互联(OSI)模型的会话层,从而起到防火墙的作用。代理服务器大多被用来连接INTERNET(国际互联网)和INTRANET(局域网)。

正向代理:

在这里插入图片描述
正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。
正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性(由mod_cache提供)减少网络使用率。

关于正向代理我们不做过多阐述。

反向代理:

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。

在这里插入图片描述

反向代理相关配置:

我们去配置一下linux中Nginx的配置文件:
去你的Nginx的安装目录下找到nginx.conf文件,一般是在/usr/local/nginx/conf/nginx.con中,如果是第一次打开可以把#的注释都删除了,为了方便查看。

server {listen       81; # 监听的端口server_name  localhost; # 域名或iplocation / {	# 访问路径配置root   index;# 根目录index  index.html index.htm; # 默认首页}error_page   500 502 503 504  /50x.html;	# 错误页面location = /50x.html {root   html;}}

第一步:我们去配置反向代理
先在Nginx主机修改nginx.conf配置文件,在server上加上一个

upstream 自定义名称{server 192.168.177.129:8080; 网站的访问路径}

如下:

upstream tomcat-travel{server 192.168.177.129:8080;}
server {listen       80; # 监听的端口server_name  www.hmtravel.com; # 域名或iplocation / {	# 访问路径配置# root   index;# 根目录proxy_pass http://tomcat-travel;index  index.html index.htm; # 默认首页}
}

第二步:重新启动Nginx
我们进入到Nginx的安装目录下的sbin目录下

./nginx -s quit		  关闭Nginx
./nginx -s stop  	  关闭Nginx
./nginx          	  启动Nginx
ps aux|grep nginx     查看Nginx进程
./nginx -s reload 	  重启Nginx(会重新读取配置文件)

反向代理执行流程

当我们没有配置反向代理时:
在这里插入图片描述
浏览器通过tomcat主机的ip地址直接请求网站
当我们设置反向代理后:
在这里插入图片描述
浏览器请求服务器,请求的是代理服务器Nginx,通过Nginx设置的域名,也就是我们在nginx.conf中设置的server_name。然后通过proxy_pass去查找代理的服务器的ip,就会查到server上面的upstream,通过upstream获取里面设置的ip地址。然后我们通过ip去访问tomcat中部署的项目。


负载均衡:

当你理解了反向代理的执行流程,负载均衡也就很简单了
首先我们先去了解一下负载均衡的基本描述:

负载均衡概述:

负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。

负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。

简单理解为:多个tomcat,分担并发量,虽然我们可以在一台linux上复制多个tomcat,但是,在企业中,都是一台linux上一个tomcat。
举个例子:假设一台tomcat的并发量只有200,现在你的网页系统同一时候处理的请求数量(事务数)大于200,那么你的tomcat就会挂掉,这时就需要多台tomcat来分担这个并发量。

Nginx的负载均衡,反向代理是它的基础,只需要在upstream中写入多个server即可。

upstream tomcat-travel {server 192.168.177.129:8080;server 192.168.177.129:8081;server 192.168.177.129:8082;}server {listen       80; # 监听的端口server_name  www.hmtravel.com; # 域名或iplocation / {	# 访问路径配置# root   index;# 根目录proxy_pass http://tomcat-travel;index  index.html index.htm; # 默认首页}error_page   500 502 503 504  /50x.html;	# 错误页面location = /50x.html {root   html;}}

此处代码使用的是一台linux上3个tomcat使用不同端口来实现的。正常为,一台linux上只有一个tomcat。
负载均衡的执行流程和上面写的反向代理一样,只是在通过server_name去查找服务时,从一个变为从3个中随机选取一个。3个被选的概率一致,均为33%。
当然我们可以进行一个权重的配置。只需要在upstream中路径后面加一个weight属性就行,如:

	upstream tomcat-travel {server 192.168.177.129:8080 weight 2;server 192.168.177.129:8081;server 192.168.177.129:8082;}

现在8080端口的访问量占从原来的3分之一,变成了2分之一。(原来3台中随机一台,现在相当于新增一台8080端口的访问路径,就变成4台,8080占两份)。


相关内容

热门资讯

原创 在... 在古代,被皇帝赐死其实是一种特殊的待遇,而不仅仅是死亡本身值得关注,更应看赐字所体现的意义。 首...
原创 2... 近日,拥有287万粉丝的抖音网红主播王某强(账号名:某某超市)因被曝多次犯下刑事罪行引发舆论哗然,相...
全球货币政策为何出现明显分化? 2025年岁末,全球金融市场出现“超级央行周”。 从12月10日开始,美国、日本、英国、欧盟、俄罗斯...
广汽自主品牌“三担责”政策发布 IT之家 12 月 28 日消息,广汽集团今日正式发布自主品牌“三担责”政策:三电问题自燃、电池衰减...
原创 他... John McAvoy 是一位来自英国的铁人三项运动员,创造了多个世界纪录,其中包括100,000米...
原创 高... 12月26日这一天,对日本右翼势力来说,具有非常特殊的意义,甚至可能成为东亚局势的一个重要导火索。日...
石景山检察院:侵犯知识产权犯罪... 新京报讯(记者张静姝)12月24日上午,北京市石景山区人民检察院(以下简称“石景山区检察院”)在中关...
暖心!女子买鸭起纠纷,拍摄者自... 智慧中国讯(马泽川)2025年12月26日,湖南衡阳一市场内上演了暖心一幕。一名女子在老人摊位购买鸭...
原创 民... 如今,律师这个职业在社会上的口碑并不特别好,主要原因是有些律师缺乏正义感。在律师圈里,有一些知名律师...
为促进民用航空事业高质量发展提... 法治日报全媒体记者 蒲晓磊 2025年12月27日,十四届全国人大常委会第十九次会议表决通过新修订的...