TomCat域名绑定与虚拟目录设置

Windows下可以通过修改hosts文件进行本地域名解析,Linux下可以么?

当然!

在这一点上,二者出奇的相同文件名相同,里机的内容也相同。

windows系统下hosts文件所在目录:$(系统盘):\WINDOWS\system32\drivers\etc

注意:“文件夹选项”设置:“显示所有文件和文件夹”去掉“隐藏受保护的系统文件”前面的勾。

Linux下hosts文件所在目录:/etc

编辑方法:

vi hosts

按insert键开始编辑,编辑完成后,依次按:esc——shift+:——w——q——回车,就OK啦。

注意:“——”是分隔符,仅为描述,无需录入。

<Host name="www.test.com" appBase="D:\eee" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" >
<Context path="" docBase="D:\eee" debug="0" reloadable="true" crossContext="true" workDir="D:\eee\jkjk"></Context></Host>

0///////////////////////////////////////////////////////////
tomcat采用默认安装,要想tamcat直接绑定多个域名,这里我们需要修改配置文件:C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\server.xml

server.xml 的修改方式如下:

(一)多域名绑定

1.如果你要绑定网站,首先是要把tomcat的默认访问端口8080,修改成80(因为web下默认的端口是:80)

原来:

<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />

修改后:

<Connector port="80" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />

 

其实这里就是把port:8080,修改成port:80就可以了,其他的参数不变

2.接下来就是重点了哈哈...

<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" />
</Engine>

当然这里我把注释代码统统删除掉了,省的碍眼


修改后:

<Engine name="Catalina" defaultHost=www.abc.com>

<Host name="www.abc.com" appBase=="abcapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"

<Host name=www.cba.com appBase=="D:\cba" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" />

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"   />
</Engine>

这里解释一下上面的配置
Engine 的 dafaultHost :表示访问该tomcat默认进入的主机,注意一定不能是localhost,不然别人通过你的ip访问,就会默认进入tomcat的管理界面.

Host 的 name:表示该主机绑定的域名,如果绑定localhost则可以通过在浏览器中输入localhost访问该Host.

Host的 appBase:表示该主机绑定的文件存放路径,可以使用相对路径或绝对路径.

按照上面的配置:
1.如果我在浏览器中输入http://localhost 则访问 C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\ROOT 下的网站
2.如果输入http://www.abc.com 则访问 C:\Program Files\Apache Software Foundation\Tomcat 5.5\abcapps\ROOT 下的网站
3.如果输入http://www.cba.com 则访问 D:\cba\ROOT 下的网站.

注意这里有一个ROOT目录需要创建,我们只要把网站放到相应的ROOT目录向下面,即可通过相应域名访问了.

这里面的参数还有很多,我也不是很清楚,不过这样做确实可以实现多域名绑定哈哈.而且网站页面修改了只要直接覆盖就可以了,tomcat可以自动更新类和页面,当然如果修改了web.xml或lib,则需要重启tomcat才可以.


1/////////////////////////////////////////////////////////

修改本地主机上的一个hosts文件,可以进行对ip地址与本地域名的映射,从而解决在本地调试JSP项目的时候,通过本地域名进行访问。
    hosts文件在系统目录C:\WINDOWS\system32\drivers\etc\下,这个目录不容易记忆,如果要经常修改这个文件的话不是很方便找,可以 建立一个批处理hosts.bat文件,用文本编辑器打开,写入内容explorer "C:\WINDOWS\system32\drivers\etc",保存退出,可以把这个hosts.bat文件放在桌面,每次双击它就能打开 hosts文件所在的目录。也可以将hosts.bat文件放到C:\WINDOWS下,这样,每次只要从点“开始”->“运行”,输入 hosts,点回车就可以打开hosts文件所在的目录了,另外在命令行也可以输入hosts打开hosts文件所在的目录。
找到hosts文件后,用文本编辑器打开,默认状态下,hosts文件里只有一个映射关系:
    127.0.0.1       localhost
按照这个格式再添加一个映射:
    xxx.xxx.xxx.xxx www.xxxx.com
保存,退出。这时候本地IP地址202.112.113.171已经和www.xxxx.com这个本地域名做了对应的映射关系。

2/////////////////////////////////////////////////////////

1.就是确定你要添加的域名,进入这个目录C:\WINDOWS\system32\drivers\etc,找到文件hosts文件,然后修改文件的属性去掉只读,这时就可以修改文件的内容,添加你理想的域名,按照文件原有的样式添加,修改完之后,再修改文件的属性为只读,否则这个文件就可能会被病毒攻击哦...
2.就是修改conf目录下的server.xml文件了,添加一个Host元素就OK了,
  样例如下:
  <Host name="www.weiweichen.com" appBase="E:\\Tomcat 5.5\\webapps\\Test"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
   <Context path="" docBase="E:\\Tomcat 5.5\\webapps\\Test" debug="1" reloadable="true">
   </Context>
</Host>


name指定的就是你在hosts文件中添加的理想的域名,appBase指定的就是你的工程对应的目录(这里是绝对路径),Context设置的是上下文,注意path为空,docBase要指定绝对路径...

3////////////////////////////////////////////////////////

server.xml 的修改方式如下:
(一)多域名绑定
1.如果你要绑定网站,首先是要把tomcat的默认访问端口8080,修改成80

原始:
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

修改后:
<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

其实这里就是把port:8080,修改成port:80就可以了,其他的参数不变

2.接下来就是重点了哈哈...
单个域名绑定:
原始:
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" />
</Engine>
当然这里我把注释代码统统删除掉了,省的碍眼


修改后:
<Host name="chengqun.202.71one.com" debug="0" appBase="d:\wwwroot\chengqun"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
<Context path="/" docBase="d:\wwwroot\chengqun"></Context>
</Host>


<Host name="chengqun1.202.71one.com" debug="0" appBase="d:\wwwroot\chengqun1"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
<Context path="/" docBase="d:\wwwroot\chengqun1"></Context>
</Host>

多域名绑定:
<Host name="chengqun.202.71one.com" debug="0" appBase="d:\wwwroot\chengqun"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
<Alias>chengqun.202.71one.com</Alias>
<Alias>chengqun1.202.71one.com</Alias>
<Alias>chengqun2.202.71one.com</Alias>
<Context path="/" docBase="d:\wwwroot\chengqun"></Context>
</Host>

这里面的参数还有很多,我也不是很清楚,不过这样做确实可以实现多域名绑定哈哈.而且网站页面修改了只要直接覆盖就可以了,tomcat可以自动更新类和页面,当然如果修改了web.xml或lib,则需要重启tomcat才可以.

(二)虚拟目录
(1)
<Host name="chengqun.202.71one.com" debug="0" appBase="d:\wwwroot\chengqun"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
<Context path="/chengqun" docBase="d:\wwwroot\chengqun"></Context>
</Host>
其中,Host标记是用来配置虚拟主机的,就是可以多个域名指向一个tomcat,格式只要参考默认的就

可以了。

<context>是Host标记的子元素吧,表示一个虚拟目录,它主要有两个属性,path就相当于虚拟目录名字,

而 docbase则是具体的文件位置。在这里我的虚拟路径名称为chengqun,实际上我的程序也就是html、jsp、

servlet都 放在了d:\wwwroot\chengqun这个目录下了。

这样我就可以通过 chengqun.202. com/chengqun 访问我的这个虚拟目录了。

另外一种方法是:

<Host name="chengqun.202. com" debug="0" appBase="d:\wwwroot\chengqun"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
<Context path="/" docBase="d:\wwwroot\chengqun"></Context>
</Host>
这样设置以后,输入域名可以访问这个站点程序了(Context path="/"这里不同)
(2)
没有指定默认站点,所以直接输入IP的时候,无法访问。如何让输入ip就可以访问指定的站点呢?
    修改server.xml的 <Engine name="Catalina" defaultHost="chengqun.202. com">
这样就可以实现了输入ip访问chengqun.202. com这个站点的程序了!

猜你喜欢

转载自gundumw100.iteye.com/blog/502110
今日推荐