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

什么是反向代理?

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

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

nginx实现反向代理

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

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

  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 reloadapp

为了区分出咱们访问的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服务器的首页,这说明咱们的反向代理配置的没问题。
在这里插入图片描述webapp