停止 nginx 監聽所有 IP?

停止 nginx 監聽所有 IP?

我有 1 個主 IP 和 1 個輔助 IP。輔助 IP 適用於特殊的 Go Web 伺服器,該伺服器僅偵聽此 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  

相關內容