如何在不提供端口号的情况下使用域名访问tomcat应用程序

时间:2018-08-19 13:12:14

标签: java ubuntu tomcat

我正在使用Digital Ocean提供的ubuntu 18.04服务器。

我已经将应用程序部署在运行于80的tomcat中。

server.xml:

<Connector port="80" protocol="HTTP/1.1"
                connectionTimeout="20000"
                redirectPort="8443" />

  <Host name="mydomain.in">
      <Alias>www.mydomain.in</Alias>
      <Context path="" docBase="mydomain" debug="0" privileged="true" />
      <Valve className="org.apache.catalina.valves.AccessLogValve"
             directory="logs"   prefix="localhost_access_log." suffix=".txt"
             pattern="%h %l %u %t &quot;%r&quot; %s %b" resolveHosts="false" />
</Host>

我可以使用url从浏览器访问我的应用程序:

  

www.mydomain.in:8080

但是我无法通过端口访问我的域。

如果我错过任何配置,请帮助我。

1 个答案:

答案 0 :(得分:1)

首先检查端口80上是否正在运行任何其他应用程序/服务器。如果还有其他应用程序/服务器在运行,则除非杀死前一个,否则无法在80上运行tomcat。

netstat -an | grep ":80"

即使端口80上没有任何运行,最好的办法是将tomcat的端口保留为8080,并使用iptables将端口80重定向到该端口。

sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

显然,通常的方法是让Web服务器(如apache httpd)在端口80上侦听并将所有请求转发到在8080上运行的tomcat。这就是我要做的。