Loading...
Flash Player 9 (or above) is needed to view slideshows. We have detected that you do not have it on your computer.To install it, go here
 
Post to Twitter Post to Twitter
Myspace Hi5 Friendster Xanga LiveJournal Facebook Blogger Tagged Typepad Freewebs BlackPlanet gigya icons
SlideShare is now available on LinkedIn. Add it to your LinkedIn profile.

Intellicore Tech Talk 10 - Apache Web Server Internals

From superna, 5 months ago Add as contact

Sujet : Apache Web Server Internals
Description : Le Serveur Web Apache est devenu le logiciel le plus utilisé au mondepour servir les pages internet et intranet. Son utilisation très variée, du petit site familial au site d’entreprise avec systèmes de balance de charge et architecture objet, fait que sa structure est peu connue ainsi que ses différentes configurations.
Conférenciers : Neil Armstrong, élève ingénieur chez Neotion et futur ingénieur Polytech’Nice-Sophia, spécialisé en Logiciels Embarqués et technologies Open-Source.
Date : 10 juin 2008
Lieu : Amphithéâtre Edison, CICA, Sophia Antipolis, FRANCE

621 views | 0 comments | 0 favorites | 7 downloads | 0 embeds (Stats)

Categories

Technology

Groups/Events

Embed in your blog options close
Embed (wordpress.com) Exclude related slideshows Embed in your blog

More Info

This slideshow is Public
Total Views: 621 on Slideshare: 621 from embeds: 0
Flagged as inappropriate Flag as inappropriate

Flag as inappropriate

Select your reason for flagging this slideshow as inappropriate.

If needed, use the feedback form to let us know more details.

Slideshow Transcript

  1. Slide 1: Apache Web Server Internals Structure et Configuration Neil Armstrong 10 juin 2008
  2. Slide 2: Intellicore Tech Talks • Des conférences pour partager son savoir • Le mardi au CICA Sophia Antipolis • http://techtalks.intellicore.net • Aujourd’hui la 10ème conférence • Vous voulez participer ? • techtalks (at) intellicore.net
  3. Slide 3: Neil Armstrong - Étudiant Ingénieur Polytech’Nice-Sophia 10 juin 2008 - CICA Sophia Antipolis APACHE WEB SERVER INTERNALS Structure et Configuration
  4. Slide 4: APACHE ? FTP, Gopher, POP/SMTP NNTP Tim Berners-Lee Projet ATLAS L’histoire commence en 1990 au CERN Détecteur de Particules Invention de l’HTML et du protocole HTTP HyperText Transfert Protocol Premiers Serveurs HTTP dont le : NCSA httpd National Center for Supercomputing Formation du groupe de développeurs Apache Applications Mais pourquoi ce nom ?
  5. Slide 5: APACHE ? A PAtCHy Server Proche de la prononciation de Apache en anglais Sources basées sur un ensemble de PATCHs Aujourd’hui la base du NCSA httpd a disparu des sources Sauf dans la configuration
  6. Slide 6: PART DE MARCHÉ Dés la première version, un succès Aujourd’hui, sert 49,41% des sites actifs IIS de Microsoft : 34,37% Google : 9,37% avec son serveur interne les autres serveurs se partagent 6,75% des sites
  7. Slide 7: PARTS DE MARCHÉ 34000000 33,5M Apache 23,3M 17000000 Microsoft IIS Google 6,4M Autres 0 0 00 0 01 0 02 0 03 0 04 0 05 0 06 0 07 0 08 2 2 2 2 2 2 2 2 2
  8. Slide 8: APACHE WEB SERVER Son fonctionnement ?
  9. Slide 9: EVOLUTION INTERNE Basé sur NCSA httpd inetd Simple mais avec un processus unique Sortie de Apache 1.0 en 1995 HTTP1.1 Suite a une profonde refonte depuis NCSA httpd Sortie de Apache 2.0 en 2002 IPV6 Sortie de Apache 2.2 en 2005
  10. Slide 10: ORGANISATION INTERNE Un coeur et des modules Requête Module Apache Module Core Réponse Module
  11. Slide 11: MODULARITÉ Le traitement d’une requête est découpé en une série d’étapes traitées par les différents modules URI Fichier Authentification Permissions Type du fichier Envoi vers un module si besoin Réponse au client Stockage des erreurs éventuelles
  12. Slide 12: GESTION SIMPLE DE RESSOURCES Une corbeille de ressource est gérée dynamiquement Gestion mémoire simplifiée Efficacité de gestion Lors d’une requête une ressource est allouée suivra les étapes pendant la vie de la requête
  13. Slide 13: RÉPARTITION DU TRAVAIL Répartition du travail entre plusieurs tâches Gestion de la politique par des modules spécifiques MPM : Multi-processing Module 3 politiques possibles actuellement : Prefork : Multi-Processus UNIX Worker : Multi-Thread (Unix, Windows, ...) Event : Pool de Processus et Threads, expérimental
  14. Slide 14: TRANSIT DES DONNÉES Les données de la requête sont stockées dans des seau “Bucket”, l’ensemble est une “Brigade” équipe Transitent entre les modules Ils peuvent ajouter des informations (En-têtes, ...) Ils peuvent en modifier (redirection, erreur, ...) Une API offre aux modules des méthodes flexibles et puissantes pour travailler avec les données
  15. Slide 15: MODULES DE FILTRES Modules de filtres Utilisés pour faire des actions sur les données Entrée : Décompresser, Décoder, ... Sortie : Compresser, Coder, ...
  16. Slide 16: MODULES DE FILTRES Modules de filtres Utilisés pour faire des actions sur les données Entrée : Décompresser, Décoder, ... Sortie : Compresser, Coder, ...
  17. Slide 17: APACHE WEB SERVER Qui s’en sert ? Comment ?
  18. Slide 18: SITE PERSO Site très simple 1 adresse = 1 site internet Pas de scripts dynamiques (php, ...) 1 seul hôte virtuel -> “catch-all” Typique des installations par défaut sous GNU/ Linux et Mac OS X
  19. Slide 19: HÉBERGEMENT Site internet dynamique avec sous-domaines 1 adresse IP = plusieurs nom de domaines et sites Utilisation d’un certain nombre d’hôtes virtuels 1 par sous-domaine (produits.mon-domaines.fr, ...) 1 “catch-all” généralement www.mon-domaine.fr Typique d’un site d’entreprise ou d’hébergement web
  20. Slide 20: INFRASTRUCTURE WEB Gros site d’entreprise dynamique Plusieurs adresses IP, plusieurs sous-domaines Utilisation de communications SSL Beaucoup d’hôtes virtuels Grosse infrastructure Java EE Plusieurs serveurs pour redondance
  21. Slide 21: SOLUTIONS Gestion d’hôtes virtuels Gestion de plusieurs sous-domaines sur le même serveur Gestion de “proxy” Renvoi de la requête vers un autre serveur Utilisé pour de la balance de charge Renvoi vers un micro-serveur web embarqué en Rails, Python, ...
  22. Slide 22: BALANCE DE CHARGE Utilise le module mod_proxy_balancer 2 algorithmes Request Counting Chaque serveur => même quantité de clients Weighted Traffic Counting. Chaque serveur => même quantité de données à traiter
  23. Slide 23: APACHE WEB SERVER Comment une requête est traitée ? Comment configurer ?
  24. Slide 24: MODULES UTILES Interpréteurs php, ruby, perl, python, ... CGI : Common Gateway Interface Texte Server Sides Includes URL Rewriting Authentification (plain, ldap, mysql, ...) Et beaucoup d’autres...
  25. Slide 25: EXEMPLE SIMPLE 1 site internet en virtual host monsite.mondomaine.com La résolution du nom donne une adresse IP L’adresse rentrée sur le navigateur http://monsite.mondomaine.com/blog/index
  26. Slide 26: REQUÊTE HTTP Requête HTTP 1.1 1.0 obsolètes -> hôtes virtuels non pris en charge GET /blog/index HTTP/1.1 Host : monsite.mondomaine.com User-Agent : Mozilla/5.0 ... Autres en-têtes facultatives (Accept, Cookies, ...)
  27. Slide 27: TRAITEMENT Traitement du Host monsite.mondomaine.com Transformation de /blog/index Ex: /var/www/phpblog/index.php?p=index Type MIME : application/x-httpd-php Lancement de PHP Envoi de la réponse au client
  28. Slide 28: RÉPONSE HTTP Simple code d’erreur suivi d’en-têtes 200 OK 404, ... Type de contenu : Content-Type Taille du contenu Langage, Date de modification, Cookies, ....
  29. Slide 29: CONFIGURATION Configuration très modulable Du simple fichier unique httpd.conf A la structure complexe de répertoire Chargement dynamique de modules Syntaxe simple et puissante Documentation claire
  30. Slide 30: EXEMPLE STRUCTURE
  31. Slide 31: EXEMPLE STRUCTURE /etc/apache2/
  32. Slide 32: EXEMPLE STRUCTURE /etc/apache2/ httpd.conf
  33. Slide 33: EXEMPLE STRUCTURE /etc/apache2/ httpd.conf sites-available/
  34. Slide 34: EXEMPLE STRUCTURE /etc/apache2/ httpd.conf sites-available/ sites-enabled/
  35. Slide 35: EXEMPLE STRUCTURE /etc/apache2/ httpd.conf sites-available/ sites-enabled/ mods-available/
  36. Slide 36: EXEMPLE STRUCTURE /etc/apache2/ httpd.conf sites-available/ sites-enabled/ mods-available/ mods-enabled/
  37. Slide 37: EXEMPLE STRUCTURE /etc/apache2/ httpd.conf sites-available/ default sites-enabled/000-default mods-available/ mods-enabled/
  38. Slide 38: EXEMPLE STRUCTURE /etc/apache2/ httpd.conf sites-available/ default sites-enabled/000-default mod_php5.load mods-available/ mod_php5.conf mod_php5.load mods-enabled/ mod_php5.conf
  39. Slide 39: EXEMPLE STRUCTURE /etc/apache2/ httpd.conf sites-available/ default sites-enabled/000-default mod_php5.load mods-available/ mod_php5.conf mod_php5.load mods-enabled/ mod_php5.conf
  40. Slide 40: EXEMPLE STRUCTURE /etc/apache2/ httpd.conf sites-available/ default sites-enabled/000-default mod_php5.load mods-available/ mod_php5.conf mod_php5.load mods-enabled/ mod_php5.conf
  41. Slide 41: HTTPD.CONF Configurations classiques Nom du serveur Interface d’écoute E-Mail de l’administrateur Types MIME Comportements par défaut
  42. Slide 42: 000-DEFAULT Définition du “catch-all” NameVirtualHost *:80 Balise <VirtualHost *:80> DocumentRoot /var/www/monsite ServerName monsite.mondomaine.com ServerAlias www.monsite.com monsite.com
  43. Slide 43: MODULES Séparation du chargement et de la configuration Chargement avec LoadModule LoadModule php5_module /lib/apache2/libphp5.so Configuration facultative Exemple PHP AddType application/x-httpd-php .php DirectoryIndex index.html index.php
  44. Slide 44: CONFIGURATION CONDITIONNELLE Permet d’exécuter des parties de configuration Si un module est chargé Si une variable est définie Associé a l’inclusion de fichiers Configuration puissante !
  45. Slide 45: Des questions ? MERCI DE VOTRE PARTICIPATION N’oubliez pas : http://techtalks.intellicore.net
  46. Slide 46: WWW .INTELLICORE.NET Tous droits réservés Intellicore Services © 2008