Executando dois aplicativos web no Apache 2.4

Executando dois aplicativos web no Apache 2.4

Estou tentando executar dois aplicativos em meu servidor Linux Apache:

  • Projeto aberto
  • pgAdmin (que é o aplicativo WSGI)

E, para conectá-los de um computador remoto, eu uso esses httpdarquivos de configuração:

Para OpenProject:

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>

E agora começa a magia (para mim) e onde está a minha pergunta:

dê uma olhada nos nomes dos servidores em ambos os arquivos, o pgAdmin contém meu endereço IP real, enquanto o OpenProject possui algum endereço IP aleatório.

Com essa configuração, o pgAdmin funciona, mas o OpenProject não.

Geralmente, sem configuração para o pgAdmin, o OpenProject funciona com qualquer endereço IP, o que para mim é estranho, então minha primeira pergunta é: por quê???

Entao, para resumir:

Se eu configurar em ambos os arquivos meu endereço IP real, o OpenProject funcionará, o pgAdmin não.

Se eu configurar em ambos os arquivos algum endereço IP aleatório, o OpenProject funcionará, o pgAdmin não.

Se eu configurar o IP real para o OpenProject, aleatório para o pgAdmin, então o OpenProject funciona, o pgAdmin não.

Se eu configurar um IP aleatório para OpenProject, IP real para pgAdmin, então o OpenProject não funciona, mas o pgAdmin funciona.

Por que está tão confuso? Como configurar esses arquivos para que ambos os aplicativos funcionem conforme o esperado?

Responder1

Use DNS para criar dois nomes (por exemplo, openproject.examplee pgadmin.example) apontando para o endereço real (aparentemente 198.162.12.13) do seu servidor. Configure esses nomes nas respectivas ServerNameconfigurações e usehttp://openproject.exampleehttp://pgadmin.examplepara acessá-los.

Responder2

Para executar vários sites/aplicativos separados em um único endereço IP, você tem aproximadamente três opções:

  • Você instala cada aplicativo em caminhos de URL diferentes, ou seja, $(hostname)/app1e /app2.

Se ambos os aplicativos precisarem ser instalados na raiz, /suas opções serão

  • executa vários servidores web virtuais em diferentes números de porta e http://$(hostname):81/mostrará um aplicativo e http://$(hostname):82/poderá mostrar outro diferente

  • execute vários servidores web virtuais sob diferentes nomes de host e façaalojamento virtual baseado em nome. Então http://app1.example.com/pode mostrar um aplicativo e http://app2.example.com/mostrará outro

Sua configuração parece uma tentativa de usar essa última opção, mas como ambas as definições do VirtualHost são configuradas com o mesmo ServerNameApache, não é possível distingui-las.

informação relacionada