如何解决带有 ProxyPass 的 Laravel Echo Server 和 Socket.io 不起作用
我有一个使用 Laravel 8 和 PHP 7.4 的应用程序。我使用 Laravel 广播向带有 Redis、Laravel Echo Server 和 Socket.io 的客户端发送通知。一切正常,但我需要在我的公共服务器中使用 ProxyPass 来制作它,但我无法让它工作。 没有 ProxyPass,一切正常,我有带 SSL 的 Laravel Echo Server,客户端与 WSS 连接并工作,但不能与 ProxyPass。
我的 Laravel Echo Server 在端口 6001 上运行。不幸的是,Firefox 说它无法连接到...
wss://XXXX.net/socket.io/? EIO=3&transport=websocket。
laravel-echo-server.json
{
"authHost": "https://10.16.16.41:10081","authEndpoint": "/broadcasting/auth","clients": [],"database": "redis","databaseConfig": {
"redis": {
"host": "10.16.16.41","port": "10087"
},"sqlite": {
"databasePath": "/database/laravel-echo-server.sqlite"
}
},"devMode": true,"host": null,"port": "6001","protocol": "https","socketio": {},"secureOptions": 67108864,"sslCertPath": "/etc/ssl/certs/AlphaSSL__.XXXXX.net.pem","sslKeyPath": "/etc/ssl/private/AlphaSSL__.XXXXX.net.key","sslCertChainPath": "","sslPassphrase": "","subscribers": {
"http": false,"redis": true
},"apiOriginAllow": {
"allowCors": true,"allowOrigin": "*","allowMethods": "GET,POST","allowHeaders": "Origin,Content-Type,X-Auth-Token,X-Requeste>
}
}
Laravel 中的 bootstrap.js
import Echo from 'laravel-echo'
window.Echo = new Echo({
broadcaster: 'socket.io',host: `${window.location.hostname}`,transports: ['websocket']
});
Apache 站点配置
<VirtualHost *:443>
ServerName devnew.app.XXXXX.net
DocumentRoot /var/www/app/public
<Directory /var/www/app>
AllowOverride All
</Directory>
ErrorLog /error.log
CustomLog /access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/AlphaSSL__.XXXXX.net.pem
SSLCertificateKeyFile /etc/ssl/private/AlphaSSL__.XXXXX.net.key
ProxyRequests off
ProxyVia on
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/socket.io [NC]
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule /(.*) ws://localhost:6001/$1 [P,L]
ProxyPass /socket.io http://127.0.0.1:6001/socket.io
ProxyPassReverse /socket.io http://127.0.0.1:6001/socket.io
</VirtualHost>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。