Exigences du site Web
- Accès principal via
www.openlab.comaffichant le message "welcome to openlab" - Trois sous-sections :
- Informations étudiants :
www.openlab.com/student - Ressources pédagogiques :
www.openlab.com/data - Paiements en ligne :
www.openlab.com/money
- Informations étudiants :
- Contraintes supplémentaires :
- Toutes les requêtes HTTP doivent être redirigées vers HTTPS
- La section étudiante n'est accessible qu'aux utilisateurs "song" et "tian"
Étape 1 : Installation et configuraton initiale
mount /dev/cdrom /media
dnf install -y nginx
setenforce 0
systemctl stop firewalld
systemctl enable --now nginx
Étape 2 : Configurasion du site principal
Modifier la configuration Nginx :
# /etc/nginx/conf.d/openlab.conf
server {
listen 80;
server_name www.openlab.com;
root /srv/www/openlab;
index index.html;
}
Créer le contenu :
mkdir -p /srv/www/openlab
echo "welcome to openlab" > /srv/www/openlab/index.html
Configurer la résolution DNS locale :
echo "192.168.1.100 www.openlab.com" >> /etc/hosts
Étape 3 : Déploiement des sous-sites
mkdir -p /srv/www/openlab/{students,resources,payments}
cat <<EOF > /srv/www/openlab/students/index.html
<h1>Portail des étudiants</h1>
EOF
cat <<EOF > /srv/www/openlab/resources/index.html
<h1>Documents pédagogiques</h1>
EOF
cat <<EOF > /srv/www/openlab/payments/index.html
<h1>Service de paiement</h1>
EOF
Étape 4 : Authentification pour la section étudiante
dnf install -y httpd-tools
htpasswd -c /etc/nginx/.htpasswd song
htpasswd /etc/nginx/.htpasswd tian
Ajouter dans la configuration :
location /students {
auth_basic "Zone restreinte";
auth_basic_user_file /etc/nginx/.htpasswd;
}
Étape 5 : Activation du HTTPS
Générer un certificat auto-signé :
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/nginx/ssl/openlab.key \
-out /etc/nginx/ssl/openlab.crt \
-subj "/CN=www.openlab.com"
Configurer le serveur HTTPS et la redirection :
server {
listen 443 ssl http2;
server_name www.openlab.com;
ssl_certificate /etc/nginx/ssl/openlab.crt;
ssl_certificate_key /etc/nginx/ssl/openlab.key;
ssl_protocols TLSv1.2 TLSv1.3;
# ... autres paramètres SSL ...
}
server {
listen 80;
server_name www.openlab.com;
return 301 https://$host$request_uri;
}