Nginx の起動に失敗しました。要求されたアドレスを割り当てることができませんか?

Nginx の起動に失敗しました。要求されたアドレスを割り当てることができませんか?

サーバーを再起動すると (nginx ではなく、サーバー全体)、Nginx が自動的に起動しなくなります。サーバーにログインした後、nginx を手動で起動できます (service nginx start)。動作します。ただし、もう一度再起動すると、Nginx を手動で起動する必要があります。Nginx の error.log を確認すると、このエラーが数回繰り返されていることがわかりました。

2012/08/27 09:19:23 [emerg] 1066#0: bind() to [ipv6]:80 failed (99: Cannot assign requested address)

これを修正するにはどうすればいいですか? この問題は何ですか? (Ubuntu 12.04 サーバーを実行しています)

答え1

[ipv6]:80へのbind()が失敗しました(99:要求されたアドレスを割り当てることができません)

IPv6アドレスがeth0に割り当てられたばかりで、まだ暫定的な状態したがって、Nginx はその IP で listen を確立できません。

DADのどちらかのターン(重複アドレス検出) を実行します:

sysctl -w net.ipv6.conf.eth0.dad_transmits=0

/etc/sysctl.conf(永久に挿入する)

/etc/network/interfacesまたは、 inet6インターフェース定義の下にこの行を追加します。

post-up while ip -6 addr show tentative | grep . > /dev/null ; do sleep 1 ; done

ソース:http://pyro.eu.org/how-to/micro/nginx-cannot-assign-requested-address-ipv6.txt

答え2

私も同様の症状がありましたが、構成が異なっていました。サーバーは、静的 IPv4 および IPv6 アドレスが構成された Debian Wheezy を実行しています。

# /etc/network/interfaces
auto lo eth0
iface lo inet loopback

iface eth0 inet static
 address 192.0.2.3
 netmask 255.255.255.0
 gateway 192.0.2.1

iface eth0 inet6 static
 address 2001:db8::3
 netmask 64
 gateway 2001:db8::1        

起動するたびに、nginx の起動に失敗しました。

bind() to [2001:db8::3]:80 failed (99: Cannot assign requested address)

手動での起動は問題なく機能し、手動での検査でもアドレスとルートが設定されていることが示されました。 IPv6 アドレスinterfaces(IPv4 アドレスなし) を設定するだけで機能しました。 静的 IPv6 ゲートウェイを削除しても機能しましたが、リンク ローカル ゲートウェイ アドレスが使用されます。 さらにデバッグを行ったところ、ブート プロセスで次のメッセージが表示されることがわかりました。

RTNETLINK answers: File exists
Failed to bring up eth0.

インターフェースが起動すると、ルータによって IPv6 アドレスとゲートウェイが自動的に割り当てられることが判明しました。この動作を回避するには、セクションaccept_ra 0で設定しますiface eth0 inet6inet6セクションも セクションの前に移動する必要がありますinet。そうしないと、デフォルト ルートはリンク ローカル アドレスを指したままになります。

答え3

私の Ubuntu 14.04 ホストでは、IPv6 (inet6) エントリを IPv4 (inet) エントリの前に移動するだけで済みました。

つまり、これは機能します:

auto eth0
iface eth0 inet6 static
    address fd57:c87d:f1ee:2::6
    netmask 64
    up /sbin/ip -6 route add fd57:c87d:f1ee::/48 via fe80::1 dev $IFACE

iface eth0 inet static
   address 10.0.3.29
   netmask 255.255.255.0
   gateway 10.0.3.1
   dns-nameserver 10.0.3.1

関連情報