Récemment, il est nécessaire de transmettre les requêtes TCP au véritable serveur back-end via un serveur de transit, mais le problème rencontré maintenant est que le serveur back-end ne peut pas obtenir la véritable adresse IP de l'utilisateur.
Veuillez noter qu'il s'agit d'une connexion TCP, pas HTTP. C'est une fonction du module de flux de NGINX. J'ai vérifié beaucoup d'informations en ligne. Le document officiel de NGINX dit que cela peut être résolu, mais il ne donne pas de détails. conseils d'utilisation. J'espère que les amis qui l'ont déjà implémenté peuvent m'aider à répondre à cette question. De plus, si LVS est utilisé comme charge, le serveur back-end peut-il obtenir la véritable adresse IP du client si la machine n'est pas dans le même segment de réseau ? Si possible, veuillez créer un lien vers les articles pertinents.
Documentation de référence :
https://nginx.org/en/docs/str...
https://www.nginx.com/blog/tc...
LVS ne peut pas obtenir la véritable IP par défaut en mode nat ou fullnat.
Le fullnat d'Alibaba peut transmettre la véritable adresse IP au backend via l'option TCP.
Le module de flux de nginx peut transmettre la véritable adresse IP via le protocole proxy https://www.haproxy.org/downl...
Les deux ont une chose en commun :
Le backend doit modifier le code pour obtenir cette IP.