codecamp

Laravel 8 配置可信代理

如果你的应用程序运行在失效的 TLS / SSL 证书的负载均衡器后,你可能会注意到你的应用程序有时不能生成 HTTPS 链接。通常这是因为你的应用程序正在从端口 80 上的负载均衡器转发流量,却不知道是否应该生成安全链接。

解决这个问题需要在 Laravel 应用程序中包含 App\Http\Middleware\TrustProxies 中间件,这使得你可以快速自定义应用程序信任的负载均衡器或代理。你的可信代理应该作为这个中间件的 $proxies 属性的数组列出。除了配置受信任的代理之外,还可以配置应该信任的代理 $header

<?php

namespace App\Http\Middleware;

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

class TrustProxies extends Middleware
{
    /**
     * 此应用的信任代理
     *
     * @var string|array
     */
    protected $proxies = [
        '192.168.1.1',
        '192.168.1.2',
    ];

    /**
     * 应被用于侦测代理的headers配置
     *
     * @var int
     */
    protected $headers = Request::HEADER_X_FORWARDED_ALL;
}

技巧:如果你使用 AWS 弹性负载平衡,你的 $header 值应该是 Request::HEADER_X_FORWARDED_AWS_ELB。如果您想查看更多可用于 $headers 的属性信息,请查阅 Symfony 的文档 信任代理


Laravel 8 存储上传文件
Laravel 8 信任所有代理
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Laravel 8 入门指南

Laravel 8 基础功能

Laravel 8 前端开发

Laravel 8 安全相关

Laravel 8 综合话题

数据库

Eloquent ORM

测试相关

官方拓展包

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }