tdoly bio photo

tdoly

喜爱爬山,徒步的IT小小鸟

Twitter Facebook Google+ Github

在本地环境为同一IP使用多个domain对应不同的项目

还是为了测试顶级域和www域下的cookies。所以需要在本地为项目配置域名。

No.1修改hosts文件

文件地址:%SystemRoot%\system32\drivers\etc\hosts 添加对应关系

1 192.168.101.88 localhost
2 192.168.101.88 tdoly.com
3 192.168.101.88 www.tdoly.com

然后ping命令检查hosts是否生效。

No.2在Tomcat上设置多个Virtual Host

文件位置:%CATALINA_HOME%\conf\server.xml

将Connector标签的8080端口修改为80端口。80为HTTP的默认端口,测试时可以省去输入端口的步骤。

在Engine标签下增加Host:

1 <Host name="www.tdoly.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"></Host>
2 <Host name="tdoly.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"></Host>

在webapps下有2个模块,wap和web。 其中appBase可以是相對於%CATALINA_HOME%的相對路徑或是絕對的系統路徑都可以。

No.3启动测试

启动Tomcat,输入www.tdoly.com和tdoly.com就会看到$CATALINA_HOME/webapps/ROOT/index.html这个欢迎页面了。然后就可以用来测试模块了。

No.4直接用域名来访问项目

虽然这样也可以测试了,但是却需要输入模块名。所以还需要将模块名去掉,这里就需要Context标签了。

1 <Host name="www.tdoly.com" appBase="webapps2" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
2     <Context path="" docBase="$ProjectName" workDir="$ProjectName" reloadable="true"/>
3 </Host>
4 
5 <Host name="tdoly.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
6     <Context path="" docBase="$ProjectName" workDir="$ProjectName" reloadable="true"/>
7 </Host>

这样就可以直接根据域名来访问web项目了。(如果在一个Host下有多个Context的存在时,就需要为Context的path指定访问名了)

No.5 为一个域下指定多个项目模块

其中Valve用来记录访问日志。

1 <Host appBase="webapps" autoDeploy="true" name="www.tdoly.com" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
2 
3     <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
4 
5     <Context docBase="$ProjectOne" path="/one" reloadable="true" />
6     <Context docBase="$ProjectTwo" path="/two" reloadable="true" />
7 </Host>

然后就可以通过

  • www.tdoly.com 访问 $CATALINA_HOME/webapps/ROOT/index.html
  • www.tdoly.com/one 访问 $ProjectOne,
  • www.tdoly.com/two 访问 $ProjectTwo