2011年3月30日星期三

[GFW BLOG(功夫网与翻墙)] 给 wordpress.com 博客做反向代理

来源:https://liruqi.wordpress.com/2011/02/26/reverse-proxy-for-wordpress/

做这个的起因是之前 @annsherry_ 希望给自己的博客(http://annsherry.wordpress.com/) 绑定一个独立域名。我看了下后台配置,发现 wordpress.com 不让用A记录的方式配置,要想绑定域名,需要把自己的域名 nameserver 改成 wordpress的,让wordpress 帮你解析。作为一名互联网工作者,这种霸王条款当然是深深伤害了像我这种高端用户的感情。所以研究了一下用自己的主机给 *.wordpress.com 做反向代理的方法。 

研究过程很纠结。我先把结论拿出来,然后大概解释下为什么。

比如,我希望把 annsherry.wordpress.com 绑定到 liruqi.me。步骤如下:

1. 重新编译 nginx, 加上 HttpSubModule(http://wiki.nginx.org/HttpSubModule) 模块。简而言之,是 ./configure 时加上参数 –with-http_sub_module 其它参数保持不变即可。
2. 修改Nginx 配置。在 http 块中加入 server:
server {
listen   80;
server_name liruqi.me;
location / {
proxy_set_header  X-Real-IP  $remote_addr;
proxy_set_header  Accept-Encoding  ”";
sub_filter_once off;
}
}

3. 启动 nginx 或者重新加载配置文件.

只要 域名 liruqi.me 是指向正确的主机ip, 反向代理就做好了。而且点链接不会跳回到 annsherry.wordpress.com 域名上。

大概说下原理。
a) *.wordpress.com 上的连接不少是绝对路径。如果直接proxy_pass ,再点一次连接就会回到 wordpress 域名上。所以这里做了一个简单的文本替换。

HttpSubModule 仅支持单模式的纯文本替换,不支持正则表达式。如果希望用正则,做一个更复杂的替换,可以考虑一个华人开发的 HttpSubsModule (http://wiki.nginx.org/HttpSubsModule) 第三方模块。

b) proxy_set_header  Accept-Encoding  ”";  这一项,可以让nginx 不法送 Accept-Encoding HTTP header。这个时候,wordpress 返回的页面是不做 gzip压缩的。因为gzip 压缩之后,文本替换就会失效了。
国外有VPS的同学(而且ip没被墙的),可以考虑用类似的方式给自己的 blogspot 或者其它博客做反向代理。
另外,我现在没有给自己的 liruqi.com 做反向代理了(之前是反向代理到 appspot 上的 micolog),而是直接跳转到 http://liruqi.wordpress.com/。另外,我也建议大家少自己折腾搭建博客,不止一次见过把博客做在 VPS 上,然后因各种原因丢数据。而数据的价值,远大于技术本身。

—————————————————————————————————————————

需要翻墙利器赛风? 请阅读和关注中国数字时代

推特用户请点击这里免翻墙上推特

请点击这里下载翻墙软件

更多翻墙方法请发电邮(最好用Gmail)到:fanqiang70ma@gmail.com

请阅读和关注中国数字时代翻墙技术博客GFW BLOG(免翻墙)

请使用Google Reader订阅中国数字时代中文版http://chinadigitaltimes.net/chinese/feed),阅读最有价值的中文信息;以及GFW BLOG(功夫网与翻墙)http://feeds2.feedburner.com/chinagfwblog,获取最新翻墙工具和翻墙技巧信息。




--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 3/30/2011 07:18:00 PM

--
1、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog。2、发一封标题为GFW的邮件到fanqiang70ma@gmail.com,就可获取翻墙利器赛风新地址。附《数字时代》赠阅版。3、本站热烈欢迎各位朋友投稿或推荐文章,请发邮件至chinagfwblog[at]gmail.com。
停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com

没有评论:

发表评论