Maison >développement back-end >tutoriel php >Gestion de la confiance proxy dans les applications Laravel
Déployer les applications Laravel derrière des équilibreurs de charge ou des proxys inversés nécessite une configuration minutieuse du middleware TrustProxies
pour gérer avec précision les données client et la détection HTTPS. Cela garantit correctement que votre application fonctionne correctement dans ces environnements.
Voici un exemple de base de la configuration du middleware:
use Illuminate\Http\Request; // Basic proxy configuration ->withMiddleware(function (Middleware $middleware) { $middleware->trustProxies(at: [ '10.0.0.0/8', '172.16.0.0/12' ]); });
Examinons un exemple plus robuste adapté à différents environnements cloud:
<?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 ); } });
Cette approche ajuste dynamiquement le middleware TrustProxies
en fonction de la variable d'environnement de l'application (APP_ENV
). Cela garantit une gestion précise des informations des clients, que l'application fonctionne localement, sur AWS, Digital Ocean ou une autre plate-forme. La configuration correcte de ce middleware est cruciale pour le fonctionnement fiable des applications Laravel déployées derrière les proxys.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!