更新:

更新:

我有一个托管网站的 Apache000-默认.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 后端服务器的日志。

相关内容