Cargando



Nginx - Módulo Rewrite

En este tutorial vamos a ver como Nginx maneja el módulo Rewrite y algunas de las diferentes opciones que tenemos disponibles.


may 25 2014 00:46
Profesional
may 27 2014 09:27
Nginx tiene una fortaleza bastante pronunciada en su infraestructura y es que es modular, esto permite que cada sección del servidor sea configurada de una forma que se ajuste a nuestras necesidades, por ello cuando queremos hablar de una sección en específico generalmente utilizamos los módulos.

En este caso nos toca hablar del módulo Rewrite, este permite que podamos manipular la forma en que el usuario escribe las peticiones en la URL de su navegador para que Nginx sepa como las va a traducir a la aplicación que la espera.

Módulo Rewrite

Cuando hablamos del módulo Rewrite nos referimos a un módulo que va más allá de ser simplemente un set o un conjunto de directivas, ya que la configuración que alcancemos en él hará que nuestra aplicación trate de forma diferente los datos recibidos por el usuario.

En Apache podemos lograr un resultado similar utilizando el archivo .htaccess sin embargo es un poco engorroso ya que tenemos que crear un archivo por cada site que este en nuestro servidor. En Nginx la configuración se lleva a cabo dentro del mismo bloque server donde especificamos los detalles del site.

Utilidad
La utilidad del módulo Rewrite recae en que podemos manipular las peticiones a nuestra página, así en vez de tener múltiples parámetros por GET, podemos transformar nuestra URL en algo más legible para el usuario y los motores de búsqueda, sin embargo nuestra aplicación las seguirá procesando normalmente.


Expresiones Regulares, la forma de control

Una vez que ya tenemos digerido lo que hace este módulo, tal vez queremos saber cómo lo hace y es muy simple, utilizando expresiones regulares, con ello podemos establecer patrones para que nuestro servidor capture los datos y de esa forma podremos enviarlo a nuestra aplicación.

Las expresiones regulares que utiliza Nginx son las compatibles con la librería PCRE por lo que si necesitamos ayuda con algún patrón o tenemos alguna duda encontraremos documentación bastante completa en la red.

Ejemplo Práctico

Veamos ahora en la siguiente imagen un extracto de un archivo de configuración donde hemos establecido una regla para el módulo Rewrite:

nginx_mod_rewrite.jpg


Aquí lo que hacemos es bastante sencillo, primero establecemos el nombre de nuestro servidor, luego le decimos donde está el directorio raíz del cual traeremos los archivos solicitados, acto siguiente pasamos a definir los bloques location, en el primero decimos que la ruta /storage/ es un elemento que es un alias de una ruta dentro del equipo.

Importante
Pero lo interesante viene en el segundo bloque location, aquí establecemos un location documents y dentro hacemos un rewrite y le decimos que todo lo que venga por esa petición y tenga un argumento más lo vamos a enviar a la ruta /storage/ y le pasaremos el argumento recibido.


Así cuando hagamos la siguiente petición por URL website.com/documents/archivo.txt realmente Nginx buscará en la carpeta storage en su lugar.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X