WSS не работает в HTTPS, но WSS работает в HTTP Apache2 Ubuntu

Моя настройка websocket работает в http. Но если я включаю ssl(позволяет шифровать) и меняю ws:// в wss://Браузер выдает эту ошибку.

WebSocket connection to 'wss://xx.yy.xx.yy:5001/' failed: Error in connection establishment: net::ERR_CONNECTION_CLOSED

Javascript:

var ws = new WebSocket('wss://xx.yy.xx.yy:5001');

Затем я включил эти модули Apache: proxy_http, proxy_wstunnel, proxy_balancer

И добавил эти строки в /etc/apache2/sites-enabled/000-default-le-ssl.conf

<IfModule mod_proxy.c>
ProxyPass / ws://xx.yy.xx.yy:5001
ProxyPassReverse / ws://xx.yy.xx.yy:5001
</IfModule>

Получил 500 Ошибка сервера.

Хотя я понятия не имел, как работает этот прокси-сервер, просто дал слепую попытку. Пожалуйста, исправьте мою ошибку, помогите мне исправить это. Благодарю.

Детали сервера:

  • Apache 2.4.18 работает в экземпляре Ubuntu AWS EC2.
  • общедоступный ip: xx.yy.xx.yy
  • частный ip: aa.bb.aa.bb

Настройка веб-сокета:

Я использую частный ip для внутреннего соединения (php) и публичный ip в переднем конце.

1 ответ

Решение

Ну, я исправил это сам. Я изменил свой JavaScript в:

var ws = new WebSocket('wss://domain.com/ws/');

Включил прокси-модули, выполнив в терминале следующую команду:

sudo a2enmod proxy proxy_balancer proxy_wstunnel proxy_http

Добавил эти строки в мой конфигурационный файл Apache virtualhost (/etc/apache2/sites-enabled/000-default-le-ssl.conf)

ProxyRequests Off
ProxyPass "/ws/"  "ws://domain.com:5001/"

Перезапущенный сервис apache. И веб-сокет начал работать в https.

Другие вопросы по тегам