Como eu poderia redirecionar a solicitação nginx com base no primeiro cabeçalho da URL

0

Eu tenho 3 servidores de aplicativos gerenciados pelo servidor nginx.

upstream he {
server h1.abc.example.com;
server h2.abc.example.com;

}

Como eu poderia redirecionar a solicitação de solicitações com base no valor de algum cabeçalho? Por exemplo,

 abc-h1.abc.example.com should go to server 
h1.abc.example.com
 def-h1.abc.example.com should go to server 
h2.abc.example.com

onde -h1.abc.example.com será o mesmo para todas as solicitações.

    
por Harinder 06.07.2018 / 16:59

1 resposta

1

O Nginx certamente pode fazer isso, você só precisa especificar cada cabeçalho do host ( server_name ) e separar os upstreams para atribuir um para cada host.

Um snippet de servidor nginx como esse pode funcionar (fora da minha cabeça e não testado):

upstream one { server h1.abc.example.com; }
upstream two { server h2.abc.example.com; }

server {
    listen 8080;
    server_name abc-h1.abc.example.com;

    location / {
        proxy_pass one;
    }
}

server {
    listen 8080;
    server_name def-h1.abc.example.com;

    location / {
        proxy_pass two;
    }
}

Existem também outros manipuladores de proxy ( fastcgi_pass , uwsgi_pass , scgi_pass , memcached_pass ) se você quiser enviar tráfego para algo que não seja um endpoint HTTP

EDIT: corrija erroneamente server_name

    
por 07.07.2018 / 00:08

Tags