Apache субдомен прокси на виртуальном хосте
Прежде всего, я использую apache в качестве HTTP-сервера для приложения, которое работает на другом порту компьютера.
<VirtualHost *:80>
ProxyPreserveHost On
ServerName domain.com
ServerAlias *.domain.com
ProxyPass /excluded !
ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/
</VirtualHost>
Приложение распознает следующий URL: domain.com/accounts/profile, но я хочу использовать account.domain.com/profile
Если я использую другой VirtualHost с ProxyPass для добавления субдомена, приложение не будет работать, потому что приложение понимает маршрут / учетные записи / профиль, только если я сделаю это:
<VirtualHost *:80>
ProxyPreserveHost On
ServerName accounts.domain.com
ProxyPass /excluded !
ProxyPass / http://127.0.0.1:9000/accounts/
ProxyPassReverse / http://127.0.0.1:9000/accounts/
</VirtualHost>
и перейдите по адресу account.domain.com/profile, приложение будет занимать только / profile /. Могу ли я добиться этого путем дальнейшей настройки VirtualHost и прокси-серверов?
Я также читал в других местах, которые, возможно, используя переписывание, я мог бы это исправить, очень похоже на то, как работают файлы.httaccess. Я пытался это с чем-то вроде этого
<VirtualHost *:80>
ProxyPreserveHost On
ServerName domain.com
ServerAlias *.domain.com
ProxyPass /excluded !
ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/
RewriteEngine On
RewriteCond %{HTTP_HOST} ^accounts\.domain\.com$ [NC]
RewriteRule "^/(.*)$" "http://domain.com/accounts/$1" [P]
</VirtualHost>
и в итоге я получил ошибку 502 Proxy
Ошибка прокси
Прокси-сервер получил неверный ответ от вышестоящего сервера. Прокси-сервер не может обработать запрос GET /profile.
Причина: ошибка чтения с удаленного сервера
Кроме того, при попытке использовать ErrorDocument для обработки запроса произошла ошибка 502 Bad Gateway.
Любые советы о том, как заставить это работать? Я впервые использую Apache для чего-то другого, кроме хостинга php-сетей и моего.httaccess до того, как он был очень простым.
РЕДАКТИРОВАТЬ: Спасибо Simon в комментариях за указание на мою ошибку, я не могу прокси-имя ServerName. Я чувствую себя действительно глупо сейчас.