停止 nginx 监听所有 IP?

停止 nginx 监听所有 IP?

我有 1 个主 IP 和 1 个辅助 IP。辅助 IP 是为一个特殊的 Go 网络服务器准备的,该服务器只监听这个 IP,原因与本问题无关。

不幸的是,它不起作用,因为 Nginx 决定监听全部IP,所以我的自定义网络服务器无法绑定到该 IP 和端口。我不能使用其他端口,必须使用这个端口……这就是为什么我购买了第二个 IP 地址,仅用于此目的。

如何让 Nginx 只监听主 IP 而不是所有 IP?

我在 Ubuntu 18.04 上。

答案1

以下是仅适用于 http 的示例配置。Https 并没有什么不同:

server {
  #This is the important listen block to specify:
  listen      <ip-address>:80;
  server_name example.com;
  root        /var/www/html;
  index index.html index.php;

  location / { 
    try_files $uri $uri.html $uri/ /index.html;
  }

  error_page 404 /404.html;
}

如果您的配置中有这个,您可以将其删除以禁用 ipv6(如果您愿意的话):

listen [::]:80 default_server

然后如果你用 netstat 测试它:

test@computer:/etc/nginx/conf.d# netstat -na | grep -i "Listen" | grep ":80"
tcp        0      0 <ip-address>:80       0.0.0.0:*               LISTEN  

相关内容