5.FreshMinutes.IT – Java & IT

5 minutes pour consolider ses connaissances en Java et dans les Nouvelles Technos.
  • Accueil
  • À propos
  • Contact, Twitter, Tumblr & Buzz

Rediriger le port 8080 de Tomcat vers le port 80 d’Apache 2 avec un sous-domaine

Eric Vialle | Dimanche 15 novembre 2009 | 10:01


Logo Apache TomcatConsidérons que nous avons un serveur sous Apache 2 et un serveur sous Tomcat 6 sur une plateforme Debian! Sur cette plateforme, nous souhaiterions que notre application web Tomcat disponible à l’adresse http://monDomain.com:8080/maWebApp soit disponible à l’adresse http://maSubDomainWebApp.monDomain.com (sur le port 80). Il existe différentes stratégies pour faire ceci, nous allons pour cela utiliser le Connector AJP et le mod_proxy (et non pas mod_jk qui est vieillissant). Nous verrons dans un prochaine article comment rendre disponible notre application sur un port sécurisé SSL 443 à l’adresse https://maSubDomainWebApp.monDomain.com (Le web tout sécurisé est certainement l’avenir de notre monde…)

Configurer Tomcat

Nous allons mettre en place le Connector AJP sur le serveur Tomcat. Il nous permet une installation Tomcat dans une installation Apache HTTP Server.
Dans le fichier de configuration de Tomcat server.xml, vous devez déclarer le Connector AJP comme suit, entre les balises <Service name=”Catalina”>, ou équivalente, qui devraient déjà exister.

  1. <!-- A "Service" is a collection of one or more "Connectors" that share
  2. a single "Container" Note:  A "Service" is not itself a "Container",
  3. so you may not define subcomponents such as "Valves" at this level.
  4. Documentation at /docs/config/service.html
  5. -->
  6.  <Service name="Catalina">
  7.     ...
  8.     <!-- Define an AJP 1.3 Connector on port 8009 -->
  9.     <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
  10.     ...
  11.   </Service name="Catalina">

N’oubliez pas de redémarrer le service de Tomcat après cette modification. Usuellement sous Debian, cette opération se fait ainsi.sudo /etc/init.d/tomcat restart

Mise en place de la configuration de base d’Apache

Nous allons ici mettre en place les modules permettant à Apache d’être relier au serveur Tomcat. Ceci se fait au travers de trois modules mod_proxy, mod_rewrite et mod_proxy_ajp, que vous devez activer par la commande suivante:
sudo a2enmod proxy proxy_ajp rewrite
Ces deux modules là ne seront peut-être pas présents dans votre système, téléchargez les via le fameux apt-get.

Rediriger le port 8080 vers un sous domaine du port 80

Maintenant qu’Apache et Tomcat sont capables de communiquer ensemble, nous allons les faire dialoguer. Nous allons rediriger l’application web http://monDomain.com:8080/maWebApp vers http://maSubDomainWebApp.monDomain.com.

Créez un nouveau fichier pour définir votre sous domaine maSubDomainWebApp.monDomain.com
sudo vim /etc/apache2/sites-available/maSubDomainWebApp.monDomain.comet insérez la configuration suivante

  1. <virtualhost *:80>
  2.     ServerName  maSubDomainWebApp.monDomain.com
  3.  
  4.     # here comes the proxy details!!!
  5.     ProxyRequests Off
  6. <proxy *>
  7.        Order deny,allow
  8.        #The Tomcat server IP address
  9.        Allow from localhost
  10.     </proxy>
  11.  
  12.     ProxyPass / ajp://localhost:8009/maWebApp
  13.     ProxyPassReverse / http://maSubDomainWebApp.monDomain.com/maWebApp
  14.  
  15. </virtualhost>

Ensuite, activez ce sous domaine auprès d’Apache via la commande:
sudo a2ensite maSubDomainWebApp.monDomain.com

Cette technique pose problème avec des applications basées sur le framework Struts 2 et certainement d’autres. En effet, le chemin relatifs des pages JSP sont souvent référencées par http://maSubDomainWebApp.monDomain.com/maWebApp. Spécifiquement pour ces frameworks, j’étudie les possibilitées de RewriteEngine (c’est pour cette raison que je vous propose de l’activer). je posterai une mise à jour… des que j’aurai une solution solide!

La sécurité

Vous avez noté que notre proxy n’autorise que les requêtes de localhost pour Apache. Néanmoins, il faudrait sécuriser le serveur Tomcat en sécurisant les ports 8080 et 8009 avec iptable (le plus facile) ou configurer le serveur en lui-même avec server.xml.

A lire:

  • The mystery of ProxyPassReserve
  • Couplage Apache Tomcat (Article Développez.com)
  • Tomcat, SSL, communications sécurisées et X-Forwarded-Proto (Blog de Xebia qui préfère mod_proxy_http à AJP: le protocole AJP n’est pas aussi répandu que HTTP)


Catégories
Java, Tutoriel
Tags
AJP, apache, mod_proxy, serveur, SSL, Tomcat
Flux rss des commentaires
Flux rss des commentaires
Trackback
Trackback

« Trouver un élément proche parmi plusieurs éléments Génerer un fichier JSON rapidement et facilement avec Struts 2.1 »

2 Responses to “Rediriger le port 8080 de Tomcat vers le port 80 d’Apache 2 avec un sous-domaine”

  1. Activer la compression GZip sur votre serveur Tomcat, afin d’optimiser le temps de chargement de vos pages – 5 Fresh Minutes IT – Java & IT dit :
    Vendredi 29 janvier 2010 à 12:06

    [...] le mod_proxy d’Apache 2, et que j’ai mis en œuvre dans ce précédent billet. “Rediriger le port 8080 de Tomcat vers le port 80 d’Apache 2“. Pour activer, la compression, suivez ces trois [...]

  2. toupil dit :
    Mardi 2 mars 2010 à 4:47

    exactement ce que je recherchais! merci bcp :) )

Leave a Reply

Cliquez ici pour annuler la réponse.

Articles récents

  • Push & communications asynchrones sur iOS (iPhone/iPad)
  • Optimiser le temps de chargement pour le web mobile avec iPhone, jQTouch, Struts 2 et Tomcat
  • La philosophie du Domain Driven Design User Group et l’état des lieux * Users Group en Février 2010
  • Introduction au NoSQL (et de Redis) ou le compte rendu du NoSQL User Group Paris de Février 2010
  • Gérer le Cache-Control HTTP dans une application Web Java EE avec Tomcat
  • Compiler son code? “It’s so 2000s” ou un apercu de Play et JRebel
  • Le blog change d’adresse
  • Le Paris JUG a fêté ses 2 ans: compte-rendu

Navigation

  • Actualités Flux pour tous les articles classés dans Actualités
  • Architecture IT Flux pour tous les articles classés dans Architecture IT
  • Base de données Flux pour tous les articles classés dans Base de données
  • Java Flux pour tous les articles classés dans Java
    • Dévelopement Tips Flux pour tous les articles classés dans Dévelopement Tips
    • EDI Flux pour tous les articles classés dans EDI
    • J2ME Flux pour tous les articles classés dans J2ME
    • J2SE Flux pour tous les articles classés dans J2SE
    • Java EE Flux pour tous les articles classés dans Java EE
    • Tutoriel Flux pour tous les articles classés dans Tutoriel
  • Non classé Flux pour tous les articles classés dans Non classé
  • NoSQL Flux pour tous les articles classés dans NoSQL

Promo

Mots Clefs

adobe apache application web Base de données benchmark bugs c# checkstyle dérivation eclipse find bugs findbugs flex framework play google gzip http iPhone jar Java Java User Group java web start JVM microsoft mysql object objet open source optimisation oracle performance plugin pmd polymorphisme qualité recrutement rich internet application serveur silverlight struts struts 2 sun test Tomcat web

WP Cumulus Flash tag cloud by Roy Tanck and Luke Morton requires Flash Player 9 or better.

Twitter

  • J'ai testé OnLive Games sur mon Mac en Wifi: vraiment impressionnant que les possibilités du cloud gaming 2011-01-17
  • More updates...

Livres Pour Aller Plus Loin…

Blogoliste

  • Berthou.com
  • Le blog de hugu
  • PHP – Le Blog de Fatiha
  • techno.blog(java4it)
Get Adobe Flash playerPlugin by wpburn.com wordpress themes
rss Flux rss des commentaires valid xhtml 1.1 design by jide powered by Wordpress get firefox