Création d'un serveur web sur un nuage
Page enfant de Service infonuagique
Nous décrivons ici une méthode très simple pour créer un serveur web dans notre environnement infonuagique en utilisant Ubuntu et Apache Web Server.
Sécurité
La sécurité est un aspect important pour tout ordinateur qui permet un accès public, ce qui peut prendre plusieurs formes, par exemple permettre les connexions SSH, afficher du code HTML via HTTP, ou offrir un service qui utilise le logiciel d'une tierce partie (comme WordPress). On appelle daemons les programmes qui soutiennent des services tels SSH ou HTTP; ces programmes sont en constante activité et reçoivent les requêtes de l'extérieur via des ports spécifiques. OpenStack permet de gérer ces ports et d'en restreindre l'accès, par exemple en accordant l'accès à certaines adresses IP en particulier ou à un groupe d'adresses; voir la section Groupes de sécurité. La sécurité d'une instance peut être grandement améliorée par le contrôle de son accès, mais ceci n'élimine pas tous les risques : si les données que vous envoyez ne sont pas cryptées d'une quelconque manière (par exemple avec des mots de passe), une personne habile peut trouver le moyen de les consulter. Les données sont donc souvent cryptées selon le protocole Transport Layer Security qui devrait être employé pour tous les sites web auxquels des personnes de l'extérieur peuvent se connecter (par exemple WordPress ou MediaWiki); à ce sujet, consultez Configuration du serveur Apache pour utiliser SSL. Il est aussi possible que des données transmises à partir de votre serveur web vers un client soient modifiées en route par un tiers, si elles ne sont pas cryptées. Ceci n'est pas un problème pour le serveur web comme tel, mais pourrait l'être pour les clients. Dans la plupart des cas, il est recommandé d'utiliser le cryptage sur votre serveur web. La sécurité de vos instances est votre responsabilité; nous vous rappelons de ne pas négliger cet aspect critique.
Installer Apache
- Suivez les directives dans la page Cloud : Guide de démarrage pour créer une instance persistante sous Linux Ubuntu (voir Démarrer depuis un volume).
- Pour ouvrir le port 80 et permettre l'accès HTTP à votre instance, suivez ces directives. À partir du menu déroulant, sélectionnez HTTP au lieu de SSH.
- Une fois connecté à votre instance,
- Faites la mise à jour de vos répertoires apt-get avec
[name@server ~]$ sudo apt-get update
- Faites la mise à jour de la version d'Ubuntu avec La version la plus à jour comprendra les toutes dernières rustines de sécurité.
[name@server ~]$ sudo apt-get upgrade
- Installez le serveur web Apache avec
[name@server ~]$ sudo apt-get install apache2
- Faites la mise à jour de vos répertoires apt-get avec
- Faites afficher la nouvelle page Apache temporaire en entrant l'adresse IP flottante de votre instance dans la barre d'adresses de votre fureteur; il s'agit de la même adresse IP que vous utilisez pour vous connecter avec SSH. Vous devriez voir une page test semblable à celle montrée à droite.
- Modifiez le contenu des fichiers dans
/var/www/html
pour créer le site web et en particulier le fichier index.html qui en définit le point d'entrée.
Modifier le répertoire root du serveur web
Il est souvent plus facile de gérer un site web si celui ou celle qui se connecte à l'instance est propriétaire des fichiers. Dans l'image Ubuntu de notre exemple, le propriétaire est ubuntu. Les étapes qui suivent indiquent à Apache de présenter les fichiers à partir de /home/ubuntu/public_html
(par exemple) plutôt que de /var/www/html
.
- Utilisez la commande (ou un autre éditeur) pour modifier la ligne
[name@server ~]$ sudo vim /etc/apache2/apache2.conf
<Directory /var/www/>
en<Directory /home/ubuntu/public_html>
. - Utilisez la commande pour modifier la ligne
[name@server ~]$ sudo vim /etc/apache2/sites-available/000-default.conf
DocumentRoot /var/www/html
enDocumentRoot /home/ubuntu/public_html
. - Créez le répertoire dans le répertoire /home de l'utilisateur avec la commande
[name@server ~]$ mkdir public_html
- Copiez la page par défaut dans le répertoire que vous venez de créer, c'est-à-dire public_html dans votre /HOME, avec la commande
[name@server ~]$ cp /var/www/html/index.html /home/ubuntu/public_html
- Redémarrez le serveur Apache pour actualiser les modifications avec la commande
[name@server ~]$ sudo service apache2 restart
Vous devriez pouvoir modifier le fichier /home/ubuntu/public_html/index.html
sans utiliser sudo
. Rafraîchissez la page chargée précédemment dans votre fureteur pour voir les modifications.
Limiter la bande passante
Si votre serveur web est très sollicité, il est possible qu'il occupe beaucoup des ressources de la bande passante. Une bonne manière de limiter l'utilisation de la bande passante est d'utiliser le module Apache.
Installation
[name@server ~]$ sudo apt install libapache2-mod-bw
[name@server ~]$ sudo a2enmod bw
Configuration
L'exemple de configuration suivant limite la bande passante pour tous les clients à 100Mbps.
BandWidthModule On ForceBandWidthModule On #Exceptions to badwith of 100Mbps should go here above limit #below in order to override it #limit all connections to 100Mbps #100Mbps *1/8(B/b)*1e6=12,500,000 bytes/s BandWidth all 12500000
Ceci devrait être placé entre les balises <VirtualHost></VirtualHost>
pour votre site. La configuration Apache par défaut se trouve dans le fichier /etc/apache2/sites-enabled/000-default.conf
.
Pour plus d'information
- Configuration du serveur Apache pour utiliser SSL
- Documentation Apache2 (en anglais)
- Tutoriel HTML w3schools (en anglais)