tomcat配置ip地址訪問
A. 求教我的tomcat配置了域名之後,為什麼域名訪問正常,而ip反而不能訪問呢
正常的域名訪問是通過DNS解析成IP的,如果域名能夠訪問,說明該IP是能夠訪問的。所以,理論上你通過IP是能夠訪問的。
如果不能通過IP訪問,則可能該客戶端通過DNS解析不到IP。可以將該IP地址從DNS解析中過濾掉。
B. 怎麼用Tomcat實現IP限制訪問
Tomcat供了兩個參數供配置:RemoteHostValve 和RemoteAddrValve,前者用於限制主機名,後者用於限制IP地址。通過配置這兩個參數,可以過濾來自請求的主機或IP地址,並允許或拒絕哪些主機/IP。
全局設置,對Tomcat下所有應用生效:
server.xml中添加下面一行,重啟伺服器即可:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*" deny=""/>
此行放在</Host>之前。例:
1,只允許192.168.1.10訪問:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.10" deny=""/>
2,只允許192.168.1.*網段訪問:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*" deny=""/>
3,只允許192.168.1.10、192.168.1.30訪問:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.10,192.168.1.30" deny=""/>
4,根據主機名進行限制:
<Valve className="org.apache.catalina.valves.RemoteHostValve" allow="abc.com" deny=""/>局部設置,僅對具體的應用生效,根據項目配置情況進行設置:
1)使用conf目錄下xml文件進行配置${tomcat_root}confproj_1.xml
2)直接在server.xml中進行設置${tomcat_root}confserver.xml
在上述文件對應項目的</Context>前增加下面一行:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*" deny=""/>特別需求:測試版本不想提供別人訪問,打開tomcat6confserver.xml文件,如果是要限制整個站點別人不能訪問,則要將
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*,192.168.2.*,*.mysite.com" deny=""/>
加入到<HOST></HOST>標簽中,如果是要限制某個站點不能被訪問,則要加入到<Context>裡面就可以。
<Context path="/myweb" reloadable="true" docBase="E: omcat6webappsmyweb">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.13.110,192.168.1.*,220.250.13.21" deny=""/>
< /Context>
RemoteHostValve根據主機名進行限制:
<Valve className="org.apache.catalina.valves.RemoteHostValve" allow="tmachine1" deny=""/>
修改文件:
tomcat/conf/server.xml
通過tomcat限制ip訪問。