Tomcat是Apache基金下的一个很成功的产品,作为Java应用容器被广泛的使用。当然它不像WebSphere、WebLogic那样强大,甚至比起JBoss也有所不如,但Tomcat的量级很轻,使用很方便,深入初学者或轻量级应用的追捧。
本文讲Tomcat绑定IP地址的问题。默认情况下,Tomcat会监听8080端口,这个我们都知道。但它会监听哪些IP呢?默认情况下,它会监听所有的IP。
下面这一段是从Tomcat默认的server.xml中抽取的Connector这段,我们可以看到没有关系监听IP的相关设置。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
运行/bin/startup.bat来启动Tomcat后,我们使用Netstat命令来查看一下Tomcat绑定了哪些IP。
D:\splaybow.com\apache-tomcat-6.0.20\bin>startup.bat
Using CATALINA_BASE: D:\splaybow.com\apache-tomcat-6.0.20
Using CATALINA_HOME: D:\splaybow.com\apache-tomcat-6.0.20
Using CATALINA_TMPDIR: D:\splaybow.com\apache-tomcat-6.0.20\temp
Using JRE_HOME: D:\splaybow.com\jdk1.6.0_16
D:\splaybow.com\apache-tomcat-6.0.20\bin>netstat -an | findstr "8080"
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING
TCP [::]:8080 [::]:0 LISTENING
从上面netstat的结果可以看出,Tomcat监听了IPv4的0.0.0.0的8080端口,也监听了IPv6的[::]的8080端口。即可以总结为Tomcat监听了所有的IP协议的所有IP地址的8080端口。
那么如果我们只想让Tomcat监听传统意义上的本地127.0.0.1的IP地址,那么应该怎么设置呢?且看下面这段配置。
<Connector port="8080" address="127.0.0.1" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
这段Tomcat监听IP的配置中,可以与上面一段配置做一下比较,我们看到多了一句: address="127.0.0.1"。好,我们来看看运行后结果:
D:\splaybow.com\apache-tomcat-6.0.20\bin>startup.bat
Using CATALINA_BASE: D:\splaybow.com\apache-tomcat-6.0.20
Using CATALINA_HOME: D:\splaybow.com\apache-tomcat-6.0.20
Using CATALINA_TMPDIR: D:\splaybow.com\apache-tomcat-6.0.20\temp
Using JRE_HOME: D:\splaybow.com\jdk1.6.0_16
D:\splaybow.com\apache-tomcat-6.0.20\bin>netstat -an | findstr "8080"
TCP 127.0.0.1:8080 0.0.0.0:0 LISTENING
OK,Tomcat已经如我们所愿,只监听了IP地址127.0.0.1的8080端口了。
关于设置Tomcat监听指定的IP地址,本文就介绍这么多,希望对您有所帮助,谢谢!