Fazendo Nginx reescrever respostas de backend

1

Tenho alguns serviços em execução em outros servidores que fornecem aplicativos da web no link sem SSL. Eu quero envolver isso em SSL e torná-lo público no link

Eu posso ver o serviço de back-end como este, mas isso obviamente irá quebrar todos os links e referências, porque agora "/ deliver /" deve ser um prefixo. Eu não entendo como usar reescrita, porque a reescrita parece (para mim) ser usada principalmente para alterar solicitações e não respostas do backend. Tudo isso é possível? :)

configuração atual:

server {
    listen 443;
    ssl on;
    ssl_certificate /etc/ssl/some.crt;
    ssl_certificate_key /etc/some.key;
    location /deliver {
            proxy_pass http://someLocalIp;
    }
}

Eu tentei adicionar / no final de proxy_pass (como muitas respostas sugerem), mas isso cria uma resposta em branco, como se o serviço de back-end não entregasse nada ao nginx.

Além disso, alterar o back-end para corresponder ao prefixo "/ deliver" não é tão fácil quanto parece, por isso espero que seja possível fazer isso sem fazer isso.

    
por fjoesne 28.11.2015 / 18:24

1 resposta

0

O proxy reverso tem suas limitações. Reescrever cada URL incorporada (hiperlink, imagem, link de recurso) seria caro de qualquer maneira.

Como você imaginou, o módulo proxy nginx pode reescrever a solicitação e pode reescrever o campo location em uma resposta de redirecionamento. Mas caso contrário, o documento HTML incluído não será alterado.

No entanto, li que existe um módulo do Apache que funcionará se você realmente precisa ir por esse caminho.

    
por 29.11.2015 / 12:47