Non, vous ne pouvez pas passer à travers l'adresse IP de destination initiale après avoir effectué le NAT, du moins pas directement.
Je vais utiliser 192.0.2.0/24 comme votre bloc IP externe et 198.51.100.0/24 comme votre bloc IP interne (voir RFC5737).
Voici quelques solutions possibles :
- Faites du NAT sur les ports cibles de chaque IP externe vers un ensemble de ports différent sur l'IP interne. Par exemple, faites du NAT de 192.0.2.1:80 et 192.0.2.1:443 à 198.51.100.1:80 et 198.51.100.1:443, puis du NAT de 192.0.2.2:80 et 192.0.2.2:443 à 198.51.100.1:81 et 198.51.100.1:444. Configurez le serveur web pour écouter sur les ports différenciés pour les services appropriés. Assurez-vous de choisir des ports non utilisés pour autre chose et vérifiez vos paramètres de pare-feu.
- Allouez des IPs internes supplémentaires au serveur web. Par exemple, allouez au serveur web 198.51.100.1 et 198.51.100.2. Faites du NAT des paires IP/port externes appropriées vers les paires IP/port internes correspondantes (par ex. 192.0.2.1 vers 198.51.100.1, et 192.0.2.2 vers 198.51.100.2). Indiquez à nginx de lier les services appropriés aux IPs internes appropriées.
Si vous optez pour la dernière solution, votre environnement sera plus simple et plus conforme aux normes car vous n'aurez pas à traiter avec des numéros de port inhabituels et des traductions de port, mais vous devrez allouer plusieurs IPs internes à chaque serveur web (je suppose que vous en avez juste un). De plus, si vous utilisez la dernière solution, vous pouvez utiliser un NAT 1:1.
Cela dit, si vous n'avez aucune raison de placer le serveur web derrière un NAT du tout (le NAT n'est pas un pare-feu), contentez-vous d'écouter sur les IPs externes (cela nécessiterait également un changement de topologie).