Ausführen von zwei Webanwendungen auf Apache 2.4

Ausführen von zwei Webanwendungen auf Apache 2.4

Ich versuche, zwei Anwendungen auf meinem Linux-Apache-Server auszuführen:

  • Offenes Projekt
  • pgAdmin (das ist eine WSGI-Anwendung)

Und um sie vom Remotecomputer aus zu verbinden, verwende ich diese httpdKonfigurationsdateien:

Für 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>

Für 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>

Und jetzt beginnt die Magie (für mich) und hier liegt meine Frage:

Sehen Sie sich die Servernamen in beiden Dateien an. pgAdmin enthält meine tatsächliche IP-Adresse, während OpenProject eine zufällige IP-Adresse hat.

Mit diesem Setup funktioniert pgAdmin, OpenProject jedoch nicht.

Im Allgemeinen funktioniert OpenProject ohne Konfiguration für pgAdmin mit jeder IP-Adresse, was für mich seltsam ist, daher ist meine erste Frage: Warum???

Um es zusammenzufassen:

Wenn ich in beiden Dateien meine tatsächliche IP-Adresse einstelle, funktioniert OpenProject, pgAdmin nicht.

Wenn ich in beiden Dateien eine zufällige IP-Adresse einrichte, funktioniert OpenProject, pgAdmin nicht.

Wenn ich für OpenProject eine tatsächliche IP und für pgAdmin eine zufällige einrichte, funktioniert OpenProject, pgAdmin jedoch nicht.

Wenn ich für OpenProject eine zufällige IP und für pgAdmin eine tatsächliche IP einrichte, funktioniert OpenProject nicht, pgAdmin jedoch schon.

Warum ist das so durcheinander? Wie konfiguriere ich diese Dateien, damit beide Anwendungen wie erwartet funktionieren?

Antwort1

Verwenden Sie DNS, um zwei Namen (z. B. openproject.exampleund pgadmin.example) zu erstellen, die auf die tatsächliche Adresse (anscheinend 198.162.12.13) Ihres Servers verweisen. Konfigurieren Sie diese Namen in den entsprechenden ServerNameEinstellungen und verwenden Siehttp://openproject.beispielUndhttp://pgadmin.beispielum darauf zuzugreifen.

Antwort2

Um mehrere separate Websites/Anwendungen unter einer einzigen IP-Adresse auszuführen, haben Sie ungefähr drei Möglichkeiten:

  • Sie installieren jede Anwendung in einem anderen URL-Pfad, d. h. $(hostname)/app1und /app2.

Wenn beide Anwendungen im Stammverzeichnis installiert werden müssen, /haben Sie folgende Möglichkeiten:

  • Führen Sie mehrere virtuelle Webserver auf unterschiedlichen Portnummern aus. Sie können http://$(hostname):81/eine Anwendung http://$(hostname):82/anzeigen oder eine andere.

  • mehrere virtuelle Webserver unter verschiedenen Hostnamen betreiben undNamensbasiertes virtuelles Hosting. Dann http://app1.example.com/kann eine Anwendung angezeigt werden und http://app2.example.com/eine andere wird angezeigt

Ihre Konfiguration scheint ein Versuch zu sein, diese letzte Option zu verwenden, aber da beide VirtualHost-Definitionen mit demselben ServerNameApache konfiguriert werden, kann man sie nicht unterscheiden.

verwandte Informationen