OpenWRT redireciona o tráfego de entrada da WAN com base no nome de domínio

0

Eu tenho um roteador com firmware OpenWRT e dois computadores na rede local que hospedam sites diferentes. Além disso, tenho dois nomes de domínio ( domain1 e domain2 ) apontando ambos para o endereço IP da WAN do meu roteador. Eu configurei o roteador para aceitar solicitações de entrada na porta 80 e redirecioná-las para o primeiro computador. Portanto, todo o tráfego é redirecionado para a única máquina. Como faço o roteador distinguir as solicitações dependendo do nome do domínio para que, sempre que eu digitar domain2 , ele me redirecione para o segundo computador?

    
por user2513149 08.11.2017 / 20:02

1 resposta

3

Este não é o propósito de um roteador, roteadores com NAT operam na Camada 3 e Camada 4 (IP e Porta) o que você precisa operar na camada 7 (aplicação: http).

TLDR; Você precisa configurar um proxy da Web para rotear o tráfego com base nos cabeçalhos HOST, que devem ser um conjunto redundante de sistemas como haproxy / keepalived ou nginx. Que existem MUITOS P / A aqui sobre como fazer isso.

mod_proxy Fowarding baseado no cabeçalho do host de solicitação

Tudo isso dito, se você precisasse instalar o nginx no seu roteador, você poderia.

opkg update
opkg install nginx

/etc/nginx/nginx.conf

server {
  server_name site1.example.com;

        location / {
          # app1 reverse proxy
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_pass http://192.168.1.3:80;
        }

   access_log      /var/log/nginx/site1.example.com_access.log;
   error_log       /var/log/nginx/site1.example.com_error.log;

}

server {
  server_name site1.mydomain.com;

        location / {
          # app2 reverse proxy
          proxy_pass http://192.168.1.4:80;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

   access_log      /var/log/nginx/site1.mydomain.com_access.log;
   error_log       /var/log/nginx/site1.mydomain.com_error.log;

}

Onde 192.168.1.3 e 192.168.1.4 são seus backends.

link

    
por 08.11.2017 / 20:31