一套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 ...
随机推荐
- NOIP2017赛前模拟(4):总结
题目: 1.打牌 给定n个整数(n<=1000000),按照扑克牌对子(x,x)或者顺子(x,x+1,x+2)打出牌···问最多可以打出多少次对子或者顺子?牌的大小<=1000000 2. ...
- 刷题总结——小c找朋友(bzoj4264 集合hash)
题目: Description 幼儿园里有N个小C,两个小C之间可能是朋友也可能不是.所有小C之间的朋友关系构成了一个无向图,这个无向图中有M条边. 园长ATM发现对于两个(不同的)小Ci和j,如果其 ...
- COGS728. [网络流24题] 最小路径覆盖问题
算法实现题8-3 最小路径覆盖问题(习题8-13) ´问题描述: 给定有向图G=(V,E).设P是G的一个简单路(顶点不相交)的集合.如果V中每个顶点恰好在P的一条路上,则称P是G的一个路径覆盖.P中 ...
- 【BZOJ3524】Couriers(主席树)
题意:给一个长度为n的序列a.1≤a[i]≤n.m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2.如果存在,输出这个数,否则输出0. n,m≤5000 ...
- 标准C程序设计七---71
Linux应用 编程深入 语言编程 标准C程序设计七---经典C11程序设计 以下内容为阅读: <标准C程序设计>(第7版) 作者 ...
- 11深入理解C指针之---指针和常量
该系列文章源于<深入理解C指针>的阅读与理解,由于本人的见识和知识的欠缺可能有误,还望大家批评指教. 指针作为C语言的左膀右臂,使用方便,修改容易,引用数据快速都是很有前景的应用.C语言中 ...
- bq25896 IINDPM 及 無 IINDPM 時的 regsiter
無 IINDPM status 有 IINDPM status [bq25890 reg@][0x0]=0x5d[0x1]=0x6[0x2]=0x91[0x3]=0x1a[0x4]=0x8[0 ...
- python笔记1:python基础
1.Python模块的标准文件模板: #!/usr/bin/env python #第1行注释可以让这个 .py 文件直接在Unix/Linux/Mac上运行 # -*- coding: utf-8 ...
- 洛谷—— P1503 鬼子进村
https://www.luogu.org/problemnew/show/P1503 题目背景 小卡正在新家的客厅中看电视.电视里正在播放放了千八百次依旧重播的<亮剑>,剧中李云龙带领的 ...
- ML | SVM
What's xxx An SVM model is a representation of the examples as points in space, mapped so that the e ...