Задача: требуется развернуть систему контроля версий и систему управления проектом на основе mercurial и trac.
Решение
Связка trac/mercurial + uwsgi + nginx. Все установлено и работает, но доступ организован не так, как хотелось бы (конфиг nginx):
server {
listen server_ip:80;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:5544; # trac-сокет
}
}
server {
listen server_ip:88;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:5545; # mercurial-сокет
}
}
Проблема
Не удается разнести trac и mercurial по разным url, а не по разным портам. Т.е. нужно, чтобы trac был доступен по адресу: http://server_ip/trac/projecname, а mercurial - репозиторий: http://server_ip/hg/projecname.
Решение аналогичной задачи силами apache и mod_python
<Location /trac>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
# path to trac projects
PythonOption TracEnvParentDir /var/trac/
PythonOption TracUriRoot /trac/
</Location>
Аналогов такого функционала в nginx не нашел.
P.S. Прошу не бить тапкой и не советовать перейти на apache, passenger, redmine, git, ... .