You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bitnami Laravel9在HAProxy后配置TrustedProxies仍报混合内容错误

问题原因

配置不生效存在两个核心问题:

  1. 你编写的TrustProxies中间件$headers属性格式错误。Laravel 9版本中该属性要求传入位掩码整数值,你自定义的关联数组写法无法被中间件正确解析,根本读取不到反向代理传递的X-Forwarded-Proto头,自然无法识别当前请求为HTTPS协议。你注释掉的那段位掩码组合写法才是官方要求的正确格式。
  2. Bitnami提供的Laravel镜像做了默认逻辑定制,会优先读取容器内TRUSTED_PROXIES环境变量加载可信代理列表,直接修改代码中$proxies属性的值不会被镜像的默认逻辑识别。
修复步骤
  • 修正app/Http/Middleware/TrustProxies.php配置,将$headers改回官方要求的位掩码格式,$proxies可设为*信任所有内网反向代理(内网部署场景无安全风险,若需严格控制可替换为HAProxy的实际内网IP),正确代码如下:
<?php

namespace App\Http\Middleware;

use Illuminate\Http\Middleware\TrustProxies as Middleware;
use Illuminate\Http\Request;

class TrustProxies extends Middleware
{
    /**
     * The trusted proxies for this application.
     *
     * @var array<int, string>|string|null
     */
    protected $proxies = '*';

    /**
     * The headers that should be used to detect proxies.
     *
     * @var int
     */
    protected $headers =
        Request::HEADER_X_FORWARDED_FOR |
        Request::HEADER_X_FORWARDED_HOST |
        Request::HEADER_X_FORWARDED_PORT |
        Request::HEADER_X_FORWARDED_PROTO |
        Request::HEADER_X_FORWARDED_AWS_ELB;
}
  • 给Bitnami Laravel容器添加环境变量,适配镜像的默认配置逻辑,在docker-compose.yml的服务environment段或者docker run启动参数中添加:
TRUSTED_PROXIES=*

如果需要做严格的访问控制,可将*替换为HAProxy实际的内网IP,例如你之前填写的10.0.0.2。

  • 确认HAProxy后端配置正确携带标准转发头,可参考如下配置片段:
backend laravel_service
    server laravel_node1 <你的Laravel容器内网IP>:8000 check
    http-request set-header X-Forwarded-Proto https if { ssl_fc }
    http-request set-header X-Forwarded-Port %[dst_port]
    http-request set-header X-Forwarded-Host %[req.hdr(Host)]
  • 清除Laravel缓存避免旧配置残留,进入容器执行如下命令:
php artisan config:clear
php artisan route:clear
php artisan view:clear
效果验证

完成上述配置后刷新页面,asset()辅助函数会自动识别反向代理传递的HTTPS协议标识,生成https://开头的静态资源链接,混合内容报错会直接消失。该方案完全遵循Laravel官方的可信代理标准逻辑,不需要替换secure_asset()函数,也不需要针对不同环境编写额外判断代码。

内容的提问来源于stack exchange,提问作者Adam Winter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 16:54:08