第一步,在Linux上安装两个tomcat,修改好端口号后,启动起来。

第二步,配置本地的DNS解析,即修改host文件:

第三步,配置Nginx配置文件

反向代理的配置虚拟主机配置差不多也要配置虚拟主机以拦截请求,但是响应的地址不再是本地的目录,而是引用代理设置中的地址:

具体解释:

先配置转发请求的真正服务地址,即真正响应服务的tomcat的地址和端口,

用 upstream + 自定义tomcat服务器的名称,然后里面是 server + tomcat的ip+端口

即:

然后配置请求拦截的虚拟主机:

其中的 server_name 还是拦截的请求域名,而和原来配置虚拟主机不一样的地方就是 location中,不再配置本地目录作为相应,而是用 proxy_pass  关键字来配置请求转发的服务器名称,具体格式为: proxy_pass  http:// + 服务器名称

其中的服务器名称就是我们在 upstream 中配置的 真正要提供服务的tomcat的 我们自定义的名称,即 tomcatserver1

这样,当前台请求 虚拟主机的拦截地址 8080.itheima.com时,虚拟主机就会将请求转发给真正的tomcat服务器 192.168.25.141:8080 来提供服务。

同理,再配置第二对请求的真正服务器 tomcatserver2 及 拦截请求的虚拟主机 server_name 8081.itheima.com

测试:

reload nginx的配置文件,然后访问

这样就实现了反向代理,即从表象上看,我们两个请求都是请求的同一个ip地址同样都是默认的80端口,但是服务器端实际上是用两个不同的tomcat来响应的。

因为我们前面在host中配置的是同一个ip,而且没有配端口(后面的8080和8081后面都是点,即其是域名,非端口),所以看起来像是访问的同一个服务器ip地址和端口。

这种情况下,Nginx实际上只做了请求的转发:请求来时,将请求转发给对应的tomcat,tomcat处理完响应回的数据再由Nginx转发给请求者。

Nginx反向代理两个tomcat服务器的更多相关文章

  1. EG:nginx反向代理两台web服务器,实现负载均衡 所有的web服务共享一台nfs的存储

    step1: 三台web服务器环境配置:iptables -F; setenforce 0 关闭防火墙:关闭setlinux step2:三台web服务器 装软件 step3: 主机修改配置文件:vi ...

  2. 使用nginx做反向代理来访问tomcat服务器

    本次记录的是使用nginx来做一个反向代理来访问tomcat服务器.简单的来说就是使用nginx做为一个中间件,来分发客户端的请求,将这些请求分发到对应的合适的服务器上来完成请求及响应. 第一步:安装 ...

  3. Nginx反向代理访问内网服务器

    Nginx反向代理访问内网服务器 问题描述 ​ 公司给配的台式机太垃圾了,不能访问外部网络就算了,还没有maven私服.近期项目不光得使用maven还得使用内网中的数据库之类,台式机太卡只能用自己的笔 ...

  4. 利用 Nginx 反向代理搭建本地 yum 服务器

    在政府,医院等单位有网络安全要求,对内外网进行物理隔离,然而内网主机无法访问互联网下载安装包,通过Nginx 反向代理搭建本地yum服务器实现内网主机安装包下载. Centos 8.2 部署 Ngin ...

  5. Linux中Nginx反向代理下的tomcat集群

    Nginx具有反向代理(注意和正向代码的区别)和负载均衡等特点. 这次Nginx安装在 192.168.1.108 这台linux 机器上.安装Nginx 先要装openssl库,gcc,PCRE,z ...

  6. Nginx 反向代理如何连接上游服务器

    L:92 想上游服务器先建立TCP连接 如三次握手 下面指令可以控制握手时间 proxy_next_upstream  指令当出现502可以换个上游服务器 Tcp keepalive 一般都是由进程在 ...

  7. 【转】Nginx反向代理和负载均衡

    原文链接:http://www.cnblogs.com/shuoer/p/7820899.html Nginx反向代理和负载均衡 环境说明 由于我使用的是windows系统,所以我用虚拟机虚拟出来了3 ...

  8. CentOS 7 学习(二) 配置Nginx反向代理

    CentOS 7 学习(二) 配置Nginx反向代理 Nginx可以通过php-fpm来运行PHP程序,也可以转向apache,让apache调用php程序来运行. 不过对于Nginx来说,其反向代理 ...

  9. 前端通过Nginx反向代理解决跨域问题

    在前面写的一篇文章SpringMVC 跨域,我们探讨了什么是跨域问题以及SpringMVC怎么解决跨域问题,解决方式主要有如下三种方式: JSONP CORS WebSocket 可是这几种方式都是基 ...

随机推荐

  1. 82. Single Number [easy]

    Description Given 2*n + 1 numbers, every numbers occurs twice except one, find it. Example Given [1, ...

  2. 【转】: 探索Lua5.2内部实现:虚拟机指令(1) 概述

    Lua一直把虚拟机执行代码的效率作为一个非常重要的设计目标.而采用什么样的指令系统的对于虚拟机的执行效率来说至关重要. Stack based vs Register based VM 根据指令获取操 ...

  3. Android开发-API指南-<path-permission>

    <path-permission> 英文原文:http://developer.android.com/guide/topics/manifest/path-permission-elem ...

  4. HDU 3260/POJ 3827 Facer is learning to swim(DP+搜索)(2009 Asia Ningbo Regional)

    Description Facer is addicted to a game called "Tidy is learning to swim". But he finds it ...

  5. MySQL用户管理及权限管理

    MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL 命令行模式下输入如下命 ...

  6. 转:Linux 编译安装 Mysql5.7

    http://broqiang.com/2017/04/18/Mysql-Install-5.7.18-Linux-Compile/ 原文 Linux 编译安装 Mysql5.7 Ubuntu 下快速 ...

  7. Line belt(三分镶嵌)

    In a two-dimensional plane there are two line belts, there are two segments AB and CD, lxhgww's spee ...

  8. C语言中的字符串分割函数

    char *strtok(char *s, const char *delim); 分解字符串为一组字符串.s为要分解的字符串,delim为分隔符字符串. 从s开头开始的一个个被分割的串.当没有被分割 ...

  9. http://www.cnblogs.com/120626fj/p/7545958.html

    1.本周PSP 2.本周进度条: 代码行,博文字数,用到的知识点 3.累计进度图 3.1累计代码折线图 3.2累计博文字数折线图 4.本周PSP饼状图

  10. lintcode-181-将整数A转换为B

    181-将整数A转换为B 如果要将整数A转换为B,需要改变多少个bit位? 注意事项 Both n and m are 32-bit integers. 样例 如把31转换为14,需要改变2个bit位 ...