Technologie WebApache, Tomcat
Le 3 Décembre 2010
Plan
1. Apache
2. Tomcat
Plan
1. Apache
2. Tomcat
Présentation
• Serveur web
• Le serveur le plus utilisé dans le monde ! ( < 70% de part de marché)
• Logiciel libre (sous licence Apache 2.0)
• Avantages :• Performance• Portable (Linux, Unix, Windows, Mac)• Beaucoup de modules• Très actif
Présentation
• Serveur web
• Le serveur le plus utilisé dans le monde ! ( < 70% de part de marché)
• Logiciel libre (sous licence Apache 2.0)
Les répertoires à connaître
• Le répertoire des fichiers de configuration
• sous linux : /etc/apache2/
• Le répertoire des logs (ErrorLogs / AccessLogs)
• Sous linux : /var/log/apache2
• Le répertoire du site (DocumentRoot)
• Sous linux : /var/www/html
Configuration
• Le fichier de configuration
• /etc/apache2/httpd.conf
• Permet de spécifier
• les modules à activer
• le DocumentRoot (la racine du serveur)
• L'emplacement des fichiers de logs
• L'adresse mail de l'administrateur
• ...
Les balises à connaître
• Directory
• Permet de spécifier une configuration propre à un répertoire du file system
<Directory /var/www/html>
Redirect permanent http://www.google.fr
</Directory>
Les balises à connaître
• Location
• Permet de spécifier une configuration propre à un répertoire web
<Location /admin>
Order deny, allow
Allow from 86.73.109.213
</Location>
Les balises à connaître
• Alias
• Permet de spécifier un répertoire du file system comme répertoire web
Alias /pokemon /var/www/html/admin
<Directory /var/www/html/admin>
Order deny, allow
Allow from 127.0.0.1
</Directory>
<Location /admin>
Order deny, allow
Deny from all
</Location>
Les balises à connaître
•Virtualhost
•Balise permettant d'héberger plusieurs nom de domaine sur une machine
NameVirtualHost *:80
<Virtualhost *:80>
ServerName thales
DocumentRoot /var/www/html
</Virtualhost>
<Virtualhost *:80>
ServerName bsimard.com
DocumentRoot /var/www/bsimard
<Directory /var/www/bsimard>
Order allow,deny
Allow from all
</Directory>
</Virtualhost>
Les modules
• mod_rewrite : permet de faire de la réécriture d'url
• mod_proxy & mod_proxy_http : permet de redirigé une requête entrante vers un autre serveur (via http)
• Très utilisé avec les serveurs J2EE
• mod_deflate : permet d'activer la compression gzip
• mode_cache : pour activer le cache
• http://httpd.apache.org/docs/2.2/mod/
Plan
1. Apache
2. Tomcat
Présentation
• Le projet Tomcat a +10 ans
• Implémentation Open Source des spécifications Servlet / JSP
• Leader (>60%), communauté importante
• Tomcat n’est pas un serveur d’application ! (pas d'EJB)
Qu'est qu'une webapp
• Structure :
• /WEB-INF/web.xml
• /WEB-INF/classes/
• /WEB-INF/lib/
• *.html, *.jsp, etc.
• Déployer dans tomcat/webapps
Structure de Tomcat
Tomcat 5.5 Tomcat 6
Classloader
• WEB-INF/classes
• WEB-INF/lib
• CATALINA_HOME/common/classes
• CATALINA_HOME/common/lib
• CATALINA_HOME/shared/classes
• CATALINA_HOME/shared/lib
Configuration
• server.xml
• Paramétrage des ports
• de shutdown (8005)
• des connectors
• Configuration du serveur (des connectors)
• Écoute sur un port particulier
• Activiation du gzip
<Connector port="8181" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8143" compression="on" compressionMinSize="2048" compressableMimeType = "text/html,text/xml,text/css,application/javascript"/>
• SSL
Configuration
• tomcat-user.xml (Realm)
• Pour laisser Tomcat gérer l'authentification• Paramétrage des utilisateurs• Paramétrages des rôles
<tomcat-users>
<role rolename="manager"/>
<user username="tomcat" password="tomcat" roles="manager"/>
</tomcat-users>
Exemple de web.xml pour l'authentification
<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app> <security-constraint> <web-resource-collection> <web-resource-name>Timesheets</web-resource-name> <url-pattern>/timesheets/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>employee</role-name> </auth-constraint> </security-constraint> <security-role> <role-name>employee</role-name> </security-role> <login-config> <auth-method>BASIC</auth-method> </login-config></web-app>
Authentification / Realms
Realms :
• JDBCRealm - Accesses authentication information stored in a relational database, accessed via a JDBC driver.
• DataSourceRealm - Accesses authentication information stored in a relational database, accessed via a named JNDI JDBC DataSource.
• JNDIRealm - Accesses authentication information stored in an LDAP based directory server, accessed via a JNDI provider.
• UserDatabaseRealm - Accesses authentication information stored in an UserDatabase JNDI resource, which is typically backed by an XML document (conf/tomcat-users.xml).
• MemoryRealm - Accesses authentication information stored in an in-memory object collection, which is initialized from an XML document (conf/tomcat-users.xml).
• JAASRealm - Accesses authentication information through the Java Authentication & Authorization Service (JAAS) framework.