Laravel Herd环境中Laravel Reverb启用HTTPS时出现cURL HTTP/0.9错误求助
看起来你在Laravel Herd开发环境中配置Laravel Reverb启用HTTPS时遇到了棘手的cURL错误,我来帮你梳理下可能的解决思路!
首先还原下你遇到的错误信息:
GuzzleHttp\Exception\RequestException: cURL error 1: Received HTTP/0.9 when not allowed for http://127.0.0.1:8080/apps/local/events?auth_key=local-key&auth_timestamp=1756475569&auth_version=1.0&body_md5=baf98ab9765fdd4ce6328183d1646a5a&auth_signature=2828b9b5b9db7af8f931e42c37b138a9456babfa1ae0df72cb5d395e03a05b40 in /Users/chris/Herd/utility.com/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:278
你的.env相关变量配置:
REVERB_APP_ID=local REVERB_APP_KEY=local-key REVERB_APP_SECRET=local-secret REVERB_PORT=443 REVERB_HOST=utility.com.test REVERB_SCHEME=https
问题分析
这个错误的核心是:你的请求期望HTTPS响应,但实际收到了HTTP/0.9格式的响应(通常是请求到了不支持HTTPS的服务端,或者端口/协议配置不匹配)。既然HTTP模式下正常,说明Reverb的基础功能没问题,问题出在HTTPS的配置衔接上——特别是Laravel Herd的SSL代理和Reverb自身配置的匹配。
可能的解决步骤
调整Reverb的端口配置
Laravel Herd本身会在443端口处理HTTPS请求,然后反向代理到你的Laravel应用和Reverb服务。如果Reverb本身并没有直接在443端口启用SSL(默认Reverb是在8080端口跑HTTP),那你设置REVERB_PORT=443就会导致请求直接打到Herd的Nginx,而不是Reverb服务,从而返回不符合预期的响应。
建议把REVERB_PORT改回Reverb实际监听的HTTP端口(比如默认的8080),让Herd的HTTPS代理来转发请求到Reverb的HTTP端口,这样REVERB_SCHEME=https和REVERB_HOST=utility.com.test的配置就能正常工作。验证Reverb的TLS配置
打开config/reverb.php文件,检查tls配置项:如果是通过Herd代理处理SSL,Reverb本身不需要启用TLS,所以确保tls设置为false(或者关联的REVERB_TLS环境变量设为false)。如果强制让Reverb启用TLS,你需要为本地环境配置SSL证书,这在Herd环境下通常没必要,因为Herd已经帮你处理了。测试端点的可访问性
用curl命令直接测试HTTPS端点,看看实际响应:curl -v https://utility.com.test/apps/local/events?auth_key=local-key&auth_timestamp=1756475569&auth_version=1.0&body_md5=baf98ab9765fdd4ce6328183d1646a5a&auth_signature=2828b9b5b9db7af8f931e42c37b138a9456babfa1ae0df72cb5d395e03a05b40同时对比HTTP端点的响应:
curl -v http://127.0.0.1:8080/apps/local/events?auth_key=local-key&auth_timestamp=1756475569&auth_version=1.0&body_md5=baf98ab9765fdd4ce6328183d1646a5a&auth_signature=2828b9b5b9db7af8f931e42c37b138a9456babfa1ae0df72cb5d395e03a05b40从响应中可以确认HTTPS请求是否真的转发到了Reverb服务,还是被其他服务拦截了。
确认Herd的域名配置
确保utility.com.test已经在Laravel Herd中正确配置,并且可以通过HTTPS正常访问你的Laravel应用(比如访问https://utility.com.test能看到应用页面)。如果Herd的SSL配置有问题,也会导致转发Reverb请求时出现异常。
内容来源于stack exchange

