Le istruzioni della funzione proxy vengono definite all’interno della direttiva <VirtualHost>. Il tag di apertura comprende inoltre l’indirizzo IP comprensivo di numero della porta, sul quale il server Apache configurato come reverse proxy deve ascoltare le richieste. Se devono venire inclusi tutti gli indirizzi IP, si utilizza il segnaposto *, come si osserva nell’esempio. Le informazioni all’interno del tag VirtualHost vengono fornite anche sotto forma di direttive. A differenza del tag VirtualHost, queste direttive rimandano agli elementi, che definiscono come si devono elaborare le richieste in entrata e i pacchetti di risposta. Fondamentali sono soprattutto le direttive ServerName, ProxyPass e ReversePass.
- ServerName: la direttiva ServerName definisce a quale nome primario un server è raggiungibile su Internet. Si risale a questo tramite DNS o attraverso la directory /etc/hosts. Nell’esempio al server Apache viene dato il comando di accettare tutte le richieste fatte a domain.tld.
- ProxyPass: la direttiva ProxyPass definisce l’indirizzo di destinazione per un inoltro. Tutte le richieste che si indirizzano al ServerName impostato su un indirizzo pubblico, vengono reindirizzate dal reverse proxy all’indirizzo interno, che è compreso nella direttiva ProxyPass. Nell’esempio sarebbe l’IP fittizio 123.456.7.89.
- ProxyPassReverse: un proxy server non accetta solo le richieste, ma inoltra anche i pacchetti di risposta del server di back end ai client. Per evitare che queste risposte vengano fornite con informazioni false dell’header (cioè quelle del server in background), la direttiva ProxyPassReverse riscrive l’header delle risposte server, così che si regoli sul proxy server. Il server di back end rimane così anonimo.
Infine nell’esempio si trovano altre due direttive: ServerAlias e ProxyRequests, che però non mettono a disposizione del server funzioni di base e sono perciò facoltativi.
- ServerAlias: la direttiva ServerAlias consente di stabilire un nome alternativo per il server di destinazione, oltre ai name server primari.
- ProxyRequest: la direttiva ProxyRequests con l‘istruzione Off impedisce che il server Apache venga utilizzato come forward proxy, prevenendo così un possibile uso illecito.
Una volta che sono state definite le regole per la funzione proxy, la configurazione deve essere attivata dal terminale: