No confundir, instancias múltiples instancias con múltiples dominios, en este caso te mostrare como ejecutar múltiples servicios de apache escuchando diferentes puertos o direcciones IP de forma independientes.
Normalmente para poder hacer esto es recomendable recopilar el apache para que este tome los nuevos parámetros de configuración, pero la versión pre compilada que esta incluida en la versión 6 de Debian, ya viene preparada para utilizar múltiple instancias y para hacer nuestro trabajo mas facil, han incluido en el paquete de documentacion un script que se encargara de duplicas la instacia, lo que solo nos quedara editar la configuracion de la nueva instancia.
Primero copiaremos en script a ruta cualquiera, para editar el mismo:
cp /usr/share/doc/apache2.2-common/examples/setup-instance /home/user/
Editamos el archivo, y modificaremos las siguientes lineas:
nano /home/user/setup-instance
(Aproximadamente en la linea 22):
cp /usr/share/doc/apache2.2-common/examples/secondary-init-script /etc/init.d/apache2-$SUFFIX
Editamos la mismo y debera quedar:
cp /etc/init.d/apache2 /etc/init.d/apache2-$SUFFIX
Guardamos el archivo, debera quedar de la siguiente forma:
#!/bin/sh
set -eu
if [ $# != 1 ] ; then
echo usage: $0 '<suffix>'
exit 1
fi
# the SUFFIX must not contain spaces or shell meta characters
SUFFIX=$1
if [ -e /etc/apache2-$SUFFIX ] ; then
echo ERROR: /etc/apache2-$SUFFIX already exists
exit 2
fi
echo Setting up /etc/apache2-$SUFFIX ...
cp -a /etc/apache2 /etc/apache2-$SUFFIX
echo Setting up /etc/init.d/apache2-$SUFFIX ...
cp /etc/init.d/apache2 /etc/init.d/apache2-$SUFFIX
# adjust service name (this prevents us from using a simple symlink)
perl -p -i -e s,XXX,$SUFFIX, /etc/init.d/apache2-$SUFFIX
chmod 755 /etc/init.d/apache2-$SUFFIX
echo -n Setting up symlinks:
for a in a2enmod a2dismod a2ensite a2dissite apache2ctl ; do
echo -n " $a-$SUFFIX"
ln -s /usr/sbin/$a /usr/local/sbin/$a-$SUFFIX
done
echo
echo Setting up /etc/logrotate.d/apache2-$SUFFIX and /var/log/apache2-$SUFFIX ...
cp -a /etc/logrotate.d/apache2 /etc/logrotate.d/apache2-$SUFFIX
perl -p -i -e s,apache2,apache2-$SUFFIX,g /etc/logrotate.d/apache2-$SUFFIX
mkdir /var/log/apache2-$SUFFIX
chmod 750 /var/log/apache2-$SUFFIX
chown root:adm /var/log/apache2-$SUFFIX
Asignamos permisos de ejecucion:
chmod +x /home/user/setup-intance
Ahora podemos ejecutar el Bash, esto debemos hacerlo como “root”, ya que el mismo asigna permisos al copiar archivos y crear directorios. El modo de uso es el siguiente:
./setup-intance algo
Esto nos creara la instancia “apache2-algo” con su respectiva configuracion en “/etc/apache2-algo” y su script de inicio, para agregar el mismo al inicio para que se auto ejecute, ejecutamos:
update-rc.d /etc/init/apache2-algo defaults
Si lo queremos remover el inicio:
update-rc.d /etc/init.d/apache2-algo remove
Ahora deberemos modificar la configuracion de “apache2-algo” para indicarle la direccion IP o puerto que debe escuchar. Editamos el /etc/apache2-ago/ports.conf, que en mi caso desearia que servidor escuchara otra IP que no sea la IP publica. Cambiamos la direccion IP la linea:
NameVirtualHost 222.111.0.0:80
Listen 80
Por la derccion IP que debe escuchar el apache y su respectivo puerto:
NameVirtualHost 10.10.10.1:80
Listen 10.10.10.1:80
Si solo queremos que escuche un nuevo puerto en todas las direccion IPs, modifocamos la linea indicando la direccion IP con un “asterisco”:
NameVirtualHost *:81
Listen 81
Donde 81 es el puerto de deseamos que escuche. ATENCIÓN: En este caso la primer instancia de Apache no debe escuchas todas las direcciones de IP con el mismo puerto, por ejemplo:
NameVirtualHost *:80
Listen 80
Esto indica que el apache2 estará escuchando el puerto 80 de todas las direcciones IPs, por lo que habrá que modificar la primera instancia de apache para corregir esto. También modificamos la configuración de cada virtual host para que escuchen la dirección IP que correcta.
<VirtualHost *:80>
Asignando le la dirección IP:
<VirtualHost 10.10.10.1:80>
O con el puerto que deseemos:
<VirtualHost *:81>
Listo, hechas estas configuraciones, ya podemos iniciar la nueva instancia de apache. Cualquier duda, comenten! Saludos,
