>在負載平衡器或反向代理後面部署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中文網其他相關文章!