nginx proxy continua mexendo com o url (redirecionado?)

1

Independentemente do que eu faça, o Nginx continua quebrando o meu URL. Eu acredito que isso só ocorre quando a resposta contém um redirecionamento. Acredito que tentei todas as combinações de sugestões do wiki e as primeiras 20 ou mais páginas no google por agora sem sucesso.

Minha configuração é algo assim:

upstream tomcat {
    server 10.0.0.1:8080;
}
upstream opsview {
    server 127.0.0.1:3000;
}

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass     http://tomcat/;
        proxy_redirect http://tomcat/ /;
        server_name_in_redirect off;

        proxy_set_header  Host       $host;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
}

Eu tentei:

  1. upstream (e eles se comportam de maneira diferente)
  2. passando e redirecionando diretamente para o ip: port em vez de para um upstream
  3. com e sem barras finais
  4. proxy_redirect off
  5. com e sem o server_name_in_redirect off
  6. com e sem as diretivas de cabeçalho

Os casos de erro que continuam voltando:

  • Se estiver fazendo proxy para um host externo, posso encontrar meu navegador literalmente redirecionado para o link .
  • Se estiver fazendo proxy para outro serviço no mesmo host, é possível encontrar meu navegador redirecionado para a outra porta: link .

O que diabos eu estou fazendo errado?

    
por allaryin 10.06.2011 / 11:04

1 resposta

1

Você deve verificar o que realmente o upstream retorna no Location: cabeçalho HTTP quando ele redireciona. É possível que Location: tenha URL como link e isso não corresponderá a proxy_redirect http://tomcat/ / .

    
por 10.06.2011 / 19:27