javascript - Laravel-echo-server 无法使用 https 协议启动生产
问题描述
我在 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.
解决方案
尝试在生产中运行 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,这应该可以解决问题。
推荐阅读
- angular - 搜索错误 Angular 12 错误:参数隐含具有“任何”类型
- amazon-web-services - 如何使用 API 网关 WebSocket 进行前后端实时通信
- node.js - Sequelize检查时间是否在数据库中的时间之间
- wordpress - 为订单详细信息上的自定义订单元项目添加编辑输入
- c# - PosPrinter PrintMemoryBitmap 抛出非法异常
- c - C 检查程序是否正在运行(C 程序由任务调度程序启动)
- reactjs - 刷新页面后反应猫头鹰轮播隐藏
- python - 通过apt-get安装模块,无法导入python包
- google-analytics-api - 将用户添加到标准属性和 GA4 属性
- sql - postgresql中的动态列别名