>在负载平衡器或反向代理后面部署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中文网其他相关文章!