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 )