Aktualisieren:

Aktualisieren:

Ich habe einen Apache, der Websites hostet.000-default.conffürwww.domain1.com
ein anderer istdomain2.conffürwww.domain2.com und hat eine Konfiguration wie diese

<VirtualHost *:80>

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    ServerName activity.domain2.com
    ProxyPass / http://activity.domain2.com:8000
    ProxyPassReverse / http://activity.domain2.com:8000
</VirtualHost>

Domäne2zeigthttp://activity.domain2.com:8000das wurde von Nginx bereitgestellt

für Nginx ist der Server wie folgt konfiguriert

server {
    listen 8000;
    server_name activity.domain2.com;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /root/domain2;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }

Alles ist gut mitwww.domain1.com
Außer, wenn ich ladewww.domain2.com, es wird nur eine HTML-Datei bereitgestellt, aber bei der statischen Dateianforderung tritt ein Fehler mit Code auf502 Proxy-Fehler

Wie kann ich das beheben?

Aktualisieren:

Ich habe mich entschieden, stattdessen nginx vor Apache zu verwenden, um das Problem zu beheben. Möchte aber trotzdem, wenn möglich, die Antwort wissen.

Antwort1

Zunächst einmal: Es sieht so aus, als ob Sie einen abschließenden Schrägstrich übersehen haben

ProxyPass / http://activity.domain2.com:8000
                                            ^
                           add a "/" here _/

Von demHandbuch:

Wenn das erste Argument mit einem abschließenden Schrägstrich endet /, sollte das zweite Argument ebenfalls mit einem abschließenden Schrägstrich enden /und umgekehrt. Andernfalls fehlen den resultierenden Anfragen an das Backend möglicherweise einige erforderliche Schrägstriche und die erwarteten Ergebnisse werden nicht geliefert.

Zweitens wird ein Proxy-Fehler normalerweise in Ihren (Fehler-)Protokollen aufgezeichnet und wie bei den meisten Fehlern wird der Protokolleintrag normalerweise von nützlicheren Debuginformationen begleitet als das, was einem Site-Besucher zurückgegeben wird. Überprüfen Sie zuerst die Apache-Protokolle, aber vergessen Sie nicht, auch die Protokolle für den Nginx-Backend-Server anzusehen.

verwandte Informationen