一套Tomcat处理多个域名请求 - Virtual Host
最近和Tomcat较上劲了。。。
作为Tomcat的系列之一,来尝试下如何用一套Tomcat来处理多个域名请求。
场景:基于成本考虑,多个department共用一台服务器,然后该服务器上就一套Tomcat。各个department有各自的域名,这样就需要配置Tomcat的虚拟主机来解决。
1. 修改hosts文件
2. 修改server.xml文件
3. 为每个department创建webapps目录
详细细节:
1. 修改hosts文件
据自己目前的网络知识,像我们平时上网,当发出www.baidu.com的请求时,该域名会被www的DNS解析成对应的IP,之后就能定位到baidu的主机,进而建立连接进行访问。
如果真有类似“一套Tomcat来处理多个域名请求”的需求,那么首先应该保证各个域名会被解析成同一个IP。
在这里,为代替DNS的域名解析,暂时修改hosts文件,用来处理各个department的域名。
hosts文件位置:
Windows 7 x64: C:\Windows\System32\drivers\etc
Linux CentOS 7: /etc
假设两个域名:www.tomcatvirtualhost1.com ; www.tomcatvirtualhost2.com
在hosts文件中增加以下内容,Tomcat Server IP 为真实的IP.
Tomcat Server IP www.tomcatvirtualhost1.com
Tomcat Server IP www.tomcatvirtualhost2.com
2. 修改server.xml文件
修改tomcat中conf下的server.xml文件(使用apache-tomcat-8.5.4)。
在server.xml文件中,有以下默认的<Host>。 name="localhost" appBase="webapps"。name对应域名,appBase对应tomcat下的应用文件夹。
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" /> </Host>
所以增加以下两个<Host>标签:
修改name和appBase
<Host name="www.tomcatvirtualhost1.com" appBase="department1"
unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" /> </Host> <Host name="www.tomcatvirtualhost2.com" appBase="department2"
unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" /> </Host>
3. 为每个department创建webapps目录
既然server.xml文件中已经增加了2个appBase,所以在tomcat目录下相应创建文件夹 department1 和 department2。为简化,可以复制webapps。
4. 测试
启动Tomcat,浏览器键入www.tomcatvirtualhost1.com:8080,这将访问department1;浏览器键入www.tomcatvirtualhost2.com:8080,这将访问department2。
POST: 后续研究下怎么把端口号也去掉(修改默认端口的方式感觉不好),看着别扭。。。
Done!
一套Tomcat处理多个域名请求 - Virtual Host的更多相关文章
- [转]TOMCAT原理以及处理HTTP请求的过程、ContextPath ServletPath
一.TOMCAT 1 - Tomcat Server的组成部分 <Server> <Service> <Connector/> ...
- 一个服务器上面配置多个IP ,实现指定IP的域名请求
//配置多个IP命名using System.Net; //********************************************************************** ...
- c#中HttpWebRequest使用Proxy实现指定IP的域名请求
原文:http://www.cnblogs.com/greenerycn/archive/2010/04/11/httpwebreques_host_modify_By_set_proxy.html ...
- TOMCAT原理详解及请求过程
Tomcat: Tomcat是一个JSP/Servlet容器.其作为Servlet容器,有三种工作模式:独立的Servlet容器.进程内的Servlet容器和进程外的Servlet容器. Tomcat ...
- 网站开发进阶(四)Tomcat Server处理一个http请求的过程
Tomcat Server处理一个http请求的过程 假设来自客户的请求为: http://localhost:8080/wsota/wsota_index.jsp 1) 请求被发送到本机端口8080 ...
- TOMCAT原理详解及请求过程(转载)
转自https://www.cnblogs.com/hggen/p/6264475.html TOMCAT原理详解及请求过程 Tomcat: Tomcat是一个JSP/Servlet容器.其作为Ser ...
- Tomcat Server处理一个http请求的过程
Tomcat Server处理一个http请求的过程 假设来自客户的请求为: http://localhost:8080/wsota/wsota_index.jsp 1) 请求被发送到本机端口8080 ...
- WEB安全:Tomcat 只可通过域名访问,禁止通过 IP 访问
服务器为什么要禁止通过IP直接访问? 1.若公布于外网的服务器IP地址未备案,就有可能被工信部查封.这样备案的域名也会无法访问. 2.如果AppScan通过ip访问扫描,会有“发现内部ip泄露模式”的 ...
- nginx+tomcat把带WWW域名自动跳转到不带www域名方法
nginx+tomcat把带WWW域名自动跳转到不带www域名方法在nginx.conf里面 include /etc/nginx/conf.d/*.conf;在应该server里增加: if ($h ...
随机推荐
- C#精髓第四讲 GridView 72般绝技
原文发布时间为:2008-08-03 -- 来源于本人的百度文章 [由搬家工具导入] 原文地址:http://blog.csdn.net/21aspnet/archive/2007/03/25/154 ...
- iis 配置 aspnet起始页
起始页配置:在default document上面加上路径就可以了,例如 /home/kickoffjob asp.net 关于起始页的一般设置: 1: 在web.config中,加入form认证: ...
- 34深入理解C指针之---通过字符串传递函数
一.通过字符串传递函数 1.定义:可以使用函数名(字符串)调用函数,也可以使用函数指针调用函数,将两者结合 2.特征: 1).在函数声明时使用函数指针 2).调用函数时使用函数名称(字符串) 3).可 ...
- serializeObject 的应用
function sendForm() { var invOrderModelWrapper = {}; // 头 var objHeader = $('#invOrderForm').seriali ...
- LeetCode OJ-- Trapping Rain Water*
https://oj.leetcode.com/problems/trapping-rain-water/ 模拟题,计算出在凹凸处存水量. 对于一个位置 i ,分别计算出它左边的最大值 left (从 ...
- kafka性能调优
https://blog.csdn.net/u013063153/article/details/73826322
- 微信小程序 本地缓存保持登录状态之wx.setStorageSync()使用技巧
微信小程序提供了一个如同浏览器cookie本地缓存方法,那就是今天要说的wx.setStorageSync() 注意,该方法是同步请求,还有个异步请求的方法是wx.setStorage(),参考官方文 ...
- 利用例子来理解spring的面向切面编程(使用@Aspect)
上篇的例子,自动装配和自动检测Bean是使用注解的方式处理的,而面向切面编程是使用aop标签处理的,给我感觉就像中西医参合一样. 现在就来优化优化,全部使用注解的方式处理. 1.工程图:
- 【ZJOI2016】大♂森林
题目描述 小Y家里有一个大森林,里面有 $n$ 棵树,编号从 $1$ 到 $n$ .一开始这些树都只是树苗,只有一个节点,标号为 $1$ .这些树都有一个特殊的节点,我们称之为生长节点,这些节点有生长 ...
- linux几种常见的文件内容查找和替换命令
作为一个以前没怎么接触过linux的小白,开始使用linux,各种不习惯,这周遇到一个文件内容测查找和替换的需求.学习了以下几种实现方式: 1.vi命令下的查找和替换 1.1 vi下的查找 /patt ...