之前在Nginx的介绍中已经学习到了相关代理的概念,那么Nginx有如何实战代理呢?本篇将介绍,Nginx实现代理的相关操作。

代理

Nginx服务器的反向代理是其最常用的重要功能,由反向代理服务也可以衍生出很多与此相关的Nginx服务重要功能,比如:负载均衡。

在Java设计模式中,代理模式是这样定义的:给某个对象提供一个代理对象,并由代理对象控制原对象的引用

举一个生活中的例子:比如我们要买一间二手房,虽然我们可以自己去找房源,但这太花费时间精力了,而且房屋质量检测以及房屋过户等一些列手续也都得我们去办,费时费力,等一系列操作后,说不定房子已经卖给别人活着已经涨价了,那么怎么办呢?最简单快捷的方法就是找中介公司(为什么?因为房源多,对流程熟悉),于是我们委托了中介公司帮我们来找合适的房源,以及后期的质量检测过户等操作,我们都不需要管,只需要交钱即可。

代理简单来说,就是如果我们想做什么,但又不直接想去做,那么这时候就委托别人帮我们去做,那么从以上的例子看出,中介公司就是给我们做代理服务的,我们委托中介公司帮我们找房子。

Nginx实现代理

环境准备

  • 操作系统:CentOS7
  • Nginx:一个
  • Tomcat:三个

配置Tomcat

修改三个tomcat的端口号,分别为8081、8082、8083,每个tomcat/webapps目录下,新建test目录,该目录添加test.html,代码如下:

1
2
3
4
5
6
7
<html>
<head>
</head>
<body>
<h1>Tomcat 8081</h1>
</body>
</html>

完成后,分别启动三个Tomcat,启动成功后,浏览器访问

image-20210330112211050

配置Nginx

在Nginx配置文件中,配置对应的服务组和代理配置

image-20210330113758226

完成配置后,重启Nginx,浏览器访问服务IP

image-20210330114343405

这时,我们看到,在请求nginx已经跳转到了Tomcat的默认页面了

跳转到了Tomcat的默认页面了,接下来我们,浏览器不加端口号,直接访问路径/test/test.html

image-20210330114710302

我们可以进行不断的刷新,会发现内容会变,但是请求地址是没有变化的

image-20210330114758186

到这一步,我们已经感受到反向代理,这已经实现了一个简单的反向代理。接下来,看下面的配置进行规则隔离

image-20210330115427529