淘淘商城系列——nginx配置反向代理

来源:互联网 发布:素数判断c语言程序 编辑:程序博客网 时间:2024/05/16 12:16

什么是反向代理

我们经常听说反向代理这个概念,既然有反向代理,那么就应该有正向代理,什么是正向代理呢?如下图所示,所谓的正向代理是指当用户发起请求时无法直接访问到某个网站(比如我们经常听到的翻墙),需要经过一个中间服务器,用户将请求发给中间服务器,中间服务器可以访问用户想要访问的网站,中间服务器将用户的请求转发给想要访问的网站,然后将那个网站响应的结果再返回给用户,这就是正向代理。
这里写图片描述
接着,我们再来看下反向代理,如下图所示,一般情况下,一个大型网站都是由多个服务器组成的,比如某个网站是由三个tomcat组成的集群对外提供服务的。那么当用户发送一个请求后,应该是哪个tomcat对外提供服务呢?这就是nginx反向代理所要做的事情,nginx会帮我们自动找一个tomcat来处理我们的请求,用户根本就不需要关心。
这里写图片描述
反向代理服务器决定哪台服务器对外提供服务,反向代理服务器是不提供服务器的,它只不过是请求的转发。

nginx实现反向代理

下面我就按照下图所描述的来配置反向代理。因为只是学习反向代理,所以这儿我就只使用一台虚拟机,就是安装单机版Solr的时候就已经新建好了的那台虚拟机,它已经安装好了JDK,并且在用户主目录(即root)下已经有了解压缩后的tomcat了,这就帮我们省了很多事。
这里写图片描述
我们现在要配置反向代理,应该要有两个tomcat,所以将用户主目录(即root)下的apache-tomcat-7.0.47复制两份,这样就能创建两个tomcat实例了,如下图所示。
这里写图片描述
然后将这两个tomcat的端口号给改一下,使每个tomcat运行在不同的端口。我们先到tomcat8081的conf目录下(/usr/tomcat8081/conf)修改server.xml文件,依次修改下面这三段配置的port的值,如下所示。

  1. 将port的值由8005改为8006
    这里写图片描述
  2. 将port的值由8080改为8081
    这里写图片描述
  3. 将port的值由8009改为8010
    这里写图片描述

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

  1. 将port的值由8005改为8007
    这里写图片描述
  2. 将port的值由8080改为8082
    这里写图片描述
  3. 将port的值由8009改为8011
    这里写图片描述

下面我们在nginx服务器上配置下反向代理,在nginx.conf配置文件中添加的内容如下图所示。
这里写图片描述
从上图可以看到使用的域名为www.sina.com.cn和www.sohu.com,故我们需要在hosts文件中添加对应的映射关系,如下图所示(大家根据自己虚拟机的实际IP来配置)。
这里写图片描述
nginx的配置文件修改了之后,要想让其生效,应该怎么办呢?我们需要重启服务或者是重新加载配置文件,如下图所示。
这里写图片描述
为了区分出我们访问的tomcat属于哪个,我们给每个tomcat首页加上标志,需要修改的文件路径是/tomcat8081/webapps/ROOT/index.jsp,tomcat8081的修改如下图所示,在原来的信息后面加上了”-tomcat8081”,另外一个tomcat也做下相应修改。
这里写图片描述

这里写图片描述
启动两个tomcat,然后在浏览器地址栏输入www.sina.com.cn,可以看到我们访问到了tomcat8081的首页。
这里写图片描述
我们再访问下www.sohu.com,可以看到访问到的是tomcat8082的首页。这说明我们的反向代理配置的没问题。
这里写图片描述

原创粉丝点击