tracd vários projetos + proxy reverso nginx

1

Eu estou tentando configurar o nginx com um proxy reverso para o tracd, no entanto, eu só quero usar 1 tracd.

Agora, primeiro, aqui está minha configuração para este domínio

server {
    listen   80;
    server_name bugs.XXXXXXXX.com;

    access_log  /var/log/nginx/XXXXXXXX-bugtracker.access.log proxy;

    location / {
        rewrite ^/bugtracker/(.*)$ /$1;
        rewrite ^/bugtracker$ /;
        proxy_pass http://127.0.0.1:81/bugtracker/;
        proxy_redirect default;
        proxy_set_header Host $host;
    }

    location ~ /\.ht {
        deny  all;
    }
}

Como você pode ver, há regras de reescrita, porque, por alguma razão, todos os URLs que são rastreados são como / bugtracker / alguma coisa.

Agora isso é realmente causado pelo tracd apenas enviando URLs como normalmente deveria, no entanto o trac está em bugs.XXXXXXXX.com/ e não em bugs.XXXXXXXX.com/bugtracker. Então, como posso fazer com que o tracd / trac exiba os URLs (neste caso) corretos?

    
por Not Available 02.11.2010 / 23:33

3 respostas

0

Eu mudei para usar o servidor WSGI embutido, pois isso é destinado a um ambiente de produção e o tracd não é.

funciona bem e não tem o problema acima que eu teria com o tracd.

    
por 14.11.2010 / 11:42
1

No trabalho, temos um ambiente de projeto com muitas instâncias de trac (cada uma delas sendo executada como usuário diferente), portanto, não podemos nos dar ao luxo de ter processos WSGI sendo executados para todos eles ao mesmo tempo. Assim, eu configurei muitos apache + itk + suexec + fastcgi como o proxy nginx upstream (cada projeto tem um virtualhost para trac e um virtualhost para svn).

Nós não queremos adicionar 1 localização no nginx para cada trac e svn instance, então depois de passar vários dias lutando com diretivas nginx proxy com regexes eu descobri que há algumas opções no trac.ini (desde 0.10.5) que pode ser usado para alterar o local de redirecionamento padrão.

No seu caso, deveria ter sido algo assim:

base_url = http://bugs.XXXXXXXX.com/
use_base_url_for_redirect = True

E, em seguida, o apache redireciona (ou tracd redireciona no seu caso), deve apontar para o URL do projeto público, não o padrão trac.

Veja link para mais detalhes.

    
por 20.03.2012 / 11:16
0
location / {

        proxy_pass http://127.0.0.1:81/;
        proxy_redirect default;
        proxy_set_header Host $host;
    }
    
por 02.11.2010 / 23:41

Tags