Intellicore Tech Talk 10 - Apache Web Server Internals

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Intellicore Tech Talk 10 - Apache Web Server Internals - Presentation Transcript

    1. Apache Web Server Internals Structure et Configuration Neil Armstrong 10 juin 2008
    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. Neil Armstrong - Étudiant Ingénieur Polytech’Nice-Sophia 10 juin 2008 - CICA Sophia Antipolis APACHE WEB SERVER INTERNALS Structure et Configuration
    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. 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. 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. 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. APACHE WEB SERVER Son fonctionnement ?
    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. ORGANISATION INTERNE Un coeur et des modules Requête Module Apache Module Core Réponse Module
    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. 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. 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. 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. 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. 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. APACHE WEB SERVER Qui s’en sert ? Comment ?
    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. 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. 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. 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. 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. APACHE WEB SERVER Comment une requête est traitée ? Comment configurer ?
    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. 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. 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. 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. 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. 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. EXEMPLE STRUCTURE
    31. EXEMPLE STRUCTURE /etc/apache2/
    32. EXEMPLE STRUCTURE /etc/apache2/ httpd.conf
    33. EXEMPLE STRUCTURE /etc/apache2/ httpd.conf sites-available/
    34. EXEMPLE STRUCTURE /etc/apache2/ httpd.conf sites-available/ sites-enabled/
    35. EXEMPLE STRUCTURE /etc/apache2/ httpd.conf sites-available/ sites-enabled/ mods-available/
    36. EXEMPLE STRUCTURE /etc/apache2/ httpd.conf sites-available/ sites-enabled/ mods-available/ mods-enabled/
    37. EXEMPLE STRUCTURE /etc/apache2/ httpd.conf sites-available/ default sites-enabled/000-default mods-available/ mods-enabled/
    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. 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. 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. HTTPD.CONF Configurations classiques Nom du serveur Interface d’écoute E-Mail de l’administrateur Types MIME Comportements par défaut
    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. 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. 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. Des questions ? MERCI DE VOTRE PARTICIPATION N’oubliez pas : http://techtalks.intellicore.net
    46. WWW .INTELLICORE.NET Tous droits réservés Intellicore Services © 2008

    + Neil ArmstrongNeil Armstrong, 2 years ago

    custom

    2116 views, 0 favs, 0 embeds more stats

    Sujet : Apache Web Server Internals
    Description : more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 2116
      • 2116 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 25
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories