nginx redireciona solicitações do proxy do apache para o endereço do servidor real

3

Descrição:

[server 1] <-|-> [server 2]
[Apache]   <-|-> [nginx <--> gunicorn <--> django]

O Apache está sendo executado em um servidor 1 que silenciosamente redireciona apenas um subdomínio para o servidor 2. Por algum motivo, o nginx retorna 301 movido permanentemente e redireciona para o IP real do servidor 2.

Configuração do servidor 1 - Apache

RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com$
RewriteRule (.*) http://123.456.789.000/$1 [P,L]

Servidor 2 config - nginx

server {
  listen   80;
  # I put the 'subdomain.domain.com' name here while trying to fix the issue.
  server_name subdomain.domain.com 123.456.789.000;

  location / {
      proxy_pass_header Server;
      proxy_set_header Host $host;
      proxy_redirect off;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Scheme $scheme;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_connect_timeout 10;
      proxy_read_timeout 10;
      proxy_pass http://localhost:8000/;
  }

Tenho certeza de que há algo errado com a configuração do proxy no nginx, que está configurado para lidar com o gunicorn. Infelizmente, não tenho experiência suficiente para saber quais cabeçalhos causam isso. Também não sei qual é a diferença entre X-Real-IP e X-Forwarded-For .

editar:

Os arquivos estáticos manipulados por este local no bloco de servidores acima são acessados muito bem do domínio do servidor 1, sem redirecionamento para o ip local do servidor 2.

  location /static {
    autoindex on;
    alias /var/www/django/static;
  }
    
por boreq 09.04.2014 / 14:40

0 respostas