Использование Confluence с виртуальными хостами и mod_proxy
На тестовом сервере я установил последнюю версию Confluence. Я настроил апач с помощью ajp. Но у меня есть проблема, когда я вхожу в Confluence, я получаю следующее сообщение об ошибке:
Not Found
The requested URL / / homepage.action was not found on this server.
Проблема, кажется, известна, я нашел следующую ссылку: http://confluence.atlassian.com/display/DOC/Using+Apache+with+virtual+hosts+and+mod_proxy
Но, к сожалению, форварды не помогли, я все равно получаю сообщения об ошибках. У кого-нибудь есть идеи, как мне решить проблему?
Следующая конфигурация Apache, которую я настроил:
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
LoadModule proxy_ajp_module /usr/lib/apache2/modules/mod_proxy_ajp.so
<IfModule proxy_http_module>
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
Order allow,deny
Allow from all
</Location>
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</IfModule>
4 ответа
Внешне ваша конфигурация выглядит правильно, если предположить, что Confluence установлен и Tomcat настроен правильно.
На вашем сервере, что вы получите, если наберете это:
curl -D /dev/stderr http://localhost:8080/
А как насчет этого:
curl -D /dev/stderr http://localhost:8080/homepage.action
Вы сказали:
Я настроил апач с помощью ajp.
Обратите внимание, что в данный момент вы не используете ajp. Вы используете прокси http://
; если бы вы использовали ajp, ваша конфигурация выглядела бы так:
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
Однако это не должно существенно повлиять на вашу проблему (для простой операции доступ к tomcat через http
или же ajp
доставит вас в то же место).
РЕДАКТИРОВАТЬ: выход из curl
предоставленные вами данные демонстрируют, что Confluence отвечает по правильным URL-адресам. На самом деле, если я возьму вашу конфигурацию Apache и досконально перенесу ее на мой сервер, она будет работать просто отлично.
Когда вы пытаетесь подключиться к http://yourserver/, что отображается в журнале доступа Apache? Журнал ошибок?
Спасибо за ваш пост. Я выполняю команды и получаю это:
1) curl -D / dev / stderr h ** p: // localhost: 8080 /
HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=838E3DA5D23E1457669E843CA2CFBBBA; Path=/; HttpOnly
Location: http://localhost:8080/homepage.action
Content-Type: text/html
Content-Length: 0
Date: Mon, 14 Feb 2011 21:42:49 GMT
2) curl -D / dev / stderr h ** p: // localhost: 8080 / homepage.action
HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
Cache-Control: no-cache, must-revalidate
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Confluence-Request-Time: 1297720104335
Set-Cookie: JSESSIONID=F6941E06E83ABB538A8341181AED3E6A; Path=/; HttpOnly
Location: http://localhost:8080/login.action;jsessionid=F6941E06E83ABB538A8341181AED3E6A?os_destination=%2Fhomepage.action
Content-Type: text/html;charset=UTF-8
Content-Length: 0
Date: Mon, 14 Feb 2011 21:48:24 GMT
Честно говоря, я понятия не имею, что делать с выводом "curl".
Вы правы, обычно я использую порт 8009 с AJP-Proxy, но на Confluence нет AJP-разъема, и я не хотел устанавливать дополнительный коннектор. Я тоже так думаю, это не причина проблемы.
Я нашел проблему. В Apache я установил перенаправление с порта 80 на 443. Но Confluence генерирует http: // - Адреса. Теперь я изменил свои правила переписывания с [R=301] на [R=301,NE], и теперь это работает:)
THX за вашу помощь.
Привет
Маркус
В apache error_log ничего нет, а в apache acces_log появляется только эта строка при входе в систему:
IP-адрес - - [16 / Feb / 2011: 18: 02: 14 +0100] "POST /dologin.action HTTP / 1.1" 302 724 " https://wiki.example.com/login.action?os_destination=%252Fhomepage.action"" Mozilla / 5.0 (xxx; U; xxx; de; rv: 1.9.2.13) Gecko / 20101203 Firefox / 3.6.13 "