更新:

更新:

我有一個 apache,正在託管網站,其中一個是000-預設.conf為了www.domain1.com
另一種是域2.conf為了www.domain2.com 並且有這樣的配置

<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>

域2正在指著http://activity.domain2.com:8000由 Nginx 提供服務

對於 Nginx,伺服器配置如下

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;
    }

一切都很好www.domain1.com
除了,當我加載時www.domain2.com,僅提供 html 文件,但靜態文件請求代碼錯誤502代理錯誤

我怎樣才能解決這個問題?

更新:

我決定在 Apache 前面使用 nginx 來解決這個問題。但如果可以的話還是想知道答案。

答案1

對於初學者:看起來你錯過了結尾的斜杠

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

來自手動的

如果第一個參數以 結尾 結尾/,則第二個參數也應以 結尾 結尾/,反之亦然。否則,向後端發出的請求可能會錯過一些所需的斜杠,並且不會提供預期的結果。

其次,代理錯誤通常記錄在您的(錯誤)日誌中,並且與大多數錯誤一樣,日誌條目通常會附帶比傳回給網站訪客的資訊更有用的偵錯資訊。首先檢查 apache 日誌,但不要忘記查看 nginx 後端伺服器的日誌。

相關內容