« Apache » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| Ligne 245 : | Ligne 245 : | ||
{| style="width:100%; background:#eafaf1; border:1px solid #a9dfbf; padding:12px; border-radius:10px; overflow:hidden;" | {| style="width:100%; background:#eafaf1; border:1px solid #a9dfbf; padding:12px; border-radius:10px; overflow:hidden;" | ||
| | | | ||
<b style="color:#1e8449;">Répartition de charge entre plusieurs serveurs web | <b style="color:#1e8449;">Répartition de charge entre plusieurs serveurs web afin d’améliorer les performances et la disponibilité des services.</b> | ||
|} | |} | ||
| Ligne 252 : | Ligne 252 : | ||
Le Load Balancing permet : | Le Load Balancing permet : | ||
* Répartir les requêtes clients sur plusieurs serveurs | * Répartir les requêtes clients sur plusieurs serveurs web | ||
* Améliorer les performances | * Améliorer les performances globales | ||
* Réduire la charge serveur | * Réduire la charge sur chaque serveur | ||
* Augmenter la disponibilité | * Augmenter la disponibilité du service | ||
HAProxy agit comme point d’entrée unique et distribue les requêtes vers les serveurs backend. | |||
Architecture : | |||
Client → HAProxy → Serveur Web 1 / Serveur Web 2 | |||
== <span style="color:#239b56;">Préparation des serveurs Apache (Backend)</span> == | |||
Les serveurs Apache doivent écouter sur le port '''8080''' afin que HAProxy utilise le port 80. | |||
Modifier la configuration Apache : | |||
<pre> | |||
vi /etc/httpd/conf/httpd.conf | |||
</pre> | |||
Modifier : | |||
Avant : | |||
<pre> | |||
Listen *:80 | |||
ServerName web:80 | |||
</pre> | |||
Après : | |||
<pre> | |||
Listen *:8080 | |||
ServerName web:8080 | |||
</pre> | |||
Vérifier la configuration : | |||
<pre> | |||
httpd -S | |||
</pre> | |||
Redémarrer Apache : | |||
<pre> | |||
systemctl restart httpd | |||
</pre> | |||
== <span style="color:#239b56;">Ouverture du port 8080 sur les serveurs web</span> == | |||
Autoriser le trafic vers Apache sur les serveurs backend. | |||
Modifier iptables : | |||
<pre> | |||
vi /etc/sysconfig/iptables | |||
</pre> | |||
Ajouter : | |||
<pre> | |||
-I INPUT 1 -p tcp --dport 8080 -j ACCEPT | |||
</pre> | |||
Appliquer : | |||
<pre> | |||
systemctl reload iptables | |||
</pre> | |||
== <span style="color:#239b56;">Installation HAProxy</span> == | == <span style="color:#239b56;">Installation HAProxy</span> == | ||
Sur le serveur Load Balancer : | |||
<pre> | <pre> | ||
| Ligne 265 : | Ligne 332 : | ||
</pre> | </pre> | ||
Modifier : | == <span style="color:#239b56;">Configuration HAProxy</span> == | ||
Modifier le fichier : | |||
<pre> | <pre> | ||
| Ligne 273 : | Ligne 341 : | ||
</pre> | </pre> | ||
Configuration exemple en mode '''round robin''' : | |||
<pre> | <pre> | ||
global | |||
log /dev/log local0 | |||
maxconn 2000 | |||
daemon | |||
defaults | |||
mode http | |||
timeout connect 5s | |||
timeout client 50s | |||
timeout server 50s | |||
frontend http_front | frontend http_front | ||
bind *:80 | |||
default_backend web_back | |||
backend | backend web_back | ||
balance roundrobin | |||
option httpchk | |||
server web1 192.168.10.252:8080 check | |||
server web2 192.168.10.251:8080 check | |||
</pre> | </pre> | ||
== <span style="color:#239b56;">Démarrage du service</span> == | Le mode '''roundrobin''' distribue les requêtes alternativement entre les serveurs. | ||
== <span style="color:#239b56;">Démarrage du service HAProxy</span> == | |||
<pre> | <pre> | ||
systemctl enable haproxy --now | systemctl enable haproxy --now | ||
</pre> | </pre> | ||
Vérifier le statut : | |||
<pre> | |||
systemctl status haproxy | |||
</pre> | |||
== <span style="color:#239b56;">Ouverture du port 80 sur le Load Balancer</span> == | |||
Autoriser l’accès client au serveur HAProxy. | |||
<pre> | |||
vi /etc/sysconfig/iptables | |||
</pre> | |||
Ajouter : | |||
<pre> | |||
-I INPUT 1 -p tcp --dport 80 -j ACCEPT | |||
</pre> | |||
Appliquer : | |||
<pre> | |||
systemctl reload iptables | |||
</pre> | |||
== <span style="color:#239b56;">Test du Load Balancing</span> == | |||
Tester l’accès via l’adresse IP du serveur HAProxy : | |||
<pre> | |||
curl 192.168.10.251 | |||
</pre> | |||
Effectuer plusieurs requêtes successives. | |||
Si la configuration fonctionne correctement, les réponses doivent alterner entre les différents serveurs web. | |||
Version du 19 février 2026 à 15:02
Installation et Configuration Apache HTTPD
Partie 1 — Installation et Configuration Apache
Installation des packages
Installation du serveur Apache ainsi que du module SSL pour HTTPS :
dnf install httpd mod_ssl -y
Vérifier que l’installation s’est bien déroulée :
rpm -qa | grep httpd
Configuration du serveur
Tout d’abord, il faut paramétrer le nom de la machine ainsi que l’adresse d’écoute du serveur web.
Modifier le fichier :
/etc/httpd/conf/httpd.conf
Chercher les lignes suivantes :
Listen 80 #ServerName www.example.com:80
Instructions :
- Décommenter la ligne ServerName
- Adapter le nom en fonction de votre configuration réseau (/etc/sysconfig/network)
- Définir l’écoute sur toutes les interfaces
Configuration finale :
Listen *:80 ServerName web:80
Démarrage du service HTTPD
Démarrage du service Apache :
systemctl start httpd.service --now
Activation automatique au démarrage du système (création du lien symbolique) :
systemctl enable httpd.service --now
Vérification du service
Vérifier que le service fonctionne correctement :
ss -atnp | grep httpd
Si Apache fonctionne correctement, les ports **80 (HTTP)** et **443 (HTTPS)** doivent apparaître en écoute.
Ouverture des ports dans iptables
Pour rendre votre site accessible depuis le réseau, il est nécessaire d’ouvrir les ports 80 et 443. Sans cette étape, votre navigateur affichera une erreur de connexion refusée.
Modifier :
vi /etc/sysconfig/iptables
Ajouter les règles suivantes :
-I INPUT 2 -p tcp --dport 80 -j ACCEPT -I INPUT 3 -p tcp --dport 443 -j ACCEPT
Appliquer les changements :
systemctl reload iptables
Vérifier les règles :
iptables -nvL
Résultat attendu
Après vérification, vous devez voir apparaître les règles pour les ports HTTP et HTTPS.
IMPORTANT : les 2 lignes en gras ci-dessous doivent absolument être visibles. Ce sont elles qui autorisent l’accès au serveur web.
pkts bytes target prot opt in out source destination 81 5840 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Création de la page d’accueil
Créer la première page de votre site web :
vi /var/www/html/index.html
Exemple de contenu :
cc
Attribuer les droits au dossier pour qu’Apache puisse accéder aux fichiers :
chown apache.apache -R /var/www/html
Vérification finale
Tester l’accès au serveur avec curl :
curl 192.168.10.251
Vous devez voir apparaître le contenu de votre page web.
Important
Partie 2 — Configuration HTTPS (SSL/TLS)
Principe
HTTPS permet de :
- Chiffrer les échanges entre client et serveur
- Garantir l’intégrité des données
- Authentifier le serveur
Le protocole utilise le port 443.
Création d’un certificat auto-signé
Générer un certificat SSL :
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /etc/pki/tls/private/apache.key \ -out /etc/pki/tls/certs/apache.crt
Configuration Apache HTTPS
Modifier le fichier :
vi /etc/httpd/conf.d/ssl.conf
Adapter les lignes suivantes :
SSLCertificateFile /etc/pki/tls/certs/apache.crt SSLCertificateKeyFile /etc/pki/tls/private/apache.key
Redémarrer Apache :
systemctl restart httpd
Vérification
Tester l’accès sécurisé :
curl -k https://IP_SERVEUR
Partie 3 — Load Balancing avec HAProxy
Principe
Le Load Balancing permet :
- Répartir les requêtes clients sur plusieurs serveurs web
- Améliorer les performances globales
- Réduire la charge sur chaque serveur
- Augmenter la disponibilité du service
HAProxy agit comme point d’entrée unique et distribue les requêtes vers les serveurs backend.
Architecture :
Client → HAProxy → Serveur Web 1 / Serveur Web 2
Préparation des serveurs Apache (Backend)
Les serveurs Apache doivent écouter sur le port 8080 afin que HAProxy utilise le port 80.
Modifier la configuration Apache :
vi /etc/httpd/conf/httpd.conf
Modifier :
Avant :
Listen *:80 ServerName web:80
Après :
Listen *:8080 ServerName web:8080
Vérifier la configuration :
httpd -S
Redémarrer Apache :
systemctl restart httpd
Ouverture du port 8080 sur les serveurs web
Autoriser le trafic vers Apache sur les serveurs backend.
Modifier iptables :
vi /etc/sysconfig/iptables
Ajouter :
-I INPUT 1 -p tcp --dport 8080 -j ACCEPT
Appliquer :
systemctl reload iptables
Installation HAProxy
Sur le serveur Load Balancer :
dnf install haproxy -y
Configuration HAProxy
Modifier le fichier :
vi /etc/haproxy/haproxy.cfg
Configuration exemple en mode round robin :
global
log /dev/log local0
maxconn 2000
daemon
defaults
mode http
timeout connect 5s
timeout client 50s
timeout server 50s
frontend http_front
bind *:80
default_backend web_back
backend web_back
balance roundrobin
option httpchk
server web1 192.168.10.252:8080 check
server web2 192.168.10.251:8080 check
Le mode roundrobin distribue les requêtes alternativement entre les serveurs.
Démarrage du service HAProxy
systemctl enable haproxy --now
Vérifier le statut :
systemctl status haproxy
Ouverture du port 80 sur le Load Balancer
Autoriser l’accès client au serveur HAProxy.
vi /etc/sysconfig/iptables
Ajouter :
-I INPUT 1 -p tcp --dport 80 -j ACCEPT
Appliquer :
systemctl reload iptables
Test du Load Balancing
Tester l’accès via l’adresse IP du serveur HAProxy :
curl 192.168.10.251
Effectuer plusieurs requêtes successives.
Si la configuration fonctionne correctement, les réponses doivent alterner entre les différents serveurs web.
Partie 4 — Haute Disponibilité avec Keepalived
Principe
Keepalived permet :
- Assurer la continuité du service
- Basculer automatiquement vers un serveur secondaire
- Utiliser une IP virtuelle partagée (VIP)
Installation
dnf install keepalived -y
Configuration serveur maître
Modifier :
vi /etc/keepalived/keepalived.conf
Exemple :
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass password
}
virtual_ipaddress {
192.168.10.250
}
}
Démarrer :
systemctl enable keepalived --now
Serveur esclave
Même configuration avec :
state BACKUP priority 100
Partie 5 — Synchronisation des serveurs
Principe
La synchronisation permet :
- Maintenir les mêmes fichiers sur plusieurs serveurs
- Assurer la cohérence des données
- Faciliter la haute disponibilité
Installation rsync
dnf install rsync -y
Synchronisation manuelle
Depuis le serveur principal :
rsync -avz /var/www/html/ root@192.168.10.252:/var/www/html/
Automatisation avec cron
Éditer :
crontab -e
Ajouter :
*/5 * * * * rsync -az /var/www/html/ root@192.168.10.252:/var/www/html/
Synchronisation toutes les 5 minutes.