Como eu tenho um site Apache em um subdiretório, quando a raiz é ProxyPassed para outra coisa?

1

Eu tenho shellinabox em execução em um subdomínio por meio de HTTPS e usando HTTP Basic Access Authentication usando o arquivo vhosts abaixo:

<VirtualHost xx.xx.xx.xx:80>
        ServerName              host.bananas.net
        Redirect                301 / https://host.bananas.net
        CustomLog               ${APACHE_LOG_DIR}/access.log combined
        ErrorLog                ${APACHE_LOG_DIR}/error.log
</VirtualHost.net>

<VirtualHost xx.xx.xx.xx:443>
        ServerName              host.bananas.net
        SSLEngine               On
        SSLCertificateFile      /etc/apache2/ssl/bananas.net.crt
        SSLCertificateKeyFile   /etc/apache2/ssl/bananas.net.key
        SSLCertificateChainFile /etc/apache2/ssl/sub.class1.server.ca.pem
        SSLCACertificateFile    /etc/apache2/ssl/ca.pem
        SetEnvIf                User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
        ProxyRequests           Off
        ProxyPass               / http://localhost:4200/
        ProxyPassReverse        / http://localhost:4200/
        <Location />
                AuthUserFile    /etc/apache2/.htpasswd-secure
                AuthName        "Go Away!"
                AuthType        Basic
                Require         valid-user
                Order           Deny,Allow
                Allow           from all
        </Location>
        SetEnvIf                Request_URI "^/u" dontlog
        HostnameLookups         Double
        CustomLog               ${APACHE_LOG_DIR}/ssl_request.log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
        ErrorLog                ${APACHE_LOG_DIR}/error.log
</VirtualHost>

Atualmente tenho outro site em outro subdomínio, usando este arquivo vhosts:

<VirtualHost xx.xx.xx.xx:80>
        ServerName              files.bananas.net
        DocumentRoot            /var/www/files.bananas.net/

        CustomLog               ${APACHE_LOG_DIR}/access.log combined
        ErrorLog                ${APACHE_LOG_DIR}/error.log
</VirtualHost>

Eu preferiria ter o segundo site disponível em https://host.bananas.net/files em vez de http://files.bananas.net .

A principal razão para isso é que posso usar o mesmo certificado SSL, mas há outros motivos também.

Como faço para mover o segundo site para ser um subdiretório do primeiro site?

    
por paradroid 09.09.2011 / 20:53

1 resposta

4

Isento /files do proxy:

ProxyPass /files !

Coloque acima da raiz ProxyPass . Parece que você também precisará ajustar sua DocumentRoot s ou estrutura de arquivos conforme necessário para veicular o conteúdo do SSL vhost.

Uma configuração de exemplo:

<Proxy *>
        Order deny,allow
        Allow from all
</Proxy>

ProxyRequests           Off
ProxyPreserveHost       On
<Location "/">
        ProxyPass               http://localhost:8080/
</Location>
<Location "/files">
        ProxyPass               !
</Location>
    
por 09.09.2011 / 20:59