NGINX URL base incorreto

1

Eu tenho o apache sentado em 9000 e, em seguida, nginx reverter isso. Config-nos abaixo

upstream lb_servers {
    least_conn;
        server 127.0.0.1:9000;
        server localhost:9000;
    }

# HTTPS server
#
server {
    listen 443 ssl default deferred;
    server_name domain.name;

    ssl_session_cache shared:SSL:50m;
    ssl_session_timeout 5m;
    ssl_stapling on;
    ssl_stapling_verify on;

    root /www/;
    index index.html index.htm;

    location / {
        proxy_http_version 1.1;
       proxy_pass http://lb_servers;
   }
}

O problema é que o HTML retorna com o seguinte

<head>
<base href="http://lb_servers/" />
...
</head>

Como coloco o nome do domínio no href em vez de http://lb_servers/ ?

P.S. Re questionar por que apache e depois nginx, eu tenho migrado um aplicativo legado usando docker (apache senta inide docker) tendo scripts ansible pronto nginx com configuração letsecrypt e etc. Eu não quero gastar muito tempo sobre isso mais.

    
por user2770362 17.07.2017 / 05:22

2 respostas

0

A tag <base href...> é gerada pelo seu aplicativo em execução no Apache. O nginx não altera a saída das conexões upstream, embora você possa tentar usar o módulo sub_filter para substituir o conteúdo.

É melhor alterar o aplicativo upstream para que ele gere o conteúdo correto.

    
por 17.07.2017 / 08:53
0

Provavelmente, você deve usar a diretiva proxy_set_header .

proxy_pass http://lb_servers;
proxy_set_header Host $host;

Por padrão, o nginx usa o valor da variável $proxy_host para Host header.

    
por 17.07.2017 / 09:29

Tags