すべての IP で nginx のリッスンを停止しますか?

すべての IP で nginx のリッスンを停止しますか?

メイン IP が 1 つとセカンダリ IP が 1 つあります。セカンダリ IP は、この質問とは無関係な理由でこの IP のみをリッスンする特別な Go Web サーバー用です。

残念ながら、Nginxがリッスンすることにしたため、動作しません。全てIP なので、カスタム Web サーバーはその IP とポートにバインドできません。別のポートを使用することはできず、このポートを使用する必要があります... そのため、この専用目的のために 2 番目の 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  

関連情報