Не удалось подключиться через веб-сокет Meteor

992
fgarci03

Я развернул приложение Meteor в DO Droplet с помощью MeteorUp. Я настроил виртуальные хосты Apache для этого сайта следующим образом:

<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> 

Но я все еще получаю

Сбой подключения WebSocket к «ws: //filipe-garcia.com/sockjs/622/9hwpvs81/websocket»: ошибка во время рукопожатия WebSocket: непредвиденный код ответа: 400

ошибка на моей консоли. Я гуглил это и нашел множество решений (в основном вариации этого же VHosts), но безуспешно.

Все остальное, кажется, работает отлично, за исключением этой ошибки (которую я еще не чувствовал из-за этого, потому что это приложение еще не использует веб-сокеты).

Я не уверен, как мне это исправить. Я использую Apache 2.4.7 на Ubuntu 32bit, и у меня включены прокси, proxy_connect, proxy_http, proxy_wstunnel.

РЕДАКТИРОВАТЬ : Это должно быть связано с тем, как настроен прокси, потому что, если я указываю свой браузер на машину и порт, на котором он работает, эта ошибка не возникает.

В качестве крошечного бонусного вопроса, используя сервер nodejs, я должен удалить строку DocumentRoot файла или просто оставить ее там?

Спасибо.

0
У меня та же проблема, подскажите, пожалуйста, как вы ее решили? plsss Nullpointer 7 лет назад 0

1 ответ на вопрос

0
user528864

For me.. simply adding the following to ..sites-enabled..(ubuntu+apache) worked for me:

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

Make sure you add to sites-enabled not sites-available

Хм .. попробовал это ... Не работает: S Кстати, он на сайтах действительно включен ... Так что, не то .. fgarci03 8 лет назад 0