Respuestas:
Creo que esto podría ser lo que estás buscando http://wiki.apache.org/httpd/RunningMultipleApacheInstances
Para referencia del contenido en el enlace de arriba
1) Instala Apache en tu servidor
sudo apt-get install apache2
sudo apt-get install libapache2-mod-perl2
sudo apt-get install other-lib-mods-needed
2) Configure configuraciones de apache separadas para cada instancia que desee ejecutar
Para Ubuntu, esto debería estar en / etc / apache2 Esencialmente para cada instancia que necesite escuchar en un puerto diferente.
# httpd-proxy.conf
Listen 80
ErrorLog /var/log/httpd-proxy-error.log
LoadModule proxy_module libexec/apache22/mod_proxy.so
LoadModule proxy_http_module libexec/apache22/mod_proxy_http.so
# httpd-perl.conf
Listen 81
ErrorLog /var/log/httpd-perl-error.log
LoadModule perl_module libexec/apache22/mod_perl.so
# httpd-python.conf
Listen 82
ErrorLog /var/log/httpd-python-error.log
LoadModule python_module libexec/apache22/mod_python.so
# httpd-php.conf
Listen 83
ErrorLog /var/log/httpd-php-error.log
LoadModule php5_module libexec/apache22/libphp5.so
En este ejemplo, se ejecutarían 4 instancias diferentes, cada una procesando un tipo de módulo diferente, es decir, una para perl, una para python, etc.
Ahora, también debe configurar los hosts virtuales en la instancia del proxy, de modo que cada vez que llegue una solicitud para el servidor DAV de subversión, se pase a su apache 'python-dav', mientras que las solicitudes para su blog de WordPress se pasen a su ' php 'instancia de apache. Editemos 'httpd-proxy.conf' nuevamente:
# httpd-proxy.conf
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /www/wordpress
ServerName blog.company.com
ProxyPass / http://localhost:83/
ProxyPassReverse / http://localhost:83/
[... additional directives here ... ]
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /www/svn
ServerName svn.company.com
ProxyPass / http://localhost:82/
ProxyPassReverse / http://localhost:82/
[... additional directives here ... ]
</VirtualHost>
# you get the idea ...
2b) probar todo Así que hemos terminado con la configuración, y ahora tenemos que iniciar todas las instancias de apache, y probar que todo funciona como se esperaba. Por supuesto, puede hacer esto usando 'apachectl', por ejemplo
/usr/local/sbin/apachectl -f /usr/local/etc/apache22/proxy-httpd.conf configtest
/usr/local/sbin/apachectl -f /usr/local/etc/apache22/proxy-httpd.conf start
/usr/local/sbin/apachectl -f /usr/local/etc/apache22/perl-httpd.conf configtest
/usr/local/sbin/apachectl -f /usr/local/etc/apache22/perl-httpd.conf start
# and so on ...
3) Configure los scripts de inicio para iniciar apache con el archivo de configuración apropiado
El recurso vinculado tiene más detalles sobre la edición del archivo rc.conf para esto, pero trata específicamente sobre cómo tratar con Ubuntu, por lo que ambas secciones destacaré a continuación.
El '/etc/rc.conf' en FreeBSD es el archivo maestro que contiene la información de configuración del sistema. Este archivo se lee después de arrancar el kernel y sirve para iniciar servicios,> demonios, configurar interfaces de red, etc. Para nuestra receta, habilitaremos el servidor apache, enumerando las instancias disponibles (perfiles), sus archivos de configuración y > diciéndole a FreeBSD cuál de estos debe ejecutarse (habilitarse) después de iniciar el sistema.
# /etc/rc.conf
apache22_enable="YES"
apache22_profiles="proxy perl python php"
# the apache proxy instance
apache22_proxy_configfile="/usr/local/etc/apache22/httpd-proxy.conf"
apache22_proxy_enable="YES"
# the apache perl instance
apache22_perl_configfile="/usr/local/etc/apache22/httpd-perl.conf"
apache22_perl_enable="YES"
# the apache python instance
apache22_python_configfile="/usr/local/etc/apache22/httpd-python.conf"
apache22_python_enable="YES"
# the apache php instance
apache22_php_configfile="/usr/local/etc/apache22/httpd-php.conf"
apache22_php_enable="YES"
Cuando estos perfiles se configuran en /etc/rc.conf y se habilitan, se iniciarán> después de arrancar con éxito el sistema. Si desea declarar un perfil pero solo quiere> iniciar la instancia de apache correspondiente manualmente, puede editar '/etc/rc.conf' y> decir, por ejemplo:
# the apache php instance
apache22_php_configfile="/usr/local/etc/apache22/httpd-php.conf"
apache22_php_enable="NO"
Más tarde, puede iniciar / detener cualquier instancia de apache manualmente usando solo el nombre del perfil> (proxy, perl, python, php), de esta manera:
/usr/local/etc/rc.d/apache22 start php
/usr/local/etc/rc.d/apache22 stop perl
...
3b) para Ubuntu
No estoy seguro de que esto sea similar (e indoloro) como en el caso de FreeBSD (consulte la sección sobre rc.conf más arriba). Los scripts apache rc instalados con el puerto apache en FreeBSD han sido conscientes de la posibilidad de diferentes perfiles durante años.
Recientemente, los scripts de inicio de Ubuntu / Debian (por ejemplo, /etc/init.d/apache2) se han actualizado para admitir múltiples instancias de apache (por ejemplo, múltiples configuraciones, llamadas / etc / apache2- $ SUFFIX). Dependiendo del lanzamiento de Ubuntu / Debian que esté utilizando, puede tener suerte ... o no.
La característica apareció en Debian en la versión 2.2.14-6 en febrero de 2010: http://lists.alioth.debian.org/pipermail/pkg-apache-commits/2010-February/000295.html
En Ubuntu, los paquetes apache2 en Maverick (10.10) contienen estos parches: http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.16-1ubuntu3.1/changelog
Sin embargo, el Apache2 Lucid (10.04, Versión de soporte a largo plazo) aparentemente no: http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.14-5ubuntu8.4/changelog
La documentación se puede encontrar en /usr/share/doc/apache2/README.multiple-instances
Gracias por su respuesta detallada, pero luego encontré este enlace http://someofmylearnings.wordpress.com/2011/07/02/multiple-apache2-instances-on-ubuntu/ El procedimiento que se muestra en este muy simple.
Cuando instalamos Apache, hay un /usr/share/doc/apache2.2-common/README.multiple-instances
archivo que le da una idea de lo que debe hacerse exactamente para crear una instancia de Apache.
Dentro del mismo directorio hay un examples
directorio que contiene un script llamado setup-instance
que podemos usar para crear una instancia de Apache. Entonces, para crear otra instancia de Apache, todo lo que hay que hacer es:
sh /usr/share/doc/apache2.2-common/examples/setup-instance web-server1
donde web-server1
hay un sufijo Es decir, agrega "apache2-" de forma predeterminada al nombre de su instancia.
Eso creará un nuevo directorio /etc/apache-web-server1
que contiene todos los archivos de configuración. También crearía /etc/init.d/apache-web-server1
lo que puede usar para iniciar la nueva instancia de Apache.