Saltar al contenido

Rutas de Laravel detrás del proxy inverso

Solución:

Me encontré con el mismo (o un problema similar), cuando una aplicación Laravel 5 no sabía que estaba detrás de un equilibrador de carga SSL.

Tengo el siguiente diseño:

  • el cliente habla con un equilibrador de carga SSL a través de HTTPS
  • El equilibrador de carga SSL habla con un servidor back-end a través de HTTP

Sin embargo, eso hace que todas las URL del código HTML se generen con el esquema http: //.

La siguiente es una solución rápida y sucia para que esto funcione, incluido el esquema (http frente a https):

Coloque el siguiente código encima de aplicación / Http / routes.php

En la última versión de laravel, use web / routes.php

$proxy_url    = getenv('PROXY_URL');
$proxy_schema = getenv('PROXY_SCHEMA');

if (!empty($proxy_url)) {
   URL::forceRootUrl($proxy_url);
}

if (!empty($proxy_schema)) {
   URL::forceSchema($proxy_schema);
}

luego agregue la siguiente línea en .env expediente:

PROXY_URL = http://igateway.somedomain.com

Si también necesita cambiar el esquema en el código HTML generado de http: // para https: //, simplemente agregue la siguiente línea también:

PROXY_SCHEMA = https

En la última versión de laravel forceSchema el nombre del método ha cambiado a forceScheme y el código anterior debería verse así:

if (!empty($proxy_schema)) {
    URL::forceScheme($proxy_schema);
}

Ok, lo tengo. Con suerte, esto ayudará a alguien en el futuro.

Parece que Laravel ignora la url propiedad en el configapp.php archivo para solicitudes http (indica que es solo para artesanos), y en su lugar usa HTTP_HOST o SERVER_NAME proporcionado por apache para generar el dominio para las URL.

Para anular esta URL predeterminada, vaya a su routes.php archivo y utilice el siguiente método:

URL::forceRootUrl('http://subdomain.newurl.com');

Esto obligará al generador de URL a utilizar la nueva URL en lugar del valor HTTP_HOST o SERVER_NAME.

Parece que Laravel tiene una solución más conveniente. Verifique la respuesta allí: ¿Cómo configuro SSL con Laravel 5 detrás de un equilibrador de carga (ssl_termination)?

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *