【问题标题】:Apache Tomcat Listen Multiple PortsApache Tomcat 监听多个端口
【发布时间】:2017-11-29 21:13:15
【问题描述】:

我有一个基于 Windows 的 Apache Tomcat 安装。该应用程序当前正在侦听端口 8080。我想创建一个从端口 80 的根目录到托管在 8080 子目录中的站点的重定向。

我不想输入长 URL 来访问该站点 (http://servername:8080/subdirectory/index.jsp),我只想输入 (http://servername) 并将此重定向到端口 8080 上的子目录。

没有运气,我厌倦了将它添加到 server.xml。

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

我添加了这个:

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

我还把根目录下的index.jsp修改为:

<% response.sendRedirect("server:8080/subdir/login.jsp"); %>

我仍然不相信该站点正在侦听 80 并且在访问根站点“http://sitename:8080”时我没有重定向。任何帮助,将不胜感激。我对 Apache 有点熟悉,但对 Tomcat 不太熟悉。

【问题讨论】:

  • 你信仰的基础是什么?启动端口 80 连接器时是否出错? netstat 中是否显示端口 80?当您的 JSP 将 重定向到 端口 80 时,为什么要获得重定向 from 端口 8080?你为什么要同时使用这两个端口?为什么不直接使用 80 端口?
  • 我还必须保持 8080 端口打开。这是供应商要求。我正在尝试创建一个用户友好的 URL,这就是我需要重定向的原因。

标签: apache tomcat


【解决方案1】:

我通过将以下内容添加到 server.xml 来实现此功能

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

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

我还将它添加到根文件夹中的 index.jsp 中:

<% response.sendRedirect("http://servername:8080/subdir/page.jsp"); %>

这似乎是处理我想要完成的事情的好方法吗?我不介意用户是否看到重定向的 URL。

【讨论】:

  • redirectPort 在这两种情况下都应该是 8443。那是为了 SSL。首先强制它通过 8080 没有任何好处。重定向 JSP 根本没有真正的理由。只需让服务器在两个端口上工作即可。
【解决方案2】:

我看不出大部分内容的意义。只需将现有的单个连接器从端口 8080 更改为端口 80,然后完全忘记端口 8080。没有重定向,没有双连接器,什么都没有。或者,如果您必须同时拥有两个端口,则只需使用两个连接器。没有明显的理由使用重定向 JSP 来强制更改端口,只需重定向到子页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-19
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 2021-04-18
    相关资源
    最近更新 更多