Cómo reenviar una solicitud http a una aplicación que se ejecuta en el puerto 80 con NGINX

Cómo reenviar una solicitud http a una aplicación que se ejecuta en el puerto 80 con NGINX

El servidor Ubuntu se está ejecutando,
Glassfish en el puerto 80(http) y 443(https)
Nginx en el puerto 8080(http) y 8081(https)

El objetivo es,
www.nombredehost01.compara acceder a Glassfish,
www.nombredehost02.compara acceder a Nginx

La pregunta es,
¿es posible hacerlo utilizando la configuración de paso de proxy de Nginx? ¿O alguna otra configuración?

Veo respuestas que tienen a Nginx ejecutándose en el puerto 80/443, ya que ese es el destino predeterminado de la solicitud http; sin embargo, en mi entorno, Glassfish se estaba ejecutando antes de Nginx y no tengo la autoridad para modificar su configuración, por lo que actualmente cualquier solicitud se ejecuta. a Glassfish a menos que se especifique el número de puerto.
Puedo editar cualquier otra configuración del servidor excepto la instancia de Glassfish.

Gracias

Respuesta1

La única forma de lograr esto es vincular una segunda dirección IP a la interfaz de red y vincular Glassfish explícitamente a la primera IP y nginx a la segunda IP.
Tan pronto como una aplicación escucha, 0.0.0.0:80el puerto se bloquea para cualquier otra aplicación.
Tan pronto como haya hecho esto, puede decirle a nginx que solo escuche en una dirección específica usando el bindparámetro en la listendirectiva como este: listen 192.0.2.1:80 bind
Este es un tema de socket IP, no solo un tema de configuración.

información relacionada