我在 debian 上使用 nginx,并配置了一个服务器
server {
listen 172.30.0.172 deferred;
}
Run Code Online (Sandbox Code Playgroud)
当我测试 nginx 配置时,我仍然得到
[emerg] bind() to 172.30.0.172:443 failed (99: Cannot assign requested address)
Run Code Online (Sandbox Code Playgroud)
它是一个 ssl 主机,并且正在使用起搏器进行 HA,因此我需要能够推迟绑定
如果我理解正确,您正在尝试让 nginx 侦听在 nginx 启动时本地计算机上可能存在或不存在的 IP,对吗?
如果是这样,那么解决方案就在 nginx 之外,因为 Linux 内核不允许此操作。
要允许进程绑定到不存在的 IP,您可以设置 net.ipv4.ip_nonlocal_bind sysctl。在 Debian/Ubuntu 上,你会这样做:
echo net.ipv4.ip_nonlocal_bind=1 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2604 次 |
| 最近记录: |