淘淘商城第89讲——nginx配置反向代理

什么是反向代理?

我们经常听说反向代理这个概念,既然有反向代理,那么就应该有正向代理,那什么是正向代理呢?如下图所示,所谓的正向代理是指当用户发起请求时无法直接访问到某个网站(比如我们经常要访问外网),需要经过一个中间服务器,用户将请求发给中间服务器,中间服务器可以访问用户想要访问的网站,中间服务器将用户的请求转发给想要访问的网站,然后再将那个网站响应的结果再返回给用户,这就是正向代理。
在这里插入图片描述
然后,我们再来看下反向代理,如下图所示,一般情况下,一个大型网站都是由多个服务器组成的,比如某个网站是由三个Tomcat服务器组成的集群对外提供服务,那么当用户发送一个请求后,应该是由哪个Tomcat服务器对外提供服务呢?这就是nginx反向代理所要做的事情,nginx会帮我们自动找一个Tomcat服务器来处理我们的请求,用户根本就不需要关心。
在这里插入图片描述
网站入口就是公网ip,公网ip就是你去注册域名时的那个ip地址(一级域名所对应的),只有这一个,因此咱们只能通过这个公网ip(网站入口)进行反向代理。

注意,反向代理服务器决定哪台服务器对外提供服务,而它是不对外提供服务的,它只不过是将请求进行转发。

nginx实现反向代理

下面我就按照下图所描述的来配置反向代理。
在这里插入图片描述
因为只是学习反向代理,所以这儿我就只使用了一台虚拟机,而且最好这台虚拟机安装有JDK环境,并且还得提前将Tomcat服务器的压缩包上传上去。

我们现在要配置反向代理,应该至少要有两个Tomcat服务器,所以要创建两个Tomcat服务器实例,如下图所示。
在这里插入图片描述
然后将这两个Tomcat服务器的端口号给改一下,使每个Tomcat服务器运行在不同的端口上。我们先到tomcat8081的conf目录下修改server.xml文件,依次修改下面这三段配置中的port属性的值,如下所示。

  1. 将port属性的值由8005改为8006
    在这里插入图片描述
  2. 将port属性的值由8080改为8081
    在这里插入图片描述
  3. 将port属性的值由8009改为8010
    在这里插入图片描述

接着进入tomcat8082的conf目录下修改server.xml文件,依次修改下面这三段配置中的port属性的值,如下所示。

  1. 将port属性的值由8005改为8007
    在这里插入图片描述
  2. 将port属性的值由8080改为8082
    在这里插入图片描述
  3. 将port属性的值由8009改为8011
    在这里插入图片描述

紧接着我们便要在nginx服务器上配置下反向代理了,即在nginx.conf配置文件中添加如下的一段内配置。
在这里插入图片描述
从上图中可以看到使用的域名为www.sina.com.cnwww.sohu.com,因此我们需要在hosts文件中添加对应的映射关系,如下图所示(大家根据自己虚拟机的实际ip地址来配置啊)。
在这里插入图片描述
nginx的配置文件修改了之后,要想让其生效,应该怎么办呢?我们需要重启服务或者是重新加载配置文件,使用的命令是./nginx -s reload

为了区分出我们访问的Tomcat服务器到底是属于哪个,可以给每个Tomcat服务器的首页加上一个标志,即修改(tomcat8081/tomcat8082)/webapps/ROOT目录下的index.jsp页面,tomcat8081这个Tomcat服务器的修改如下图所示,可以看到在原来的信息后面加上了---tomcat8081字样。
在这里插入图片描述
tomcat8082这个Tomcat服务器的修改如下图所示,可以看到在原来的信息后面加上了---tomcat8082字样。
在这里插入图片描述
最后,我们启动两个Tomcat服务器,先在浏览器地址栏输入www.sina.com.cn并回车,可以看到我们访问到了tomcat8081这个Tomcat服务器的首页。
在这里插入图片描述
再访问www.sohu.com,可以看到访问到的是tomcat8082这个Tomcat服务器的首页,这说明我们的反向代理配置的没问题。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yerenyuan_pku/article/details/73148435