NGINX One Domain - Vários servidores web sobre IP interno

1

Eu tenho um caso, não sei como gerenciar e gostaria de alguns conselhos.

Atual:

Um nome de domínio - um ip externo. Um já trabalhando no servidor Debian com o NGINX para hospedar páginas da Web.

So, as it is now, I have *.domain.com pointing to server.internal.ip.
Internal IP is on a 192.168.1.x/24 network and all works just as intended.

Novo caso:

Fico convidado a criar o CNAME para o domínio.com, ou seja,

cname1.domain.com
cname2.domain.com
cname3.domain.com

e assim por diante.

O que eu preciso fazer agora é apontar o cname correspondente para um servidor correspondente, ou seja,

cname1.domain.com to server1.internal.ip
cname2.domain.com to server2.internal.ip
..
cname9.domain.com to server9.internal.ip

I still need to make sure all other requests not belonging to a CNAME (ie *.domain.com) belongs to the original server.internal.ip.

Eu não estou conseguindo mais números de ip externos, eu uso o que tenho.

Como eu faria isso com o NGINX?

Estou assumindo que de alguma forma preciso configurar o server.internal.ip já em funcionamento para redirecionar solicitações na porta 80 com base no cname para os novos servidores internos correspondentes?

Meu roteador que está em uso hoje está equipado com o DD-WRT.

Quaisquer dicas / sugestões para um HOWTO que eu não consegui encontrar seriam apreciadas.

    
por user185212 11.08.2013 / 12:24

1 resposta

1

Suponho que você tenha a porta 80 encaminhada no roteador para o servidor server.internal.ip , portanto, esse servidor recebe todo o tráfego para o IP público na porta 80.

Você pode ter vários hosts virtuais baseados em nome em server.internal.ip funcionando como um proxy de encaminhamento para outros servidores.

Em server.internal.ip , você pode adicionar algo como seguir para seu nginx.conf :

server {
    listen 192.168.1.1:80;
    server_name cname1.domain.com;

    root /var/www/localhost/htdocs;
    location ~ ^/(.*)$ {
            proxy_pass        http://server1.internal.ip:80/$1$is_args$args;
            proxy_set_header   Host cname1.domain.com;
            proxy_set_header  X-Real-IP  $remote_addr;
    }
}
server {
    listen 192.168.1.1:80;
    server_name cname2.domain.com;

    root /var/www/localhost/htdocs;
    location ~ ^/(.*)$ {
            proxy_pass        http://server2.internal.ip:80/$1$is_args$args;
            proxy_set_header   Host cname2.domain.com;
            proxy_set_header  X-Real-IP  $remote_addr;
    }
}

Cabeçalho X-Real-IP pode ser usado para registrar a solicitação IP veio (caso contrário, pode ser omitido). Esses hosts virtuais terão precedência sobre sua *.domain.com ( documentação do Nginx )

    
por 11.08.2013 / 12:51