Acho que isso pode ser o que você está procurando link
Para referência do conteúdo no link acima
1) Instale o Apache no seu servidor
sudo apt-get install apache2
sudo apt-get install libapache2-mod-perl2
sudo apt-get install other-lib-mods-needed
2) Configure configurações separadas do apache para cada instância que você deseja executar
Para o Ubuntu, isso deve estar em / etc / apache2 Essencialmente, para cada instância, você precisa ouvir em uma porta 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
Neste exemplo, haveria 4 instâncias diferentes em execução, cada uma processando um tipo de módulo diferente, ou seja, uma para perl, uma para python, etc.
Agora, você também precisa configurar os hosts virtuais na instância do proxy, para que sempre que uma solicitação chegue ao servidor DAV de subversão, seja passada para o apache 'python-dav', enquanto as solicitações para o blog do wordpress são passadas para sua instância do apache 'php'. Vamos editar o 'httpd-proxy.conf' novamente:
# 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) teste tudo Então, terminamos com a configuração e agora precisamos iniciar todas as instâncias do apache e testar se tudo está funcionando conforme o esperado. Claro que você pode fazer isso usando 'apachectl', por exemplo
/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 os scripts de inicialização para iniciar o apache com o arquivo de configuração apropriado
O recurso vinculado tem mais detalhes sobre a edição do arquivo rc.conf para isso, mas toca especificamente em lidar com o Ubuntu, então eu vou destacar ambas as seções abaixo.
The '/etc/rc.conf' in FreeBSD is the master file containing the system configuration >information. This file is read after booting the kernel, and serves to launch services, >daemons, set up network interfaces, etc. For our recipe we will be enabling the apache >server, listing the available instances (profiles), their configuration files, and >telling FreeBSD which of these need to be run (enabled) after booting the system.
# /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"
When these profiles are configured in /etc/rc.conf, and enabled, they will be started >after successfully booting the system. If you want to declare a profile but you only want >to start the corresponding apache instance manually, you can just edit '/etc/rc.conf' and >say, e.g. :
# the apache php instance
apache22_php_configfile="/usr/local/etc/apache22/httpd-php.conf"
apache22_php_enable="NO"
Later, you can start/stop any apache instance manually using just the profile name >(proxy, perl, python, php), like this:
/usr/local/etc/rc.d/apache22 start php
/usr/local/etc/rc.d/apache22 stop perl
...
3b) para o Ubuntu
I'm not sure this will be similar (and painless) as in the case of FreeBSD (see section on rc.conf above). The apache rc scripts installed with the apache port in FreeBSD have been aware of the possibility of different profiles for years now.
Recently, the Ubuntu/Debian init scripts (e.g. /etc/init.d/apache2) have been updated to support multiple instances of apache (e.g. multiple configurations, named /etc/apache2-$SUFFIX). Depending on the release of Ubuntu/Debian you're using you may be lucky ... or not.
The feature appeared in Debian in version 2.2.14-6 in Feb 2010: http://lists.alioth.debian.org/pipermail/pkg-apache-commits/2010-February/000295.html
In Ubuntu, the apache2 packages in Maverick (10.10) contain these patches: http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.16-1ubuntu3.1/changelog
However the Lucid (10.04, Long Term Support Release) apache2 apparently do not: http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.14-5ubuntu8.4/changelog
Documentation can be found in /usr/share/doc/apache2/README.multiple-instances