Бег tracd
и прямой доступ к его сети работает нормально.
Однако я хочу, чтобы он сидел за nginx и был доступен, перейдя в example.com/trac/
.
С этой целью я внес следующие изменения в конфигурацию nginx:
location /trac/ {
proxy_pass http://127.0.0.1:3456/; # tracd listens there
proxy_redirect default;
proxy_set_header Host $host;
}
Посещение example.com/trac/
теперь показывает мне сломанную домашнюю страницу Trac, где ни один из файлов CSS, JS или изображений не загружается, потому что все эти другие запросы отправляются на что-то вроде example.com/css
, вместо того example.com/trac/css
.
Как я могу это исправить?
Как мне заставить Trac понять, что example.com/trac/
, и нет example.com/
?
Спасибо!
Редактировать: Я установил следующие trac.ini
настройки и перезапуск tracd
, но проблема не устранена:
base_url = https://example.com/trac/
use_base_url_for_redirect = true
Это кажется определяющим base_url
и use_base_url_for_redirect
больше не работает.
Вместо этого используйте --base-path
вариант при запуске tracd
прямо.
Итак, теперь я бегу tracd
как это:
tracd /path/to/trac/dir --base-path=trac
Конфигурация nginx становится проще:
location /trac/ {
proxy_pass http://127.0.0.1:3456/trac/;
proxy_redirect default;
proxy_set_header Host $host;
}
Кажется, это работает.