Web statique : client-serveur. Web et LAMP. Discussion HTTP. Caractéristiques du HTTP

Documents pareils
LAMP : une nouvelle infrastructure LAMP. Une architecture modulaire. Installation

Introduction à MySQL (ou MySQL en 3 heures montre en main)

Dans l'épisode précédent

L3 informatique TP n o 2 : Les applications réseau

Apache 2.4 Installation et configuration

Hébergement de site web Damien Nouvel

Sauvegarde de postes clients avec BackupPC

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau

SERVEUR HTTP Administration d apache

Serveur Subversion Debian GNU/Linux

UE5A Administration Réseaux LP SIRI

TD4 - Supervision et métrologie des réseaux. 1 Supervision des applications et services réseaux et des ressources locales

Linux et le Shell. Francois BAYART. Atelier du samedi 20 Novembre

Présentation du relais HTTP Open Source Vulture. Arnaud Desmons Jérémie Jourdin

SERVEUR WEB LINUX LAMP. Raymond RAZAFIMAMONJY Administration LINUX / UNIX Chapitre 15

Spécialiste Systèmes et Réseaux

REPARTITION DE CHARGE LINUX

Services Réseaux - Couche Application. TODARO Cédric

ZABBIX est distribué sous licence GNU General Public License Version 2 (GPL v.2).

Ubuntu Linux Création, configuration et gestion d'un réseau local d'entreprise (3ième édition)

Archives, backup, DRP. Archivage, sauvegarde, PRA. (plan de reprise d'activité) 04 Octobre

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Hébergement de sites Web

Maintenance et gestion approfondie des Systèmes d exploitation Master 2 SILI. Année universitaire David Genest

Serveur Web Apache - SSL - PHP Debian GNU/Linux

Outils de développement collaboratif

Les formations. Administrateur Systèmes et Réseaux. ENI Ecole Informatique

Le serveur web Apache

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

Solution d inventaire automatisé d un parc informatique et de télédistribution OCS INVENTORY NG. EHRHARD Eric - Gestionnaire Parc Informatique

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Serveurs de noms Protocoles HTTP et FTP

LINUX Préparation à la certification LPIC-3 (examen LPI 300) - 2ième édition

Serveur de sauvegarde à moindre coût

WebSSO, synchronisation et contrôle des accès via LDAP

NACIRI Mehdi. Rapport de stage : Mise en place d un moyen pour anticiper les pannes des serveurs de l IUT. Promotion BTS SIO Option SISR

Backuppc, retour d expérience

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Sauvegardes sous Mac OS X

contexte cahier des charges critères de choix fonctionnalités configuration en pratique Bilan Conclusion Backuppc Logiciel de sauvegarde

Internet. Web Sécurité Optimisation

Architectures web/bases de données

CAHIER DES CHARGES D IMPLANTATION

Supervision de réseau

Formation en Logiciels Libres. Fiche d inscription

APACHE 2.4. Installation et configuration. Nicolas MARTINEZ

les techniques d'extraction, les formulaires et intégration dans un site WEB

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009

1. La plate-forme LAMP

Polux Développement d'une maquette pour implémenter des tests de sécurité

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Mercredi 15 Janvier 2014

Architecture de serveurs virtualisés pour la communauté mathématique

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

(structure des entêtes)

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

Forfaits de gestion iweb Listes des services et des logiciels pris en charge

LemonLDAP::NG / SAML2. Xavier GUIMARD (Gendarmerie Nationale) Clément OUDOT (Groupe LINAGORA)

ClariLog - Asset View Suite

Protocoles Applicatifs

2011 Hakim Benameurlaine 1

Présentation de l outil d administration de réseau Nagios

ADF Reverse Proxy. Thierry DOSTES

Catalogue des formations 2015

Les serveurs WEBUne introduction

Programmation Web. Introduction

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

INSTALLATION NG V2.1 D OCS INVENTORY. Procédure d utilisation. Auteur : GALLEGO Cédric 23/10/2014 N version : v1

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

BTS SIO Dossier BTS. PURCHLA Romain

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Cours Bases de données

Serveur de travail collaboratif Michaël Hoste -

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

DOCUMENTATION ADMINISTRATEUR

SUPERVISION DE RÉSEAU AVEC NAGIOS

Personnes ressources Tice. Académie de Rouen

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

Description de l implantation dans le centre d examen (nom du service ou de l outil et caractéristiques techniques)

Développement des Systèmes d Information

DSI - Pôle Infrastructures

Procédure d'installation

Table des matières 1. Chapitre 1 Introduction à Nagios et la supervision

OpenLDAP, un outil d administration Réseau. Une implémentation d OpenLDAP

Installation Installation. Windows. Tout-en-un. Un livre de Wikilivres.

Installation de Zabbix

La Latecion protection anti-intrusion Web Web Le concept «Zero effort Security» La protection des applications Extranet

Les applications Internet

Installation d un hébergement Web à domicile

Formation owncloud Thierry DOSTES - Octobre

Application Web et J2EE

NetCrunch 6. Superviser

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée Virtual Server de Microsoft

L état de l ART. Évolution récente des technologies. Denis Szalkowski Formateur Consultant

Transcription:

Web statique : client-serveur Requete HTTP Web et LAMP navigateur Serveur web (apache) Client Reponse HTTP Serveur Discussion HTTP Exemple de requête HTTP GET /page-test.html HTTP/1.1 Host : www.exemple.fr User-Agent : Opera/9.22 (X11 ; Linux x86_64 ; U ; en) Accept : text/html, application/xml ;q=0.9 Accept-Charset : iso-8859-1, utf-8 Exemple de réponse HTTP HTTP/1.1 200 OK Date : Tue, 13 Nov 2007 10 :32 :48 GMT Server : Apache/2.0.52 (CentOS) Accept-Ranges : bytes Connection : close Content-Type : text/html ; charset=utf-8... [HTML de la page]... Caractéristiques du HTTP Un dialogue client-serveur est formé de : Requête HTTP source d'informations variées : IP, version du navigateur, OS, langue, page de provenance, etc. Réponse HTTP entête + contenu contenu pas forcément en HTML : Content-Type (MIME) permet la redirection d'url Exemple de réponse : Redirection HTTP HTTP/1.x 301 Moved Permanently Date : Tue, 13 Nov 2007 10 :32 :48 GMT Location : http ://newserver.fr/page.php

Serveur : Common Gateway Interface navigateur Client Requete HTTP Reponse HTTP Serveur web (apache) Serveur exécute Le serveur web (apache) lance un nouveau processus ce processus envoie un contenu sur la sortie standard apache redirige ce contenu vers le navigateur Lent et lourd Il existe des variantes (FAST_CGI) pour améliorer les performances. processus indépendant (.exe sous Win) Serveur : Modules et langages web On remplace le CGI par une extension du serveur web (module). navigateur Client Requete HTTP Reponse HTTP permet d'utiliser un langage interprété Serveur web (apache) Serveur module PHP compile exécute cette extension (module) est spécique au serveur web. = seuls certains langages sont possibles : PHP, C#, Perl, Ruby, Python... fichier.php Applications 3-tier LAMP : une architecture modulaire et exible navigateur Client 1 Requete HTTP Reponse HTTP 3 Serveur web (apache) Serveur module PHP 2 Base de données (MySQL) 1. Les composantes Linux Apache MySQL Php : fortement lié à Apache (module) 3 parties : client serveur SGDB Les données persistantes sont stockées dans MySQL. 2. Les variantes Pour Windows : EasyPHP, XAMP... Serveurs web : lighttpd... BdD SQL : PostgreSQL, SQLite, Oracle... Langages interprétés : Perl, Python, Ruby...

Installation Une architecture modulaire Documentation : http://localhost/manual/en/mod/ Les composants à installer 1. Apache 2.2.x 2. MySQL 5.0 ou 5.1 3. Php 5.2 ou 5.3 4. PhpMyAdmin 2.11.x ou 3.2.x En pratique 1. aptitude install apache2.2 apache2-doc >... 2. aptitude install phpmyadmin > PHP, MySQL... Cinq niveaux d'intégration des composants 1. Core 2. MPM 3. Base 4. Extension 5. Experimental En pratique (Debian) Répertoires de conguration mods-available module.load nom et chier à charger(.so) module.conf conguration (optionnel) Commandes : a2enmod et a2dismod MPM - Multi-Processing Module Ordonnancement des réponses aux requêtes Modules sans threads (classiques) mpm_prefork (défaut) : le plus stable mpm_itk (contrib.) : variante, un utilisateur par vhost Modules avec threads (processus légers) mpm_worker : multi-threads + multi-processus plus léger, plus réactif mpm_event (var. expérimentale) selon système incompatible avec mod_ssl Remarques modules dépendants du système d'exploitation et du matériel Optimisation : plusieurs paramètres selon le MPM choisi (4 à 6) Conguration Quatre niveaux de contextes 1. Serveur (server cong) 2. Hôte virtuel (virtual host) 3. Directory (cf plus bas) 4..htaccess (selon AllowOverride) Sections de niveau Directory Files, FilesMatch : chier Directory, DirectoryMatch : répertoire Location, LocationMatch : URL Proxy, ProxyMatch

Résolution des URL Base : DocumentRoot Module mod_alias 1. Redirect, RedirectMatch : URL-path -> URL 2. Alias, AliasMatch : URL-path -> FS 3. ScriptAlias, ScriptAliasMatch : URL-path -> FS Module mod_rewrite Moteur de ré-écriture URL -> URL... Contenus dynamiques Trois méthodes principales CGI (Common Gateway Interface) + FastCGI... Modules Apache : mod_perl, mod_php... Méthodes internes à Apache : mod_info, mod_status Gestion des scripts CGI Dénitions des Handlers SetHandler (dans une section) (core) AddHandler, RemoveHandler <handler> <.ext> (mod_mime) Dénition des actions (mod_action) Action <handler mime-type> <script-cgi> (mod_action) Script <methode=put GET> <script-cgi> (mod_action) Voir aussi : ScriptAlias, ScriptAliasMatch Documentation :.../handler.html Authentication et autorisation Gestion multi-sites mod_auth_basic (ou mod_auth_digest) <Location...> AuthUserFile /etc/apache2/docs.htpasswd AuthType basic AuthName "Documents confidentiels" require valid-user </Location> mod_authn_* : authentications spéciques Deux usages principaux hôtes virtuels (plusieurs noms sur un serveur) HTTPS : sites sécurisés (HTTP over SSL) En pratique (Debian) Deux répertoires : sites-available et sites-enabled Commandes : a2ensite et a2dissite Directive de section <VirtualHost> mod_authz_* : autorisations spéciques

Diagnostic PHP - le langage Les logs Apache ErrorLog + LogLevel CustomLog + LogFormat Module mod_status apache2ctl [status fullstatus] page http://localhost/server-status (ou URL personnalisée) Module mod_info page http://localhost/server-info (ou URL personnalisée) historique : 1995-2009 (5.3.0)... un langage de script compilé embarqué dans le HTML (langage de template) évolution progressive et complexication traitement automatisé du texte connectable aux principales BdD (MySQL...) couche objet frameworks de développement PHP - conguration et administration PHP - diagnostic php.ini Les extensions PHP PEAR (PHP Extension and Application Repository) : composants PHP http://pear.php.net PECL (PHP Extension Community Library) : composants compilés (C) http://pecl.php.net paquet Debian php-pear ex. pear install Auth_SASL attention aux recouvrements Pear / Debian phpinfo() php5 CLI (Command Line Interface) Débogage : xdebug : administration et développement

Le monde des bases de données Principaux SGBDR du marché Les applications bureautiques tout-en-un File Maker Pro MS Access... Les applications clients-serveurs (SGBD) modèle relationnel ultra-majoritaire (tables=relations) un standard : SQL (Structured Query Language) autres modèles : objet, attribut-valeur... SGBDR propriétaires Oracle DB2 (IBM) MS SQL Server... SGBDR libres MySQL PostgreSQL Firebird (fork de Borland InterBase) SQLite embarqué (p. ex. Firefox, Thunderbird) SQL : Structured Query Language Un langage de requêtes normalisé Partagé (plus ou moins) par les principaux SGBDR Ayant subi plusieurs évolutions SQL-86 (ANSI/ISO) SQL-89 ou SQL1 SQL-92 ou SQL2 SQL-99 ou SQL3 SQL:2003 SQL:2008 (en cours d'élaboration) Composé de cinq parties principales : LDD (langage de dénition des données) LMD (langage de manipulation des données) LCD (langage de contrôle des données) LCT (langage de contrôle des transactions) SQL procedural : PSM (Persistent Stored Module), CLI (Call Level Interface), Embedded SQL... MySQL c'est... une base de donnée relationnelle créée en 1995 modèle client-serveur une application légère dans le monde des SGBD développée par une société suédoise (ABSoft) Rachetée par Sun Microsytems début 2008. diusée sous double licence libre (GPL) pour un usage interne ou libre propriétaire payant pour un usage propriétaire le plus répandu des SGBDR libres particulièrement utilisé sur le web (LAMP) multi plates-formes : Linux, Windows, OSX, etc. une documentation de référence en ligne (HTML, PDF) http://dev.mysql.com/doc/refman/5.0/en/index.html partiellement conforme au standard SQL

PhpMyAdmin - TP Applications web installation du paquet Debian importation de la base disques.sql manipulation des tables et relations paquet Debian : Mediawiki à la main : GLPI Sauvegarde et archivage Rappel : archives tar (archivage) + gzip / bzip2 (compression) Sauvegarde et archivage Sauvegardes Historiquement, sur bandes = accès longs, séquentiels images (disque ou partition) : dd, partimage, Clonezilla dump + restore : outil Unix historique de sauvegarde, orienté bandes cpio : alternative à tar rsync : commande orientée synchronisation (locale ou distante) Applications complètes Amanda : disques + bandes, ligne de commande BackupPC : disques seulement, interface web...

Sauvegarde et archivage - Unix traditionnel rsync : synchronisation de répertoires dump + restore sauvegarde totale de /etc avec dump restauration interactive de fstab et modprobe.d dans /mnt/vol/etc sauvegarde d'un système de chier au niveau 0 (complète) modication de quelques chiers sauvegarde incrémentale des diérences restauration complète Modes de transfert push : le client envoie ses données pull : le serveur récupère les données ciblées Protocoles réseau utilisables local shell distant : rsh (obsolète), ssh rsync hote :/... rsyncd : démon et protocole spécique rsync hote : :/... rsyncd + shell distant! Fondation : librsync calcul ecace des diérences entre binaires algorithme rolling checksum Surcouches à rsync / librsync rsync simple Idée : snapshots (images du FS) sauvegardes incrémentales via rsync liens durs pour compléter Solutions légères rdi-backup (python) : push+pull rsnapshot (perl) : pull dirvish (perl) : pull rlbackup (C) : push (vise la sécurité) Applications BackupPC (perl) : interface web rsync en local rsync -av (-d) Source Destination Attention à la diérence : Source et Source/ distant - mode push rsync -av -z Source <(user@)host> :/Destination distant - mode pull rsync -av -z <(user@)host> :/Source Destination

rsyncd - protocole de transfert Protocole spécique : TCP/873 Démarrage : 2 méthodes, cf. etc/default/rsync Dénition de modules (partages à la Samba) man rsyncd.conf /usr/share/doc/rsync/examples/rsyncd.conf [home] comment = espace utilisateurs path = /home read only = no uid = 0 # auth users = backuppc # secrets file = /etc/rsyncd.secrets # hosts allow = 192.168.0.0/24 BackupPC - Conguration Debian Conguration : dans /etc/backuppc config.pl (Perl) hosts chaque client : <hote>.pl Méthodes de transfert possibles Unix : rsync, rsyncd, tar Windows : smb, rsyncd Exemple : conguration d'un client en rsyncd $Conf{XferMethod} = 'rsyncd'; $Conf{RsyncdUserName} = 'backuppc'; $Conf{RsyncdPasswd} = 'backuppc'; $Conf{RsyncdAuthRequired} = 1; $Conf{RsyncShareName} = ['home', 'www']; Compléments : suivi de version et réplication Suivi de version Pour les chiers sensibles, par exemple /etc/ Principe : stocker l'historique des versions successives Outils : CVS, Subversion, SVK... Supervision réseau Réplication Pour la sécurité et l'intégrité des données, la redondance les chiers de log (via rsyslog, syslog-ng...) les bases de données (serveurs maître et esclaves) les annuaires (LDAP...)

Introduction à la supervision réseau Pour quoi faire? Statistiques et suivi temporel : collecte, achage Alertes : mail, Instant Messenger, etc. Actions : relancer un service, couper un port Comment? les diérentes options collecte passive (à la ping) agent (client) serveur centralisateur Multiplicité des solutions cf Wikipedia, Network Monitoring Comparison Supervision légère - monit Installer monit : un superviseur simple Surveillance des processus et ressources lancer / relancer un service l'arrêter s'il sature le système Surveillance des changements chiers : date, taille, checksum... Écriture des logs Interface web TP : surveillance du serveur DNS Adapter http://www.debian-administration.org/articles/269 TP Rsyslog - fonctionnalités avancées 1. envoyer les logs d'authentication sur un serveur de collecte 2. avec un horodatage précis (microseconde) 3. par protocole TCP (test du tampon) 4. séparer les logs sudo des autres sur le collecteur 5. passer par un protocole chiré! Nagios - un aperçu Présentation Poids lourd des logiciels de supervision libres Conception très modulaire (plug-ins) Nombreuses interfaces, dont le web Installation (debian) nagios.cfg : conguration principale pour Apache : ajouter un chier htpasswd.users cgi.cfg : use_auth=0 TP : ajouter un hôte à superviser www.debian-administration.org/article/using_ Nagios_to_Monitor_Networks Pour aller plus loin : Centreon

SNMP : Simple (!) Network Monitoring Protocol MIB : base universelle des données supervisables structure hiérarchique (arbre), avec délégation (cf DNS, LDAP) matériels : routeurs, imprimantes, onduleurs... variables : uptime, le d'attente, température, autonomie... complexe : nombreuses normes, navigateurs MIB... http://www.debianadmin.com/ linux-snmp-oids-for-cpumemory-and-disk-statistics. html Implémentation de référence : Net-SNMP un agent (démon) de nombreux plugins (perl, python...) une suite de commandes : snmpwalk... http://www.debianhelp.co.uk/snmp.htm SNMP compatible avec de nombreux logiciels