什么是反向代理
         通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中由代理服务器向Internet上的web服务器发起请求,最终达到客户机上网的目的。这就是所谓的正向代理,一般就直接叫代理。

反向代理(Reverse Proxy)则是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

Nginx 只做请求的转发,后台有多个http服务器提供服务,nginx的作用就是把请求转发给后面的服务器,决定吧请求转发给谁处理。

如下图:

配置Nginx反向代理
应用场景
         两个tomcat服务通过nginx反向代理,本例子使用三台虚拟机进行测试,

nginx服务器:192.168.78.132

tomcat1服务器:192.168.78.134

    tomcat2服务器:192.168.78.135

如下图:

环境准备
  1. 两台 tomcat 服务器,我这里使用的是使用apache-tomcat-7.0.57版本,在192.168.78.134和192.168.78.135虚拟机上启动tomcat。

  2. Nginx 服务器,这个之前安装过,ip地址是:192.168.78.132

  3. 修改两个tomcat下的webapps/ROOT/index.jsp的内容,使用tomcat1和tomcat2两个服务首页显示不同的内容。

  4. 通过host文件指定aaa.test.com和bbb.test.com对应192.168.78.132虚拟机:修改window的hosts文件:(C:\Windows\System32\drivers\etc)

192.168.78.132 aaa.test.com
192.168.78.132 bbb.test.com

nginx反向代理配置

根据上边的需求在nginx.conf文件中配置反向代理,如下:

#配置一个代理即tomcat1服务器
upstream tomcat_server1 {
server 192.168.78.134:8080;
} #配置一个代理即tomcat2服务器
upstream tomcat_server2 {
server 192.168.78.135:8080;
} #配置一个虚拟主机
server {
listen 80;
server_name aaa.test.com;
location / {
#域名aaa.test.com的请求全部转发到tomcat_server1即tomcat1服务上
proxy_pass http://tomcat_server1; #欢迎页面,按照从左到右的顺序查找页面
index index.jsp index.html index.htm; }
} server {
listen 80;
server_name bbb.test.com;
location / {
#域名bbb.test.com的请求全部转发到tomcat_server2即tomcat2服务上
proxy_pass http://tomcat_server2; index index.jsp index.html index.htm;
}
}

测试

分别访问aaa.test.com、bbb.test.com测试反向代理。

通过上面的截图可以看出:

请求访问aaa.test.com通过nginx代理访问tomcat1,

请求访问bbb.test.com通过nginx代理访问tomcat2。

最后
以上,就把如何配置nginx和tomcat实现反向代理讲完了。虽然步骤比较多,但是操作起来还是比较简单的。

喜欢的可以加群:687942640

如何配置nginx和tomcat实现反向代理?的更多相关文章

  1. Nginx总结(五)如何配置nginx和tomcat实现反向代理

    前面讲了如何配置Nginx虚拟主机,大家可以去这里看看nginx系列文章:https://www.cnblogs.com/zhangweizhong/category/1529997.html 今天要 ...

  2. nginx和tomcat实现反向代理、负载均衡和session共享

    这类的文章很多,nginx和tomcat实现反向代理.负载均衡实现很容易,可以参照http://blog.csdn.net/liuzhigang1237/article/details/8880752 ...

  3. Nginx+apache/Tomcat实现反向代理与动静分离

    其实本人比较喜欢nginx跑静态和做负载反向代理,动态php还是交给apache处理比较稳定,jsp就交给tomcat.resin或jboss.nginx跑静态的能力是无与伦比的,是目前web服务器里 ...

  4. centos nginx和tomcat 通过反向代理生成想要的nexus网址

    研究背景: 最近一直在研究maven nexus 私服,所以想在自己带老笔记本上搭建一个私服,看到网上很多私服都有自己带域名,所以想在搭建过程中通过修改host 生成想要带域名 成功截图: 操作步骤: ...

  5. Nginx+Tomcat实现反向代理及动静分离

    Nginx+Tomcat实现反向代理及动静分离 时间 2014-07-07 15:18:35  51CTO推荐博文 原文  http://yijiu.blog.51cto.com/433846/143 ...

  6. 【转载】Nginx + Tomcat 实现反向代理

    通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中由代理服务器向Internet上的web服 ...

  7. Nginx插件之openresty反向代理和日志滚动配置案例

    Nginx插件之openresty反向代理和日志滚动配置案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.openresty介绍 1>.Nginx介绍 Nginx是一款 ...

  8. Tomcat ngxin 反向代理

    tomcat nginx 反向代理 安装nginx yum直接安装 yum install nginx –y 也可以编译安装 这是用编译安装,新手可以用yum安装 配置文件在 /etc/nginx/c ...

  9. Nginx的安装及反向代理设置

    因为项目的缘故,接触到了Nginx的安装和反向代理设置,和大家分享下. 一.Nginx的下载.安装cd /homewget http://nginx.org/download/nginx-1.0.5. ...

随机推荐

  1. 湫湫系列故事——设计风景线 HDU - 4514

    题目链接:https://vjudge.net/problem/HDU-4514 题意:判断没有没有环,如果没有环,通俗的讲就是找出一条最长的路,相当于一笔画能画多长. 思路:dfs判环. 最后就是没 ...

  2. kubernetes离线包分析

    k8s离线包解析 产品地址 鸣谢 大家好,首先感谢大家对我们产品的支持,特别是一些老客户的持续支持,让我可以有动力把这个事情持续进行下去. 感谢大家对付费产品的认可,尊重付费 产品介绍 我们专注于k8 ...

  3. 自己动手写Spring框架--IOC、MVC

    对于一名Java开发人员,我相信没有人不知道 Spring 框架,而且也能够轻松就说出 Spring 的特性-- IOC.MVC.AOP.ORM(batis). 下面我想简单介绍一下我写的轻量级的 S ...

  4. jdk1.8 HashMap底层数据结构:深入解析为什么jdk1.8 HashMap的容量一定要是2的n次幂

    前言 1.本文根据jdk1.8源码来分析HashMap的容量取值问题: 2.本文有做 jdk1.8 HashMap.resize()扩容方法的源码解析:见下文“一.3.扩容:同样需要保证扩容后的容量是 ...

  5. Python Iterator and Generator

    Python Iterator and Generator Iterator ​ 迭代器(Iterator)和可迭代对象(Iterable)往往是绑定的.可迭代对象就是我们平时经常用的list ,st ...

  6. mac下使用zerobrane调试cocos2dx的lua

    环境:MacOSx 10.9.2, Lua 5.1.4, luaSocket 2.0.2, xcode5.0.2 所需文件 luasocket-2.0.2.zip,ZeroBraneStudioEdu ...

  7. [zz] pomelo windows 环境下开发环境搭建

    原文链接:http://nodejs.netease.com/topic/515279a0b5a2705b5a000983 本文主要介绍下 windows 下跑通 pomelo 简单例子的过程 开发前 ...

  8. jQuery中的append中含有onClick的问题

    在jQuery中,当append中含有onClick时,点击事件无效果.需要在append完之后再额外绑定点击事件.

  9. pycharm的安装配置及思维导图

    1.1 计算机基础知识 主板:人的骨架,用于扩展设备的 cpu:人的大脑,用于计算和逻辑处理的 硬盘:存储数据(永久存储) 电源:人的心脏 内存:存储数据(临时存储) 断电即消失 操作系统 xp wi ...

  10. HTTP与HTTPS之面试必备

    本文主要讲解Http与https的区别,以及https是怎样加密来保证安全的. 首先讲这俩个协议的简单区别: HTTP:超文本传输协议. HTTPS:安全套接字层超文本传输协议HTTP+SSL HTT ...