前段时间觉得Digitalocean的VPS不给力了,速度变慢了许多。碰巧Linode推出了每月10美金的低端主机,觉得还是用回Linode比较好。
Digitalocean的VPS是我去年8月份左右挖掘的,每月5美金的价格非常吸引人,而且当时的稳定性和速度也非常不错。但今年3月份以来,开始出现访问速度变慢,服务器每晚固定时间段连接不上的情况(VPN)。直到前几天viekee跟我说最近Do不行了,考虑换回Linode。
viekee的意见是先测几天Linode美国和日本服务器的速度和稳定性。其实我有点按捺不住,我有个习惯就是不喜欢在手头上留太多待办的事,碰巧前几天是周末,直接就绑信用卡买了。
配置Centos系统和lnmp环境我已经非常熟悉了,本以为最多不超过两小时就能把事情搞掂,但这天发生两个问题。
首先是VPN的问题:
同样是Centos6.5系统,Linode这边安装一键VPN会无法使用。查看了一下,发现报错是这样的:
[root@zhouzexin.cn ~]# service iptables start
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: security raw nat mangle fi[FAILED]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
就是那行的FAILED,导致VPN无法使用。
经爬文得知这个问题主要是iptables版本和内核对不上导致的。而Linode使用的是自己修改过的内核。
解决方法:
这个问题的修复需要在/etc/init.d/iptables,找到set_policy函数,在case "$i" in与raw)之间添加一个security选项,如下所示:
for i in $tables; do
echo -n "$i "
case "$i" in
security)
$IPTABLES -t security -P INPUT $policy \
&& $IPTABLES -t security -P OUTPUT $policy \
&& $IPTABLES -t security -P FORWARD $policy \
|| let ret+=1
;;
raw)
$IPTABLES -t raw -P PREROUTING $policy \
&& $IPTABLES -t raw -P OUTPUT $policy \
|| let ret+=1
;;
随后重启pptpd服务:
service pptpd stop
service pptpd start
当然你比较懒不想记这些代码的,可以直接reboot服务器。
备注:一键VPN的参考资料最大化利用起你的VPS——在Centos6.X上一键搭建VPN
然后是Typecho的伪静态问题:
这个问题跟lnmp1.1-full版有关(怎么感觉lnmp每个版本都有问题?之前1.0的问题则是导致wordpress的主题列表不显示):
Typecho安装好以后,可以访问Typecho博客的首页,但是当你点击任何一个连接以后则跳出404错误。
这个问题让我很头疼:我刚用typecho不久,对typecho的了解不够深,而且网上也很难查到相关的解决方法!但我想到这或许跟伪静态有关系:因为第一次安装typecho的时候我没有对vhost设置伪静态,然后出现了404。但这次我在vhost上设置了typecho,为什么还会404呢?搞了很久,未果。当时我还以为自己怀疑的方向错了呢!休息的时候跟viekee聊了一下,他说lnmp1.1的伪静态似乎有bug,在论坛看到有人讨论。
于是我开始调查这个bug,终于找到解决方法:
在/usr/local/nginx/conf/vhost/里,找到你使用中的域名.conf,能看到location部分是这样的:
location ~ [^/]\.php(/|$)
{
# comment try_files $uri =404; to enable pathinfo
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
#include pathinfo.conf;
}
要注销掉第四行,取消注释倒数第二行,如下面所示:
location ~ [^/]\.php(/|$)
{
# comment try_files $uri =404; to enable pathinfo
# try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
include pathinfo.conf;
}
改完保存,重启lnmp:
/root/lnmp restart
懒鬼可以直接reboot吧。
这次问题就记录到这里。搬家相关资料可查阅:记录「VPS搬家」需要注意的详细事项,其实typecho的搬家方法是跟wordpress通用的(其实绝大部分网站都通用)。