如何知道 Apache HTTP 是否正在控制 Apache Tomcat

如何知道 Apache HTTP 是否正在控制 Apache Tomcat

我有一个在 Tomcat 上完美运行的 Web 应用程序,但在重定向和其他安全改进之前,我必须运行连接到 tomcat 的 httpd。

httpd 正在运行,但我实际上不知道它是否正在运行超过Tomcat。我的意思是,我首先要配置的是重定向,但我不知道是我配置错了还是 httpd 没有生效。

答案1

每次只能将一个应用程序绑定到特定端口。您可以使用类似工具ss来确定哪个进程正在监听您感兴趣的端口。

答案2

如果你想跑Apache 连接到 Tomcat并且设置是为了安全改进,我们谈论的不是一个重定向反向代理

  1. 你应该有 Tomcat 的HTTP 连接器(或者急性日照)监听除 之外的其他端口80并将其绑定到localhost,例如,您可以在 TOMCAT_HOME/conf/server.xml

    <Connector 
        port="8080" 
        protocol="HTTP/1.1" 
        address="127.0.0.1"
        connectionTimeout="20000" 
    />
    

    如果有端口连接器,80则应将其删除,因为您现在在 Apache 上使用它。否则,无论哪个先启动,都会绑定到端口80,从而阻止另一个启动。这是不可接受的。

  2. 阿帕奇的mod_proxy需要安装并启用sudo a2enmod proxy

  3. 将代理添加到您的 Apache 配置中,可能在一些<VirtualHost>指示例如

    <VirtualHost *:80>
        ServerName        host.example.com
        ProxyPass         /myapp  http://localhost:8080/myapp
        ProxyPassReverse  /myapp  http://localhost:8080/myapp
    </VirtualHost>
    

相关内容