« Apache » : différence entre les versions
Aucun résumé des modifications |
|||
| Ligne 11 : | Ligne 11 : | ||
__TOC__ | __TOC__ | ||
= <span style="color:#935116;">1 — Installation et Configuration Apache</span> = | = <span style="color:#935116;">Partie 1 — Installation et Configuration Apache</span> = | ||
{| style="width:100%; background:#fff8ec; border:1px solid #f5cba7; padding:12px; border-radius:10px; overflow:hidden;" | {| style="width:100%; background:#fff8ec; border:1px solid #f5cba7; padding:12px; border-radius:10px; overflow:hidden;" | ||
| Ligne 181 : | Ligne 181 : | ||
<b style="color:#935116;">La procédure doit être répétée sur votre second serveur afin de compléter l’infrastructure.</b> | <b style="color:#935116;">La procédure doit être répétée sur votre second serveur afin de compléter l’infrastructure.</b> | ||
|} | |} | ||
= <span style="color:#1f618d;">Partie 2 — Configuration HTTPS (SSL/TLS)</span> = | |||
{| style="width:100%; background:#ebf5fb; border:1px solid #aed6f1; padding:12px; border-radius:10px; overflow:hidden;" | |||
| | |||
<b style="color:#1f618d;">Mise en place du chiffrement SSL/TLS pour sécuriser les communications web.</b> | |||
|} | |||
== <span style="color:#2e86c1;">Principe</span> == | |||
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'''. | |||
== <span style="color:#2e86c1;">Création d’un certificat auto-signé</span> == | |||
Générer un certificat SSL : | |||
<pre> | |||
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ | |||
-keyout /etc/pki/tls/private/apache.key \ | |||
-out /etc/pki/tls/certs/apache.crt | |||
</pre> | |||
== <span style="color:#2e86c1;">Configuration Apache HTTPS</span> == | |||
Modifier le fichier : | |||
<pre> | |||
vi /etc/httpd/conf.d/ssl.conf | |||
</pre> | |||
Adapter les lignes suivantes : | |||
<pre> | |||
SSLCertificateFile /etc/pki/tls/certs/apache.crt | |||
SSLCertificateKeyFile /etc/pki/tls/private/apache.key | |||
</pre> | |||
Redémarrer Apache : | |||
<pre> | |||
systemctl restart httpd | |||
</pre> | |||
== <span style="color:#2e86c1;">Vérification</span> == | |||
Tester l’accès sécurisé : | |||
<pre> | |||
curl -k https://IP_SERVEUR | |||
</pre> | |||
= <span style="color:#1e8449;">Partie 3 — Load Balancing avec HAProxy</span> = | |||
{| 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 pour améliorer les performances.</b> | |||
|} | |||
== <span style="color:#239b56;">Principe</span> == | |||
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. | |||
== <span style="color:#239b56;">Installation HAProxy</span> == | |||
<pre> | |||
dnf install haproxy -y | |||
</pre> | |||
== <span style="color:#239b56;">Configuration</span> == | |||
Modifier : | |||
<pre> | |||
vi /etc/haproxy/haproxy.cfg | |||
</pre> | |||
Exemple de configuration : | |||
<pre> | |||
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 | |||
</pre> | |||
== <span style="color:#239b56;">Démarrage du service</span> == | |||
<pre> | |||
systemctl enable haproxy --now | |||
</pre> | |||
= <span style="color:#6c3483;">Partie 4 — Haute Disponibilité avec Keepalived</span> = | |||
{| style="width:100%; background:#f4ecf7; border:1px solid #d2b4de; padding:12px; border-radius:10px; overflow:hidden;" | |||
| | |||
<b style="color:#6c3483;">Mise en place d’une adresse IP virtuelle pour assurer la continuité de service.</b> | |||
|} | |||
== <span style="color:#884ea0;">Principe</span> == | |||
Keepalived permet : | |||
* Assurer la continuité du service | |||
* Basculer automatiquement vers un serveur secondaire | |||
* Utiliser une IP virtuelle partagée (VIP) | |||
== <span style="color:#884ea0;">Installation</span> == | |||
<pre> | |||
dnf install keepalived -y | |||
</pre> | |||
== <span style="color:#884ea0;">Configuration serveur maître</span> == | |||
Modifier : | |||
<pre> | |||
vi /etc/keepalived/keepalived.conf | |||
</pre> | |||
Exemple : | |||
<pre> | |||
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 | |||
} | |||
} | |||
</pre> | |||
Démarrer : | |||
<pre> | |||
systemctl enable keepalived --now | |||
</pre> | |||
== <span style="color:#884ea0;">Serveur esclave</span> == | |||
Même configuration avec : | |||
<pre> | |||
state BACKUP | |||
priority 100 | |||
</pre> | |||
= <span style="color:#566573;">Partie 5 — Synchronisation des serveurs</span> = | |||
{| style="width:100%; background:#f2f4f4; border:1px solid #d5d8dc; padding:12px; border-radius:10px; overflow:hidden;" | |||
| | |||
<b style="color:#566573;">Synchronisation des fichiers web entre les serveurs pour garantir la cohérence des données.</b> | |||
|} | |||
== <span style="color:#5d6d7e;">Principe</span> == | |||
La synchronisation permet : | |||
* Maintenir les mêmes fichiers sur plusieurs serveurs | |||
* Assurer la cohérence des données | |||
* Faciliter la haute disponibilité | |||
== <span style="color:#5d6d7e;">Installation rsync</span> == | |||
<pre> | |||
dnf install rsync -y | |||
</pre> | |||
== <span style="color:#5d6d7e;">Synchronisation manuelle</span> == | |||
Depuis le serveur principal : | |||
<pre> | |||
rsync -avz /var/www/html/ root@192.168.10.252:/var/www/html/ | |||
</pre> | |||
== <span style="color:#5d6d7e;">Automatisation avec cron</span> == | |||
Éditer : | |||
<pre> | |||
crontab -e | |||
</pre> | |||
Ajouter : | |||
<pre> | |||
*/5 * * * * rsync -az /var/www/html/ root@192.168.10.252:/var/www/html/ | |||
</pre> | |||
Synchronisation toutes les 5 minutes. | |||
Version du 19 février 2026 à 14:43
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.