DiaHostingVPS配置ipv6隧道笔记一文中我们提到了如何在nginx主机上安装ipv6隧道及对应支持的方法,常常会有朋友因为各种原因要用 killall -g nginx 灭掉进程来重启nginx,而这个时候重启,经常会遇到以下错误:
[emerg]: bind() to [::]:80 failed (98: Address already in use)
遇到这种问题,目前发现万无一失的解决办法便是注释掉所有listen [::]:80 行,然后启动,再取消注释,用nginx -s reload来操作。

当然这真的很烦,而且像我的VPS有八个站点,一个一个注释实在太麻烦,于是,也有折中的办法:

将所有站点配置放在 vhost 文件夹里,所有注释掉这一行的站点放在 vhost_no_ipv6 文件夹里,每次启动的时候只需要在nginx.conf 里http块里修改
include vhost/*.conf
即可。

嗯,还是挺折腾吧?谁叫我跟V6干上了呢?