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 httpd
archivos 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.example
y 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)/app1
y/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 yhttp://$(hostname):82/
puede mostrar otra diferenteejecutar 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 yhttp://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 ServerName
Apache, no se pueden distinguir.