Первые два хоста работают должным образом. Второй прокси-сервер Odoo. Я хотел бы сделать еще один прокси из моего вторичного домена на мой сервер Odoo. Однако Odoo должен получить поддомен, соответствующий базе данных, иначе он не будет его обслуживать.
Вот мой код на данный момент:
# static homepage
<VirtualHost *:80>
ServerName mydomain.fr
ServerAlias www.mydomain.fr
DocumentRoot /var/www/odoo
</VirtualHost>
# wildcard proxy for odoo:
# one subdomain -> one database
<VirtualHost *:80>
ServerName mydomain.fr
ServerAlias *.mydomain.fr
ErrorLog /var/log/odoo/odoo-error.log
CustomLog /var/log/odoo/odoo-access.log combined
LogLevel warn
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests Off
ProxyPass / http://mydomain.fr:8089/
ProxyPassReverse / http://mydomain.fr:8089/
ProxyVia On
</VirtualHost>
# a secondary domain
# should point to a specific database
<VirtualHost *:80>
ServerName www.secondary-domain.com
ServerAlias secondary-domain.com
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://some_database.mydomain.fr
ProxyPassReverse / http://some_database.mydomain.fr
ProxyVia On
</VirtualHost>
################
# restrictions #
################
<Location /web/database>
Order deny,allow
Deny from all
Allow from x.x.x.x
</Location>
Я не особо занимаюсь управлением серверами, поэтому мало что знаю (даже после прочтения документации).
Забыл упомянуть, что я получаю в ответ:
secondary-domain.com
дает мне ошибку прокси 502some_database.mydomain.fr
работает как ожидалосьЕсли я поставлю третий <VirtualHost/>
bloc во второй позиции, весь сайт mydomain.fr отстает, и это не решает ошибку прокси 502 для моего вторичного домена.
Если я процитирую ProxyPreserveHost
директива, собираясь secondary-domain.com
приводит к secondary-domain.com, some_database.mydomain.fr
... Что здесь происходит ?
Мне нужно подтверждение, что это можно сделать и что моя установка делает это:
secondary-domain.com
some_database.mydomain.fr
mydomain.fr:8069
Первые два хоста работают должным образом.
Вид. Они используют одно и то же имя сервера, что не имеет смысла, поскольку уникальность виртуального хоста - это комбинация порт + имя сервера.
Apache здесь фактически молча использует первое определение vhost, когда получает http://mydomain.fr или http://www.mydomain.fr/. Для всех остальных * .mydomain.fr будет использоваться второй виртуальный хост. Я думаю, это именно то, что вам нужно, но он неуклюже написан и подвержен диагностическим ошибкам.
Однако Odoo должен получить поддомен, соответствующий базе данных, иначе он не будет его обслуживать.
Это цель «ProxyPreserveHost On», он передает имя, используемое HTTP-клиентом, в приложение за обратным прокси-сервером. Используйте его во втором виртуальном хосте.
Ваш третий vhost кажется нормальным (он делает иметь "ProxyPreserveHost On").