我正在使用Apache和mod_proxy通过HTTP提供对Monit GUI的访问。 到目前为止,我的configuration如下:
ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPreserveHost on ProxyPass /monit http://localhost:2812/ ProxyPassReverse /monit http://localhost:2812/
当人们去http://mywebsite/monit他们得到Monit主页。 然而,由Monit返回的链接有一个绝对path,它打破了仅适用于以/monit开头的path的代理。 我可以为http://monit.mywebsite (例如http://monit.mywebsite )创build一个单独的vhost来解决这个问题,但是想知道是否有另一个解决scheme。
问题1:有没有办法让Apache重写HTML代码中的链接,以便在ProxyPass和ProxyPassReverse指令中定义任何path?
问题2:如果上述不可能,你会看到另一个解决scheme,而不是我提到的单独的vhost ?
您的代理设置稍微不正确:
它应该是:
ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPreserveHost on ProxyPass /monit http://localhost:2812 ProxyPassReverse /monit http://localhost:2812
注意区别? 在你的设置中,你删除了/很多。
你也可以去
ProxyPass /monit/ http://localhost:2812/ ProxyPassReverse/ /monit http://localhost:2812/
但是然后请求http://mywebsite/monit将不起作用,只能到http://mywebsite/monit/ ,这样会很不方便。
可能mod_proxy_html可以做你想做的事情,但据我所知这绝不是最好的解决scheme….我不知道Monit,但没有一个选项,使它只使用相对path?