当更多特定 IP 使用相同端口时,Nginx 绑定失败

当更多特定 IP 使用相同端口时,Nginx 绑定失败

我的 nginx 配置版本1如下:

 listen 80;
 ...
}

然后我将配置更改为 version2,如下所示:

 listen 1.2.3.4:80;
 ...
}

运行后nginx -s reload,重新加载失败并显示消息nginx: [emerg] bind() to 1.2.3.4:80 failed (98: Address already in use) 如果我首先应用版本 2 配置,然后应用版本 1 配置,重新加载失败并显示消息nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

看起来 nginx reload 在创建新绑定之前不会释放先前的绑定,从而导致冲突?有人可以解释一下这是正常行为吗,或者可以以某种方式覆盖它。

我的 nginx 配置更改非常频繁,并且我不想每次更改配置时都执行 nginx 停止/启动。

答案1

似乎 nginx 正在尝试自动分配地址,尝试在监听中将地址与端口绑定指示

listen 1.2.3.4:80 bind;

相关内容