En esta serie de artículos, intentaremos dar una visión general de los conceptos básicos del uso de Payara Server en producción usando Apache Web Server (httpd) y Ubuntu. Muchos de los conceptos no dependen de las herramientas que usamos aquí y pueden aplicarse a otros escenarios.
Nuestro objetivo es configurar lo siguiente:

Aquí tenemos un servidor web Apache que estará disponible para nuestros usuarios. Sus solicitudes se enviarán a una de las dos instancias del servidor Payara. Aquí observamos el uso de "pegado" de sesiones basado en cookies de JSESSIONID para garantizar que cada usuario interactúe con el mismo servidor Payara, así como la replicación de sesión, para garantizar que si un servidor Payara falla, el otro puede manejar las sesiones existentes no hay problema
Suponemos que el servidor web Apache ya está instalado y configurado. Nuestro siguiente paso es configurar el reenvío de solicitudes para enviar tráfico al servidor de Payara.
¿Qué es el reenvío de solicitudes?
El reenvío de solicitudes (o proxy) es cuando un servidor que recibe tráfico web lo envía a otro destino. Se pueden usar para ocultar la ubicación real del usuario, no para ver los sistemas internos o para controlar el rendimiento. Como la mayoría de los servidores web, el servidor web Apache puede complementarse con módulos que le permiten reenviar solicitudes al servidor y enviar respuestas a través de un proxy. Esto significa que puede usar Apache como intermediario, lo que elimina la necesidad de especificar números de puerto o direcciones IP exactas y permite al usuario recibir respuestas del mismo servidor (en lugar de hacer clic en localhost y tener una barra de direcciones etiquetada localhost : 8080 )
Configure el reenvío de solicitudes entre el servidor web Apache y el servidor Payara
En esta publicación, veremos un paquete disponible en el repositorio de Ubuntu. El paquete de Ubuntu contiene binarios de Apache, pero también tiene "herramientas auxiliares" adicionales para administrar archivos de configuración. En Ubuntu 18, los dos módulos que necesitamos agregar a Apache son parte del paquete apache2 que instalamos anteriormente. Se puede instalar desde el repositorio utilizando:
sudo apt install apache2
Tenga en cuenta que antes de Ubuntu 16.04 necesitará usar "apt-get" en lugar de "apt".Instalaremos dos módulos para habilitar el reenvío básico de solicitudes http: mod_proxy y mod_proxy_http. En Ubuntu, las herramientas auxiliares controlan la instalación de estos módulos; para hacerlo aún más fácil, las herramientas buscarán sus dependencias y las incluirán. Es útil que mod_proxy_http requiera mod_proxy para funcionar, lo que significa que nuestro equipo se ve así:
sudo a2enmod proxy_http
Tenga en cuenta que en estos comandos podemos omitir el prefijo "mod_"

Si desea deshabilitar el módulo, hay una herramienta auxiliar para a2enmod llamada a2dismod, que se usa de la misma manera. La herramienta detectó una dependencia y también incluyó mod_proxy. Si tenía varios módulos que deseaba activar, puede agregarlos después de proxy_http, separándolos con espacios ...
Reiniciaremos el servidor más tarde, ya que también necesitamos cambiar la configuración.
El paquete apache2 en Ubuntu tiene una configuración de sitio de ejemplo llamada "000-default". El archivo de configuración para este sitio se encuentra en la carpeta / etc / apache2 / sites-available y contiene un enlace simbólico a la carpeta habilitada para sitios.
Estructura del archivo de configuración de Apache
Como regla general, verá que los manuales de Internet se refieren a httpd.conf como un archivo de configuración para editar. Este es solo el archivo de configuración predeterminado "padre". En los sistemas Debian / Ubuntu (y sus derivados, como Linux Mint), el archivo de búsqueda es apache2.conf.
Este archivo se lee y sus directivas se aplican de arriba a abajo, por lo que si se establecen dos valores diferentes para la misma propiedad, se aplicará el segundo. (Más precisamente, el primero se aplicará solo hasta que se lea el segundo parámetro).
Este archivo también puede específicamente "incluir" archivos y carpetas (tenga en cuenta que los comodines también funcionan). Se leerán y combinarán con la configuración principal en el lugar donde se escribe "incluir". Por lo tanto, la última línea del archivo de configuración principal (si no especifica otro archivo) será la última línea de la configuración que se instalará, pase lo que pase.
La página predeterminada en la nueva instalación de Apache en Ubuntu está en /var/www/index.html y ofrece una buena descripción de cómo funciona esto en detalle.
Crear una nueva configuración de sitio
No utilizaremos la configuración predeterminada porque necesitamos agregar un comportamiento específico. Copie la configuración anterior de los sitios disponibles y cámbiele el nombre a algo memorable.
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/payara-site.conf
Abra un nuevo archivo en su editor de texto preferido como root. Deberías ver algo como esto:

El elemento contiene una serie de directivas que le indican al servidor cómo responder a las solicitudes entrantes enumeradas. En este ejemplo, <VirtualHost *: 80> procesa todas las respuestas recibidas en el servidor a través del puerto 80. Para obtener una descripción más detallada de las etiquetas de VirtualHost, consulte la documentación de Apache.
Necesitamos agregar dos líneas en las etiquetas para decirle a Apache cómo manejar el tráfico entrante y saliente: una para decirle a Apache dónde enviar las solicitudes y la otra para decirle a Apache de dónde deben venir las respuestas. De esta manera, un usuario que visita localhost puede ser redirigido a nuestro servidor de aplicaciones en localhost : 8080 /, y las respuestas dirigidas a localhost : 8080 / se redirigen en su lugar, para que el usuario las vea venir de localhost .
Para controlar el tráfico entrante, agregue la línea:
ProxyPass / http://localhost:8080/
Esta directiva le dice a Apache que envíe todo después del nombre de dominio del servidor a
localhost : 8080 /, como si el usuario fuera directamente a esta URL.
ProxyPassReverse / http://localhost:8080/
Esta directiva le dice a Apache la URL de retorno del proxy para que, aunque la respuesta se devuelva desde la instancia del servidor Payara al puerto 8080, la URL parezca recibida de Apache. Estas dos directivas, cuando se usan juntas, significan que podemos evitar expresiones regulares complejas con mod_rewrite.
Suponiendo que el nombre de dominio que queremos usar, por ejemplo, www.example.com , nuestra configuración significa que la solicitud a www.example.com/myapp se enviará realmente al servidor de Payara, como si el usuario se hubiera conectado directamente a localhost : 8080 // MyApp.
Su archivo debería verse así (eliminé la mayoría de los comentarios para aclarar qué se necesita exactamente):

Guarda tu archivo.
Para deshabilitar el sitio predeterminado y activar nuestra nueva configuración, ejecute los comandos:
sudo a2dissite 000-default.conf sudo a2ensite payaraSite.conf
Reinicie el servicio Apache HTTP Server (el reinicio que omitimos anteriormente):
sudo service apache2 restart
Para detener e iniciar Apache HTTP Server, es:
parada de servicio
sudo service apache2 stop sudo service apache2 start
No olvide iniciar Payara Server:
/opt/payara5/bin/asadmin start-domain domain1
Antes de realizar cambios de configuración yendo a localhost , se lo dirigirá a la pantalla de bienvenida de Apache:

Pero ahora agregamos a nuestro servidor proxy e incluimos nuevas directivas para nuestra configuración de usuario de Apache cuando ingresamos localhost / index.html, que ahora enviamos a la pantalla de bienvenida del servidor Payara:

Ahora puede agregar aplicaciones al servidor Payara
Por lo tanto, ahora tenemos un servidor HTTP Apache activo, que actúa como nuestro proxy (con la capacidad de agregar módulos adicionales) y un servidor Payara en funcionamiento, listo para agregarle aplicaciones.
Realizamos la instalación de ambos servidores, configuramos Apache, exploramos el sistema de archivos y observamos brevemente los comandos del servidor Payad Server asadmin.
La próxima vez, veremos cómo extender la funcionalidad de Apache y Payara Server, y cómo podemos hacer que Payara Server proporcione escalabilidad y mejoras adicionales que agregaremos a Apache para manejar varios servidores internos.