2016-01-08 1 views
0

Actuellement, j'ai installé avec succès apache2.4.18 qui contient le mod_proxy_wstunnel et installé tomcat7 sur une autre machine. Et j'ai déployé l'application d'échantillon d'ambiance sur tomcat7. Ensuite, je peux visiter http://tomcatserver.com:8080/ademo/index.htmlComment configurer websocket sur Apache 2.4.18 et tomcat7?

J'ai capturé le navigateur ci-dessous. enter image description here

Cet index.html a été extrait de https://github.com/Atmosphere/atmosphere-samples/blob/master/samples/chat/src/main/webapp/index.html.

Ensuite, j'ai essayé de définir le httpd.conf dans le serveur apache comme ci-dessous. Je n'ai utilisé aucune configuration liée à VirtualHost. Je viens d'ajouter les deux lignes ci-dessous à la fin de ce fichier httpd.conf.

ProxyPass  /ademo/  http://tomcatserver.com:8080/ademo/ 
ProxyPassReverse /ademo/  http://tomcatserver.com:8080/ademo/ 

Ensuite, je redémarre httpd, et visite ci-dessous l'URL. J'ai capturé l'instantané du navigateur ci-dessous, je peux trouver que la prise web n'était pas supportée. enter image description here

Je me demandais comment puis-je modifier cette httpd.conf pour soutenir websocket? J'uncommentted le LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

En fait, je prévois de mettre en place plus d'un des serveurs back-end, donc j'utiliser ci-dessous les configurations mentionnées http://blog.arungupta.me/load-balance-websockets-apache-httpd-techtip48/. Mais je reçois toujours l'erreur [Fri Jan 08 02: 55: 50.840362 2016] [proxy: warn] [pid 18446: tid 46971298007360] [client 10.248.66.148:52033] AH01144: Aucun gestionnaire de protocole n'était valide pour l'URL/ademo /socket.html. Si vous utilisez une version DSO de mod_proxy, assurez-vous que les sous-modules proxy sont inclus dans la configuration à l'aide de LoadModule. Une chose dont je m'assure est que j'ai défini les modules nécessaires dans httpd.conf.

<Proxy balancer://mycluster> 
    # Define back-end servers: 

    # Server 1 
    BalancerMember ws://10.214.49.65:8080 

    # Server 2 
    BalancerMember ws://10.214.49.83:8080/ 
</Proxy> 

ProxyPass /ademo balancer://mycluster/ademo 
ProxyPassReverse /ademo balancer://mycluster/ademo 

Répondre

0

Je veux répondre à ma propre question.

Le httpd que j'ai utilisé a été compilé à partir du code source 2.4.18 qui supporte websocket. Et j'ai trouvé que le processus de compilation était normal sans aucune exception. Le redhat que j'utilise est Red Hat Enterprise Linux Server version 5.9 (Tikanga).

La raison pour laquelle je suppose que cela est dû au message d'erreur 'Aucun gestionnaire de protocole était valide'. Que j'ai essayé de passer à redhat 7.1 avec yum installé. J'ai exécuté 'yum install httpd' qui installera automatiquement le fichier httpd 2.4.5. Et j'ai trouvé que la connexion websocket de httpd et tomcat était OK.

Mais actuellement, je veux résoudre le problème sur redhat 5.x car dans le futur, nous utiliserons la version basse de redhat. Généralement, puisque le processus de compilation est Ok, le binaire devrait aussi bien?