Foswiki за обратным прокси
Я установил Foswiki на локальный компьютер:http://<localcomputer>:<localport>/foswiki
.
Работает хорошо уже много лет. Этот компьютер недоступен через Интернет. Теперь я хочу получить к нему доступ из Интернета через обратный прокси-сервер Apache2. Поэтому у меня есть доменное имя:foswiki.<mydomain.com>
. На прокси-сервере у меня есть:
<VirtualHost *:443>
ServerName foswiki.<mydomain.com>
some SSL stuff
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests On
ProxyPreserveHost On
ProxyPass / http://<localcomputer>:<localport>/foswiki/
ProxyPassReverse / http://<localcomputer>:<localport>/foswiki/
</VirtualHost>
Используя ссылку на внешнем компьютере:https://foswiki.<mydomain.com>
, я вижу тексты с главной страницы, но макет не в порядке. Логотип не отображается. Я много чего перепробовал, но пока не тот....
Внешняя ссылка находится в https. Локальная ссылка — http. В исходном коде, как видно по внешней ссылке https, есть некоторыеhref="http://foswiki.<mydomain.com>/foswiki/bin/../pub/*"
. Обратите внимание на http вместо https. Эти http:// не работают.
Другие прокси того же прокси-сервера работают корректно. Они перенаправляют на другие компьютеры, кроме установки Foswiki.
Что мне не хватает?
РЕДАКТИРОВАТЬ: Джеральд дал мне ответ, как заставить прокси работать с Foswiki. См. ниже.
Теперь у меня есть другая проблема. Но если попытаться решить это самостоятельно.
1 ответ
У Foswiki есть документация по использованию обратного прокси .
- Foswiki обнаружит
X-Forwarded-Host
заголовок и установит значение из этого заголовка. Это будет работать только в том случае, если подключен один прокси-сервер. Несколько переходов прокси-сервера нарушат конфигурацию. - Если SSL отключен на прокси-сервере, Foswiki не обнаружит
https://
для протокола. Переопределите это, добавив «?SSL=1» к начальному соединению:https://mynewsite.com/Main/WebHome?SSL=1
- Установить
{DefaultUrlHost}
кprotocol://hostname
используется пользователями для связи с прокси. - Набор
{ForceDefaultUrlHost}
к1
- Набор
{Sessions}{UseIPMatching}
к0
Так:
tools/configure -save -set {DefaultUrlHost}='https://foswiki.<mydomain.com>'
tools/configure -save -set {ForceDefaultUrlHost}=1
tools/configure -save -set {Sessions}{UseIPMatching}=0
И добавить?SSL=1
на вашProxyPass
директивы.