GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer et configurer JBoss AS avec Java et Apache2 en tant que proxy inverse

Aujourd'hui, nous allons vous montrer comment configurer JAVA, JBoss AS et un serveur Apache agissant comme un proxy inverse en utilisant l'un de nos serveurs virtuels Debian. Nous supposons que vous disposez d'un serveur Apache opérationnel.

Alors, qu'est-ce que JBoss ?
JBoss est un serveur d'applications open source développé par RedHat basé sur la plate-forme J2EE pour le développement et le déploiement d'applications Java d'entreprise, d'applications Web, de services, de portails et plus encore. Le J2EE permet aux applications d'être standardisées et modulaires permettant à JAVA de gérer de nombreux aspects de programmation lors du développement d'une application.

Avant de commencer l'installation, assurez-vous d'avoir un système Debian entièrement à jour, alors exécutez :

# apt-get update && apt-get upgrade --show-upgraded -y

Une fois votre système Debian entièrement mis à jour, nous allons installer JAVA. Dans cette configuration, nous utilisons le paquet « sun-java » qui réside dans le référentiel « non-free » de Debian. Pour l'installer, nous devons d'abord activer les sources, alors procédez comme suit :

# echo "deb http://ftp.us.debian.org/debian squeeze main contrib non-free" >> /etc/apt/sources.list

Une fois que vous avez placé les sources, l'étape suivante consiste à installer JAVA sur votre système Debian. Pour ce faire, exécutez :

# apt-get update && apt-get install sun-java6-jdk -y

vous devriez maintenant avoir JAVA installé sur votre serveur. Pour vérifier cela, veuillez exécuter :

# java -version

et vous devriez voir quelque chose comme ceci :

java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)

Ok, l'étape suivante consiste à installer et configurer le serveur d'applications JBoss. Nous utilisons la dernière version finale (au moment de la rédaction de cet article) de JBoss, qui est la "ver.7.1.1". Allez donc sur http://www.jboss.org/jbossas/downloads/ et téléchargez la version de JBoss que vous souhaitez installer sur votre serveur virtuel Debian.
Les étapes sont les suivantes :

# cd /opt
# wget -P /var/tmp http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.tar.gz
# tar -zxf /var/tmp/jboss-as-7.1.1.Final.tar.gz -C /opt/

Ensuite, nous devons configurer JBoss AS pour qu'il s'exécute sans privilèges "root", car l'exécuter en tant que "root" présente un risque de sécurité important. La meilleure façon d'exécuter JBoss est d'utiliser un utilisateur système dédié qui exécutera le serveur JBoss en utilisant les pouvoirs "sudo", donc :

Créez un groupe, ajoutez l'utilisateur jboss au groupe, définissez le mot de passe de l'utilisateur jboss et faites-en le propriétaire de JBoss AS

# addgroup jbossgroup
# useradd -g jbossgroup jboss
# passwd jboss
# chown jboss:jbossgroup /opt/jboss-as-7.1.1.Final/ -R

REMARQUE :si vous avez déjà configuré sudo, tout va bien, mais si ce n'est pas le cas, vous devez l'installer. Si vous n'êtes pas sûr de cela, exécutez ce qui suit :

# [[ ! $(which sudo) ]] && apt-get install sudo -y


Ensuite, ajoutez l'utilisateur jboss au groupe sudo :

# gpasswd -a jboss sudo

Ok, avec tout cela en place, nous sommes en quelque sorte prêts à démarrer le serveur JBoss. La dernière chose que nous devons faire est la suivante :

Ouvrez le fichier de configuration standalone.xml de JBoss à l'aide de votre éditeur préféré et apportez les modifications suivantes :

# vim /opt/jboss-as-7.1.1.Final/standalone/configuration/standalone.xml

<interface name="management">
    <!--<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>-->
    <any-ipv4-address/>
</interface>
<interface name="public">
    <!--<inet-address value="${jboss.bind.address:127.0.0.1}"/>-->
    <any-ipv4-address/>
</interface

Cela rendra l'interface publique et de gestion de JBoss disponible de n'importe où (en utilisant l'authentification bien sûr) afin que vous puissiez le gérer via un navigateur.

Avec tout cela en place, le serveur JBoss est configuré et prêt, mais comment sommes-nous censés le démarrer ? Malheureusement, JBoss n'est pas livré avec un script d'initialisation pour Debian afin qu'il puisse être exécuté en tant que service. Pour y parvenir, nous devons créer ce script d'initialisation donc créez-le en ajoutant les lignes suivantes dans ( /etc/init.d/jboss ) :

#!/bin/sh
### BEGIN INIT INFO
# Provides:          jboss
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/Stop/Restart JBoss AS v7.0.0
### END INIT INFO

set -e

### declare the directory where is jboss/java installed
JAVA_HOME=/usr/lib/jvm/java-6-sun
JBOSS_HOME=/opt/jboss-as-7.1.1.Final
export PATH=${JAVA_HOME}/bin:${JBOSS_HOME}/bin:${PATH}

case $1 in
        start )
                echo -e "\aStarting JBoss ..."
                start-stop-daemon --start --quiet --background --chuid jboss --exec ${JBOSS_HOME}/bin/standalone.sh
        ;;
        stop )
                echo -e "\aStopping JBoss ..."
                start-stop-daemon --start --quiet --background --chuid jboss --exec ${JBOSS_HOME}/bin/jboss-cli.sh -- --connect command=:shutdown
        ;;
        restart )
                echo -e "\aRestarting the JBoss server ..."
                start-stop-daemon --start --quiet --background --chuid jboss --exec ${JBOSS_HOME}/bin/jboss-cli.sh -- --connect command=:shutdown && \
                start-stop-daemon --start --quiet --background --chuid jboss --exec ${JBOSS_HOME}/bin/standalone.sh
        ;;
        * )
                echo -e "\aUsage: /etc/init.d/jboss {start|stop|restart}"
                exit 1
        ;;
esac
exit 0

Enregistrez le fichier et attribuez-lui un bit exécutable en :

chmod +x /etc/init.d/jboss

puis ajoutez-le à tous les niveaux d'exécution et lancez-le. Pour ce faire, exécutez :

# update-rc.d -f jboss defaults
# service jboss start

JBoss devrait être opérationnel et écouter sur le port 8080 maintenant. Alors, accédez au frontend en ouvrant http://:8080 dans votre navigateur Web. Une fois que vous y êtes, suivez les instructions sur la façon de créer un nouvel utilisateur pour votre JBoss et une fois l'utilisateur créé, déployez et activez votre application.

Après avoir déployé et activé votre application, vous pouvez y accéder sur http://:8080/appname/

L'étape suivante consiste à configurer Apache en tant que proxy inverse afin qu'il puisse gérer et transmettre les demandes à votre JBoss et masquer le numéro de port dans l'URL. Alors, éditez le fichier de configuration d'Apache (/etc/apache2/apache2.conf) et ajoutez l'extrait suivant (hôte virtuel) en bas du fichier :

<VirtualHost *:80>
ServerName www.yourdomain.tld
ServerAlias yourdomain.tld

    ProxyRequests Off

    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyPass / http://yourdomain.tld:8080/helloworld/
    ProxyPassReverse / http://yourdomain.tld:8080/helloworld/

    <Location />
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

enregistrez le fichier et avant de recharger apache pour que les modifications prennent effet, assurez-vous que le module mod_proxy est activé, sinon il ne démarrera pas.

# a2enmod proxy_http && service apache2 restart

votre application JBoss est désormais accessible en ouvrant "http://votredomaine.tld/"

En plus de cette configuration, que faire si vous souhaitez inclure des scripts "PHP" dans votre application JBoss ? Supposons, par exemple, que vous souhaitiez avoir "http://votredomaine.tld/service.php", alors comment pouvons-nous dire à Apache de ne pas transmettre ces requêtes à JBoss, mais plutôt de les servir par lui-même ? C'est assez trivial pour y parvenir, alors revenons en arrière et modifions notre "hôte virtuel" pour qu'il ressemble à celui ci-dessous :

<VirtualHost *:80>
ServerName www.yourdomain.tld
ServerAlias yourdomain.tld

DocumentRoot /var/www/demoWeb
ProxyPassMatch ^/(.*)+\.php !

    ProxyRequests Off

    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyPass / http://yourdomain.tld:8080/helloworld/
    ProxyPassReverse / http://yourdomain.tld:8080/helloworld/

    <Location />
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

chaque script php à l'intérieur du répertoire "/var/www/demoWeb" ne sera pas transmis à JBoss et sera accessible à l'adresse http://votredomaine.com/

Debian
  1. Comment installer et configurer WildFly (JBoss) sur Debian 10

  2. Comment installer et configurer Squid Proxy sur Debian 11

  3. Comment installer et configurer Tinyproxy sur Ubuntu 14.04

  4. Installer et configurer eXo Platform avec Nginx en reverse proxy sur un VPS Debian 8

  5. Comment installer Odoo 11 sur Debian 9 avec Nginx comme proxy inverse

Comment installer WildFly avec Nginx en tant que proxy inverse sur Debian 10

Comment installer WildFly Java Application Server avec Nginx Reverse Proxy sur Ubuntu 20.04

Comment installer et utiliser Traefik comme proxy inverse avec Docker sur CentOS 8

Comment installer GlassFish Java Server avec Nginx en tant que proxy inverse sur Debian 11

Comment installer et configurer WildFly (JBoss) sur Debian 11

Comment installer et configurer vsftpd avec TLS sur Debian 8 (Jessie)