Apache con hosts virtuales

En este artículo comenzamos a agregarle funcionalidad a nuestro servidor web Apache, se recomienda leer el artículo de instalación de Apache con soporte para SSL. Para iniciar, vamos a crear la estructura para alojar de forma ordenada los diferentes sitios.

Con el siguiente comando la hacemos de una sola vez.

mkdir -p /var/www/prueba/{cgi-bin,html,logs,etc,var}

De esta forma quedan creados dentro de la carpeta prueba cuatro directorios que luego albergaran los archivos necesarios, dentro del directorio ../html pondremos el index.html que es la página que se carga al inicio cuando escribimos la url de nuestra página.

El archivo de configuración para los diferentes sitios estarán en /etc/httpd/conf.d/, en este caso /etc/httpd/conf.d/prueba.conf, luego debemos crear uno para cada dominio por separado. Este tiene la configuración de los hosts virtuales con soporte para SSL.  Suponiendo que nuestro servidor web tiene IP 192.168.1.10, este es un ejemplo del contenido del archivo, teniendo en cuenta que lo que se pretende es con una sola IP alojar varios dominios distintos.

NameVirtualHost 192.168.1.10:80

ServerAdmin admin@prueba.com.uy
DocumentRoot /var/www/prueba/html
ServerName www.prueba.com.uy
ServerAlias prueba.com.uy
Redirect 301 / https://www.prueba.com.uy/
CustomLog /var/www/ prueba/logs/access_log combined
Errorlog /var/www/prueba/logs/error_log

NameVirtualHost 192.168.1.10:443

ServerAdmin admin@prueba.com.uy
DocumentRoot /var/www/prueba/html
ServerName www.prueba.com.uy
ScriptAlias /cgi-bin/ /var/www/prueba/cgi-bin/
SSLEngine on
SSLCertificateFile /etc/ssl/prueba/prueba.crt
SSLCertificateKeyFile /etc/ssl/prueba/prueba.pem
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
CustomLog /var/www/prueba/logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r"\ %b"
CustomLog /var/www/prueba/logs/ssl_access_log combined
Errorlog /var/www/prueba/logs/ssl_error_log

Luego debemos reiniciar Apache para que surtan efecto los cambios realizados.

service httpd restart

Para probar si todo está funcionando, digitamos en la url de nuestro navegador http://prueba.com.uy, luego automaticamente se redirigira nuestra consulta a https://prueba.com.uy

Esto es posible si ya se tiene un servidor DNS, configurado en nuestra lan, de lo contrario debemos sustituir el nombre del dominio por la IP del equipo en este caso será http://192.168.1.10

Si repetimos el proceso y sustituimos la palabra prueba por intranet, y tenemos el DNS correctamente configurado, podemos digitar luego en la url http://intranet.com.uy, y obtener una respuesta positiva. De esta forma tenemos varios dominios en un mismo servidor con una sola dirección IP.

Espero que este artículo les sea de utilidad y si tienen dudas envíenlas.

3 thoughts on “Apache con hosts virtuales

  1. Buen tutorial, estoy investigando sobre hostings virtuales y necesito configurar mi servidor para una intranet.. lo unico es que el ip que se le asigna al servidor es dinamico dhcp. En ese caso como podria proceder a realizar la configuracion? quizas sea una muy trivial mi pregunta pero soy muy nuevo en todo esto.

    de antemano gracias

  2. Hola Rodrigo, por lo que veo la solución no es trivial ya que el problema es hacer que los equipos que tienes en la intranet sepan a que equipo enviar las consultas de las paginas. La solución que se me ocurre es que puedas idear algún mecanismo que actualice la información del dns. En el caso que tengas el dhcp y dns en el mismo equipo creo que es bastante rápida la actualización, pero si están en equipos separados va a depender de la velocidad de la red y en ese instante puede quedar inaccesible el servidor web.
    Espero haber entendido tu pregunta y que la respuesta sea de ayuda.
    Saludos

Comments are closed.