GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar y configurar JBoss AS con Java y Apache2 como proxy inverso

Hoy le mostraremos cómo configurar JAVA, JBoss AS y un servidor Apache que actúe como proxy inverso utilizando uno de nuestros servidores virtuales Debian. Suponemos que tiene un servidor Apache en funcionamiento.

Entonces, ¿qué es JBoss?
JBoss es un servidor de aplicaciones de código abierto desarrollado por RedHat basado en la plataforma J2EE para desarrollar e implementar aplicaciones empresariales Java, aplicaciones web, servicios, portales y más. J2EE permite que las aplicaciones sean estandarizadas y modulares, lo que permite que JAVA maneje muchos aspectos de programación al desarrollar una aplicación.

Antes de comenzar con la configuración, asegúrese de tener un sistema Debian completamente actualizado, así que ejecute:

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

Una vez que su sistema Debian esté completamente actualizado, instalaremos JAVA. En esta configuración estamos usando el paquete 'sun-java' que reside en el repositorio 'no libre' de Debian. Para instalarlo, primero debemos habilitar las fuentes, así que haga lo siguiente:

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

Una vez que haya colocado las fuentes, el siguiente paso es instalar JAVA en su sistema Debian. Para hacer eso, ejecute:

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

ahora debería tener instalado JAVA en su servidor. Para verificar esto, ejecute:

# java -version

y debería ver algo como esto:

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)

Bien, el siguiente paso es instalar y configurar el servidor de aplicaciones JBoss. Estamos utilizando la última versión final (al momento de escribir este artículo) de JBoss, que es 'ver.7.1.1'. Vaya a http://www.jboss.org/jbossas/downloads/ y descargue la versión de JBoss que desea instalar en su servidor virtual de Debian.
Los pasos son los siguientes:

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

A continuación, debemos configurar JBoss AS para que se ejecute sin privilegios de "raíz" porque ejecutarlo como "raíz" es un gran riesgo de seguridad. La mejor manera de ejecutar JBoss es usando un usuario de sistema dedicado que ejecutará el servidor JBoss usando los poderes 'sudo', así que:

Cree un grupo, agregue el usuario de jboss al grupo, configure la contraseña del usuario de jboss y haga que sea el propietario de JBoss AS

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

NOTA:si ya tiene la configuración de sudo, está bien, pero si no la tiene, debe instalarla. Si no está seguro acerca de esto, ejecute lo siguiente:

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


A continuación, agregue el usuario jboss al grupo sudo:

# gpasswd -a jboss sudo

Ok, con todo eso en su lugar, estamos algo listos para iniciar el servidor JBoss. Lo último que debemos hacer es lo siguiente:

Abra el archivo de configuración standalone.xml de JBoss con su editor favorito y realice los siguientes cambios:

# 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

Esto hará que la interfaz pública y de administración de JBoss esté disponible desde cualquier lugar (con autenticación, por supuesto) para que pueda administrarla a través de un navegador.

Con todo eso en su lugar, el servidor JBoss está configurado y listo, pero ¿cómo se supone que debemos iniciarlo? Desafortunadamente, JBoss no se envía con un script de inicio para Debian, por lo que se puede ejecutar como un servicio. Para lograr esto, necesitamos crear este script de inicio, así que créelo agregando las siguientes líneas en ( /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

Guarde el archivo y asígnele un bit ejecutable:

chmod +x /etc/init.d/jboss

luego agréguelo a todos los niveles de ejecución y enciéndalo. Haga esto ejecutando:

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

JBoss debería estar activo y escuchando en el puerto 8080 ahora. Por lo tanto, acceda a la interfaz abriendo http://:8080 en su navegador web. Una vez que esté allí, siga las instrucciones sobre cómo crear un nuevo usuario para su JBoss y una vez que se haya creado el usuario, implemente y habilite su aplicación.

Después de implementar y habilitar su aplicación, puede acceder a ella en http://:8080/appname/

El siguiente paso es configurar Apache como un proxy inverso para que pueda manejar y pasar las solicitudes a su JBoss y ocultar el número de puerto en la URL. Entonces, edite el archivo de configuración de Apache (/etc/apache2/apache2.conf) y agregue el siguiente fragmento (host virtual) en la parte inferior del archivo:

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

guarde el archivo y antes de volver a cargar Apache para que los cambios surtan efecto, asegúrese de que el módulo mod_proxy esté habilitado o, de lo contrario, no se iniciará.

# a2enmod proxy_http && service apache2 restart

ahora se puede acceder a su aplicación JBoss abriendo 'http://yourdomain.tld/'

Como complemento a esta configuración, ¿qué sucede si desea incluir algunos scripts 'PHP' en su aplicación JBoss? Digamos, por ejemplo, que desea tener 'http://yourdomain.tld/service.php', entonces, ¿cómo podemos decirle a Apache que no pase esas solicitudes a JBoss sino que las atienda por sí mismo? Es bastante trivial lograr esto, así que regresemos y editemos nuestro 'Host virtual' para que se vea como el siguiente:

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

cada script php dentro del directorio '/var/www/demoWeb' no se pasará a JBoss y se podrá acceder a él en http://yourdomain.com/

Debian
  1. Cómo instalar y configurar WildFly (JBoss) en Debian 10

  2. Cómo instalar y configurar Squid Proxy en Debian 11

  3. Cómo instalar y configurar Tinyproxy en Ubuntu 14.04

  4. Instale y configure eXo Platform con Nginx como proxy inverso en un VPS Debian 8

  5. Cómo instalar Odoo 12 en Debian 10 con Nginx como proxy inverso

Cómo instalar WildFly con Nginx como proxy inverso en Debian 10

Cómo instalar el servidor de aplicaciones Java WildFly con Nginx Reverse Proxy en Ubuntu 20.04

Cómo instalar y usar Traefik como proxy inverso con Docker en CentOS 8

Cómo instalar GlassFish Java Server con Nginx como proxy inverso en Debian 11

Cómo instalar y configurar WildFly (JBoss) en Debian 11

Cómo instalar y configurar vsftpd con TLS en Debian 8 (Jessie)