Laravel-echo-server 无法使用 https 协议启动生产
Posted
技术标签:
【中文标题】Laravel-echo-server 无法使用 https 协议启动生产【英文标题】:Laravel-echo-server failed to start in production with https protocol 【发布时间】:2019-09-13 09:32:55 【问题描述】:我在 digitalocean 中托管了我的项目。我正在使用 laravel echo 服务器,它在 http 上运行良好,但是当我设置了letsencrypt 时,laravel echo 服务器无法启动。
这里是 laravel echo 服务器配置。
"authHost": "https://example.com/api/",
"authEndpoint": "/broadcasting/auth",
"clients": [
"appId": "86f96c2b2ca85e8a",
"key": "0e917607d0910b9e2670d281a0e2b254"
],
"database": "redis",
"databaseConfig":
"redis": ,
"sqlite":
"databasePath": "/database/laravel-echo-server.sqlite"
,
"devMode": true,
"host": null,
"port": "6001",
"protocol": "https",
"socketio": ,
"sslCertPath": "/etc/letsencrypt/csr/0000_csr-certbot.pem",
"sslKeyPath": "/etc/letsencrypt/keys/0000_key-certbot.pem",
"sslCertChainPath": "",
"sslPassphrase": "",
"subscribers":
"http": true,
"redis": true
,
"apiOriginAllow":
"allowCors": true,
"allowOrigin": "http://localhost:80",
"allowMethods": "GET, POST",
"allowHeaders": "Origin, Content-Type, X-Auth-Token, X-Requested-With, Accept, Authorization, X-CSRF-TOKEN, X-Socket-Id"
我希望 laravel echo 服务器能够启动并监听事件,但无法启动并显示此错误。
L A R A V E L E C H O S E R V E R
version 1.5.0
⚠ Starting server in DEV mode...
(node:22827) UnhandledPromiseRejectionWarning: Error: error:0909006C:PEM routines:get_name:no start line
at Object.createSecureContext (_tls_common.js:136:17)
at Server (_tls_wrap.js:870:27)
at new Server (https.js:62:14)
at Object.createServer (https.js:85:10)
at Server.httpServer (/usr/local/lib/node_modules/laravel-echo-server/dist/server.js:60:36)
at /usr/local/lib/node_modules/laravel-echo-server/dist/server.js:34:35
at process._tickCallback (internal/process/next_tick.js:68:7)
(node:22827) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:22827) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
【问题讨论】:
【参考方案1】:我在生产环境中运行 Laravel Echo 服务器时遇到了完全相同的问题。
尝试对 laravel-echo-server.json 文件进行以下更改:
"sslCertPath": "/etc/nginx/ssl/YOURPROJECT/601901/server.crt",
"sslKeyPath": "/etc/nginx/ssl/YOURPROJECT/601901/server.key",
使用您的域更新 YOURPROJECT。如果你使用 Laravel Forge,这应该可以解决问题。
【讨论】:
以上是关于Laravel-echo-server 无法使用 https 协议启动生产的主要内容,如果未能解决你的问题,请参考以下文章
laravel-echo-server 用户未加入,未订阅套接字服务器
使用 Laravel Echo、laravel-echo-server 和 socket.io 广播将不起作用
Laravel 事件广播没有被拾取 laravel-echo-server
Socket.io 在带有 redis 和 Laravel-echo-server 的 Web 浏览器 chrome 中没有显示任何内容
在 laravel-echo-server 中找不到模块“node-v46-linux-x64/node_sqlite3.node”错误