具體的編譯和配置過程略過,僅貼出nginx關鍵配置部分以下:nginx
server {
listen 80;
server_name blog.youhost.com;
location / {
#lua字符替換 部分
body_filter_by_lua
'
local origstr= ngx.arg[1]
origstr=string.gsub(origstr,"www.blogger.com","blog.youhost.com/blg")
origstr=string.gsub(origstr,"www.Blogger.com","blog.youhost.com/blg")
origstr=string.gsub(origstr,"us.zyh.me","blog.youhost.com")
origstr=string.gsub(origstr,"img1.blogblog.com","blog.youhost.com/img1")
origstr=string.gsub(origstr,"img2.blogblog.com","blog.youhost.com/img2")
origstr=string.gsub(origstr,"img3.blogblog.com","blog.youhost.com/img3")
origstr=string.gsub(origstr,"www.blogblog.com","blog.youhost.com/bbwww")
ngx.arg[1]=origstr
';
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#如下這條很重要,目的是關閉http壓縮,若是不關閉壓縮則沒法進行任何過濾
proxy_set_header Accept-Encoding "";
proxy_redirect off;
}
location /blg/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /img1/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /img2/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Accept-Encoding "";
proxy_redirect off;
}
location /img3/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Accept-Encoding "";
proxy_redirect off;
}
location /bbwww/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Accept-Encoding "";
proxy_redirect off;
}
}