Configurar Apache VirtualHost para múltiples sitios

Configurar Apache VirtualHost para múltiples sitios

Estoy intentando configurar un sitio web en mi máquina y tengo algunos problemas. Creé un prototipo del sitio web usando Flask y el servidor de depuración, y ahora me gustaría alojarlo por un tiempo mientras lo depuro más. Esto es sólo para uso interno dentro de la red de mi empresa.

Parece que no puedo configurar Apache correctamente. Actualmente ejecuto un sitio predeterminado que enlaza con mi directorio de inicio, por lo que puedo capturar archivos de otras máquinas a través de un navegador web.

No he cambiado apache2.confnada, pero aquí está mi httpd.conf

<Location /server-status>
    SetHandler server-status

    Order Deny, Allow
    Deny from all
    Allow from .mycompany.com
</Location>

Mi configuración predeterminada, ubicada dentro de /etc/apache2/sites-available/default, tiene

<VirtualHost *:80>
    ServerAdmin [email protected]

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinksMultiViews
        AllowOverride None
        Order allow,deny
        allow from .mycompany.com
    </Directory>
    <Directory /var/www/home/>
        Options Indexes FollowSymLinks MultiViews
        AllowOVerride None
        Order allow,deny
        allow from .mycompany.com
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Si bien la aplicación que estoy intentando habilitar tiene el siguiente archivo de configuración, ubicado en/etc/apache2/sites-available/Powermon

LoadModule fastcgi_module /usr/lib/apache2/modules/mod_fastcgi.so

User p_user
Group p_group
FastCgiServer /home/p_user/Powermon/runp.fcgi -idle-timeout 300 -processes 5

<VirtualHost *:80>
    ServerName powermon
    DocumentRoot /home/p_user/Powermon/app/static
    Alias /static /home/p_user/Powermon/app/static

    AddHandler fastcgi-script fcgi
    ScriptAlias / /home/p_user/Powermon/runp.fcgi

    ErrorLog /home/p_user/Powermon/logs/powermon_error_log

    <Location />
        SetHandler fastcgi-script
    </Location>
</VirtualHost>

Dentro de los sitios habilitados vi

000-default -> ../sites-available/default

Entonces agregué

010-powermon -> ../sites-available/Powermon

Y cuando corro apache2ctl -Sveo

VirtualHost configuration:
wildcard NameVirtualHosts and _default_servers:
*:80            is a NameVirtualHost
    default server dhcp-ip-address.mycompany.com (/etc/apache2/sites-enabled/000-default:1)
    port 80 namevhost dhcp-ip-address.mycompany.com (/etc/apache2/sites-enabled/000-default:1)
    port 80 namevhost powermon (/etc/apache2/sites-enabled/010-powermon:7)
Syntax OK

Actualmente, cuando accedo machine-name/a un navegador, puedo navegar por mi directorio de inicio y ver los archivos según sea necesario. Lo ideal sería poder acceder machine-name/powermony ver mi aplicación ejecutándose.

Respuesta1

Dices que quieres configurar hosts virtuales Apache, pero luego dices esto:

Actualmente, cuando accedo machine-name/a un navegador, puedo navegar por mi directorio de inicio y ver los archivos según sea necesario. Lo ideal sería poder acceder machine-name/powermony ver mi aplicación ejecutándose.

Una ruta en un host no es un host virtual. Su configuración se establece de la siguiente manera: El tráfico powermonva a una configuración. El tráfico dhcp-ip-address.mycompany.comva a otra configuración.

Entonces, la única forma en que funcionaría una configuración de host virtual Apache es ir a esta URL y obtener una cosa:

dhcp-ip-address.mycompany.com

Luego vaya a esta URL y obtenga otra cosa:

powermon

La única forma de lograr esto a través de la configuración del host virtual Apache es alterar /etc/hostsel archivo de su cliente de navegación web de esta manera. Supongamos que estos hosts virtuales están en un servidor con la dirección IP 123.456.78.90. Abra su hostsarchivo (estoy en una Mac, así es como lo haría) de nanoesta manera:

sudo nano /etc/hosts

Y agregue esta línea al final del archivo:

123.456.78.90 powermon

Ahora, cuando apunte su navegador web a:

http://powermon

Obtendrá la configuración del host virtual Apache que tiene implementada.

Pero nuevamente, está mezclando el concepto de ruta de servidor con un servidor virtual host. Así que necesitas resolver eso antes de hacer cualquier otra cosa. Además, la configuración de su host virtual powermonparece inconexa. Los elementos que están afuera <VirtualHost *:80>deben ir adentro. De lo contrario, esas opciones de configuración simplemente serán utilizadas por la defaultconfiguración de todo el servidor de todos modos. Y la configuración User& Grouptambién parece torpe. Los scripts deben configurarse para que puedan ser utilizados por el usuario y grupo de Apache. No de la otra manera. Pero asumiendo buena fe, así es como lo estructuraría:

Usuario p_user Grupo p_group

Nombre del servidor powermon DocumentRoot /home/p_user/Powermon/app/static Alias ​​/static /home/p_user/Powermon/app/static

    LoadModule fastcgi_module /usr/lib/apache2/modules/mod_fastcgi.so

    FastCgiServer /home/p_user/Powermon/runp.fcgi -idle-timeout 300 -processes 5

    AddHandler fastcgi-script fcgi
    ScriptAlias / /home/p_user/Powermon/runp.fcgi

    ErrorLog /home/p_user/Powermon/logs/powermon_error_log

    <Location />
        SetHandler fastcgi-script
    </Location>

</VirtualHost>

Respuesta2

¿Está seguro de haber creado un enlace suave al archivo: /etc/apache2/sites-available/Powermon?

Algo como:

cd /etc/apache2/sites-enabled/
ln -s ../sites-available/Powermon

información relacionada