首頁 >後端開發 >php教程 >在Laravel應用程序中管理代理信任

在Laravel應用程序中管理代理信任

Karen Carpenter
Karen Carpenter原創
2025-03-05 16:46:09490瀏覽

Managing Proxy Trust in Laravel Applications

>在負載平衡器或反向代理後面部署Laravel應用程序需要仔細配置TrustProxies>中間件,以準確管理客戶端數據和HTTPS檢測。 這樣可以確保您的應用程序在這些環境中正常運行。

>

這是配置中間件的基本示例:

use Illuminate\Http\Request;

// Basic proxy configuration
->withMiddleware(function (Middleware $middleware) {
    $middleware->trustProxies(at: [
        '10.0.0.0/8',
        '172.16.0.0/12'
    ]);
});

讓我們檢查一個針對不同雲環境量身定制的更健壯的示例:>

<?php

use Illuminate\Http\Request;

?>

->withMiddleware(function (Middleware $middleware) {
    // Environment-specific proxy configuration
    $environment = env('APP_ENV');

    switch ($environment) {
        case 'production':
            // AWS ELB configuration
            $middleware->trustProxies(
                at: '*',
                headers: Request::HEADER_X_FORWARDED_AWS_ELB
            );
            break;

        case 'staging':
            // Digital Ocean configuration
            $middleware->trustProxies(
                at: '*',
                headers: Request::HEADER_X_FORWARDED_FOR |
                    Request::HEADER_X_FORWARDED_HOST |
                    Request::HEADER_X_FORWARDED_PORT |
                    Request::HEADER_X_FORWARDED_PROTO
            );
            break;

        default:
            // Local/development configuration
            $middleware->trustProxies(
                at: ['127.0.0.1', '::1'],
                headers: Request::HEADER_X_FORWARDED_FOR |
                    Request::HEADER_X_FORWARDED_PROTO
            );
    }
});
此方法基於應用程序的環境變量(

)動態調整TrustProxies中間件。 這可以確保准確地處理客戶信息,而不管應用程序是在本地,AWS,數字海洋還是其他平台上運行的。 此中間件的正確配置對於在代理後面部署的Laravel應用程序的可靠操作至關重要。

以上是在Laravel應用程序中管理代理信任的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn