Linode又一次升级了~不过因为日本机房老机子还要过几周才能升级,自己也有些等不及了,就开了个新机子,打算搬个家,顺便扫掉服服上不要的垃圾。
新机子用了我自己写的lnmp一键安装脚本(其实大部分代码都是网上找的= =##),在DigitalOcean上制作好脚本后放到Linode来装。安装和搬家都没什么问题,但是装完之后一重启,就出问题了。
重启完之后照理说Nginx应该会自动启动的,可是等了半天网站还是不能访问。登录SSH,执行:
service nginx start
手动启动Nginx,网站马上就能访问了。自启动脚本一切正常,手动启动也没有问题,为什么nginx就是没启动起来呢?
翻看日志,发现这样一行:
2014/05/02 17:02:28 [emerg] 2912#0: bind() to [2400:8900::***]:80 failed (99: Cannot assign requested address)
感觉是自启动Nginx的时候,ipv6还没有初始化完毕,所以启动失败。而我登录SSH,手动启动Nginx时,ipv6早已初始化完毕,所以就能正常启动了。
大概猜出了原因,怎么解决?谷歌了半天,在serverfault上找到了类似的问题以及解决方案,在此做个记录。
在 /etc/sysctl.conf
中插入:
[bash]sysctl -w net.ipv6.conf.eth0.dad_transmits=0[/bash]
或者
在 /etc/network/interfaces
中加入一行:
[bash]post-up while ip -6 addr show tentative | grep . > /dev/null ; do sleep 1 ; done[/bash]
我用后面一种方法,问题解决。
Linode的机器几次升级下来,目前性价比的确非常不错。但是要信用卡啊!
财付通的运通卡如果之前申请了的话可以用用,我是直接用信用卡的。
土豪你用的linode…?
=。=嗯..不是土豪..我还是能感到痛的..