这个是我第一次编辑博客,只是想记录一些东西:【参考http://elf8848.iteye.com/blog/1684557】
需求:需要将两个域名定向到同一个ip
问题:没有接触过这种情况,之前以为一个域名只能对应一个ip,事实证明我真的是太菜逼了,现在的域名和ip都可以不是一对一的关系了
正题:OK,切入正题,
假设我们有三个包,a.war,b.war,c.war,然后需要将www.a.com,www.b.com,www.c.com这三个域名都指向同一个ip地址的服务器:192.168.0.1
服务器容器是一个tomcat【如果不需要启动工程,只是需要放置一些静态页面的话,其实不需要war包】
- 找到tomcat的目录:F:\webwork\apache-tomcat-7.0.59【linux下没有盘符】,会发现底下有我们部署war包的路径webapps,我们一般就只有这一个,我们需要做的是建立多个这种目录,如:webapps_a,webapps_b,webapps_c,然后把3个war包扔进去。
- 找到tomcat配置的server.xml,修改其中<Engine>标签下的内容:
修改为:<Engine defaultHost="localhost" name="Catalina"> <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true"> <Context docBase="yu_demo" path="/yu_demo" reloadable="true" source="org.eclipse.jst.jee.server:yu_demo"/></Host> </Engine>
<Engine name="Catalina" defaultHost="wwww.a.com"> <Host name="www.a.com" appBase="webapps_a" autoDeploy="true" unpackWARs="true"> <Alias>a.com</Alias> <Context path="/" docBase="a" reloadable="true" /> </Host> <Host name="www.b.com" appBase="webapps_b" autoDeploy="true" unpackWARs="true"> <Alias>b.com</Alias> <Context path="/" docBase="b" reloadable="true" /> </Host> <Host name="www.ccc.com" appBase="webapps_c" autoDeploy="true" unpackWARs="true"> <Alias>a.com</Alias> <Context path="/" docBase="c" reloadable="true" /> </Host> </Engine>
- 以上几个标签说明:【更多关于server.xml的请参考:http://www.cnblogs.com/gugnv/archive/2012/02/01/2334187.html】
defaultHost="www.a.com"的作用是,如果使用ip访问,默认进入www.a.com网站。
<Host name="www.a.com" 表示,为当前Host绑定域名www.a.com
appBase="webapps_a"的作用是指定Web应用程序的基本路径,这里可以存放多个程序,访问时一般是相对路径
<Alias>标签的作用是为这个Host绑定多个别名。
<Context docBase="a" 的作用是,a.war会被tomcat解包成a目录或者ROOT目录(具体哪个目录取决于后面的path参数),docBase的作用就是指向a目录,这里是相对路径,是相对于前面制定的webapps_a目录,也可以是绝对路径,这里如果不使用子目录,会导致应用程序被启动两次。
<Context path="/"的作用是,指定Web应用得上下文根