![停止 Nginx 监听除 127.0.0.1 之外的所有环回 IPv4 地址](https://linux22.com/image/787333/%E5%81%9C%E6%AD%A2%20Nginx%20%E7%9B%91%E5%90%AC%E9%99%A4%20127.0.0.1%20%E4%B9%8B%E5%A4%96%E7%9A%84%E6%89%80%E6%9C%89%E7%8E%AF%E5%9B%9E%20IPv4%20%E5%9C%B0%E5%9D%80.png)
在 Ubuntu 上,Nginx 显然会监听 中的所有 IP 127.0.0.0/8
。我如何禁用对127.0.0.0
和127.0.0.2
– 的监听127.255.255.255
?也就是说,我希望 Nginx 监听的唯一 IPv4 环回地址是127.0.0.1
。这个问题的答案应该不是影响 Nginx 监听任何其他 IP 地址(例如,服务器的 LAN 和 WAN 地址)。
停止 nginx 监听所有 IP?是一个相关问题,但这个问题特定于仅在环回接口上禁用 Nginx,而不将其限制为单个监听 IP。
答案1
你读过官方文档吗?listen
指示?或者nginx 如何处理请求?
句法: 听 地址[:港口] [默认服务器] [ssl] [http2 | quic] [代理协议] [setfib=数字][快速打开=数字] [积压=数字] [rcvbuf=尺寸][sndbuf=尺寸] [accept_filter=筛选] [延迟] [绑定] [ipv6only=on|off] [reuseport] [so_keepalive=on|off|[保持空闲]:[保持]:[保持计数]];
所以
server {
listen 127.0.0.1:80; # loopback
listen 192.168.1.100:80; # LAN
listen 192.0.2.3:80; # WAN
}
或者
server {
listen 127.0.0.1; # loopback
listen 192.168.1.100; # LAN
listen 192.0.2.3; # WAN
}
因为
要是地址给出时,使用端口 80。