【问题标题】:Java web application hostingJava Web 应用程序托管
【发布时间】:2017-04-29 12:21:02
【问题描述】:

我将我的应用程序托管在 Tomcat 服务器中并配置了 server.xml,以便我可以通过直接访问网站名称来访问我的 Web 应用程序,例如:www.example.com 但它仅在它后面跟着我的端口号时才有效,例如: www.example.com:8080,我用godaddy做VPS。

这是我使用的配置

  <Host name="example.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
  <Alias>www.example.com</Alias>
  <Context path="" docBase="Prototype" 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> 

【问题讨论】:

  • 默认的 HTTP 端口是 80。不是 8080。所以如果你想保留 8080,你总是必须明确指定端口。
  • 或者使用 HTTP 服务器反向代理请求 80 -> 8080。

标签: java web-hosting vps xml-configuration


【解决方案1】:

但它只有在它后面跟着我的端口号时才有效,例如:www.example.com:8080

'works' 是指 Tomcat 从配置中提到的任何端口开始,但站点只能通过 8080 访问?

如果不确定,参考&lt;tomcat_dir&gt;/logs/catalina.out文件查看启动日志,

您的 VPS 可能有任何其他应用程序已经在端口 80 上运行,通常是 httpd 或在某些情况下是 NGINX,您需要停止应用程序并在配置中使用端口 80 启动 tomcat。

如何检查在特定端口上运行的应用程序

netstat -apn|grep &lt;port_number&gt;

ss -apn|grep &lt;port_number&gt;

如果没有应用程序在端口 80 或您在配置中提到的任何其他端口上运行并且 tomcat 成功启动,您仍然无法通过外部访问您的应用程序,那么很可能是它的网络访问问题,

为此,您需要在本地 IP 表或 Godaddy VPS 配置面板中允许 INGRESS 访问您所需的端口,无论哪种情况。

您提到的问题看起来更像是 linux 管理员问题。 请分享更多详细信息,我将指导您找到确切的解决方案

一切顺利。

【讨论】:

    【解决方案2】:

    您可以提供有关您的 VPS 的更多信息。在这里,我假设您有一个具有 root 访问权限的完整 VPS,并且您可以控制所有网络访问。 Apache Tomcat 默认在 8080 端口上运行。实际上你有两个选择

    1. 以root身份在80端口运行Tomcat(我不推荐这种方式)
    2. 正如@Kayaman 提到的那样,安装一个 http 代理(apache httpd、nginx、..),它将侦听端口 80 并将所有请求转发到 8080(搜索反向代理)

    玩得开心

    【讨论】:

      猜你喜欢
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-05
      相关资源
      最近更新 更多