GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare e configurare JBoss AS con Java e Apache2 come proxy inverso

Oggi ti mostreremo come configurare JAVA, JBoss AS e un server Apache che funge da proxy inverso utilizzando uno dei nostri server virtuali Debian. Supponiamo che tu abbia un server Apache funzionante.

Allora, cos'è JBoss?
JBoss è un server di applicazioni open source sviluppato da RedHat basato sulla piattaforma J2EE per lo sviluppo e la distribuzione di applicazioni Java aziendali, applicazioni Web, servizi, portali e altro ancora. J2EE consente alle applicazioni di essere standardizzate e modulari, consentendo a JAVA di gestire molti aspetti di programmazione durante lo sviluppo di un'applicazione.

Prima di iniziare con l'installazione, assicurati di avere un sistema Debian completamente aggiornato, quindi esegui:

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

Una volta che il tuo sistema Debian è completamente aggiornato, installeremo JAVA. In questa configurazione utilizziamo il pacchetto "sun-java" che risiede nel repository "non libero" di Debian. Per installarlo dobbiamo prima abilitare i sorgenti, quindi procedi come segue:

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

Una volta posizionati i sorgenti, il passo successivo è installare JAVA sul tuo sistema Debian. Per farlo, esegui:

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

ora dovresti avere JAVA installato sul tuo server. Per verificarlo, eseguire:

# java -version

e dovresti vedere qualcosa del genere:

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, il passaggio successivo consiste nell'installare e configurare JBoss Application Server. Stiamo utilizzando l'ultima versione finale (al momento della stesura di questo articolo) di JBoss che è "ver.7.1.1". Quindi vai su http://www.jboss.org/jbossas/downloads/ e scarica la versione di JBoss che vuoi installare sul tuo Debian Virtual Server.
I passaggi sono i seguenti:

# 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/

Successivamente, dobbiamo configurare JBoss AS in modo che funzioni senza privilegi di "root" perché eseguirlo come "root" è un grosso rischio per la sicurezza. Il modo migliore per eseguire JBoss è utilizzare un utente di sistema dedicato che eseguirà il server JBoss utilizzando i poteri "sudo", quindi:

Crea un gruppo, aggiungi l'utente jboss al gruppo, imposta la password dell'utente jboss e fallo diventare il proprietario dell'AS JBoss

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

NOTA:se hai già sudo setup va bene, ma se non lo hai devi installarlo. Se non sei sicuro di questo, esegui quanto segue:

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


Successivamente, aggiungi l'utente jboss al gruppo sudo:

# gpasswd -a jboss sudo

Ok, con tutto ciò a posto siamo in qualche modo pronti per avviare il server JBoss. L'ultima cosa che dobbiamo fare è la seguente:

Apri il file di configurazione standalone.xml di JBoss utilizzando il tuo editor preferito e apporta le seguenti modifiche:

# 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

Ciò renderà disponibile il frontend pubblico e gestionale di JBoss da qualsiasi luogo (tramite l'autenticazione ovviamente) in modo da poterlo gestire tramite un browser.

Con tutto ciò a posto, il server JBoss è configurato e pronto, ma come dovremmo avviarlo? Sfortunatamente, JBoss non viene distribuito con uno script init per Debian, quindi può essere eseguito come servizio. Per ottenere ciò, dobbiamo creare questo script init, quindi crealo aggiungendo le seguenti righe in ( /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

Salva il file e assegnagli un bit eseguibile tramite:

chmod +x /etc/init.d/jboss

quindi aggiungilo a tutti i runlevel e avvialo. Fallo eseguendo:

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

JBoss dovrebbe essere attivo e in ascolto sulla porta 8080 ora. Quindi, accedi al frontend aprendo http://:8080 nel tuo browser web. Una volta che sei lì, segui le istruzioni su come creare un nuovo utente per il tuo JBoss e una volta creato l'utente, distribuisci e abilita la tua applicazione.

Dopo aver distribuito e abilitato la tua applicazione, puoi accedervi su http://:8080/appname/

Il prossimo passo è configurare Apache come proxy inverso in modo che possa gestire e passare le richieste al tuo JBoss e nascondere il numero di porta nell'URL. Quindi, modifica il file di configurazione di apache (/etc/apache2/apache2.conf) e aggiungi il seguente snippet (host virtuale) in fondo al file:

<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>

salva il file e prima di ricaricare Apache per rendere effettive le modifiche assicurati che il modulo mod_proxy sia abilitato altrimenti non si avvierà.

# a2enmod proxy_http && service apache2 restart

ora è possibile accedere alla tua applicazione JBoss aprendo 'http://tuodominio.tld/'

In aggiunta a questa configurazione, cosa succede se desideri includere alcuni script "PHP" nella tua applicazione JBoss? Diciamo, ad esempio, che vuoi avere "http://tuodominio.tld/service.php", quindi come possiamo dire ad Apache di non passare quelle richieste a JBoss ma invece di servirle da solo? È abbastanza banale raggiungere questo obiettivo, quindi torniamo indietro e modifichiamo il nostro "Host virtuale" in modo che assomigli a quello qui sotto:

<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>

ogni script php all'interno della directory '/var/www/demoWeb' non verrà passato a JBoss e sarà accessibile all'indirizzo http://tuodominio.com/

Debian
  1. Come installare e configurare WildFly (JBoss) su Debian 10

  2. Come installare e configurare Squid Proxy su Debian 11

  3. Come installare e configurare Tinyproxy su Ubuntu 14.04

  4. Installa e configura eXo Platform con Nginx come proxy inverso su un VPS Debian 8

  5. Come installare Odoo 11 su Debian 9 con Nginx come proxy inverso

Come installare WildFly con Nginx come proxy inverso su Debian 10

Come installare WildFly Java Application Server con Nginx Reverse Proxy su Ubuntu 20.04

Come installare e utilizzare Traefik come proxy inverso con Docker su CentOS 8

Come installare GlassFish Java Server con Nginx come proxy inverso su Debian 11

Come installare e configurare WildFly (JBoss) su Debian 11

Come installare e configurare vsftpd con TLS su Debian 8 (Jessie)