Ejecutando dos aplicaciones web en Apache 2.4

Ejecutando dos aplicaciones web en Apache 2.4

Estoy intentando ejecutar dos aplicaciones en mi servidor Apache Linux:

  • Proyecto abierto
  • pgAdmin (que es la aplicación WSGI)

Y, para conectarlos desde una computadora remota, uso esos httpdarchivos de configuración:

Para proyecto abierto:

Include /etc/openproject/addons/apache2/includes/server/*.conf

<VirtualHost *:80>
  ServerName 198.162.12.13
  DocumentRoot /opt/openproject/public

  ProxyRequests off

  Include /etc/openproject/addons/apache2/includes/vhost/*.conf

  # Can't use Location block since it would overshadow all the other proxypass directives on CentOS
  ProxyPass /openproject/ http://127.0.0.1:6000/openproject/ retry=0
  ProxyPassReverse /openproject/ http://127.0.0.1:6000/openproject/
</VirtualHost>

Para pgAdmin:

<VirtualHost *:80>

    ServerName 198.162.214.23
    WSGIScriptAlias /pgadmin4 /usr/lib/python2.7/site-packages/pgadmin4-web/pgAdmin4.wsgi
    WSGIDaemonProcess pgadmin processes=1 threads=25

    <Directory /usr/lib/python2.7/site-packages/pgadmin4-web/>
        WSGIProcessGroup pgadmin
        WSGIApplicationGroup %{GLOBAL}
        <IfVersion < 2.4>
            Order allow,deny
            Allow from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all granted
        </IfVersion>
    </Directory>

</VirtualHost>

Y ahora comienza la magia (para mí) y donde radica mi pregunta:

Eche un vistazo a los nombres de los servidores en ambos archivos, pgAdmin contiene mi dirección IP real, mientras que OpenProject tiene una dirección IP aleatoria.

Con esa configuración, pgAdmin funciona, pero OpenProject no.

Generalmente, sin configuración para pgAdmin, OpenProject funciona con cualquier dirección IP, lo cual me resulta extraño, así que mi primera pregunta es: ¿por qué???

Así que para resumir:

Si configuro en ambos archivos mi dirección IP real, entonces OpenProject funciona, pgAdmin no.

Si configuro en ambos archivos alguna dirección IP aleatoria, entonces OpenProject funciona, pgAdmin no.

Si configuro una IP real para OpenProject, aleatoria para pgAdmin, entonces OpenProject funciona, pgAdmin no.

Si configuro una IP aleatoria para OpenProject, una IP real para pgAdmin, entonces OpenProject no funciona, pero pgAdmin sí.

¿Por qué está tan desordenado? ¿Cómo configurar esos archivos para que ambas aplicaciones funcionen como se esperaba?

Respuesta1

Utilice DNS para crear dos nombres (por ejemplo, openproject.exampley pgadmin.example) que apunten a la dirección real (aparentemente 198.162.12.13) de su servidor. Configure estos nombres en los respectivosServerName configuraciones respectivas y usehttp://openproject.ejemployhttp://pgadmin.ejemplopara acceder a ellos.

Respuesta2

Para ejecutar varios sitios web/aplicaciones independientes en una única dirección IP, tiene aproximadamente tres opciones:

  • Instala cada aplicación en rutas URL diferentes, es decir, $(hostname)/app1y /app2.

Si ambas aplicaciones necesitan instalarse en la raíz, /sus opciones son

  • ejecute varios servidores web virtuales en diferentes números de puerto y http://$(hostname):81/mostrará una aplicación y http://$(hostname):82/puede mostrar otra diferente

  • ejecutar múltiples servidores web virtuales con diferentes nombres de host y haceralojamiento virtual basado en nombres. Luego http://app1.example.com/puede mostrar una aplicación y http://app2.example.com/mostrará otra.

Su configuración parece un intento de usar esa última opción, pero dado que ambas definiciones de VirtualHost se configuran con el mismo ServerNameApache, no se pueden distinguir.

información relacionada