# Apache 2 : reverse-proxy : configurer un site http avec sous-domaine en www Voici mes prises de notes pour configurer un reverse-proxy avec Apache 2. ``` Configurer Apache 2 http:*www.abonnel.fr <==[reverse proxy ]==> 51.23.41.1 ``` ## Pré requis La configuration du site Internet s'effectue dans un fichier de configuration. - Il accepte une connexion sur le port http 80. - Il redirige vers un hébergement par http avec adresse IP ## Configuration Apache 2 On configure un site web à partir d'un fichier `conf` qui contient des directives. Dans notre exemple de fichier `conf` configure le site Internet `extra.perdu.com`. Le fichier à créer est `/etc/apache2/sites-available/100.com.perdu.extra.conf` : ``` ServerName extra.perdu.com ProxyPass /.well-known/acme-challenge ! Alias /.well-known/acme-challenge /var/www/html/.well-known/acme-challenge Options None AllowOverride None Require all granted AddDefaultCharset off ProxyPreserveHost On ProxyPass "/" "http:*103.224.182.253/" ProxyPassReverse "/" "http://103.224.182.253/" ``` Afin de prévenir notre paramétrage futur en https, la directive `RewriteCond %{REQUEST_URI} !\.well-known/acme-challenge/.*` permet de ne pas rediriger les appels pour Let's Encrypt (http/301). En effet, Let's encrypt n'accepte que des status http/200 lorsque nous mettrons en œuvre l'ajout d'un certificat SSL. Cette directive peut-être laissée active, même si vous ne prévoyez pas d'ajouter une certificat SSL avec Let's Encrypt. ## Activer la configuration du site On active la configuration du site en utilisant le binaire `a2ensite` ``` sudo a2ensite 100-com.perdu.extra.conf ``` Et si tout se passe bien, on recharge la configuration d'Apache 2 sans avoir besoin de redémarre le service : ``` sudo service apache2 reload ```