Java Web应用程序托管

时间:2017-04-29 12:21:03

标签: java web-hosting vps xml-configuration

我将我的应用程序托管到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> 

2 个答案:

答案 0 :(得分:0)

  

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

通过&#39;工作&#39; ,你的意思是Tomcat从你在配置中提到的任何端口开始,但网站只能通过8080访问吗?

如果不确定,请参阅<tomcat_dir>/logs/catalina.out文件以查看启动日志,

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

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

netstat -apn|grep <port_number>

ss -apn|grep <port_number>

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

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

您提到的问题看起来更像是一个Linux管理员问题。 请分享更多细节,我将指导您获得精确的解决方案

一切顺利。

答案 1 :(得分:0)

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

  1. 以root用户身份在端口80上运行Tomcat(我不推荐这种方法)
  2. 当@Kayaman mentiomed时,安装一个http代理(apache httpd,nginx,..),它将侦听端口80并将所有请求转发到8080(搜索反向代理)
  3. 玩得开心