J'ai installé un nginx sur mon serveur. Il reçoit toutes les demandes et les transmet à un serveur IIS situé derrière lui. Mon problème est que mon site fonctionne sur le port 2000. Parfois, il envoie des redirections à nginx qui contiennent le port 2000 et après cette redirection, les utilisateurs ne passent pas par nginx. Je veux réécrire une règle dans mon nginx pour obtenir toutes les redirections et définir le port à 80 afin que les utilisateurs n'aillent pas directement à l'IIS. Je peux également résoudre ce problème en modifiant le code C#, mais je ne veux pas modifier le code.
Réponses
Trop de publicités?Je ne suis pas sûr de comprendre, mais je vais essayer.
D'après ce que je comprends, vous avez A qui exécute NGINX en écoutant sur :80 (peut-être :443) et A ou B (je ne sais pas si IIS est exécuté sur la même machine, bien que je ne pense pas puisque les utilisateurs semblent pouvoir l'atteindre directement) qui exécute IIS en écoutant sur :20000.
Si A exécute les deux, vous n'avez pas de chance, vous ne pouvez pas faire en sorte que NGINX et IIS se lient au même port, donc vous ne pourrez pas le faire via NGINX. Cependant, vous pouvez utiliser votre pare-feu pour que les requêtes adressées à :20000 qui ne proviennent pas de localhost soient transmises à :80. Cela fonctionne également dans le second cas si vous souhaitez procéder de cette manière.
Si A exécute NGINX alors que B exécute IIS, vous pouvez toujours indiquer à NGINX d'écouter sur :20000 également et le transmettre à IIS.
Dans tous les cas, si IIS n'est pas censé être accessible par d'autres moyens que NGINX, vous devriez avoir une règle de pare-feu empêchant son accès depuis l'extérieur.