您的位置:首页 > 运维架构 > Tomcat

关于tomcat的多域名配置

2015-08-13 16:45 567 查看
从昨天早上9点半,干到今天早上6点,回去睡了一觉,1点就又到公司了,唉,自己水平真菜,还坑了韬哥。。。。。

关于tomcat的多域名配置,首先,外网ip应该要绑定一个域名,这个域名就相当于这个ip(具体怎么做,请百度之)

1 .首先要把8080端口变为80

在tomcat中找到server.xml,将

<Connector port="8080" protocol="HTTP/1.1" maxThreads="150" connectionTimeout="20000" redirectPort="8443" />

修改为:

<Connector port="80" protocol="HTTP/1.1" maxThreads="150" connectionTimeout="20000" redirectPort="8443" />

2.添加域名

第二就是在中添加<host>(一个host代表一个域名或访问地址)

<Host name="xxx.xxxx.xxx" debug="0" appBase="/opt/tomcat/webapps/xxxx"

unpackWARs="true" autoDeploy="true"

xmlValidation="false" xmlNamespaceAware="false">

<Context path="/" docBase="/opt/tomcat/webapps/xxxx"></Context>

</Host>

<Host name="xxx.xxx.xxxx" debug="0" appBase="项目路径"

unpackWARs="true" autoDeploy="true"

xmlValidation="false" xmlNamespaceAware="false">

<Context path="/" docBase="/opt/tomcat/webapps/xxxx"></Context>

</Host>

按照上面的配置可以直接输入域名取访问项目的index.jsp(请注意index.jsp的配置)

不过我遇到一个问题,按照上面的配置完成后,启动工程,index.jsp可以访问到,但是其他的url会多一个工程名,访问路径不对。。。很纠结。。。

我在网上还搜到令一种配置方式

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

<Hostname="www.coe.com"appBase="webapps"unpackWARs="true"autoDeploy="true"
xmlValidation="false"xmlNamespaceAware="false" >

<Contextpath=""docbase="D:\Tomcat6.0\webapps\ROOT"crosscontext="true"/>
</Host>

<Hostname="www.abc[b].com[/b]"appBase="ccc"unpackWARs="true"autoDeploy="true"
xmlValidation="false"xmlNamespaceAware="false"
>

<Contextpath=""docbase="D:\Tomcat
6.0\ccc\ROOT
"crosscontext="true"/>
</Host>
还没有试过,不知道成功不成功,参考 blog.sina.com.cn/s/blog_6341fc0f0100lzaj.html

这两天也算是解决域名配置的问题:

如下:<Host name="xxx.xxxx.xxx" debug="0" appBase="/opt/tomcat/webapps/xxxx"

unpackWARs="true" autoDeploy="true"

xmlValidation="false" xmlNamespaceAware="false">

<Context path="" docBase="/opt/tomcat/webapps/xxxx"></Context>

</Host>

<Host name="xxx.xxx.xxxx" debug="0" appBase="项目路径"

unpackWARs="true" autoDeploy="true"

xmlValidation="false" xmlNamespaceAware="false">

<Context path="" docBase="/opt/tomcat/webapps/xxxx"></Context>

</Host>

把path="/"改为path="",且在项目中避免出现工程名的url,我们的jsp文件在文件头设置<c:set var="ctx" value="<%=request.getContextPath()%>"/>

所以url就为

window.location.href = "${ctx}/Login";

tomcat部署的时候还遇到一个问题,就是tomcat加载了两次工程。。。。。。这是因为deployOnStartup如果此项设为true,表示Tomcat服务器启动时会自动发布appBase目录下所有的Web应用 .如果Web应用中的server.xml没有相应的<Context>元素,将采用Tomcat默认的Context

解决方法:deployOnStartup 设置为false
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: