Моя настройка веб-сокета работает в 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.
Хотя я понятия не имел, как работает этот прокси, просто попробовал вслепую. Пожалуйста, исправьте мою ошибку, помогите мне это исправить. Спасибо.
Сведения о сервере:
Настройка Websocket:
Я использую частный IP-адрес для внутреннего (php) соединения и общедоступный IP-адрес во внешнем интерфейсе.
Ну, я сам исправил. Я изменил свой javascript на:
var ws = new WebSocket('wss://domain.com/ws/');
Включенные прокси-модули, выполнив следующую команду в терминале,
sudo a2enmod proxy proxy_balancer proxy_wstunnel proxy_http
Добавил эти строки в мой файл конфигурации виртуального хоста Apache ( / etc / apache2 / sites-enabled / 000-default-le -ssl.conf
)
ProxyRequests Off
ProxyPass "/ws/" "ws://domain.com:5001/"
Перезапуск службы apache. И веб-сокет начал работать по https.