Назад | Перейти на главную страницу

настройка tracd за mod_proxy?

У меня проблемы с настройкой mod_proxy и tracd. Кажется, почти все результаты поиска по этой проблеме приводят меня на страницу встроенной документации trac, где она упоминается как опция.

У меня уже работает несколько VirtualServer на рассматриваемом компьютере, поэтому запуск tracd на порте 80 или 443 не вариант, но я хочу сделать мой сервер trac доступным на этом компьютере, не открывая дополнительный порт через брандмауэр.

Еще более сложным является то, что у меня есть несколько репозиториев trac, обслуживаемых одним и тем же экземпляром tracd, и поэтому я хочу настроить его так: http://trac.abc.com прокси на localhost:8000/projects/abcproject, и http://trac.def.com прокси на localhost:8000/projects/defproject.

В настоящее время приведенная ниже настройка приводит к 100% ошибкам 403. Сервер работает как www-data, а каталог, в котором хранятся все файлы trac, принадлежит www-data, И tracd (как показано ниже) работает как www-data, поэтому не уверен, где он зависает.

Соответствующая конфигурация на /var/apache2/sites-enabled/trac.abc.com:

ProxyPass / http://localhost:8000/abcproject
ProxyPassReverse / http://localhost:8000/abcproject

Соответствующая конфигурация на /var/apache2/sites-enabled/trac.def.com:

ProxyPass / http://localhost:8000/defproject
ProxyPassReverse / http://localhost:8000/defproject

Команда, используемая для создания экземпляра tracd:

tracd -a defproject,/var/www/vhosts/trac-common/users.htdigest,DEFProject -a abcproject,/var/www/vhosts/trac-common/users.htdigest,ABCProject -p 8000 -b localhost -e /var/www/vhosts/trac-common/projects

Если я захожу на сайт по адресу http://localhost:8000/ все работает нормально, но если я пытаюсь получить доступ через любой из прокси-хостов, я получаю 403 на каждом шагу.

Я успешно использовал mod_proxy, как описано выше, для других серверов, таких как couchdb, так что, возможно, это связано с заголовками, отправленными tracd ??

В конфиге apache тоже есть такой блок:

ProxyRequests Off
<Proxy http://127.0.0.1:8000/*>
        Order deny,allow
        Allow from all
</Proxy>

Это необходимый роман.

Ошибка 403, похоже, указывает на проблему с разрешениями, а не на проблему с сервером (5xx). Может проблема в файле htdigest?

Что ваш журнал ошибок Apache сообщает по этому поводу? Сообщает ли он о чем-то неприятном? Также посмотрите журналы трассировки, чтобы узнать, доходит ли запрос до серверной части и умирает, или это Apache, который выдает ошибку.

Попробуйте добавить косую черту в конце и "ProxyPreserveHost On"

ProxyPreserveHost On
ProxyPass / http://localhost:8000/abcproject/
ProxyPassReverse / http://localhost:8000/abcproject/

Что произойдет, если вы попробуете следующее:

ProxyPreserveHost On
ProxyPass /abcproject http://localhost:8000/abcproject
ProxyPassReverse /abcproject http://localhost:8000/abcproject

Вы изучали запуск Trac через FastCGI? http://trac.edgewall.org/wiki/TracFastCgi

Тогда вам не придется беспокоиться о том, что trac остановится на другом порту.