我正在使用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)访问我的页面时,它会返回一个空白页面。查看源代码显示我的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$1 [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有关。
答案 0 :(得分:0)
问题是mod_pagespeed正在侦听ProxyPass并相应地重写URL但没有收听RewriteRule。
设置
“ModPagespeedMapOriginDomain http://localhost * .domain.com”
做了这个伎俩。