I have a case where accessing the webapp within the server box is fine, but accessing the webapp from outside the server box using the domain name is problematic, but not so using the public ip address, which is accessible.
The content of the webapp is just a single index.html, so no JSPs, no classes are involved. - On my web server, which is set for the public domain myweb.com, curl http://myweb.com works curl http://<public-ip-address> also works note : i registered the domain from the domain robot - On external nodes (not on the web server), i tried to access curl http://myweb.com fails But : curl http://<public-ip-address> works - Both on the web server and external nodes, nslookup myweb.com works, and returns the public ip address correctly - I have even disabled ipv6 in my /etc/hosts and domain mapping So my current host file is very simple : 127.0.0.1 localhost - Here my output of version.sh Using CATALINA_BASE: /usr/share/tomcat7 Using CATALINA_HOME: /usr/share/tomcat7 Using CATALINA_TMPDIR: /usr/share/tomcat7/temp Using JRE_HOME: /usr/lib/jvm/java-7-oracle Using CLASSPATH: /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar Server version: Apache Tomcat/7.0.28 Server built: Dec 8 2012 06:51:43 Server number: 7.0.28.0 OS Name: Linux OS Version: 3.2.0-4-amd64 Architecture: amd64 JVM Version: 1.7.0_25-b15 JVM Vendor: Oracle Corporation - Here's my server.xml <?xml version='1.0' encoding='utf-8'?> <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.core.JasperListener" /> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> <Service name="Catalina"> <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" address="<my-public-ip-address>" /> <Engine name="Catalina" defaultHost="myweb.com"> <Host name="myweb.com" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Alias>myweb.com</Alias> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host> </Engine> </Service> </Server> - Here's my ifconfig : root@Debian-70-wheezy-64-minimal:/home/moonblade# ifconfig eth0 Link encap:Ethernet HWaddr d4:3d:7e:d8:ba:27 inet addr:<public-ip-address> Bcast:<public-ip-address> Mask:255.255.255.224 inet6 addr: <public-ip-address-v6>/64 Scope:Link inet6 addr: <another-public-ip-address-v6>/64 Scope:Global UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:290094 errors:0 dropped:0 overruns:0 frame:0 TX packets:169056 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:241176295 (230.0 MiB) TX bytes:27580533 (26.3 MiB) Interrupt:43 Base address:0x6000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:192 errors:0 dropped:0 overruns:0 frame:0 TX packets:192 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:26625 (26.0 KiB) TX bytes:26625 (26.0 KiB) - no firewall, as the iptables are still empty : root@Debian-70-wheezy-64-minimal:/home/moonblade# iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination - my system Linux Debian-70-wheezy-64-minimal 3.2.0-4-amd64 #1 SMP Debian 3.2.46-1+deb7u1 x86_64 GNU/Linux Am i missing something in my server.xml ? -- Do not pursue the past. Do not lose yourself in the future. The past no longer is. The future has not yet come. Looking deeply at life as it is in the very here and now, the practitioner dwells in stability and freedom. (Thich Nhat Hanh)