nginx反代只支持压缩格式的网站

昨天有个需求,反代客户的一个网站,从域名a,到域名B, 并做本地缓存。

改着改着一脸懵逼。

因为最后发现源网站不能用非压缩的格式访问。

最后通过自己反代自己反代自己的方式解决了。

就是用gnuzip解压,然后再sub_filter替换。

代码为

proxy_cache_path /cache/CACHENAME levels=1:2 keys_zone=CACHEZONE:300m inactive=30d;
proxy_temp_path /cache/tmp;

server {
listen 127.0.0.1:8080 default_server;
server_name _;
gzip on;
location / {
sub_filter 'ORIGINNAME' 'TARGETNAME';
sub_filter_once off;
proxy_pass http://127.0.0.1:8081;
proxy_set_header Host TARGETNAME;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Accept-Encoding "";
}
}
server{
listen 127.0.0.1:8081 default_server;
server_name _;
location / {
proxy_pass http://166.70.53.125;
proxy_set_header ORIGINNAME;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Accept-Encoding gzip;
gunzip on;
}
}
server {
listen 80;
server_name ORIGINNAME;
gzip on;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_connect_timeout 15m;
proxy_ignore_headers Cache-Control Set-Cookie Expires;
proxy_set_header Accept-Encoding gzip;
proxy_set_header Host ORIGINNAME;
proxy_cache CACHEZONE;
proxy_cache_valid 200 302 30d;
proxy_cache_valid 404 1m;
}
}

 

参考 :https://www.ruby-forum.com/topic/4406878

发布于
2016-12-22