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.
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:
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.
Así cuando hagamos la siguiente petición por URL website.com/documents/archivo.txt realmente Nginx buscará en la carpeta storage en su lugar.