【问题标题】:How to access tomcat application with domain name without giving port number如何在不提供端口号的情况下使用域名访问tomcat应用程序
【发布时间】:2018-08-19 13:12:13
【问题描述】:

我使用的是数字海洋提供的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

但我无法在没有端口的情况下访问我的域。

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

【问题讨论】:

  • 你运行的是 80 还是 8080?此外,通常您不能在端口 80 上运行,除非您以 root 身份运行(而且您不应该这样做)。最后检查你的防火墙
  • 您可以在 iptable 中输入一个条目,以便来自请求端口的请求将自动重定向到默认端口
  • 哦。我以非 root 用户身份运行 tomcat,但我尝试使用端口 8080,它也无法正常工作:(
  • @SivaramChintalapudi 不要在端口 80 上运行您的应用程序。而是使用 iptable 将端口 8080 重定向到 80。

标签: java ubuntu tomcat


【解决方案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。这就是我要做的。

【讨论】:

  • 如何撤消此过程?
猜你喜欢
  • 2017-09-04
  • 2018-05-14
  • 2011-09-19
  • 1970-01-01
  • 2017-01-13
  • 1970-01-01
  • 2021-12-28
  • 2021-08-20
  • 2011-12-11
相关资源
最近更新 更多