较为完美的Tomcat虚拟主机设置方法

之前用过很多种不同的方法来设置虚拟主机,包括放置xml配置文件等等,其实那方法是最难用的,这里给出一个我认为比较完美的方法,

1.在server.xml中设置虚拟主机项,添加host属性在engine中,我们以www.qq.com为例,如下:
<Host name=”www.qq.com” appBase=”/usr/local/webapps/qq.com”
unpackWARs=”true” autoDeploy=”true”
xmlValidation=”false” xmlNamespaceAware=”false”>
</Host>
更多设置可自行添加,包括日志等等。

2.在这里我们看到,appbase是”/usr/local/webapps/qq.com”,但是,此目录不是程序根目录,我们在”/usr/local/webapps/qq.com”目录下建立一新目录ROOT,然后将程序放入,才能保证虚拟主机正常启用,也就是说,程序根目录是/usr/local/webapps/qq.com/ROOT。

3.在本地/etc/hosts文件中设置www.qq.com对应IP为127.0.0.1

Jboss behind a firewall

Jboss的EJB应用如果在防火墙后面,通过端口1098和1099调用,需要另外打开3873端口供socket调用,同时需要修改rmi-server地址为外部IP地址或域名。

配置文件一共需要修改四处,下面以域hnair.com内,防火墙后主机IP192.168.1.25为例,

1.首先修改jboss-service.xml,在ejb端口1098附近,修改CallByValue值为true
<attribute name=”CallByValue”>true</attribute>

2.然后修改ejb3.deployer中jboss-service.xml文件,主要是添加域名到3873的调用中
——
<mbean code=”org.jboss.remoting.transport.Connector”
name=”jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3″>
<depends>jboss.aop:service=AspectDeployer</depends>
<attribute name=”Configuration”>
<config>
<invoker transport=”socket”>
<attribute name=”numAcceptThreads”>1</attribute>
<attribute name=”maxPoolSize”>300</attribute>
<attribute name=”clientMaxPoolSize” isParam=”true”>50</attribute>
<attribute name=”timeout” isParam=”true”>60000</attribute>
<attribute name=”serverBindAddress”>${jboss.bind.address}</attribute>
<attribute name=”serverBindPort”>3873</attribute>
<!– that’s the important setting –>
<attribute name=”clientConnectAddress”>hnair.com</attribute>
<attribute name=”clientConnectPort”>3873</attribute>

<attribute name=”backlog”>200</attribute>
</invoker>
<handlers>
<handler subsystem=”AOP”>org.jboss.aspects.remoting.AOPRemotingInvocationHandler</handler>
</handlers>
</config>

</attribute>
</mbean>
——

3.设置java启动选项,添加rmi-server的外部地址和禁用本地域名解析到启动脚本
Windows脚本例:set JAVA_OPTS=-Djava.rmi.server.hostname= hnair.com -Djava.rmi.server.useLocalHostname=false
Unix脚本例:添加到jboss启动配置文件run.conf中即可。

4.用run.sh –host=192.168.1.25启动服务或添加–host=192.168.1.25到启动脚本。