1

I'm running a Ubuntu 13.04 64-bit server, on which I have some headless VirtualBox VMs running. In the past I have just forwarded the ports to access the VMs manually, but I want to use Guacamole to consolidate things. I let apache act as a proxy for just about every service on my server, and configs like these:

<VirtualHost *:80>
    ProxyPreserveHost On
    ProxyRequests Off
    ServerName dynmap.address.net
    ServerAlias dynmap.address.org
    ProxyPass / http://localhost:8123/
    ProxyPassReverse / http://localhost:8123/
</VirtualHost>

work just fine, but this config for guacamole (which is based on instructions from http://guac-dev.org/doc/gug/installing-guacamole.html) does not seem to work:

<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>

Upon accessing the ServerName, I get a generic "500 Internal Server Error", and /var/log/apache2/error.log just adds this line:

[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.

My googling thus far says this means that the proxy modules aren't loaded, but I've confirmed that proxy, proxy_http, and proxy_html are all loaded.

EDIT: Realized I had the wrong port on ProxyPassReverse, but that did not resolve the issue.

  • 2
    Did you activate the proxy_ajp module in apache? a2enmod proxy_ajp – user130356 Aug 8 '14 at 9:31
  • 1
    Make sure you actually have an AJP connector listening on 8009. – Keith Aug 12 '14 at 21:00
  • Your apache is complaining about not being able to handle ajp:// protocol. So you can change your proxy pass to perform http:// (instead ajp) or enable proxy_ajp as @user130356 stated. – alphamikevictor May 18 '15 at 8:51
1

From the documentation you provided, it looks like this in your config:

ProxyPass / ajp://localhost:8009/guacamole/ max=20 flushpackets=on
ProxyPassReverse / ajp://localhost:8009/guacamole/

Should actually be this:

ProxyPass ajp://localhost:8009/guacamole/ max=20 flushpackets=on
ProxyPassReverse ajp://localhost:8009/guacamole/

You've got some extra slashes hanging around causing problems.

(Note, This depends on if you are using this inside a VirtualHost or Location tag).

  • Unfortunately I've long since given up on this, and switched to using RDP-over-SSH for this, I can't test this solution now. – SanMadJack Aug 13 '14 at 21:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.