淘淘商城系列——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的值,如下所示。
- 将port的值由8005改为8006
- 将port的值由8080改为8081
- 将port的值由8009改为8010
接着进入tomcat8082的conf目录下(/usr/tomcat8082/conf)修改server.xml文件,依次修改下面这三段配置的port的值,如下所示。
- 将port的值由8005改为8007
- 将port的值由8080改为8082
- 将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的首页。这说明我们的反向代理配置的没问题。
- 淘淘商城系列——nginx配置反向代理
- 淘淘商城系列——nginx配置虚拟主机
- 学习淘淘商城第七十五课(nginx配置反向代理)
- 淘淘商城系列——nginx基础学习
- 淘淘商城系列——nginx实现负载均衡
- 淘淘商城系列——内容管理
- 淘淘商城系列——初始SolrCloud
- 淘淘商城系列——freemarker入门
- 淘淘商城系列——freemarker语法
- 淘淘商城系列——SSO系统分析
- 淘淘商城系列——生成订单
- 淘淘商城系列——VMware添加已配置好的虚拟机
- 淘淘商城系列——使用maven构建工程
- 淘淘商城系列——zookeeper单机版安装
- 淘淘商城系列——发布dubbo服务
- 淘淘商城系列——引用dubbo服务
- 淘淘商城系列——服务调用测试
- 淘淘商城系列——展示后台管理页面
- 栈——链式存储结构及其基本运算
- 51单片机学习第一天
- MFC学习笔记(四)
- Objective-C中的同步线程的锁
- C#学习之路(1)--数据库技术
- 淘淘商城系列——nginx配置反向代理
- RepeatMasker安装和使用——基因组重复序列注释
- 在express中使用handlebars-helpers
- java 并发
- QT关于网络TCP通讯的记录(二)
- 四中更新uI方法代码示例
- sql中常用不常见函数部分总结
- 575. Distribute Candies
- java中使用反射机制获取实体类集合的某个属性值