【发布时间】:2016-02-12 22:08:20
【问题描述】:
我有一个带有 tomcat 8 的 EC2 实例。这个 tomcat 有一个我在 android 应用程序中使用的 rest web 服务(在端口 8080 中)。现在,我想在同一个 tomcat 中放置一个网站。我可以通过这种方式访问网站:
www.domain.com:8080
我知道要在没有端口号的情况下访问网站,我需要将默认 tomcat 端口更改为 80。但如果我这样做,我的 Android 应用程序将无法再访问 Web 服务。
那么,我该怎么做呢?在不指定端口号的情况下访问网站并为我的 android 应用程序保留 8080 端口?
编辑:
这是我的 server.xml
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<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>
编辑 2:
如果我运行这个:
sudo netstat -lnp | grep 2563 (tomcat PID)
我明白了:
tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN 2563/java
tcp 0 0 :::8080 :::* LISTEN 2563/java
【问题讨论】:
-
这对我不起作用。 ://
-
刚试了一下,在本地的tomcat 8上运行良好。我猜你的安全设置没有让端口 80 离开你的 EC2 实例。
-
我的 EC2 安全设置已经允许来自任何来源的端口 80 入站。我现在检查了。
-
你不要告诉我们你得到什么错误信息。
标签: tomcat amazon-ec2