Apache2

Apache Virtual Host documentation

La pagina è questa afferma che apache supporta il virtual host fin dalla versione 1.1 Sotto c'è la documentazione della versione 1.3 e successive.

Cluster

La parte che riguarda l'ambito cluster multiapache ecc è trattata apache-cluster

Gestione dei nomi

Apache2 Gestione dei nomi

Apache Module mod_proxy

apache 2 mod_proxy

Apache mod_rewrite

apache2 mod_rewrite e Redirect

AJP connessione con tomcat con il protocollo ajp

apache2 modulo ajp meglio di mod proxy

Autenticazione

Apache2 e autenticazione

HTTPS

Apache2 e https, protocollo sicuro

PHP

quick ubuntu guide https://help.ubuntu.com/10.04/serverguide/php5.html

Configurazioni sintetiche già pronte all'uso

Pagina di default

Quando in un apache sono stati settati molti virtual host si può avere un dominio che corrisponde alla macchina ma senza nessun match. Per esempio se si chiama direttamente con l'indirizzo ip e nei virtual host sono definiti soltanto nomi. In questo caso viene scelto il sito dento sites-enable che viene prima in ordine alfabetico/numerico.

Gestione degli accessi in base a ip di provenienza

Nell'esempio sotto facciamo la negazione in un virtual host tramite ip e netmask

<VirtualHost *>
        ServerName url.dominio.com
        ProxyPass               /url      http://192.168.199.15/url
        ProxyPassReverse        /url      http://192.168.199.15/url

    <Location />
        order deny,allow
        deny from all
        allow from 192.168.9.0/255.255.255.0
        allow from 172.1.16.0/255.255.255.0
    </Location>
</VirtualHost>

LocationMatch gestione con le espressioni regolari

In questo modo fa il controllo di autenticazioni per tutto quello che è miodominio.it/ e miodominio.it/web/

<VirtualHost *>
        ServerName miodominio.it
    AddDefaultCharset utf-8

    Alias "/gis" "/var/www/gis/"

    <Proxy *>
            Order deny,allow
            Allow from all
    </Proxy>
    ProxyPass /gis !
    ProxyPreserveHost On
    ProxyPass               /Tes  http://127.0.0.1:8180/Tes
        ProxyPassReverse        /Tes  http://127.0.0.1:8180/Tes
    ProxyPass               /Auto  http://127.0.0.1:8180/Auto
           ProxyPassReverse        /Auto  http://127.0.0.1:8180/Auto
    ProxyPass               /ca      http://127.0.0.1:8180/ca
           ProxyPassReverse        /ca      http://127.0.0.1:8180/ca
    ProxyPass               /       http://127.0.0.1:8080/
    ProxyPassReverse        /       http://127.0.0.1:8080/

    <LocationMatch "^(/$|/web)">
            AuthType Basic
            AuthName "Restricted Files"
            # (Following line optional)
               AuthUserFile /usr/local/apache2/conf/htpasswd
               Require user miousername
          </LocationMatch>
</VirtualHost>

Far servire cose miste da proxy pass e document root

www.dominio.it/robots.txt viene servito dall'apache e non dall'application server sottostante

DocumentRoot /var/www
<VirtualHost *>
        ServerName www.dominio.it
        ServerAlias domnio.it
        ServerAdmin sysadm@dominio.com
        AddDefaultCharset utf-8

    ProxyPreserveHost On
        ProxyPass /robots.txt !

        ProxyPass               /AriannaWeb       http://127.0.0.1:8081/AriannaWeb
        ProxyPassReverse        /AriannaWeb       http://127.0.0.1:8081/AriannaWeb

        ProxyPass               /       http://127.0.0.1:8080/
        ProxyPassReverse        /       http://127.0.0.1:8080/

</VirtualHost>

Redirect con proxy pass quando non si ha il nome

<VirtualHost *>
        ServerName 192.168.1.245
    ProxyPass               /arianna      http://localhost:8080/arianna
    ProxyPassReverse        /arianna      http://localhost:8080/arianna
</VirtualHost>

ServerName con wildcard

Si possono avere diversi domini di secondo livello se l'utente digita uno che non esiste si può fare con wildcard e portarlo a uno di default

<VirtualHost *:80>
        ServerName     *.miodomio.com
        RedirectMatch   ^/$        http://default.hyperborea.com/
</VirtualHost>
Oppure si può settare una pagina che dice che il dominio non esiste.

Redirect tramite html, sconsigliato per l'indicizzazione dai motori di ricerca

Non è consigliato perchè con il redirect puro i motori di ricerca modificano i loro url ma in questo modo l'utente è consapevole

 cat index.html 
<html>
    <head>
    <META HTTP-EQUIV="Refresh" Content="5; URL=http://nuovo.miodominio.it/home/">
    </head>
    <body>
    Questa pagina verrà rediretta a http://nuovo.miodominio.it/ in 5 secondi.
    <p>
    Per favore aggiorna i tuoi links
    </body>
</html>

cat sito
<VirtualHost *:80>
        DocumentRoot /var/www/miosito
        ServerName vecchio.miodominio.com
    Alias /home /var/www/miosito
</VirtualHost>

Se al posto di URL=http://nuovo.miodominio.it/home/ metto URL=/home/ lui aggiunge il dominio attuale

redirect

this code proxy everything remote-name.mywebsite.com to name.mywebsite.com, so you don't need to update the apache config file every time you add a new dns record

SSLProxyEngine On
RewriteEngine On

#Initial redirect for request that does not have a URI
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{HTTP_HOST} remote-([^/:]+)\.mywebsite\.com [NC]
RewriteRule ^(.*)$ https://%1.mywebsite.com/ [P,L,QSA]

#All subsequent requests
RewriteCond %{HTTP_HOST} remote-([^/:]+)\.mywebsite\.com [NC]
RewriteRule ^(.*)$ https://%1.mywebsite.com/$1 [P,L,QSA]
Salvo diversa indicazione, il contenuto di questa pagina è sotto licenza Creative Commons Attribution-ShareAlike 3.0 License