Proxy Nginx não tem o mesmo comportamento que os registros A

1

Eu tenho um domínio onde tenho um registro curinga A para um IP (61.61.61.61) (não sob meu controle).

Como queria que algumas páginas do domínio estivessem sob meu controle, achei que era fácil fazer proxy de todos os dados por meio do nginx. Mas parece que isso não é o mesmo comportamento. Em vez disso, quando tento carregar o índice principal do site que estava exibindo corretamente antes, ele está me redirecionando para outro site agora.

Acho que isso ocorre porque o nginx não está fazendo proxy de todos os dados ou não está encaminhando alguns cabeçalhos.

Eu configurei o nginx dessa maneira

server {
    server_name test.com;
    root /var/www/test.com/;
    index  index.html index.htm index.php;

    merge_slashes on;

    location /landers {
        if (!-e $request_filename) {
            rewrite ^.*$ /index.php last;
        }
    }

    location / {
        proxy_pass http://61.61.61.61:80;
    }

    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        # edit below to fix config display
        fastcgi_param SCRIPT_FILENAME /var/www/test.com$fastcgi_script_name;
    }
}

A solicitação não é reconglinada no servidor de terceiros, provavelmente é por isso que ela está me redirecionando para outro site nesse servidor.

[Editar]

Então, para ser mais claro. Eu quero que o url / landers seja hospedado na minha máquina. É por isso que tenho uma localização diferente no nginx para isso.

O restante das solicitações para o test.com deve ir para o endereço IP correto (e manipulado pelo servidor de terceiros).

Tudo estava funcionando bem quando eu tinha o endereço IP como um registro A. Mas agora o nginx faz o proxies do pedido e recebo um redirecionamento 301 de volta (do servidor com o IP 61.61.61.61).

Normalmente eu não deveria ter um 301 de volta, mas sim a página do proxy. É por isso que eu acho que o pedido para o servidor 61.61.61.61 é um pouco diferente do que ir diretamente (usando registros A em vez de proxy para esse servidor). Isso me faz pensar que a solicitação HTTP com proxy é um pouco diferente da versão não-proxy, de forma que o servidor 61.61.61.61 não pode corresponder ao vhost correto em seu servidor.

Espero que isso torne as coisas um pouco mais claras.

    
por Ward Loockx 28.03.2016 / 22:33

0 respostas