J'utilise nginx pour servir une instance d'application PHP, et en même temps j'exécute une application Ratchet pour écouter une connexion websocket. Le problème est que ces deux instances utilisent le même port (80).
Comment configurer le serveur pour pouvoir servir les deux?
Edit: Je suis juste revenu pour voir que la question a été rejetée plusieurs fois, c'est compréhensible, je n'ai pas vraiment posé la question de manière claire. Je m'excuse pour cela. J'ai fait ma diligence raisonnable. Je vais essayer de clarifier ce que je demandais, j'ai peut-être mal compris certains aspects du protocole websocket, auquel cas, veuillez me corriger:
Je sais bien qu'il ne peut y avoir qu'un seul processus à l'écoute d'un port particulier, ce que j'ai en fait un problème et c'est tout le Websocket, d'après ce que je comprends, une demande Websocket commence par une poignée de main HTTP, après quoi il y aura un mécanisme pour «mettre à niveau» cette session vers le port spécifique.
D'après ce que j'ai lu, il semble que ce mécanisme de mise à niveau soit géré par le serveur Web. Alors, comment puis-je configurer nginx pour gérer ce processus?
Dans l'ensemble, la seule chose qui m'inquiète concernant l'exécution du serveur Websocket sur un port autre que 80, est la possibilité que le port soit bloqué. Cette préoccupation n'est-elle pas fondée? Des conseils sur la façon dont je devrais configurer cela?
Réponses:
Une question terriblement écrite, mais le terme que je cherchais était proxy inverse.
Fondamentalement, tout comme la façon dont nginx peut transférer différentes demandes vers plusieurs instances de l'application Web en fonction du chemin ou du nom d'hôte, il peut également être configuré pour «transférer» la demande vers une instance de serveur Websocket. par exemple:
Les requêtes HTTP à
http://hostname
seront servies à la page html habituelle, tandis que la connexion websocket àwss://hostname/socket
sera transmise à l'instance websocket sur le même serveur écoutant sur le port 8000.la source
proxy_read_timeout
etproxy_write_timeout
pour éviter l'inactivité déconnexions.Un serveur ne peut pas avoir deux logiciels différents à l'écoute sur le même port / la même adresse IP. Sinon, comment le trafic serait-il acheminé vers l'application XYZ si plusieurs applications pouvaient se lier au même port?
Vous pouvez en savoir plus sur les ports à partir de Port (mise en réseau informatique)
Ce que vous devez faire est l'une des options suivantes:
Votre pare-feu doit simplement être configuré en fonction de ce que vous avez configuré.
la source
Vous avez deux options:
la source