虚拟主机允许按照运行JBoss机器的不同DNS名称对Web应用进行分组。例如,Example 7.1, “A virtual host configuration.”给出的server.xml配置文件,除了定义一个缺省虚拟主机vhost1.mydot.com外,还定义了第二个虚拟主机vhost2.mydot.com及其别名www.mydot.com.
Example 7.1. A virtual host configuration.
<Server><Service name="jboss.web"className="org.jboss.web.tomcat.tc5.StandardService"><!-- A HTTP/1.1 Connector on port 8080 --><Connector port="8080" address="${jboss.bind.address}"maxThreads="150" minSpareThreads="25" maxSpareThreads="75"enableLookups="false" redirectPort="8443" acceptCount="100"connectionTimeout="20000" disableUploadTimeout="true"/><Engine name="jboss.web" defaultHost="vhost1"><Realm className="org.jboss.web.tomcat.security.JBossSecurityMgrRealm"certificatePrincipal="org.jboss.security.auth.certs.SubjectDNMapping"/><Logger className="org.jboss.web.tomcat.Log4jLogger"verbosityLevel="WARNING"category="org.jboss.web.localhost.Engine"/><Host name="vhost1" autoDeploy="false"deployOnStartup="false" deployXML="false"><Alias>vhost1.mydot.com</Alias><Valve className="org.apache.catalina.valves.AccessLogValve"prefix="vhost1" suffix=".log" pattern="common"directory="${jboss.server.home.dir}/log"/><DefaultContext cookies="true" crossContext="true" override="true"/></Host><Host name="vhost2" autoDeploy="false"deployOnStartup="false" deployXML="false"><Alias>vhost2.mydot.com</Alias><Alias>www.mydot.com</Alias><Valve className="org.apache.catalina.valves.AccessLogValve"prefix="vhost2" suffix=".log" pattern="common"directory="${jboss.server.home.dir}/log"/><DefaultContext cookies="true" crossContext="true" override="true"/></Host></Engine></Service></Server>
在缺省情况下,部署的WAR包将会绑定到Engine元素defaultHost属性匹配的虚拟主机. 为了将WAR包部署到指定的虚拟主机上,必须在jboss-web.xml描述文件中指定合适的virtual-host. 下面的 jboss-web.xml 描述文件演示了怎样将一个WAR包部署到特定的虚拟主机 www.mydot.com上. 值得注意的是,在配置文件中既可以使用虚拟主机名,也可以使用真实的主机名.
<jboss-web><context-root>/</context-root><virtual-host>www.mydot.com</virtual-host></jboss-web>