Como fazer o Nginx encaminhar o nome do host original

3

Eu tenho um servidor nginx agindo como um balanceador de carga para meus servidores apache. Eu estou usando subdomínios e meu código depende do valor HTTP_HOST para executar a tarefa correta.

Quando eu faço uma solicitação para dizer: http://get.example.com quando ele é encaminhado, o HTTP_HOST no apache se torna example.com .

Minha pergunta é: como faço para que ela permaneça igual à solicitação original?

Aqui está minha configuração do nginx:

upstream example.com {
  server 192.168.2.1:8909 weight=2;
  server 192.168.2.2:8909 weight=1;
  server 192.168.2.3:8909 weight=1;
}

server {
  listen 80;
  location / {
    proxy_pass  http://example.com;
  }
}

Eu tentei adicionar vários proxy_pass , um para cada subdomínio e parece não funcionar.

    
por Ibu 09.05.2013 / 20:42

1 resposta

5

Você precisa passar o cabeçalho HTTP Host . Adicione isto ao location relevante:

proxy_set_header Host $host;
    
por 09.05.2013 / 21:00