CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Apache 2.4 et ProxyPass Socket.IO (Node.JS)

Harm0
Harm0
Niveau 7
18 novembre 2017 à 15:21:05

Hello ! :)

J'ai rencontre un soucis sur de la conf Apache concernant le mod proxy, j'aimerais proxyfier du socket.io derrière un apache en gros.

Mon serveur node occupe un port 1338 :

httpServer.listen(1338);
var io = require("socket.io").listen(httpServer);
 
io.sockets.on("connection", function(socket){
...
}

Côté front, je dois charger le fichier js socket.io.js fourni par le serveur node (donc derrière le proxy Apache dans l'idéal, puis ouvrir un socket :

<script src="/socket.io/socket.io.js"></script>
var socket = io.connect("http://domain.tld/socket.io");

Après une petite centaine d'essais de configs et de bidouillages, j'ai mis cette config dans mon vhost :

RewriteEngine On
RewriteRule /socket.io/1/websocket/ - [R=200,L]
ProxyPass /socket.io/socket.io.js http://127.0.0.1:1338/socket.io/socket.io.js
ProxyPassReverse /socket.io/socket.io.js http://127.0.0.1:1338/socket.io/socket.io.js
ProxyPass /socket.io/1/websocket/ ws://127.0.0.1:1338/socket.io/1/websocket/
ProxyPassReverse /socket.io/1/websocket/ ws://127.0.0.1:1338/socket.io/1/websocket/
ProxyPass /socket.io/1/ http://127.0.0.1:1338/socket.io/1/
ProxyPassReverse /socket.io/1/ http://127.0.0.1:1338/socket.io/1/

Le fichier socket.io.js est bien fourni par le serveur node à travers le proxy, ça c'est nickel !
Par contre, j'ai toujours un problème au moment d'ouvrir mon socket. :-(

GET http://domain.tld/socket.io/?EIO=3&transport=polling&t=L_F7frg 404 (Not Found)
...

L'erreur Apache lié au cas ou :

[Sat Nov 18 13:31:09.431794 2017] [proxy:warn] [pid 22356] [client xx.xx.xx.xx:52436] AH01144: No protocol handler was valid for the URL /socket.io/. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule., referer: http://domain.tld/

Je sèche vraiment, j'y suis depuis hier soir, et à force d'avoir le nez dans les configs, je vois plus rien ^^

Merci d'avance :-d

20_cent_2017
20_cent_2017
Niveau 10
18 novembre 2017 à 16:01:09

Ta pas besoin d'apache pour faire de l’écoute sur du socket ...
D'ailleur c'est ton serveur qui donne le port d'écoute normalement...

Harm0
Harm0
Niveau 7
18 novembre 2017 à 16:04:08

Yep, je sais, mais mon objectif est de coupler un site "classique" (apache, php), et avoir une page qui utilise un socket (donc node), mais que les utilisateurs qui viennent sur le site n'aient besoin d'avoir que le port 80 d'accessible pour que ça soit plus propre et sécurisé.

Message édité le 18 novembre 2017 à 16:04:21 par Harm0
Harm0
Harm0
Niveau 7
19 novembre 2017 à 00:39:37

J'ai finalement trouvé la solution dans l'après-midi, je l'ai posté sur le topic que j'avais créé sur openclassroom pour les intéressés. :)

https://openclassrooms.com/forum/sujet/apache-2-4-et-proxypass-socket-io-node-js

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment