# Installation de serveur web derriére le Haproxy

### PRÉREQUIS:

- Avoir 2 machine disonible pour installer les serveur web dessus.

1. Installer le service nginx:  
    ```bash
    apt update; apt upgrade; apt install nginx
    ```
2. Tester si le serveur est bien installé <p class="callout info">Mes deux serveurs web on ces IPs 172.16.250.4 et 172.16.250.5  
    </p>
    
    Se connecter sur un serveur disposant de la commande curl:  
    ```bash
    root@bastion-front-01:~/GIT/cours_bts# for i in {4..5}; do echo -e "####Je vais tester 172.16.250.${i}### \n";curl -IL http://172.16.250.$i ; done 
    ####Je vais tester 172.16.250.4### 
    
    HTTP/1.1 200 OK
    Server: nginx/1.22.1
    Date: Thu, 21 Sep 2023 16:51:40 GMT
    Content-Type: text/html
    Content-Length: 615
    Last-Modified: Thu, 21 Sep 2023 16:47:16 GMT
    Connection: keep-alive
    ETag: "650c7394-267"
    Accept-Ranges: bytes
    
    ####Je vais tester 172.16.250.5### 
    
    HTTP/1.1 200 OK
    Server: nginx/1.22.1
    Date: Thu, 21 Sep 2023 16:51:40 GMT
    Content-Type: text/html
    Content-Length: 615
    Last-Modified: Thu, 21 Sep 2023 16:47:20 GMT
    Connection: keep-alive
    ETag: "650c7398-267"
    Accept-Ranges: bytes
    ```
    
    <p class="callout success">Les deux serveurs répondent bien  
    </p>
3. Modifier le fichier affiché par Nginx:  
    ```bash
    echo $HOSTNAME > /var/www/html/index.nginx-debian.html
    ```
    
    On refait la commande pour tester:
    
    ```bash
    root@bastion-front-01:~/GIT/cours_bts# for i in {4..5}; do echo -e "####Je vais tester 172.16.250.${i}### \n";curl -L http://172.16.250.$i ; done 
    ####Je vais tester 172.16.250.4### 
    
    web-front-01
    ####Je vais tester 172.16.250.5### 
    
    web-front-02
    ```
    
    <p class="callout success">Les deux serveurs répondent bien leurs Hostname(NOM)  
    </p>
4. Paramétrer le serveur haproxy pour qu'il renvoie vers les serveurs web  
    Ajouter les ligne suivante dans le fichier <span style="font-family: monospace;"><span style="color: #000000; background-color: #ffffff;">/etc/haproxy/haproxy.cfg</span></span>  
    ```bash
    #L'ip que je veux mettre en avant
    frontend http-external
        bind 172.16.250.3:80
        default_backend http
    
    #Les IP vers lesquelles je veux renvoyer les requete
    backend http
        balance roundrobin
        mode http
        option forwardfor
        option http-server-close
        server web-front-01 172.16.250.4:80 check
        server web-front-02 172.16.250.5:80 check
    
    ```
5. On Va tester le fichier de configuration  
    ```bash
    haproxy -c -f /etc/haproxy/haproxy.cfg
    ```


---

1. Puis on va reload le service  
    ```
    systemctl reload haproxy
    ```
2. Nous allons tester sir le haproxy prends bien en compte en regardant la page de stats  
    <p class="callout success">[![image.png](https://book.techoops.fr/uploads/images/gallery/2023-09/scaled-1680-/VM3image.png)](https://book.techoops.fr/uploads/images/gallery/2023-09/VM3image.png)C'est OK on voit bien les deux serveurs  
    </p>
3. On va tester avec la commande curl  
    ```bash
    root@bastion-front-01:~/GIT/cours_bts# for i in {1..2}; do curl http://172.16.250.3; done 
    web-front-01
    web-front-02
    ```