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 httpd
Konfigurationsdateien:
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.example
und 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 ServerName
Einstellungen 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)/app1
und/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 Anwendunghttp://$(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 undhttp://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 ServerName
Apache konfiguriert werden, kann man sie nicht unterscheiden.