BLOG

Apuntes de Apache para Velneo vModApache V7

Por [N4] fgutierrez.velneo el | 1 Comment

The Apache Software Foundation

Estos son unos apuntes de iniciación pensados desde el ámbito de Velneo V7, y fruto de las investigaciones para la solución de soportes de nuestros suscriptores.

A aquellos que sean expertos en la implantación de aplicaciones web con el famoso y potente servidor Apache, este artículo puede saberles poco.

Pero pensamos que pueden ser muy prácticos para aquellos que comienzan a trabajar con Apache integrado con Velneo V7.

Primero, algo de teoría

El concepto de módulo de Velneo vModApache V7 dentro de la arquitectura de una página web le otorga el papel de suministrar la información necesaria, los datos, al servidor Apache para que éste se encargue de la gestión web, de la interacción con los clientes navegadores, crear y mostrar las páginas web haciendo uso de la información suministrada.

Pero el servidor Apache también asumirá la carga de trabajo resultante de las conexiones, aprovechando toda la potencia de éste y sus funcionalidades de gestión de memoria y caché, etc. , de forma que libera al servidor de Velneo V7 de todo ello.

Además, el servidor Apache se encargará de gestionar las conexiones y el control de acceso, sirviendo de front-end de nuestro servidor, siendo la cara visible que permite no exponer nuestro servidor Velneo vServer V7.

Por ello, el servidor Apache no sólo es el encargado de mostrar la web, si no que tiene una tarea muy importante en el soporte de la carga y la seguridad, aislando de forma muy importante nuestro servidor Velneo vServer V7.

Ahora, algo de práctica

Estos apuntes nos permitirán comprobar la potencia y sencillez de Apache, que podremos ver y aprovechar en cuestiones tan sencillas como las que veremos a continuación: la reescritura de URL’s amigables, o más complejas como el control de descargas.

URL’s amigables

Para hacer más legibles y amigables nuestras URL’s podemos hacer uso del módulo ReWrite.

Para activarlo, basta descomentar la línea correspondiente al módulo en el fichero de configuración httpd.conf:

LoadModule rewrite_module modules/mod_rewrite.so

Para usarlo debemos incluir las reglas, por ejemplo, en la definición de VirtualHost en el fichero httpd.conf (<VirtualHost></Virtualhost>), anque puede usarse en más sitios.

Este módulo permite establecer condiciones y reglas de reescritura de las URL, y lo usaremos precisamente para hacerlas más legibles y amigables:

RewriteEngine on
# Reescribe la url para que sea legible y amigable
# http://dominio.dom/facturacion/entidad.html -> http://dominio.dom/facturacion.pro?empresa=entidad
RewriteRule ^facturacion/(.*).html$ /facturacion.pro?empresa=$1 [PT]

La regla que establecemos tiene:

  • Un patrón (^facturacion/(.*).html$), que buscará en la URL procesada y que debemos definir por medio de expresiones regulares.
  • La salida, que sustituirá a la URL original (/facturacion.pro?empresa=$1) y que podrá hacer uso de valores obtenidos del patrón ($1)
  • Y un flag que especifica el comportamiento de la regla ([PT])

De esta forma, si accedemos a la url http://domino.com/facturacion/velneo.html, accederemos realmente a la página http://dominio.com/facturacion.pro?empresa=velneo, cuya URL era algo menos legible y amigable.

Si queremos una url amigable para las imágenes:

RewriteEngine on
# Reescribe la url
# http://dominio.dom/imagen/00000.jpg -> http://dominio.dom/obj/proyecto_dat/TABLA/JPG00000.jpg
RewriteRule ^/imagen/(.*).jpg$ /obj/proyecto_dat/TABLA/JPG$1.jpg [PT]

En este caso, una imagen con la url http://dominio.dom/imagen/00000.jpg será lo único que el usuario vea, ocultando la menos legible URL: http://dominio.dom/obj/proyecto_dat/TABLA/JPG00000.jpg

Cuando usamos el módulo ReWrite, si queremos que el resultado sea procesado por el módulo Velneo vModApache V7, debemos indicarlo con el flag [PT], si no, irá a buscarlo a disco, donde no lo encontrará. Si usamos el flag de redireccionamiento [R] también será de nuevo procesado por el módulo, pero en ese caso hay una redirección real y nos mostrará la nueva URL si ha sido modificada.

Control de acceso

Otro ejemplo sencillo: una forma simple de evitar que las imágenes sean descargadas si no se llaman desde una página del dominio, es decir, si no se muestran como resultado de un enlace en el propio dominio. Esta es una de las opciones más usadas para prevenir el efecto derivado de Hotlinks, evitando además la descarga directa de las imágenes. Este es el ejemplo:

# Deniega el acceso a las imágenes si no se llaman desde una página del dominio (Bad request)
RewriteCond %{HTTP_REFERER} !^http://(.+.)?dominio.net.*$ [NC]
RewriteRule .*.(jpg|jpeg|gif|png|bmp)$ [NC,F]

En este caso establecemos una condición (RewriteCond ) para que se aplique en la regla de reescritura que se define a continuación: que el dominio desde el que referenciamos sea el deseado. Y en la condición usamos una de las muchas variables del servidor (HTTP_REFERER) que pueden ser tan útiles como en este caso.

El módulo ReWrite permite establecer todas las condiciones que se precisen, permitiendo comprobaciones de patrones, cálculos e incluso la ejecución de scripts en los que delegemos el cálculo de la URL para algoritmos más complejos, cálculo de hash, conexiones TCP, etc.

Conclusión

Estos son sólo unos pocos apuntes sobre uno de los numerosos módulos de los que dispone Apache, es decir, un pequeñísimo bosquejo de alguna de sus muchas funcionalidades, así que podemos imaginar la potencia y funcionalidad de la que nos podemos aprovechar haciendo uso de este famoso servidor web por medio de Velneo vModApache V7.

Recomendaciones

Aprovechamos para recomendarte el uso de un lenguaje de programación para web, como por ejemplo PHP. Esto además de facilitarte la creación de páginas web, te ayudará a hacer más sencilla la integración de Velneo V7 con Apache, haciendo uso al tiempo de las funcionalidades que el lenguaje para web elegido te aporte.

 

Unos enlaces que te pueden interesar

Documentación de Apache

Documentación de ReWrite

Otra información sobre módulos que puede resultar interesante

Ejemplos de uso de mod_rewrite

Velneo es el entorno ágil para el desarrollo
de aplicaciones empresariales

DESCARGAR VELNEO

One Response to "Apuntes de Apache para Velneo vModApache V7"
  1. [N4] huntergps79.yahoo dice:

    Muy buena información.. se agradece

Deja un comentario

Esta web utiliza cookies. Si continúa navegando acepta dichas cookies y nuestra política de cookies. Gracias. ACEPTAR

Aviso de cookies