« Apache » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| Ligne 182 : | Ligne 182 : | ||
|} | |} | ||
<br> | <br><br> | ||
= <span style="color:#1f618d;">Partie 2 — Configuration HTTPS (SSL/TLS)</span> = | = <span style="color:#1f618d;">Partie 2 — Configuration HTTPS (SSL/TLS)</span> = | ||
| Ligne 239 : | Ligne 239 : | ||
</pre> | </pre> | ||
<br> | <br><br> | ||
= <span style="color:#1e8449;">Partie 3 — Load Balancing avec HAProxy</span> = | = <span style="color:#1e8449;">Partie 3 — Load Balancing avec HAProxy</span> = | ||
| Ligne 293 : | Ligne 293 : | ||
<br><br> | |||
= <span style="color:#6c3483;">Partie 4 — Haute Disponibilité avec Keepalived</span> = | = <span style="color:#6c3483;">Partie 4 — Haute Disponibilité avec Keepalived</span> = | ||
| Ligne 360 : | Ligne 360 : | ||
<br><br> | |||
= <span style="color:#566573;">Partie 5 — Synchronisation des serveurs</span> = | = <span style="color:#566573;">Partie 5 — Synchronisation des serveurs</span> = | ||
Version du 19 février 2026 à 14:45
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
- Améliorer les performances
- Réduire la charge serveur
- Augmenter la disponibilité
HAProxy agit comme point d’entrée unique.
Installation HAProxy
dnf install haproxy -y
Configuration
Modifier :
vi /etc/haproxy/haproxy.cfg
Exemple de configuration :
frontend http_front bind *:80 default_backend web_servers backend web_servers balance roundrobin server web1 192.168.10.251:80 check server web2 192.168.10.252:80 check
Démarrage du service
systemctl enable haproxy --now
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.