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