Cositas de los vhost y como mola montar las cosas bien.

Bueno esta entrada tiene un fin puro y exclusivo, recordarme cosas.

Es curioso como pasa el tiempo y las cosas, esas tan sencillas, se olvidan, claro tambien hay que tener en cuenta, que bueno a medida que vas desarrollando el oficio, esta funciones las delegas. No obstante, nunca se puede pedir a alguien que haga algo que tu no sepas hacer.

Asi que aqui va esta entrada, que creo que a mi madre, unica lectora de este blog le puede interesar.

Como indico en el titulo, vamos a configurar los vhost;

Bueno, tenemos uno o varios servidores, en este caso solo tratare de uno, ya mas tarde cuando me apetezca, mostrare la configuracion de un cluster con balanceo de carga, para los servidores web, pero eso cuando me apetezca, que no es el momento.

Por de pronto iniciaremos las acciones basicas, configurar el host para que responda a los dominios que vamos a mover en nuestro servidor.

Siempre con Debian, si alguien es decir mi madre, que es la unica lectora fiel que tengo usa otra distro de linux, pues, ya un dia de estos lo actualizare para RedHat y SuSe, hoy va todo para Debian.

1. Configurara el hosts

vamos y editamos como root el hosts de nuestro servidor.

vi /etc/hosts

añadimos los dominios que responderan para nuestro servidor.

por ejemplo;

127.0.0.1    midominio1.com

127.0.0.1   midominio2.com

y asi sucesivamente …

Ahora empezaremos ha configurar apache2.

Sino lo teneis instalado, pues a le; ha instalar;

apt-get install apache2

2. Configurar los distintos host:

vamos a la ruta;

/var/www

y creamos un directorio para cada dominio;

por ejemplo;

mkdir -p /var/www/midominio1

mkdir -p /var/www/midominio2

3. Ahora haremos una pagina de prueba en cada directorio.

Ejemplo;

vi /var/www/midominio1/index.html

Escribimos el siguente codigo;

<html>

<font color=”#FF0000″>esta es la pagina del midominio1</font>

</html>

Tampoco pasaria nada, si dentro del vi, lo escribimos a pelo, el html se lo come todo.

Vamos con el vhost. Podemos configurarlo de dos modos, o bien por directorio o bien por IP.

Diferencias entre una cosa y otra, pues sencillo. Por IP podremos añadir seguridad, si nuestro servidor esta en una DMZ, no tendremos que hacer publico por NAT inverso nuestro servidor. Esta entrada tratara los dos temas, pero mas adelante.

4. Configuración de apache2 para vhost por directorio.

pues deberemos crear una entrada para cada uno de nuestros vhost,

Ejemplo;

vi /etc/apache2/sites-avatibles/midominio1

Añadimos lo siguente;

<VirtualHost *:80>
ServerAdmin webmaster@midominio1
ServerName     www.midomino1.com
DocumentRoot /var/www/midomino1
</VirtualHost>

Esto siginifica que nuestro servidor atiende todas las peticiones desde nuestra IP al puerto 80.

Ahora lo que tendemos que hacer, pues es activar el enlace.

Para ello, ejecutamos;

a2ensite midomino1.com

esto no añadira el stio como enlace simbolico al directorio sites-enabled.

Ahora toda hacer un reload;

/etc/init.d/apache2 reload

o

service apache2 reload

Y ya tenemos un vhost operativo.

Pero y si queremos que sea con una IP virtual y que nuestro servidor tenga las maximas garantias de segurirada en nuestro firewall?

Pues vamos con ello.

1. Crear una ip virtual en nuestro servidor.

Esto es muy sencillo,  pero eso si nuestro servidor requiere una ip estarica, se la asignamos.

Editamos el archivo /etc/network/interfaces

y empezamos a añadir, no hace falta decir, que la interfaz fisica es la eth0 y que las virtuales serian por tanto eth0:0, eth0:1, etc

Ejemplo;

auto eth0
iface eth0 inet static
address 192.168.1.131
netmask 255.255.255.0
gateway 192.168.1.1

# Interfaz midominio1

auto eth0:0
iface eth0:0 inet static
address 192.168.1.132
netmask 255.255.255.0
gateway 192.168.1.1

Guardamos y hacemo un reload de las interfaces.

Posteriormente levantamos la interfaz virtual eth0:0

ifup eth0:0

ahora tendremos la interfaz virtual corriendo.

Bueno pues hagamos cambios.

Deberemos editar de nuevo el archivo sites-avatibles;

donde tenemos *:80

deberemos poner la ip virtual que hemos definido.

<VirtualHost 192.168.1.312:80>
ServerAdmin webmaster@midominio1
ServerName     www.midomino1.com
DocumentRoot /var/www/midomino1
</VirtualHost>

guardamos y hacemos un reload del apache.

En cuanto al Firewall habilitamos el puerto 80 a esta IP y ha correr, nuestra maquina esta protegida.

NOTA: Observareis,  que no hemos definido la ejecución de cgi en los VHOST. Podeis añadir al vhost que habéis creado el directorio donde se encuentran los cgi, eso es muy propio de instalaciones de apache para Centos, RedHat, SuSe, etc, yo no se como tenéis montando las DMZ, no sugiero que algo tan critico este en el propio servidor corriendo, os sugiero que montéis arquitecturas de tres capas. No obstante os pondré un ejemplo de como lo suelo montar yo, si os parece usáis esta definicio, sino también pondré la que suele usar apache2 para otras versiones.

Solución de los cgi-bin para otros sistemas operativos no Debian.

Sobre la definicion del vhost que tenemos añadimos lo siguiente;

<VirtualHost 192.168.1.312:80>
ServerAdmin webmaster@midominio1
ServerName     www.midomino1.com
DocumentRoot /var/www/midomino1

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory “/usr/lib/cgi-bin”>
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Require all granted
        </Directory>

</VirtualHost>

Es decir le decís donde estan el directorio CGI en vuestro servidor. Lógicamente si tenéis separado los cgi de vuestra DMZ no tendréis problemas de seguridad.

Solución de cgi-bin para sistemas operativos Debian.

Nuevamente sobre lo que tenemos ya definido;

<VirtualHost 192.168.1.312:80>
ServerAdmin webmaster@midominio1
ServerName     www.midomino1.com
DocumentRoot /var/www/midomino1

#Para la ejecucion de CGI se realiza el siguiente include

Include conf-available/serve-cgi-bin.conf

</VirtualHost>

Normalmente el conf-available no esta creado, así que tendréis que crearlo;

mkdir -p /etc/apache2/conf-available

acedéis al directorio;

cd /et/apache2/conf-available

y creáis el archivo como lo habéis llamado;

touch server-cgi-bin.conf

lo editáis:

vi server-cgi-bin.conf

y ponéis en el lo siguiente;

<IfModule mod_alias.c>
    <IfModule mod_cgi.c>
        Define ENALBLE_USR_LIB_CGI_BIN
    </IfModule>

    <IfModule mod_cgid.c>
        Define ENALBLE_USR_LIB_CGI_BIN
    </IfModule>

    <IfDefine ENALBLE_USR_LIB_CGI_BIN>
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory “/usr/lib/cgi-bin”>
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Require all granted
        </Directory>
    </IfDefine>
</IfModule>

Guardáis y reiniciáis el apache2

service apache2 restart

o

/etc/init.d/apache2 restart

Anuncios

3 comentarios en “Cositas de los vhost y como mola montar las cosas bien.

  1. Pingback: Como montar tu propios Streaming de video tipo youtube. | Cosas del Balta

  2. Pingback: Construir una Biblioteca Online | Cosas del Balta

  3. Pingback: Configurar SubDominios en Apache | Cosas del Balta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s