Die Meteor-Websocket-Verbindung ist mit Apache fehlgeschlagen

1053
fgarci03

Ich habe eine Meteor-App mit MeteorUp für ein DO-Droplet bereitgestellt. Ich habe die virtuellen Hosts von Apache für diese Website folgendermaßen konfiguriert:

<VirtualHost *:80> ServerName filipe-garcia.com ServerAlias www.filipe-garcia.com  ServerAdmin me@filipe-garcia.com DocumentRoot /var/www/html  ErrorLog $/error.log CustomLog $/access.log combined  RewriteEngine On RewriteCond % ^/sockjs/ [NC] RewriteCond % transport=websocket [NC] RewriteRule /sockjs/ ws://localhost:3000/$1 [P,L]  ProxyPreserveHost On ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ </VirtualHost> 

Aber ich bekomme immer noch eine

WebSocket-Verbindung zu 'ws: //filipe-garcia.com/sockjs/622/9hwpvs81/websocket' ist fehlgeschlagen: Fehler beim WebSocket-Handshake: Unerwarteter Antwortcode: 400

Fehler auf meiner Konsole. Ich habe dies gegoogelt und eine Vielzahl von Lösungen (meist Variationen dieser VHosts) gefunden, die jedoch ohne Erfolg waren.

Alles andere scheint perfekt zu funktionieren, abgesehen von diesem Fehler (den ich noch nicht gespürt habe, weil diese App noch nicht auf websockets angewiesen ist).

Ich bin nicht sicher, wie ich das reparieren soll. Ich verwende Apache 2.4.7 auf Ubuntu 32bits und habe Proxy, Proxy_connect, Proxy_http, Proxy_wstunnel aktiviert.

BEARBEITEN : Es muss etwas damit zu tun haben, wie der Proxy konfiguriert ist. Wenn ich meinen Browser auf den Computer und den Port verweise, auf dem er direkt ausgeführt wird, tritt dieser Fehler nicht auf.

Als kleine Bonusfrage, sollte ich mit Hilfe eines nodejs-Servers die DocumentRoot-Zeile der Datei entfernen oder einfach dort lassen?

Vielen Dank.

0
Ich habe dasselbe Problem. Können Sie mir bitte sagen, wie Sie es gelöst haben? plsss Nullpointer vor 7 Jahren 0

1 Antwort auf die Frage

0
user528864

Für mich .. einfach das Hinzufügen von ..sites-enabled .. (ubuntu + apache) funktionierte für mich:

ProxyRequests off <Proxy *> Order deny,allow Allow from all </Proxy>  <Location /> ProxyPass http://localhost:3000/ ProxyPassReverse http://localhost:3000/ </Location> 

Stellen Sie sicher, dass Sie Sites hinzufügen, die nicht Sites verfügbar sind

Hmm .. versuchte das ... Funktioniert nicht: S Übrigens, es ist in der Tat auf Sites aktiv ... Also, nicht das .. fgarci03 vor 8 Jahren 0