Gitbucket de proxy reverso via nginx

1

Atualmente, estou tentando fazer o nginx funcionar com o gitbucket usando o seguinte este tutorial .

Embora este seja o wiki oficial do gitbucket, esta página está muito incompleta, e eu preciso adaptar alguns detalhes de o guia para o apache , principalmente o prefixo, para fazer o gitbucket funcionar com o nginx.

Então, meu sites-available/gitbucket resultante está aqui:

server {
    listen   80; # The default is 80 but this here if you want to change it.
    server_name mydomain.xxx;

    location /gitbucket {
        proxy_pass              http://localhost:8080/gitbucket;
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_connect_timeout   150;
        proxy_send_timeout      100;
        proxy_read_timeout      100;
        proxy_buffers           4 32k;
        client_max_body_size    500m; # Big number is we can post big commits.
        client_body_buffer_size 128k;
    }
}

Quando eu habilito gitbucket ele funciona, então http://mydomain.xxx/gitbucket redireciona para minha instância gitbucket, mas nginx para de servir qualquer arquivo de índice que eu coloquei em meu /var/www/html , e em vez disso serve a página de índice padrão fornecida quando nós instalarmos novamente isto. E ao desativar o gitbucket, o índice da pasta html é exibido novamente.

Eu tentei fazer um ticket no repositório gitbucket mas não recebi nenhuma resposta satisfatória. Então alguém pode me esclarecer sobre esse problema?

Obrigado antecipadamente!

    
por Vico 06.07.2018 / 07:02

1 resposta

1

O tutorial vinculado dá um exemplo muito específico para o gitbucket.

Se você estiver configurando sites usando o nginx, terá de ter em mente que cada site tem várias configurações e que há uma lógica que determina o que tem precedência quando. Este artigo do oceano digital intitulado "Noções básicas sobre algoritmos de seleção de bloco de localização e servidor Nginx " sobre como isso é determinado.

Pelo que você explicou em seus comentários, você acabou com dois arquivos de site. Um é o arquivo padrão no qual você define sua raiz regular para o seu site e um para o gitbucket que contém apenas o bloco de localização do gitbucket e (isso é importante) uma diretiva de escuta e uma diretiva de nome do servidor.

O primeiro passo que o nginx leva para determinar qual site entregar é descobrir qual bloco de servidor usar. Como é atualmente, você provavelmente tem dois blocos de servidores com a mesma definição. Seu bloco padrão e gitbucket está escutando a porta 80 para o mesmo nome de servidor. Então, um sempre vai sobrescrever o outro.

Se você quer que os dois funcionem, você tem algumas opções:

  • Defina um site para uma porta diferente usando a diretiva de escuta.
  • Altere o nome do servidor para qualquer site. Isso também poderia incluir um subdomínio. Sempre que isso funciona ou não, pode depender da configuração do DNS para o site.
  • Basta incluir o bloco de localização da sua configuração do gitbucket em seu arquivo padrão.

Um bloco de localização, como o nome indica, apenas define configurações para um local muito específico. Ele realmente não precisa de um bloco de servidores independente, pelo menos não se for uma definição básica.

    
por 10.07.2018 / 07:14