我正在运行一个Ubuntu 13.04 64位服务器,在这台服务器上运行了一些无头的VirtualBox虚拟机。 在过去,我只是转发端口手动访问虚拟机,但我想用鳄梨来巩固东西。 我让apache作为我的服务器上的所有服务的代理,并configuration如下:
<VirtualHost *:80> ProxyPreserveHost On ProxyRequests Off ServerName dynmap.address.net ServerAlias dynmap.address.org ProxyPass / http://localhost:8123/ ProxyPassReverse / http://localhost:8123/ </VirtualHost>
工作得很好,但这个configuration为鳄梨酱(这是基于http://guac-dev.org/doc/gug/installing-guacamole.html说明)似乎并没有工作:
<VirtualHost *:80> ProxyPreserveHost On ProxyRequests Off ServerName rdp.address.net ServerAlias rdp.address.org ProxyPass / ajp://localhost:8009/guacamole/ max=20 flushpackets=on ProxyPassReverse / ajp://localhost:8009/guacamole/ ProxyPassReverseCookiePath /guacamole / </VirtualHost>
在访问ServerName时,我得到一个通用的“500内部服务器错误”,而/var/log/apache2/error.log只是增加了这一行:
[warn] proxy: No protocol handler was valid for the URL /. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
到目前为止,我的谷歌search表示,这意味着代理模块没有加载,但我已经确认代理,proxy_http和proxy_html都加载。
编辑:意识到我在ProxyPassReverse上有错误的端口,但没有解决问题。
从你提供的文档看来,在你的configuration文件中是这样的:
ProxyPass / ajp://localhost:8009/guacamole/ max=20 flushpackets=on ProxyPassReverse / ajp://localhost:8009/guacamole/
实际上应该是这样的:
ProxyPass ajp://localhost:8009/guacamole/ max=20 flushpackets=on ProxyPassReverse ajp://localhost:8009/guacamole/
你有一些额外的反斜杠导致问题。
(注意,这取决于你是否在VirtualHost或Location标签中使用这个)。