当我重启我的服务器(不是Nginx,整个服务器)时,Nginx无法自动启动.登录服务器后,我可以手动启动Nginx(服务Nginx启动).有用.但如果我再次重启,我必须手动启动Nginx.在检查Nginx的error.log时,我看到这个错误重复了几次:
2012/08/27 09:19:23 [emerg] 1066#0: bind() to [ipv6]:80 Failed (99: Cannot assign requested address)
我怎样才能解决这个问题?这是什么问题? (我正在运行Ubuntu 12.04服务器)
bind() to [ipv6]:80 Failed (99: Cannot
assign requested address)
听起来您的IPv6地址刚被分配给eth0,并且仍然在tentative state中,因此Nginx无法在该IP上建立监听.
通过运行转向DAD(Duplicate Address Detection):
sysctl -w net.ipv6.conf.eth0.dad_transmits=0
(插入/etc/sysctl.conf永久)
或者在inet6接口定义下将此行添加到/ etc / network / interfaces中
post-up while ip -6 addr show tentative | grep . > /dev/null ; do sleep 1 ; done
资料来源:http://pyro.eu.org/how-to/micro/nginx-cannot-assign-requested-address-ipv6.txt