Alianwebserver.com

Retour au sommaire ...Alian

Serveurs Web

  1. Présentation
    1. Les protocoles nécessaires
    2. L'OS
    3. Fonctionnement du serveur
  2. Installation d'Apache
    1. Récupérer les sources
    2. Installation
    3. Configuration
    4. Démarrage / Arrêt
    5. Fichiers Logs
    6. Sécurité
  3. Arborescence de travail
  4. Du HTML à la volée
    1. Server Side Includes
    2. Common Gateway Interface
  5. Des outils pour le Web

1 - Présentation

1.Les protocoles nécessaires :

On a le protocole TCP/IP, un DNS pour bien faire et avoir un nom de machine que le commun des mortels se rappellera toujours et le protocole HTTP. OK, tout est en place pour le Web. Bâti suivant le principe du Client-Serveur, on a un client (aujourd'hui à 80% Netscape ou Explorer), le navigateur-butineur-browser, et un serveur : Apache, majoritairement en utilisation sur Internet ou Netscape Entreprise. On peut dans le cas de l'Intranet d'une entreprise retrouver une multitude de serveurs comme IIS, OmniHTTP, mais il faut savoir que ce genre de serveurs est loin d'être un exemple de sécurité. Tous ces serveurs sont multi-plates-formes bien que le fonctionnement diffère un peu (Processus - Thread).

2.L'OS :

Bien que tout PC sous Windows puisse servir de serveurs Web, il est décommandé de le faire car :

Serveurs Web Dépassé 10 à 15 requêtes simultanées le PC va s'effondrer.
Serveurs Web Il ne supportera pas une attaque conséquente de la part d'une personne mal intentionnée.

Si le serveur doit supporté une charge conséquente, dédiez une machine Unix à son utilisation.

3.Fonctionnement du serveur Web :

Sous Unix, c'est un démon, sous Windows une tâche. Le serveur écoute en permanence  et attend les requêtes des utilisateurs. Quand une requête arrive, celui-ci se dédouble (fork()), et le fils est chargé de traiter la requête puis se termine à la fin de celle-ci.

Apache lance 8 démons pour pouvoir traiter les requêtes en simultanées. Le langage échangé est en majorité du HTML. Son évolution est "contrôlée" par L'IETF, et assurée par le combat des marques commerciales.

Pour une démarche d'installation pas à pas de Apache/SSL/mod_perl, voir ce document.

2 - Installation d'Apache sous Linux

1. Récupérer les sources sur l'un des nombreux sites miroirs :

Serveurs Web Site principal: http://www.apache.org
Serveurs Web Miroir en France: http://www.teaser.fr/apache
Serveurs Web Pour en savoir plus : Frequent Ask Question d'Apache :  http://www.apache.org/docs/misc/FAQ

2. Installation :

L'installation est simple et fournie . Pour tous les détails consultez le document http://www.apache.org/docs/install.html

Serveurs Web Création du repertoire hôte :
- mkdir /usr/local/httpd

Serveurs Web Décompression du fichier :
- gzip -d...
- tar -tvf...
- tar -xvf...

Serveurs Web Compilation . Depuis .../src (et après avoir lu la doc)
- configure
- make

3 - Configuration :

La configuration d'Apache est définie dans 3 fichiers au format texte dans le répertoire conf, que l'on peut éditer à tout moment. Il s'agit d'un certain nombre de variables à positionner, puis il suffit de relancer le serveur pour que les modifications soient prises en compte.

Ces variables ont une valeur par défaut, mais il s'agit surtout de savoir quelle variable on doit positionner pour répondre à un besoin bien précis . Un exemple de configuration (A ne pas utiliser tel quel) décrit l'objet de toutes les variables Ces 3 fichiers sont :

4. Démarrage/Arrêt :

Serveurs Web Le démarrage : httpd -f <chemin_du_fichier_httpd.conf>
Serveurs Web L'arrêt :  ps -ax ou ps -fe puis kill -9 no de processus

5. Fichiers Logs :

Les accès et erreurs générés sur votre serveur sont tous consignés dans deux fichiers :

6 - Sécurité :

La sécurité commence par une configuration bien soignée (Eviter de faire tourner le serveur avec les droits root ...). Puis il faut se tenir au courant des dernier problèmes de sécurité et utiliser toujours les dernières versions de vos utilitaires . La sécurité peut être remise en cause toutes les semaines, donc téléchargez régulièrement ce document :

Serveurs Web WWW-security-faq  

3 - Arborescence de travail

Si on décide de consacrer une machine au service HTTP, il est évident que plusieurs personnes vont demander à travailler sur cette machine . Il s'agit de trouver le moyen pour partager l'espace Web entre ces différentes personnes .

Une solution serait d'installer chaque site Web dans un compte utilisateur (répertoire $HOME/public_html) accessible via l'adresse http://<adresse_du_serveur>/~<nom_du_site> puis de placer un démon qui recopie ce site "de travail" dans le répertoire /htdocs/<nom_du_site> site "de visite" , accessible à l'adresse http://<adresse_du_serveur>/~<nom_du_site>.

Le répertoire /htdocs, racine du serveur Web devrait être placé sur une partition à part et avant chaque bascule il faudrait enregistrer le contenu du site basculé. On donne ainsi un répertoire de htdocs que l'on a détaché de l'arborescence du serveur à chaque site, mais on garde la gestion des cgi dans un seul répertoire que l'on peut contrôler à tout moment.

Bien qu'on ne puisse pas toujours gérer le contenu des autres, propager ces conseils autour de vous :

Serveurs Web N'hésitez pas à créer des répertoires pour structurer votre site
Serveurs Web Créez un repertoire images dès que nécessaire, isolez les images des documents HTML et des scripts CGI-BIN

4 - Du HTML à la volée

1 - Server Side Includes :

Ces fonctions, interprétées par le serveur, permettent de disposer de pages "dynamiques" à un faible coût . Les requêtes sont intégrées au code HTML sous forme de commentaires . Une petite partie de la page HTML est générée au dernier moment.

En général, pour éviter que le serveur n'analyse toutes les pages où des SSI peuvent apparaître, on donne une extension particulière au fichier contenant ces directives.

Serveurs Web Exemple: date de chargement de ce document: 25/11/97 18:44:30

2 - Common Gateway Interface :

Un script CGI est un programme destiné à être exécuté depuis un navigateur, qui va recevoir la sortie du programme. On peut l'éxécuter en demandant son URL ou en l'activant depuis le bouton "SUBMIT" d'un formulaire.

Le CGI c'est une application qui génère des pages HTML construites à la demande. Elles sont construites le temps d'une requête, dynamiquement . Un seul CGI peut contenir plusieurs pages HTML.

Le CGI c'est aussi lui qui peut recevoir le résultat d'un formulaire HTML . Il peut enregistrer ces données, ou les traiter d'une façon différente . Le script accède aux paramètres via les variables d'environnement.

En général, le CGI s'oppose aux pages HTML par le fait que le CGI est un programme, écrit donc dans un langage de programmation (Perl , C, C++) et génère du code HTML (dynamique) alors que les pages HTML sont écrites en HTML une fois pour toute (statique). La différence entre toto.doc, document texte et winword.exe l'éxécutable qui lance Word !

Le langage le plus couramment utilisé pour la fabrication de cgi-bin est PERL, langage produit pour la manipulation de chaînes de caractères.

Serveurs Web Pour tous renseignements http://www.perl.com

5 - Des outils pour le Web

La technologie du Web a été vendue dans un esprit de simplicité, donc difficile de demander à une personne non informaticienne de se connecter via Telnet, ou de faire un FTP puis un PUT, donc il faut essayer de trouver le compromis Puissance Unix - Interface utilisateur simple.

Le HTML lui-même, même si c'est un langage très simple, ne peut être compris par ces non-informaticiens . Les éditeurs HTML ont fait leur apparition et facilite le traitement des documents. On se rapproche de Word, et les gens en sont satisfaits.

Des éditeurs HTML connus : On peut trouver avec Netscape un éditeur WYSIWYG, Deramweaver, HotDog, HotMetal, ou via l'outil de Microsoft, FrontPage.

Il existe également des outils permettant de manipuler simplement Javascript.