Apache TomCat 仅在本地主机上运行 - Windows 2012

Apache TomCat 仅在本地主机上运行 - Windows 2012

我已经在 Windows Server 2012 上安装了 Apache Tomcat,并且可以在本地访问它

到目前为止,我已经尝试了以下操作: - 通过防火墙打开端口 - 通过我的云服务器主机打开端口。 - 关闭 Windows 防火墙 - 更改 server.xml 文件 - 联系我的云服务器主机,他们确认端口 90 正在运行。 - 我的托管服务提供商已经尝试过,但他们也无法让它工作。

我已停止并重新启动该服务但均不起作用:

下面是我的 server.xml 文件,当我尝试访问时,日志似乎没有包含任何错误。

  http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则根据许可证分发的软件将按“原样”分发,不附带任何明示或暗示的保证或条件。请参阅许可证,了解许可证下特定语言的权限和限制。--> -->

<!--The connectors can use a shared executor, you can define one or more named thread pools-->
<!--
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
    maxThreads="150" minSpareThreads="4"/>
-->


<!-- A "Connector" represents an endpoint by which requests are received
     and responses are returned. Documentation at :
     Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
     Java AJP  Connector: /docs/config/ajp.html
     APR (HTTP/AJP) Connector: /docs/apr.html
     Define a non-SSL HTTP/1.1 Connector on port 8080
-->
<Connector port="9090" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443"
     address="0.0.0.0" />
<!-- A "Connector" using the shared thread pool-->
<!--
<Connector executor="tomcatThreadPool"
           port="9090" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443"
    address="0.0.0.0" />
-->
<!-- Define a SSL HTTP/1.1 Connector on port 8443
     This connector uses the JSSE configuration, when using APR, the
     connector should be using the OpenSSL style configuration
     described in the APR documentation -->
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" />
-->

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />


<!-- An Engine represents the entry point (within Catalina) that processes
     every request.  The Engine implementation for Tomcat stand alone
     analyzes the HTTP headers included with the request, and passes them
     on to the appropriate Host (virtual host).
     Documentation at /docs/config/engine.html -->

<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
-->
<Engine name="Catalina" defaultHost="localhost">

  <!--For clustering, please take a look at documentation at:
      /docs/cluster-howto.html  (simple how to)
      /docs/config/cluster.html (reference documentation) -->
  <!--
  <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
  -->

  <!-- Use the LockOutRealm to prevent attempts to guess user passwords
       via a brute-force attack -->
  <Realm className="org.apache.catalina.realm.LockOutRealm">
    <!-- This Realm uses the UserDatabase configured in the global JNDI
         resources under the key "UserDatabase".  Any edits
         that are performed against this UserDatabase are immediately
         available for use by the Realm.  -->
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
           resourceName="UserDatabase"/>
  </Realm>

  <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true">

    <!-- SingleSignOn valve, share authentication between web applications
         Documentation at: /docs/config/valve.html -->
    <!--
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
    -->

    <!-- Access log processes all example.
         Documentation at: /docs/config/valve.html
         Note: The pattern used is equivalent to using pattern="common" -->
    <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" />

  </Host>
</Engine>

请提供任何帮助,因为我现在似乎正在兜圈子。

提前感谢约翰

答案1

这在 Linux 上对我有用。您可以在 Windows 中尝试此修复程序以远程访问 tomcat。

在文本编辑器中打开以下两个 XML 文件并注释掉以下几行:

1)$CATALINA_HOME/webapps/manager/META-INF/context.xml

2)$CATALINA_HOME/webapps/host-manager/META-INF/context.xml

注释掉:

<!--  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
      allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />-->

重新启动你的 tomcat 服务器并看看这个解决方案是否有帮助。

答案2

经过很多小时后,看来我的托管公司没有打开正确的防火墙端口,例如他们打开了 80 而不是 8080。

教训是,永远要相信自己的直觉。我把东西放在这里之前问过他们是否开门,但事实并非如此。

无论如何,任何与此相关的人来说,请仔细检查你的防火墙端口是否打开。

希望它能帮助别人。

谢谢约翰

相关内容