tomcat多域名配置

TOMCAT的域名配置

如今不少的公司的网站都是用tomcat做为应用服务区的,但是对于初学者,8080端口号是如何去掉的,这些网站是如何和域名绑定到一块儿的呢?一个

tomcat是如何绑定多域名?而且这些域名是如何对应不一样的项目呢?并且个人服务器没放在机房,放在个人本地,我应该如何把个人服务器给映射到外

网?这一系列的问题,今天就这个问题,我来讲一下。
1. 域名。如今的域名不是很贵,有不少人都有,而咱们注册域名的网站也会有一个DNS助解析,就是把服务器的IP绑定到这些域名上。
2. 咱们域名有了,如今就来讲说咱们的项目;好比说我如今有两个项目都在个人这个tomcat下面。那咱们输入http://localhost:8080 /abc就能够访问

到咱们abc这个项目了,可是端口号8080如何去掉呢?在tomcat的conf文件夹下有一个server.xml。咱们打开这个文件,找到8080,只须要把8080改为80

便可。当咱们再次输入http://localhost/abc便可。
3. 但是咱们的域名如何跟项目绑定到一块儿呢?咱们再次找到tomcat下面的conf文件夹里面的server.xml。修改<Host name="咱们所要绑定的域名"

debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"></Host>
4. 当启动tomcat的时候,输入咱们绑定的域名,是否是看到了咱们的tomcat。但是咱们想访问咱们的项目还得再域名后面加上项目名称才能访问到,也

就是说到如今咱们的域名还没跟项目绑定到一块儿。咱们在看一下第三部,想让咱们的项目和域名绑定到一块儿,咱们只须要在</Host>前面加上<Context

docBase="项目名" path=""  reloadable="true" >便可。
例如:<Host name="www.abc.com" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false"

xmlNamespaceAware="false"><Context docBase="baidu" path=""  reloadable="true" ></Host>
5. 当咱们的有两个项目都放在同一个tomcat下的时候,咱们只须要把<Host></ Host>加上两个既能够完成咱们的2个项目的绑定,可是项目名称别忘了

改哦。
6. 当咱们的服务器本身维护(没有放在机房),咱们须要对咱们的路由作一下映射。就拿个人路由来举例。个人路由是TP-LINK WR340G型号,进入路由

后,咱们能找到一个转发规则,那里面有一个虚拟服务器的这项,点击新增条目之后会有:服务端口号、IP地址、协议、状态、经常使用服务端口号。咱们

只需在这里IP地址(服务器的局域网IP),协议选择ALL(有的路由好像没有这项,那就不须要填写了),状态选择生效,经常使用服务端口号选择HTTP或者

WEB便可。这时默认的端口号为80。当经常使用服务端口号没有HTTP或者WEB这项时,能够选择DNS,而后手动把端口号改为80。点击生效。保存便可。若是说

本人说的路由映射对您不适用或者没有看明白,能够上网找各类路由的映射方法。
7. 这个时候咱们在输入咱们的域名,是否是就直接访问到咱们的项目了。

----------------------------------------------------------------

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

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这个站点的程序了!

----------------------------------------

tomcat下的配置都在conf下的server.xml下实现。。。
里面从高到低分为:
Server
--Service
--Connector
--Engine
--Host
--Context

首先把通信接口下的PORT改成80,这样就不用在浏览器中输入端口号了,如:


<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector
port="80"               maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
HOST表明虚拟主机:
默认有

<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
因此咱们平时都是直接输入http://localhost:端口号/项目名   就行了。。
假如我如今有个项目在E盘下的workspace目录,项目名为LZW
我不想部署在tomcat下的webapp目录下,而是直接想在TOMCAT下加载这个项目
而且用个域名(www.pw88.com)来映射。这样咱们能够加上下面这段代码


<Host name="www.pw88com" appBase="e:/workspace/LZW
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="WebRoot" debug="0" reloadable="true" crossContext="true" />
</Host>
appBase为项目的绝对路径,docBase为WEB目录

假如我如今的图片都放在d:/ext.lzw.com/img下,我想用个二级域名
(img.lzw.com)映射它,假如在d:/ext.lzw.com/img下放入一张图片1.jpg,咱们就
能够输入img.lzw.com/1.jpg来访问它了。。加上下面代码就能够实现了。。


<Host name="img.lzw.com" appBase="d:/ext.lzw.com/img"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="" debug="0" reloadable="true" crossContext="true" />
</Host>
最终咱们要在本地访问域名,还得修改相爱HOST文件。。打开
C:/WINDOWS/system32/drivers/etc/hosts
加上

127.0.0.1       www.pw88.com
127.0.0.1       img.lzw.com

对tomcat下配置 一ip对多域名的方法详细以下,按下面配置必定能成功,通过测试了.

<Host name="localhost" debug="0" appBase="D:/Tomcat 5.0/webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Alias>localhost.com</Alias>
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
<Context path="" docBase="D:/Tomcat 5.0/webapps/gg" reloadable="true" caseSensitive="false" debug="0"></Context>
</Host>

<Host name="one.localhost" debug="0" appBase="D:/Tomcat 5.0/webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Alias>one.localhost.com</Alias>
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
<Context path="" docBase="D:/Tomcat 5.0/webapps/kk/a" reloadable="true" caseSensitive="false" debug="0"></Context>
</Host>

<Host name="two.localhost" debug="0" appBase="D:/Tomcat 5.0/webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Alias>two.localhost.com</Alias>
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
<Context path="" docBase="D:/Tomcat 5.0/webapps/kk/b" reloadable="true" caseSensitive="false" debug="0"></Context>
</Host>

因无域名解析服务器,因此在hosts上配,来模拟dns解析.

10.1.1.241 localhost 指向gg文件夹
10.1.1.241 localhost.com 指向gg文件夹
10.1.1.241 one.localhost 指向a文件夹
10.1.1.241 one.localhost.com 指向a文件夹
10.1.1.241 two.localhost 指向b文件夹
10.1.1.241 two.localhost.com 指向b文件夹

通过多方面尝试,终于在tomcat下配置成功了.html

相关文章
相关标签/搜索