为什么在 mod_rewrite 中使用服务器名称时我的页面 page return 空白?

Why does my page page return blank when using a server name with mod_rewrite?

我正在使用 Apache、mod_rewrite、mod_pagespeed 和 mod_proxy。

当通过 IP (10.10.10.12:80) 访问我的页面时,它成功地将我重写为 10.10.10.12:81,然后将我代理到外部服务器 (10.10.10.13)。

当通过 DNS 名称 (www.example.com) 访问我的页面时,它 returns 一个空白页面。查看源代码显示应用了我的 pagespeed 配置,但我的 JS 没有呈现,也没有显示任何内容。

下面是我配置中的相关代码:

<VirtualHost *:80>
  ProxyRequests off
  ServerAdmin xxx@xxx.com
  DocumentRoot /var/www/html

  RewriteEngine On
  RewriteLog "/home/dvanpham/rewrite.log"
  RewriteLogLevel 3

  #Directs escaped fragment code to an external rendering server
  RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*) [NC]
  RewriteRule .* http://10.10.111.54:82/?page=http://10.10.111.54:81/#!%1 [NE,P,L]

  #Directs all other traffic to port 81, which then sends traffic to 2 other servers
  RewriteRule ^(.*)$ http://10.10.111.54:81 [NE,P]

  RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
  RewriteRule .* - [F]
</VirtualHost>

<VirtualHost *:81>
  ProxyRequests off
  <Proxy balancer://regscluster>
    # BalancerMember http://10.10.112.47:8280
    BalancerMember http://10.10.112.48:8280
    Order Deny,Allow
    Deny from none
    Allow from all
    ProxySet lbmethod=byrequests
  </Proxy>
  ProxyPass / balancer://regscluster/
</VirtualHost>

<VirtualHost *:82>
  ProxyRequests off
  <Proxy balancer://nodecluster>
    BalancerMember http://10.10.111.56:8080
    BalancerMember http://10.10.111.57:8080
    Order Deny,Allow
    Deny from none
    Allow from all
    ProxySet lbmethod=byrequests
  </Proxy>
  ProxyPass / balancer://nodecluster/
</VirtualHost>

如果我能提供更多信息或者您对这个问题有任何见解,请告诉我!

编辑:看起来问题与使用域名时的 mod_pagespeed 和 mod_rewrite 有关。

问题是 mod_pagespeed 正在侦听 ProxyPass 并相应地重写 URL,但没有侦听 RewriteRule。

设置

"ModPagespeedMapOriginDomain http://localhost *.domain.com"

成功了。