用nginx做反向代理来访问防外链图片

女儿的博客从新浪搬到wordpress后,发现原来博客上链接的新浪相册的图片都不能访问了,一年的博客内容,一个个去重新上传图片,修正链接也是个大工程。还是得先想个其它办法。

想想防外链大都是通过检查请求中的http referer来实现的。如果通过反向代理来动态指定http referer是不是可以解决问题。马上做实验,没错,方法对新浪相册用效。

那接着就是搭一个反向代理了,nginx的名声现在是越来越大,资源也占用小。先用它吧。

location /get/ {

set $hostx “”;

set $addrs “”;

if ( $uri ~ “^/get/http./+([^/]+)/(.+)$”)

{

set $hostx $1;

set $addrs $2;

}

resolver 127.0.0.1;

proxy_pass http://$hostx/$addrs;

proxy_set_header referer “http://$hostx“;

}

注意resolver要指向一个有效的dns服务器。

这时就可以用http://nginx-server/get/sina-photo-url来访问新浪图片了。

改链接的方法可以是从wordpress导出xml文件,做字符串替换后再导入就可以了。

相关文章: 反向代理(Reverse Proxy)带来的主机名端口问题及解决 灵活运用Apache反向代理 Setting up a reverse proxy configuration with SSL 反正代理的内容过滤变换 如何对压缩网页通过反向代理做内容变换