给整站强制https了,原因是你懂的。毕竟vps的主要目的是给家里打洞用,万一被搞了就不好了。升https很简单,网上教程一搜一大把,过程很顺利。只是升级后feedburner遇到点状况,提示400,再一搜,原来feedburner不支持https。话说feedburner有近两年没更新了,对google很无语,希望这个服务能不要倒掉。但不管怎样,还是得想办法搞定feedburner,在nginx多加一个server也行,但麻烦,所以最好用rewrite搞定,但是nginx不支持两个if的条件判断,所以要麻烦一点。
set $p 0;
if ($ssl_protocol = "") {
set $p N;
}
if ($http_user_agent !~ FeedBurner) {
set $p "${p}N";
rewrite ^/feed/ http://feeds2.feedburner.com/XjpvictorsBlog last;
rewrite ^/comments/feed/ http://feeds2.feedburner.com/CommentsForXjpvictorsBlog last;
}
if ($p = NN) {
rewrite ^(.*) https://$host$1 permanent;
}
这就是说如果User Agent不是Feedburner,那么所有http的访问都会被重定向到https,而https则不再重定向以免造成循环。然后这时候再判断如果访问的是feed和comments/feed,就再给重定向到feedburner的rss输出地址。而如果User Agent是Feedburner的话就不做任何动作,这时候访问的应该就是http的feed和comments/feed。
在搜索feedburner问题的时候我突然发现feedburner在国内貌似是访问不了的。用卡卡网测试的结果feeds.feedburner.com没一个检测位置能打开,必须换成feeds2.feedburner.com才行,果断修改链接,还好这种改动不需要重新订阅,这事真够2的。