我们正在运行 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>
我不是专家但它对我有用。