一套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 ...
随机推荐
- Eclipse我常用的快捷键
[阅读代码用] Ctrl + 左键 看“定义”,“方法体(接口的实现类)”,“返回类型”.(光标所在<类名>/<方法名>+F3,看定义) Ctrl + T 看类继承关系树Tre ...
- 2017.8.12 dp课小结
这节课难度超级大啊,基本上都是省选+NOI的题. 例1: 1801: [Ahoi2009]chess 中国象棋 Time Limit: 10 Sec Memory Limit: 64 MB Subm ...
- [USACO Section 2.3] Cow Pedigrees (动态规划)
题目链接 Solution 我DP太菜啦... 考虑到一棵二叉树是由根节点以及左儿子和右儿子构成. 所以答案其实就是 左儿子方案数*右儿子方案数 . 状态定义: \(f[i][j]\) 代表深度为 \ ...
- [AHOI2008]逆序对(dp)
小可可和小卡卡想到Y岛上旅游,但是他们不知道Y岛有多远.好在,他们找到一本古老的书,上面是这样说的: 下面是N个正整数,每个都在1~K之间.如果有两个数A和B,A在B左边且A大于B,我们就称这两个数为 ...
- 使用router.push()进行页面跳转的问题
看着官网的文档直接router.push()这样会报错router undefind,需要写成this.$router.push()才可以
- 数表(bzoj 3529)
Description 有一张N×m的数表,其第i行第j列(1 < =i < =礼,1 < =j < =m)的数值为能同时整除i和j的所有自然数之和.给定a,计算数表中不大于a ...
- javap的基本用法
参考:http://www.cnblogs.com/beautiful-code/p/6424977.html javap是JDK自带的反汇编器,可以查看java编译器为我们生成的字节码.通过它,我们 ...
- 小程序-支持的最小像素px
经过我手机多次测试,支持的最小px为: 8px;
- SQL盲注工具BBQSQL
SQL盲注工具BBQSQL SQL注入是将SQL命令插入到表单.域名或者页面请求的内容中.在进行注入的时候,渗透测试人员可以根据网站反馈的信息,判断注入操作的结果,以决定后续操作.如果网站不反馈具 ...
- POJ 3140 Contestants Division (树dp)
题目链接:http://poj.org/problem?id=3140 题意: 给你一棵树,问你删去一条边,形成的两棵子树的节点权值之差最小是多少. 思路: dfs #include <iost ...