j'ai cherché beaucoup mais je ne pouvais pas connecter mon Websocket à WSS: //, j'ai trouvé qu'il existe un moyen de proxy WSS: //domain.com: 9090 et Apache appliquer le proxy sur elle et rediriger la demande à où ws: //domain.com: le serveur 9090 est en cours d'exécution
ProxyPass /websocket ws://domain.com:9090
ProxyPassReverse /websocket ws://domain.com:9090
ce code dans Apache config enverra la demande de toute adresse se terminant par/websocket à ws: //domain.com: 9090 ex: ws: // websocket sera ws: //domain.com: 9090
je veux le faire pour wss: // aussi ex wss: // websocket doit pointer sur ws: //domain.com: 9090
ça marche dosnt et j'obtiens cette erreur dans la console du navigateur:
failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
y a-t-il une erreur ici? merci.
j'ai travaillé 24 heures pour trouver ceci et recherché beaucoup de forum mais personne n'écrit au sujet du succès . voici ma configuration de serveur:
CentOS version 6.7, Apache 4.2.18
voici ce que j’ai finalement fait: 2.4.5 et plus tard.
https://httpd.Apache.org/docs/2.4/mod/mod_proxy_wstunnel.html
j'ai téléchargé https://archive.Apache.org/dist/httpd/httpd-2.4.18.tar.gz extrait httpd-2.4.18\modules\proxy\mod_proxy_wstunnel.c et téléchargé sur mon serveur racine alors du terminal pourrait le compiler à nouveau avec ces commonds:
chmod 755 mod_proxy_wstunnel.c #set permission
pxs -i -a -c mod_proxy_tunnel.c #compile module
la commande pxs a compilé le module et écrit dans le fichier de configuration Apache pour le charger
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
après cela, j'ai ajouté ces lignes à la fin du fichier de configuration Apache:
RewriteEngine on
ProxyRequests Off
ProxyPreserveHost on
ProxyPass /myws ws://mysite.com:8091
ProxyPassReverse /myws ws://mysite.com:8091
ET MAINTENANT: cela fonctionne! Côté client js vous pouvez définir ws url comme ceci:
var protocol = 'ws://';
if (window.location.protocol === 'https:') {
protocol = 'wss://';
}
var wsUri =protocol+ "mysite.com/myws";
var ws = new WebSocket(wsUri);
et il transmettra la demande à ws: //monsite.com: 8091 peu importe la page chargée avec https ou http, il dirigera toute demande terminée avec/myws vers ws: //monsite.com: 8091
wss a besoin du module suivant Décommentez la ligne dans le fichier httpd.conf de Apache conf LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so