0
所有我試圖做反向代理的工作是:mod_rewrite的不是虛擬主機
- 重寫/static/styles/min.css到/static/styles/min.css.gz
- 重寫/ static/scripts/min.js to /static/scripts/min.js.gz
訣竅是這些文件位於我反向代理的遠程(公共)服務器上。 我這樣做,所以我可以解決與我們的JavaScript相同的問題,並加快一般交付。 .gz文件已經存在。 無論我做什麼,我都無法請求.js文件並返回.gz文件。 我已經嘗試過這與許多不同的RewriteConds無濟於事。 我也嘗試過使用RequestHeader未啓用Accept-Encoding,並將其註釋掉。 谷歌PageSpeed不斷告訴我,它沒有收到壓縮版本,當我使用curl請求並手動設置「Accept-Encoding:gzip,deflate」頭時,我會繼續收到非壓縮版本。我不能在.htaccess文件中進行重寫,因爲逆向代理是在.htaccess之前處理的,並且我需要在發生反向代理時重寫已生效。我處於全面虧損狀態。
這裏是我的非生產設置(我知道這需要固定):
<VirtualHost *:80>
ServerName ww.test.com
DocumentRoot "/htdocs/public"
Options +MultiViews
AddEncoding x-gzip .gz
AddEncoding gzip .gz
RewriteEngine on
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteRule ^\.js$ $1\.js\.gz [L]
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteRule ^\.css$ $1\.css\.gz [L]
<FilesMatch .*\.css\.gz>
ForceType text/css
Header append Content-Encoding gzip
</FilesMatch>
<FilesMatch .*\.js\.gz>
ForceType text/javascript
Header append Content-Encoding gzip
</FilesMatch>
ProxyRequests off
ProxyPass /static/ http://www.ourCDN.com/ourAccount/environmentName/
<Location /static/>
ProxyPassReverse/
#RequestHeader unset Accept-Encoding
</Location>
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
</Directory>
</VirtualHost>
什麼相同來源的限制適用於CSS文件:)?對靜態內容使用反向代理似乎相當低效 - 爲什麼不將靜態文件部署到您自己的服務器上,代理cdn只是將所服務的每個資產的請求時間/流量加倍。 – AD7six 2012-02-09 08:55:53