Я пытаюсь подключиться к своему серверу websocket с помощью html 5 websockets. Прямое соединение работает нормально, но когда я пытаюсь скрыть свой сервер за прокси-сервером apache, это не работает.
это заканчивается:
var ws = new WebSocket("wss://www.example.com/generator/wss/");
undefined
WebSocket connection to 'wss://www.example.com/generator/wss/' failed: Error during WebSocket handshake: Invalid status line
но если я подключаюсь напрямую к wss: //www.example.com: 9002, тогда он работает ...
Вот моя конфигурация apache:
<VirtualHost *:80>
ServerName www.example.com
ServerAdmin me@example.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Redirect permanent / https://www.example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com
ServerAdmin me@example.com
SetEnv EXAMPLE_SERVER_ENVIROMENT production
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"
SSLCertificateFile /etc/ssl/certs/apache/www.example.crt
SSLCertificateKeyFile /etc/ssl/certs/apache/private.key
SSLCertificateChainFile /etc/ssl/certs/apache/sub.class1.server.sha2.ca.pem
ProxyPass /generator/wss wss://127.0.0.1:9002/
ProxyPassReverse /generator/wss wss://127.0.0.1:9002/
ProxyPreserveHost On
ProxyRequests Off
ProxyVia On
DocumentRoot /opt/example/prod/public
<Directory "/opt/example/prod/public">
Order allow,deny
AllowOverride All
Allow from all
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Есть идеи, почему это не работает? Спасибо
Итак, я не знаю, где именно была ошибка, но когда я обновил apache2 с 2.4.7 до 2.4.16, он работает ...