Fácil. Como o seu node.js está rodando na porta 8443 e, até onde eu entendi, você não tem nenhum outro serviço escutando pedidos em outras portas, você pode simplesmente fazer isso na sua configuração nginx:
server {
# here comes the rest of your nginx configuration
location / {
proxy_pass http://127.0.0.1:8443;
}
}
Você não precisa usar nenhuma regra iptables, nem criar uma seção upstream em sua configuração nginx. nginx pode (e deve) fazer todo o redirecionamento de porta fora da caixa (como normalmente faz qualquer proxy reverso).
Eu posso estar errado, mas a razão pela qual seu aplicativo começa a funcionar depois das regras do iptables é porque seus clientes começam a acessar seu servidor node.js diretamente, devido ao redirecionamento de porta, que é semelhante a quando usamos o Squid como um transparente proxy.
Este artigo pode ajudá-lo. Ignore o fato de que ele foi endereçado ao Apache:
Boa sorte e melhores cumprimentos!