Como direcionar o visitante para determinado serviço http de acordo com seu `host`?

Como direcionar o visitante para determinado serviço http de acordo com seu `host`?

Quero direcionar os usuários para diferentes serviços web com configuração nginx.

O cenário é para os usuários internos com nome de host de 192.168.1.1até. 192.168.1.255Quero servir-lhes algum serviço da web, mas para o outro visitante externo não quero que isso seja realizado.

Eu sei que poderia IP_TABLESativar esse recurso, mas eu uso regras IP_TABLE principalmente para fins de firewall, não quero misturá-lo com esta configuração.

Existe alguma configuração disponível para mim no nginx.conf?

Responder1

Você pode usar o módulo GEO junto com uma diretiva de mapa:

http {
  geo $special_service {
    default 0;
    192.168.1.0/24 1;
  }
  server {
    if ($special_service) {
      return 302 $scheme://$server_name/special-service/;
    }
  }
}

Responder2

Crie um locationbloco separado que cubra seu conteúdo confidencial.

Tenha em mente que as diretivas de configuração não são herdadas; você precisará incluir no novo bloco tudo o que estiver no local existente e que seja necessário para o seu conteúdo.

location /path/to/sensitive/stuff {
    # any other config that you need goes here..
    # ...
    allow 192.168.1.0/24;
    deny all;
}

informação relacionada