====== 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.

<code>
  Configurer Apache 2
    http://www.abonnel.fr <==[reverse proxy ]==> 51.23.41.1
</code>

===== 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

{{page>informatique:linux:solutions_linux:configurer_un_site_web_apache_2:definitions_et_contexte_proxy}}

===== 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'' :
<code>
<VirtualHost *:80>

    ServerName extra.perdu.com

    ProxyPass /.well-known/acme-challenge !
    Alias /.well-known/acme-challenge /var/www/html/.well-known/acme-challenge

    <Directory "/var/www/html/.well-known/acme-challenge">
        Options None
        AllowOverride None
        Require all granted
        AddDefaultCharset off
    </Directory>

    ProxyPreserveHost On
    ProxyPass        "/" "http://103.224.182.253/"
    ProxyPassReverse "/" "http://103.224.182.253/"

</VirtualHost>
</code>

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''
<code>
sudo a2ensite 100-com.perdu.extra.conf
</code>

Et si tout se passe bien, on recharge la configuration d'Apache 2 sans avoir besoin de redémarre le service :
<code>
sudo service apache2 reload
</code>

 --- //[[user:cedricabonnel]] 2019/07/26 18:54//