Author: Xuan Hu

  • 有生以来的第一个patch

    由于种种原因,今天才提交了有生以来第一个被accpted的patch

    只改了两行代码……

    传送门:https://bugs.launchpad.net/gtg/+bug/896798

    仅以此日志纪念。 Keep Coding for Fun!

  • Sina2WordPress 1.0

    Sina2WordPress

    拖了好久的说,一开始只是为了自己用一下,正好又刚学python不久,写了一个命令行下可用的,后来突然捡起来觉得还是写个GUI让别人用更好。虽然现在博客已经不流行了,大家都在玩实名制的微博,但还是希望有人需要时可以有的用。接下来主要会看看能不能把日志里的图片和视频扒下来,有任何问题都欢迎和我联系。

  • 用Nginx反向代理Feedburner

    虽然博客将死,RSS将死的言论越来越盛,但如果真的要代理Feed,除了Feedburner可能没有更好的选择了,Feedsky什么的各种不靠谱。至于要反向代理Feedburner的原因我就不说了,老舍先生的茶馆里已经说的很清楚了。

    实现的主要问题是:个人的Feedburner页面和页面中其他元素的目录结构不同。
    如,我的Feedburner页面地址是http://feeds.feedburner.com/huxuan,
    而其他如定义xml结构的xsl文件地址是http://feeds.feedburner.com/~d/styles/rss2full.xsl。
    所以不能简单的反向代理个人页面,更不能直接反向代理feedburner根目录。
    折腾纠结了两天,经过向 lqswkl 两位大牛请教,得到了两条不同的思路。

    思路一:根目录反向代理http://feeds.feedburner.com,并将根目录重定向至/huxuan。
    需要注意只重定向根目录,不重定向根目录下的文件和子目录,不然会无法访问其他文件的错误,配置代码如下:
    [shell]
    server
    {
    listen 80;
    server_name feeds.huxuan.org;
    access_log /home/huxuan/.log/www/feeds.huxuan.org.access.log;
    error_log /home/huxuan/.log/www/feeds.huxuan.org.error.log;

    location /
    {
    proxy_pass http://feeds.feedburner.com;
    proxy_set_header Host feeds.feedburner.com;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    rewrite ^/$ /huxuan break;
    }
    }
    [/shell]

    思路二:仅根目录反向代理http://feeds.feedburner.com/huxuan,其他非根目录(根目录下的文件和子目录)都用正则匹配反向代理至http://feeds.feedburner.com
    [shell]
    server
    {
    listen 80;
    server_name feeds.huxuan.org;
    access_log /home/huxuan/.log/www/feeds.huxuan.org.access.log;
    error_log /home/huxuan/.log/www/feeds.huxuan.org.error.log;

    location = /
    {
    proxy_pass http://feeds.feedburner.com/huxuan;
    proxy_set_header Host feeds.feedburner.com;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location ~* ^/.+
    {
    proxy_pass http://feeds.feedburner.com;
    proxy_set_header Host feeds.feedburner.com;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    }
    [/shell]

    以上两种方法均经过验证,思路一简洁一些,思路二直接一些,如有问题欢迎交流。