У меня есть два разных приложения на одном сервере. Один из них работает на порту 80 (mydomain.com), другой - на порту 443 (sub.mydomain.com) и имеет подстановочный сертификат.
Первое приложение предназначено только для информационных целей и не нуждается в поддержке веб-сокетов.
Второе приложение должно иметь поддержку защищенных веб-сокетов (протокол wss).
Я попытался настроить гем juggernaut (для веб-сокетов) для моего приложения rails с сервером nginx в облаке верфи, но у меня есть одна проблема. Облако Engineyard предоставляет только два открытых порта: 80 и 443. Я знаю, что nginx не полностью поддерживает обратное проксирование http 1.1, поэтому я не могу использовать проксирование из nginx для перенаправления запросов веб-сокетов на конкретный локальный порт (в моем случае это порт 8080).
Я пытался использовать HAProxy, и это работает для меня, когда я использую только незащищенные веб-сокеты, но мне нужно поддерживать безопасные веб-сокеты. Как я знаю, в этом случае я должен использовать что-то вроде STunnel для туннелирования моего запроса https, а затем использовать HAProxy, но когда я его протестировал - я увидел, что сервер должен работать в несколько раз медленнее, и я все еще не работал, чтобы использовать безопасный сокет соединение: (
Может я что-то не так делаю? Может быть, кто-то расскажет, как настроить nginx для нескольких приложений (одно из них должно работать через https) и защитить веб-сокеты, используя только два порта (80 и 443).
p.s. Также я использовал node-http-proxy, в этом случае я смог настроить прокси для разных приложений nginx, но я не получаю запуск веб-сокетов (произошло только для «рукопожатия» через nginx, а не для «переключения протоколов»)