NorfiPC
NorfiPC » Informaciones » VirtualHost en Apache

Usar VirtualHost en Apache para cargar sitios con su nombre de dominio

Como configurar una instalación del servidor Apache, para navegar por varios sitios web offline, sin conexión, desde la computadora usando sus dominios.
Usar VirtualHost en Apache para cargar sitios con su nombre de dominio
Apache nos da la oportunidad de tener un servidor en nuestra computadora, que funcione de forma similar a como lo hace en internet.
Su módulo VirtualHost, ofrece la magia de poder disponer de varios sitios a la vez y de poder navegar por ellos usando sus nombres de dominio y no el tradicional localhost.
En este artículo explico cómo hacerlo posible.



Que es Virtual Host, ventajas de activarlo


Virtual Host es un módulo de Apache que nos permite configurar en el servidor dominios diferentes, para navegar y explorar offline de la misma forma que lo hacemos en internet.
Método ideal y muy útil para desarrolladores o aficionados, que nos permite acceder a sitios cuyo contenido se tenga almacenado en el disco duro del equipo local.
De esa forma podemos tener una copia completa o réplica de sitios para comprobar su funcionamiento antes de subir cualquier archivo nuevo o modificado al servidor en la red.
También podemos tener a mano sitios web completos, en los que buscar información a la que necesitamos acceder con frecuencia, sin tener que conectarnos a la red.
Al introducir en un navegador web la dirección url del sitio deseado, se accederá a él virtualmente, exactamente igual que si fuera navegando en internet.
El método consiste en crear y configurar en Apache varias unidades o host virtuales utilizando el módulo VirtualHost, cada una con el nombre que le corresponde en la red.



Como crear o montar una unidad o host virtual en Apache con Virtual Host


Para crear o montar una o varias unidades o hosts virtuales en una instalación existente de Apache, sigue los siguientes pasos:
1- Si aún no se tiene un servidor Apache funcionando en el equipo, instálalo, sigue las instrucciones de la siguiente página: Como instalar y configurar el servidor web Apache en Windows.
2- Crea una carpeta en el equipo donde estarán los archivos de los sitios web que se quieran utilizar offline.
En este ejemplo hipotético será: C:\web
3- Crea subcarpetas, cada una con los archivos de cada sitio en su interior, deben tener el nombre original del sitio, por ejemplo: C:\web\norfipc.com.
4- Abre el archivo de configuración de Apache "httpd.conf" con el Bloc de notas u otro editor de texto plano, agrégale las siguientes líneas:
NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin norfi-host1.
    DocumentRoot C:/servidor_web
    ServerName localhost
    ServerAlias norfi
    ErrorLog logs/norfi-host.-error_log
    CustomLog logs/norfi-host.-access_log common
</VirtualHost>
Sustituye los siguientes valores:
C:/servidor_web = La carpeta predeterminada del servidor.
norfi = Tu nombre
5- Ahora por cada sitio o unidad virtual a montar agrega las siguientes líneas:
<VirtualHost *:80>
    ServerAdmin norfi-host2.
    DocumentRoot C:/web/norfipc.com
    ServerName norfipc.com
    ErrorLog logs/norfipc-host.-error_log
    CustomLog logs/norfipc-host.-access_log common	
</VirtualHost>

<Directory "C:/web/norfipc.com"> 
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Por cada nueva unidad creada suma uno al valor del parámetro: ServerAdmin norfi-host2, sustituye la ruta en cada caso y el nombre del sitio.
6- Cierra el archivo httpd.conf y guarda los cambios.



Como navegar offline en el sitio, unidad o host virtual creado


Es necesario que cada vez que nos conectemos o desconectemos a la red, cambiar los valores en el archivo hosts, de hacerse manualmente sería tan tedioso que no valdría la pena.
Es algo sencillo si creamos una pequeña aplicación o archivo batch con solo unas líneas de código, que se encargue el al ejecutarlo renombrar dos archivos hosts diferentes para usarlos de forma alterna.
Dichos archivos hosts necesitamos crearlos previamente, uno para emplearlo al estar conectados a internet y otro al encontrarnos offline.

Como alternar entre dos archivos hosts diferentes


Sigue los pasos a continuación:
1- Crea con el Bloc de notas un nuevo archivo de texto en el Escritorio.
Renómbralo a: hosts-internet (sin extensión de archivo)
Agrega en su interior la siguiente linea:
127.0.0.1 localhost
Guarda los cambios.
Cópialo a la carpeta donde se encuentra el archivo hosts original.
Su ubicación es la siguiente: "C:\Windows\system32\Drivers\etc"

2- Crea con el Bloc de notas un nuevo archivo de texto, cámbiale el nombre a: hosts-local (sin extensión de archivo)
Agrega en su interior las siguientes lineas:
127.0.0.1 localhost
127.0.0.1 norfipc.com

Crea tantas líneas como unidades virtuales sean creadas, cada línea con la dirección IP 127.0.0.1, a continuación un espacio en blanco seguido del nombre de la unidad o sitio.
Guarda los cambios.

3- Crea un archivo batch que funcionará como un interruptor.
Para eso con el Bloc de notas crea un nuevo archivo de texto, cámbiale el nombre a: cambiar-host.cmd, puede ser cualquier nombre pero siempre terminado en la extensión: .CMD
Agrega en su interior las siguientes lineas:
@echo off
mode con cols=30 lines=7
echo Escoge:
set /p host=1 Internet y 2 local:
if %host%== 1 goto internet
if %host%== 2 goto local

:internet 
pushd "%systemroot%\system32\Drivers\etc"
copy "%cd%\hosts-internet" "%cd%\hosts"

exit
:local
pushd "%systemroot%\system32\Drivers\etc"
copy "%cd%\hosts-local" "%cd%\hosts"
exit
PAUSE
Guarda los cambios y mueve el archivo cambiar-host.cmd al escritorio u otro lugar de fácil acceso.
El archivo batch creado permitirá al ejecutarlo alternar el uso de dos archivos hosts diferentes, uno para utilizar conectado a la red, el otro para trabajar sin conexión.
Mostrará una interface similar a la siguiente:
Escoge:
1 Internet y 2 local:

Solo será necesario escribir el número correspondiente y presionar la tecla Enter.



Probar la unidad o host virtual creado


Solo resta para probar reiniciar el servidor Apache.
A continuación ejecuta el archivo cambiar-host.cmd, selecciona la opción 2 y presiona la tecla Enter.
Introduce en el navegador web la dirección URL del sitio del que ha sido creada la unidad virtual y navega libremente.
Cualquier conflicto que surja podrá ser analizada su causa leyendo el archivo log, que se encuentra en este ejemplo en la ruta: logs/norfipc-host.-error_log



Navegar offline en Apache usando HTTPS


También es posible activar el módulo de Apache SSL, para poder navegar por las páginas del sitio guardado en el disco, usando el protocolo HTTPS.
Para eso es necesario generar un Certificado SSL local, que los navegadores reconozcan como válido.
Lee en el siguiente artículo como hacerlo: Como crear un certificado SSL local en Apache, válido para Google Chrome

Como descargar sitios web completos para navegar en ellos offline


Si tienes uno o varios sitios web en internet, puedes tener una copia exacta de ellos en cada unidad o host virtual, también puedes descargar sitios completos que no sean muy grandes para acceder a su contenido sin necesidad de conectarse a la red.
En mi caso tengo copias de sitios públicos con información técnica en las que necesito hacer consultas frecuentemente y cuyo contenido no es necesario de actualizar a menudo.
Para descargar el contenido del sitio que te interese, siempre que no sea privado y que no se infrinja ninguna regla legal puedes utilizar la pequeña aplicación WGET, que creará una copia idéntica de forma sencilla y a toda velocidad.
Puedes usar la aplicación con diversos parámetros para evitar la descarga de tipos de archivos que sea innecesarios o que cuyo tamaño retarden la tarea o hagan excesivo el tamaño de la copia.
Para eso lee las siguientes páginas en este sitio:
Como usar Wget para descargar archivos de internet
Wget. Ejemplos prácticos para su uso

Otras páginas relacionadas