Назад | Перейти на главную страницу

Веб-сокеты не работают (ускорение ssl?)

Тестирование socket.io приложения в среде PROD, мы обнаружили, что в то время как xhr-polling транспорт (длинный опрос Ajax) работает, websocket транспорт нет.

Просмотр данных, передаваемых с использованием Fiddler, Я вижу, что

Но эти сообщения server-> client никогда не приходят (я даже не уверен, поступают ли сообщения client-> server на стороне сервера). В конце концов (примерно через 6 секунд) Fiddler сообщает о

Read from Server failed...

и устанавливается новое соединение, такое же неудачное, как и первое.

Наша установка выглядит примерно так:

Интернет -> Брандмауэр -> BIG-IP 3600 (завершает SSL) -> Сервер Node.js

Я бы подумал, что брандмауэр не может быть виновником, поскольку все, что он видит, - это зашифрованный поток данных SSL, а с транспортом без веб-сокетов он работает. Я также попробовал match origin protocol вариант в socket.io, безуспешно.

К сожалению, я не могу свободно играть в этой среде, поэтому безуспешно пытался воспроизвести проблему в моей среде DEV. Я создал программный SSL-прокси (используя node.jsс http-proxy), который должен работать аналогично BIG-IP. Но использование SSL-прокси с веб-сокетами работает нормально.

Может ли это быть проблемой с BIG-IP? Конфигурация? Что еще это может быть?

По состоянию на декабрь 2012 года BIG-IP не поддерживает разгрузку SSL трафика WebSocket. Поскольку запросы выглядят как HTTP, они обрабатываются механизмом HTTP, который не понимает, когда изменяется направление потока для соединения WebSocket. Не используйте разгрузку SSL с соединениями WebSocket, пока она не будет официально поддержана.