我有基本的聊天应用程序使用棘轮有服务器代码一样
<?php
use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
use MyApp\Socket;
require dirname( __FILE__ ) . '/vendor/autoload.php';
require 'app/socket.php';
$server = IoServer::factory(
new HttpServer(
new WsServer(
new Socket()
)
),
8445
);
$server->run();
我想WebSocket运行在我的域沿着正常的php网站,使配置的Apache虚拟主机像这样
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog /var/www/example.com/public_html/logs/error.log
CustomLog /var/www/example.com/public_html/logs/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com [OR]
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
以及
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
SSLEngine on
ProxyRequests Off
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
DocumentRoot /var/www/example.com/public_html
ErrorLog /var/www/example.com/public_html/logs/error.log
CustomLog /var/www/example.com/public_html/logs/access.log combined
ProxyPass / https://example.com:8445/
ProxyPassReverse / https://example.com:8445/
RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* wss://example.com:8445%{REQUEST_URI} [P]
</VirtualHost>
</IfModule>
我总是得到错误称为500代理错误
[proxy:error] [pid 18645] (20014)Internal error (specific information not available): [client 72.13.X.X:51606] AH01084: pass request body failed to 5.161.X.X:8445 (example.com)
[client 72.13.X.X:51606] AH00898: Error during SSL Handshake with remote server returned by /
[proxy_http:error] [pid 18645] [client 72.13.X.X:51606] AH01097: pass request body failed to 5.161.X.X:8445 (example.com) from 72.13.X.X ()
我正在努力解决这个问题,从过去的许多小时,但我无法使它工作。让我知道,如果有人在这里可以帮助我解决这个难题。谢谢!
1条答案
按热度按时间pkwftd7m1#
使用后端HTTP节点的IPv4地址解决了这个问题。
代替