反向代理的问题,在我以前的Wordpress 博客上说过,当时用的 nginx。参考:给 wordpress.com 博客做反向代理。
反向代理配置本身不麻烦。问题是如何保证其它链接不会链到原始网站。上面的文章只考虑单域名,用 nginx 中的 sub_filter 指令做了域名替换。
Apache 做反向代理,也是类似的处理方式。不过 Apache 似乎没有一个自带的模块(所谓自带,就是 apt-get 下来就有的) 专门做文本替换的事情。仔细Google + 翻文档,发现Apache 有个更强大的 Filters 系统, 其中,可以自定义数据流的过滤方式。我把我的海盗湾的 vhost 配置拿出来,大家就明白了。
还有一个细节,用 nginx 做 reverse proxy 也遇到的问题:从back-end server 读数据不要读 gzip 压缩的,把 Accept-Encoding 的 http 头干掉,就万事大吉了。
欢迎大家使用我的海盗湾。
from http://liruqi.info/post/13502439999/reverse-proxy-for-tpb
反向代理配置本身不麻烦。问题是如何保证其它链接不会链到原始网站。上面的文章只考虑单域名,用 nginx 中的 sub_filter 指令做了域名替换。
Apache 做反向代理,也是类似的处理方式。不过 Apache 似乎没有一个自带的模块(所谓自带,就是 apt-get 下来就有的) 专门做文本替换的事情。仔细Google + 翻文档,发现Apache 有个更强大的 Filters 系统, 其中,可以自定义数据流的过滤方式。我把我的海盗湾的 vhost 配置拿出来,大家就明白了。
ServerAdmin liruqi@gmail.com ServerAlias thepiratebay.liruqi.info ServerAlias tpb.liruqi.info ServerName thepiratebay.org ExtFilterDefine FIXDOMAIN mode=output intype=text/html cmd="/bin/sed s/thepiratebay\.org/tpb\.liruqi\.info/g" Order Allow,Deny Allow from all RequestHeader unset Accept-Encoding SetOutputFilter FIXDOMAIN ProxyPass / http://thepiratebay.org/ ProxyPassReverse / http://thepiratebay.org/这里定义的是用外部 sed 命令做文本替换。其实你自己用 C 写一个程序,读 stdin,写 stdout,也可以拿来用(但是会更有成就感吧 > <)。
还有一个细节,用 nginx 做 reverse proxy 也遇到的问题:从back-end server 读数据不要读 gzip 压缩的,把 Accept-Encoding 的 http 头干掉,就万事大吉了。
欢迎大家使用我的海盗湾。
from http://liruqi.info/post/13502439999/reverse-proxy-for-tpb
No comments:
Post a Comment