Я хочу запустить node.js и socket.io по https.Я перенаправляю запросы, поступающие с server.example.com, на http://example.com:3000
<VirtualHost server.example.com:80> ProxyPass / http://example.com:3000/ </VirtualHost>
И таким образом я могу получить доступ к файлу socket.io.js
https://server.example.com/socket.io/socket.io.js
Чтобы проверить часть node.js, напечатайте socket.id в консоли.
Изображение: http://prntscr.com/jq81bz
Здесь находится сторона клиента, я подключаюсь к socket.io таким способом.
Изображение: http://prntscr.com/jq830z
Клиент подключается к серверу node.js и печатает socket.id.Но в консоли браузера произошло много ошибок.Я думаю, что клиент хочет подключиться снова из-за ошибок.
socket.id
Изображение: http://prntscr.com/jq82ib <- консоль сервера слева </p>
Эти журналы напечатаны только для одного подключения.
Ваши настройки apache должны быть изменены следующим образом.
<VirtualHost *:443> ServerName mysite.com ServerAlias www.mysite.com SSLEngine on SSLProxyEngine On ProxyRequests Off SSLCertificateFile /etc/apache2/ssl/mysite.com.crt SSLCertificateKeyFile /etc/apache2/ssl/mysite.com.key SSLCertificateChainFile /etc/apache2/ssl/ca.cer DocumentRoot /var/www/errorPages ErrorDocument 503 /503.html ProxyPass /503.html ! ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ RewriteEngine on RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC] RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC] RewriteRule .* ws://localhost:3000%{REQUEST_URI} [P] </VirtualHost>