Я использую 64-битный сервер Ubuntu 13.04, на котором у меня работает несколько виртуальных машин VirtualBox. Раньше я просто перенаправлял порты для доступа к виртуальным машинам вручную, но я хочу использовать Guacamole для консолидации вещей. Я позволяю apache действовать как прокси практически для всех служб на моем сервере и таких конфигураций:
<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
ServerName dynmap.address.net
ServerAlias dynmap.address.org
ProxyPass / http://localhost:8123/
ProxyPassReverse / http://localhost:8123/
</VirtualHost>
работают нормально, но эта конфигурация для гуакамоле (основанная на инструкциях из 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 Internal Server Error», и /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.
Мой поиск в Google пока говорит, что это означает, что прокси-модули не загружены, но я подтвердил, что все прокси, proxy_http и proxy_html загружены.
РЕДАКТИРОВАТЬ: понял, что у меня неправильный порт на ProxyPassReverse, но это не решило проблему.
Из предоставленной вами документации в вашей конфигурации это выглядит так:
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).