关于tomcat的多域名配置

从昨天早上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.com"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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值