Php Lumen在反向代理后未检测到https
我在docker容器中的反向代理后面有一个Lumen API,它只在端口80上响应。因此,客户机请求某个域,一切正常 但是如果您想使用Php Lumen在反向代理后未检测到https,php,laravel,ssl,lumen,Php,Laravel,Ssl,Lumen,我在docker容器中的反向代理后面有一个Lumen API,它只在端口80上响应。因此,客户机请求某个域,一切正常 但是如果您想使用Request->secure()检查您是否使用http或https,lumen将返回false(=http)并生成错误的URL 我尝试使用URL::forceScheme(“https”)告诉lumen无论如何都要使用https,但lumen仍然坚持使用http 我不想在容器中安装证书只是为了让lumen相信https 有没有一个地方可以让我将lumen全局配置
Request->secure()
检查您是否使用http或https,lumen将返回false(=http)并生成错误的URL
我尝试使用URL::forceScheme(“https”)
告诉lumen无论如何都要使用https,但lumen仍然坚持使用http
我不想在容器中安装证书只是为了让lumen相信https
有没有一个地方可以让我将lumen全局配置为使用https而不是http
谢谢。谢谢你,普顿。这正是正确的答案。Lumen使用了
Illuminate\Http\Request
,它扩展了Symfony\Component\HttpFoundation
,包括setTrustedProxies
方法
所以我基本上要做的是:
- X_转发_协议=https
- X_主机={HTTP_主机}
- X_为{HTTP_客户端_IP}转发了_
- X_转发_端口={服务器_端口}
对于ssl,添加X_FORWARDED_PROTO=https或X_FORWARDED_PORT=443就足够了,因为这些是secure()方法要查找的值。一旦您添加它们并告诉lumen信任proxy,secure()将返回true。对于Laravel,有一个TrustedProxy.php配置文件,不确定lumen如何处理它