2014-03-25 6 views
0

Мой узел-сервер и Faye настроены для работы на порту 3000. Я установил следующее в apache, чтобы выполнить его на порту 80 через реверсирование:запустить faye (для node.js) на порт 80 вместо 3000

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    ServerName server.com 
    DocumentRoot /var/www/html/nodejs-chat 
    ProxyPass/http://localhost:3000/ 
    ProxyPassReverse/http://localhost:3000/ 
</VirtualHost> 

Это прекрасно работает, за исключением того, что у меня есть следующий набор для Faye, на стороне клиента, за исключением:

var client = new Faye.Client('http://188.0.0.1:3000/faye'); 

Так WebSockets с использованием Фей, порт 3000 до сих пор используется при создании клиент, и я заметил, что многие брандмауэры блокируют это соединение, и мое приложение перестает работать.

Я не могу понять, как и прокси-сервер обратного кода на стороне клиента. Я пробовал:

var client = new Faye.Client('http://server.com/faye'); 

Но это не сработало:

WebSocket подключение к 'WS: //server.com/faye' не удалось: Ошибка при WebSocket рукопожатия: Неожиданный ответ код: 400

Кто-нибудь сделал то же самое с Фей?

ответ

0

Я выяснил, в чем проблема. В случае, если у кого-то еще есть эта проблема, вот сделка:

Apache 2.2 на самом деле не поддерживает прокси-серверы. Там доступен модуль, но он требует, чтобы вы вручную перестраивали apache, и это не тот маршрут, который я хочу принять здесь.

Что я сделал, это swap apache для nginx, который прекрасно поддерживает веб-сокеты даже в сочетании с обратным прокси.