Como ocultar URL / URI de backend com proxy reverso Nginx

2

Nossa empresa desenvolve uma nova solução SaaS que será usada pelos revendedores e seus clientes. Para os clientes de nossos revendedores, a solução deve ser marcada como se fosse um aplicativo de software do próprio revendedor. Isso é completamente implementado, exceto o URL.

Eu fiz muita pesquisa sobre como esconder um URL / URI e um proxy reverso parece ser a melhor solução. Eu li algo sobre diferentes aplicativos de software que eu posso usar para construir um proxy reverso e Nginx parece ser perfeito para este trabalho.

Instalei um novo servidor CentOS e instalei o Nginx nele. Foi bem fácil (até para mim como Linix noob). Depois de alguns conflitos com o arquivo de configuração, descobri como configurar o Nginx como proxy reverso.

Agora, quando eu navego para o meu ip de proxy (por exemplo, 192.168.1.100/SaaS) eu vejo a solução SaaS que tem outro ip. Na barra de endereços eu vejo o ip do proxy reverso, exatamente como desejado!

Depois de clicar em um link ou botão na solução SaaS, o IP na barra de endereço muda para o IP real da solução SaaS.

Eu li este , este , isso e muitos mais tópicos, mas eu não consigo trabalhar.

A parte "localização" da minha configuração é semelhante a esta:

location /SaaS {
        proxy_pass http://192.168.1.200/login/;
}

Assim que mudá-lo para isso (a configuração correta que encontrei na internet em vários artigos)

location /SaaS {
        proxy_pass http://192.168.1.200/login;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        include /etc/nginx/proxy_params;
}

Recebi um erro "A página que você está procurando não foi encontrada." de Nginx. O que eu estou errado?

    
por RoDo 10.10.2016 / 17:33

1 resposta

1

você precisa usar um plug-in localizar / substituir ou atualizar todos os links em seu aplicativo SaaS para usar o nginx ip (seria altamente recomendável dns)

link

substitua o ip de backend pelo ip do proxy, geralmente é possível reescrever o $ host como você tem, mas parece que seus links não usam a variável para definir seu URL.

Exemplo:

server {
    listen       80;
    listen  [::]:80;
    server_name  sub-test.jacobdevans.com;
    root         /var/www/html/test;
 location / {

            sub_filter 'abc-test.jacobdevans.com' 'sub-test.jacobdevans.com';
            sub_filter_once off;
        }

}

server {
    listen       80;
    listen  [::]:80;
    server_name  abc-test.jacobdevans.com;
    root         /var/www/html/test;

 location / {

            sub_filter '123-test.jacobdevans.com' 'abc-test.jacobdevans.com';
            sub_filter_once off;
        }

}

server {
    listen       80;
    listen  [::]:80;
    server_name  123-test.jacobdevans.com;
    root         /var/www/html/test;

 location / {

            sub_filter 'sub-test.jacobdevans.com' '123-test.jacobdevans.com';
            sub_filter_once off;

        }
}

link

    
por 10.10.2016 / 17:41