PHP websocket на SSL с proxy_wsTunnel – Apache

У меня запущен сервер php websocket, но я хочу подключиться к нему через https. Это мой JS: var conn = new WebSocket('wss://81.169.228.159:3671/wss2');

И это моя конфигурация apache:

ProxyPass /wss2/ ws://domain:3671/

У меня есть proxy и proxy_wstunnel .

Итак, что я делаю неправильно?

ЖУРНАЛ ОШИБОК:

 [Mon Mar 13 04:38:04.228450 2017] [mpm_prefork:notice] [pid 6683] AH00163: Apache/2.4.18 (Ubuntu) OpenSSL/1.0.2g configured -- resuming normal operations [Mon Mar 13 04:38:04.228471 2017] [core:notice] [pid 6683] AH00094: Command line: '/usr/sbin/apache2' [Mon Mar 13 12:42:39.475641 2017] [:error] [pid 12432] [client 195.169.9.201:8546] script '/var/www/html/luukwuijster.io/phpinfo.php' not found or unable to stat [Mon Mar 13 12:56:25.370986 2017] [mpm_prefork:notice] [pid 6683] AH00169: caught SIGTERM, shutting down [Mon Mar 13 12:56:26.539948 2017] [mpm_prefork:notice] [pid 26932] AH00163: Apache/2.4.18 (Ubuntu) OpenSSL/1.0.2g configured -- resuming normal operations [Mon Mar 13 12:56:26.539972 2017] [core:notice] [pid 26932] AH00094: Command line: '/usr/sbin/apache2' [Mon Mar 13 13:06:36.280229 2017] [mpm_prefork:notice] [pid 26932] AH00169: caught SIGTERM, shutting down [Mon Mar 13 13:06:37.473220 2017] [mpm_prefork:notice] [pid 27256] AH00163: Apache/2.4.18 (Ubuntu) OpenSSL/1.0.2g configured -- resuming normal operations [Mon Mar 13 13:06:37.473248 2017] [core:notice] [pid 27256] AH00094: Command line: '/usr/sbin/apache2' [Mon Mar 13 13:19:52.144983 2017] [mpm_prefork:notice] [pid 27256] AH00169: caught SIGTERM, shutting down [Mon Mar 13 13:19:53.235045 2017] [mpm_prefork:notice] [pid 27775] AH00163: Apache/2.4.18 (Ubuntu) OpenSSL/1.0.2g configured -- resuming normal operations [Mon Mar 13 13:19:53.235083 2017] [core:notice] [pid 27775] AH00094: Command line: '/usr/sbin/apache2' [Mon Mar 13 13:22:21.467607 2017] [mpm_prefork:notice] [pid 27775] AH00169: caught SIGTERM, shutting down [Mon Mar 13 13:22:22.618416 2017] [mpm_prefork:notice] [pid 27911] AH00163: Apache/2.4.18 (Ubuntu) OpenSSL/1.0.2g configured -- resuming normal operations [Mon Mar 13 13:22:22.618455 2017] [core:notice] [pid 27911] AH00094: Command line: '/usr/sbin/apache2' [Mon Mar 13 13:28:08.356148 2017] [mpm_prefork:notice] [pid 27911] AH00169: caught SIGTERM, shutting down [Mon Mar 13 13:28:09.546926 2017] [mpm_prefork:notice] [pid 28540] AH00163: Apache/2.4.18 (Ubuntu) OpenSSL/1.0.2g configured -- resuming normal operations [Mon Mar 13 13:28:09.546964 2017] [core:notice] [pid 28540] AH00094: Command line: '/usr/sbin/apache2' [Mon Mar 13 13:35:26.856446 2017] [mpm_prefork:notice] [pid 28540] AH00169: caught SIGTERM, shutting down [Mon Mar 13 13:35:28.532498 2017] [mpm_prefork:notice] [pid 29153] AH00163: Apache/2.4.18 (Ubuntu) OpenSSL/1.0.2g configured -- resuming normal operations [Mon Mar 13 13:35:28.532541 2017] [core:notice] [pid 29153] AH00094: Command line: '/usr/sbin/apache2' [Mon Mar 13 13:46:19.084561 2017] [ssl:error] [pid 29170] [client 208.93.152.93:54712] AH02042: rejecting client initiated renegotiation [Mon Mar 13 13:57:14.410892 2017] [mpm_prefork:notice] [pid 29153] AH00169: caught SIGTERM, shutting down [Mon Mar 13 13:57:16.465381 2017] [mpm_prefork:notice] [pid 29927] AH00163: Apache/2.4.18 (Ubuntu) OpenSSL/1.0.2g configured -- resuming normal operations [Mon Mar 13 13:57:16.465424 2017] [core:notice] [pid 29927] AH00094: Command line: '/usr/sbin/apache2' [Mon Mar 13 14:00:03.312882 2017] [:error] [pid 29936] [client 81.169.228.159:33706] PHP Notice: Undefined index: text in /var/www/html/luukwuijster.io/slack/cronofy/huiswerk.php on line 9 

Я предполагаю, что у вас есть React\Socket\Server прослушивающий порт 8080 (aka php push-server.php ). Учебник по храповому сайту должен довести вас до этого момента.

Я также предполагаю, что вы уже настроили и загрузили модули apache proxy и proxy_wstunnel как указано в вопросе.


Ниже приведена конфигурация, которую я лично использую для создания соединения WebSocket.

Я использую /ws/ вместо /wss2/ упомянутого в учебнике, для лучшего URL-адреса. Не стесняйтесь при необходимости настраивать конфигурацию.

Конфигурация Apache

 #SSL (Secure) <VirtualHost *:443> DocumentRoot /FILE_PATH_TO_WEBROOT ServerName local.sitename.com ServerAlias local.sitename.com <Directory /FILE_PATH_TO_WEBROOT> Options FollowSymLinks AllowOverride all php_flag display_errors On Require all granted </Directory> SSLCertificateFile /etc/httpd/ssl/.crt SSLCertificateKeyFile /etc/httpd/ssl/.key ProxyRequests Off ProxyPass "/ws/" "ws://local.sitename.com:8080/" </VirtualHost> #NON-SSL (Insecure) <VirtualHost *:80> DocumentRoot /FILE_PATH_TO_WEBROOT ServerName local.sitename.com ServerAlias local.sitename.com <Directory /FILE_PATH_TO_WEBROOT> Options FollowSymLinks AllowOverride all php_flag display_errors On Require all granted </Directory> ProxyRequests Off ProxyPass "/ws/" "ws://local.sitename.com:8080/" </VirtualHost> 

Безопасное соединение сокетов для JavaScript

 var conn = new WebSocket('wss://local.sitename.com/ws/'); 

Небезопасное соединение с разъемом JavaScript

 var conn = new WebSocket('ws://local.sitename.com/ws/');