Technologie Web
Apache, 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.

technologie web - part3

  • 1.
  • 2.
  • 3.
  • 4.
    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
  • 5.
    Présentation • Serveur web •Le serveur le plus utilisé dans le monde ! ( < 70% de part de marché) • Logiciel libre (sous licence Apache 2.0)
  • 6.
    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
  • 7.
    Configuration • Le fichierde 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 • ...
  • 8.
    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>
  • 9.
    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>
  • 10.
    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>
  • 11.
    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>
  • 12.
    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/
  • 13.
  • 14.
    Présentation • Le projetTomcat 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)
  • 15.
    Qu'est qu'une webapp •Structure : • /WEB-INF/web.xml • /WEB-INF/classes/ • /WEB-INF/lib/ • *.html, *.jsp, etc. • Déployer dans tomcat/webapps
  • 16.
  • 17.
    Classloader • WEB-INF/classes • WEB-INF/lib •CATALINA_HOME/common/classes • CATALINA_HOME/common/lib • CATALINA_HOME/shared/classes • CATALINA_HOME/shared/lib
  • 18.
    Configuration • server.xml • Paramétragedes 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
  • 19.
    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>
  • 20.
    Exemple de web.xmlpour 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>
  • 21.
    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.