作为代理服务器运行时的 Apache 服务器状态

作为代理服务器运行时的 Apache 服务器状态

我们正在运行 apache 作为代理服务器,并在 apache 后面有 tomcat。我们正在使用 server_status 模块,但当我们尝试访问 server_status 时,https://host.com/server-status它会重定向到 tomcat,我们得到 404 错误。我对此很陌生,尝试过查看 apache 文档,但无法找到解决方案。仅供参考。我们已启用 ssl

当前 ssl.conf 设置:

  ProxyRequests     Off
  ProxyPreserveHost On

  <Proxy http://localhost:8081/*>
      Order deny,allow
      Allow from all
  </Proxy>

  ProxyPass         /  http://localhost:8081/
  ProxyPassReverse  /  http://localhost:8081/
  ProxyPassReverse   /  http://myhost:8081/


    <Location /server-status>
            SetHandler server-status
            Order deny,allow
            Deny from all
            Allow from 10.90
    </Location>

建议的更改后

 ProxyRequests     Off
 ProxyPreserveHost On

<Proxy http://localhost:8081/*>
    Order deny,allow
    Allow from all
</Proxy>

ProxyPass         /server-status !
ProxyPass         /  http://localhost:8081/
ProxyPassReverse  /  http://localhost:8081/
ProxyPassReverse   /  http://myhost:8081/

编辑2:

需要更改 httpd.conf 并且我ProxyPass /server-status !在代理模块配置指令下添加了它并且它可以工作。

答案1

您可以!在 ProxyPass 指令中使用代理例外。例如

ProxyPass /server-status !

应该这么做。

有关 ProxyPass 指令的更多信息,请参阅 Apache 文档:http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass, 尤其

! 指令在你不想反向代理子目录的情况下很有用,例如

答案2

我有很多网站,其中一些有“永久重定向”。出于某种原因,它不起作用(至少对我来说)。

我使用 /server-status 进行监控,因此我只需从本地 LAN 内的另一台服务器连接到它即可。因此,我创建了一个额外的 Vhost,以本地 IP 作为 ServerName,如下所示:

<VirtualHost *:80>
   ServerName   <<local_server_ip>>
   ServerAlias  <<local_server_ip>>
   ServerAdmin  [email protected]

        DocumentRoot "/var/www/html"

    Options Indexes FollowSymLinks
</VirtualHost>

我不是专家但它对我有用。

相关内容