如果网络服务器未安装加密层,则Laravel 5.7不会生成HTTPS路由

时间:2018-09-26 12:18:46

标签: laravel ssl laravel-5 laravel-middleware laravel-5.7

当前服务器设置如下。

具有nginx反向代理的服务器,该代理指向多个Docker容器。 我们的Laravel 5.7应用程序在具有nginx + php7.2 FPM的这些容器之一中运行

泊坞窗内的Web服务器应将不安全响应传递给反向代理,以使其在外层安全。

容器化的Web服务器侦听80。

Laravel生成的所有URL均为HTTP,即使该协议在config / app.php APP_URL设置中明确指定为HTTPS。

我还尝试了其他一些技巧,简化中间件等,但是似乎都无效。

有什么主意吗?

2 个答案:

答案 0 :(得分:2)

例如,您应在$proxies中间件https://github.com/laravel/laravel/blob/master/app/Http/Middleware/TrustProxies.php中填充TrustProxies属性:

protected $proxies = [
  'ip1',
   'ip2',
];

您可以在Configure Trusted proxies section

中了解更多信息

答案 1 :(得分:1)

设法使用TrustProxies并修改nginx配置。如果将来对某人有帮助,我将在此处保留相应的代理设置:

proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header   X-Forwarded-Host $server_name;
proxy_set_header   X-FORWARDED-PROTO https;