搞了两天终于可以了。需要修改三处地方,就可以实现外网访问了。
注意:需要保证你的服务器不是通过路由器连的网络,如果是的话需要对路由器做转发配置。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
将port字段修改为一个开放端口,你也可以改成80,这样在访问时就不用加端口号了,但是要记得开放80端口。这里我没有做修改。
一定要确保该端口是开放的。
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
将localhost改为你的IP地址,ubuntu下可以使用ifconfig
如果你的IP是路由器分配的话,需要对路由器做转发配置
百度到的大部分答案基本上到上面一步就结束了。如果你也这么幸运的成功了的话,这一步就没必要了。不过我的是没有成功。去stacoverflow上搜了一下。不成功的原因说是因为JVM没有监听IPv4的地址,所以无法访问。所以需要再修改下面两处。
修改tomcat目录下的/bin/catalina.sh文件和startup.sh。添加下面一句。
JAVA_OPTS= $JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses
我的加上这两句已经可以访问了
如果你的服务器系统是windows的话需要修改.bat的这两个文件
如果上面的你都配置好了,而且还不能访问的话,恰好你的服务器系统是Ubuntu的话,可以尝试下面的方法。
安装authbind。
apt-get install authbind
修改/etc/default/tomcat7文件。
修改为
AUTHBIND=yes
重启后再不能访问的话,就试试你能不能上网,或者是不是用了路由器而且没有做转发配置,或者是端口没有开放。
阿里云服务器的ubuntu镜像默认情况是只有root用户才能访问1024以下的端口,所以如果这些都配置好了还不能访问的话,建议你用root用户启动tomcat,或者更改端口。再(我)或(不)者(会)添加路由规则将80端口转发到其他端口