tomcat设置

tomcat 怎么像iis一样设置主机头,让多个域名指向一个ip而又互不干扰
在iis中可以很方便的设置,但是好像在tomcat中不知道怎么配置

我还想知道怎么配置在多个端口进行访问,如现在的8080,我还想再开10个端口对应不同的目录
---------------------------------------------------------------

<Engine name="Standalone" defaultHost="localhost" debug="0">
这一句就是说默认的主机是localhost修改为你要的域名等待...
然后在</Engine>后面再加相应的<Engine>内容就可以实现了.....
不过tomcat用来做web本就不是很好,建议用apache做web,然后再用tomcat做jsp解析
至于开多个端口?? 我没试过,应该不行吧...不过我也不知道,呵呵,你自己试了,只知道可以用主机形式来管理...(多域名)

Tomcat配置虚拟主机方法
打开Tomcat安装目录下的conf/server.xml文件,找到这行

<Engine name="Catalina" defaultHost="你的默认启动域名">

上面这行的意思是通过IP直接访问的是你的默认启动域名所指向的目录.

然后在</Host>后,</Engine>之前,添加以下内容

<Host name="你的域名" appBase="项目在硬盘的物理位置,例如: c:\wwwRoot"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">

<Context path="" docBase="项目在硬盘的物理位置,例如: c:\wwwRoot" reloadable="true" deubg="0" />
      </Host>

如果还有其他的域名的话,再添加一个<Host></Host>内容就可以了.可以配置N个虚拟主机

<Host name="www.abc.com" appBase="F:/testMain" unpackWARs="true" autoDeploy="true" >
<Context path="/testPath" docBase="F:/test" reloadable="true" />
</Host>
上面的appBase="F:/testMain"这句的意思就是默认www.abc.com就访问F:/testMain这个工程。
<Context>这个配置的意思就是在浏览器输入www.abc.com/testPath它就去访问你的F:/test这个工程。你参考理解一下就好了,path就是加在www.abc.com后面的访问路径,而docBase应该用你的实际项目在本地磁盘的绝对路径。
“所有请求内部转发?”,就是说在你项目中的请求都在项目内部提交和响应,这个问题只要你的项目没有特别的提交代码把请求提交出去,就应该默认是在内部转发的。

补充:你的意思是用不同的域名来指向同一台服务器上的不同项目(或者同一项目的不同目录),对吗?很明确的告诉你,不可以,域名只可以指向服务器(IP,域名对应的只有IP,不能加路径),也就是说,所有指向同一台服务器的域名都是用同一个此服务器默认的页面。

 

Tomcat之配置多个虚拟主机指向同一个应用
当我们需要将多个域名同时指向同一个应用,而且要求不能跟Tomcat默认的应用冲突时怎么办? 今天 小红帽 问起这个问题,顺便研究了一下,可以通过下面配置来实现

<Host name="javayou.com" appBase="webapps"
       unpackWARs="true" autoDeploy="false"
       xmlValidation="false" xmlNamespaceAware="false">
       <Alias>www.javayou.com</Alias>
       <Alias>wap.javayou.com</Alias>
       <Context path="" docBase="C:\PROJECTS\JAVA\DLOG4J_V3\webapp" reloadable="true"/>
</Host>

上面的例子把三个域名分别是 javayou.com, www.javayou.com, wap.javayou.com 都指到了dlog这个应用。

当然了,如果你的Tomcat只跑一个应用那就不用那么费劲了,把name设置为localhost就搞定了,别说是三个域名了,三万个也没问题啊。

Tomcat虚拟主机配置Manager是tomcat-users.xml怎么配
举例来说,现在Tomcat有两个Host,一和hostA,一个hostB,都给他们了Manager程序,在tomcat-users.xml中写了两个具有manager角色的用户,一个是userA,给hostA使用,另一个是userB,给hostB使用,让他们可以分别登录各自的Manager程序,管理自己的应用。但是,经测试发现,hostB完全可以使用userB进入到hostA的Manager中,反过来也一样,请问高手们这个问题怎么解决啊??

在你的hostA里manager的web.xml

<!-- Define a Security Constraint on this Application -->
<security-constraint>
    <web-resource-collection>
      <web-resource-name>Entire Application</web-resource-name>
      <url-pattern>/manager/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
      <role-name>your-role</role-name>
    </auth-constraint>
</security-constraint>

<!-- Define the Login Configuration for this Application -->
<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>Application</realm-name>
</login-config>

<!-- Security roles referenced by this web application -->
<security-role>
    <description>
      The role that is required to log in to the Manager Application
    </description>
    <role-name>your-role</role-name>
</security-role>
把your-role替换成你的tomcat-users.xml定义的用户就行了...

apache + tomcat 整合 + 配置虚拟主机
apache + tomcat 整合成功了,做个记录(主要内容,下载及安装略),本文路径当然要改成实际路径:

1. 编辑 apache / config / conf / workers.properties 文件 (没有添加)
workers.tomcat_home="D:\tomcat6"
workers.java_home="C:\Program Files\Java\jdk1.6.0_06"
ps=\
wk.list=ajp13
wk.ajp13.port=8080
wk.ajp13.host=ghy
wk.ajp13.type=ajp13
wk.ajp13.lbfactor=50
wk.ajp13.cachesize=10
wk.ajp13.cache_timeout=600
wk.ajp13.socket_keepalive=1
wk.ajp13.socket_timeout=300
2. 编辑 apache / config / conf / httpd.conf 文件,尾部追加

#TOMCAT整合开始

LoadModule jk_module modules/mod_jk-apache-2.2.4.so
# 次 mod_jk 要自己下载,复制到 apache\modules 下

JkWorkersFile conf/workers.properties
JkOptions     +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat     "%w %V %T"

######################### 此处是要放过,交给 tomcat 处理 b #########################
JkMount /servlet/* ajp13
JkMount /*.jsp ajp13
JkMount /*.action ajp13
JkMount /*.shtml ajp13
JkMount /dwr/* ajp13
JkMount /FCKeditor/* ajp13
######################### 此处是要放过,交给 tomcat 处理 e #########################

#TOMCAT整合结束
3. 加载虚拟主机,编辑 apache / config / conf / httpd.conf 文件,找到
#Include conf/extra/httpd-vhosts.conf 将其前面的 # 去掉。

4. 配置虚拟主机,编辑 apache / config / conf / extra /httpd-vhosts.conf 文件,

#jlitshop

NameVirtualHost localhost 此处的 localhost 不确定,可以尝试 localhost、虚拟主机名、ip地址
<VirtualHost localhost>   此处的localhost在局网内可用*.80,在外网用ip地址
    ServerAdmin ghy19871128@163.com
    DocumentRoot D:/workspace/jlitshopGAO/WebRoot/
    ServerName jlitshop
    DirectoryIndex index.html index.htm index.php index.jsp
       
<Directory D:/workspace/jlitshopGAO/WebRoot/>
Options -Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
5. 编辑 tomcat 的 server.xml 文件:

<!--

jlitshop为本地域名,使用本地域名需修改C:\WINDOWS\system32\drivers\etc\hosts 文件 ,尾部追加

127.0.0.1       jlitshop 即可,其中 jlitshop 为你想要的本地域名

-->

<Host name="jlitshop" debug="0" appBase="D:\workspace\jlitshopGAO" unpackWARs="true"autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
<alias>jlitshop</alias>
<Context path="" docBase="\WebRoot" debug="0" reloadable="false"/>
</Host>

至此 apache + tomcat 整合 + 配置虚拟主机 完成。

  1. da shang
    donate-alipay
               donate-weixin weixinpay

发表评论↓↓