Saya mencipta mesin maya baharu untuk ujian Mesin maya mempunyai dua IP: a.a.a.a dan b.b.b.b. Saya harap nginx hanya akan mendengar a.a.a.a:80
Tetapi apabila IP pendengaran yang ditentukan ditetapkan dalam fail konfigurasi listen a.a.a.a:80;
后重启系统,nginx 会启动失败并报错Starting nginx: [emerg]: bind() to a.a.a.a failed (99: Cannot assign requested address)
,但是此时只要手动 systemctl start nginx
, ia boleh bermula seperti biasa.
Selepas mengalih keluar ip dalam fail konfigurasi listen 80;
dan memulakan semula sistem, nginx boleh bermula seperti biasa.
Ringkasan:
Selepas menentukan IP pendengaran, perkhidmatan tidak boleh dimulakan secara automatik dengan sistem, tetapi perkhidmatan boleh dimulakan secara manual dan digunakan seperti biasa.
Jika anda tidak menyatakan IP pendengaran, perkhidmatan akan dimulakan secara automatik dengan sistem dan ia akan berfungsi seperti biasa.
Bagaimana untuk menyelesaikan situasi ini?
Lihat ulasan pada siaran ini untuk penyelesaian sementara (tidak dikembangkan secara lalai)
Alasan spekulasi ialah nginx perlu mengesan IP untuk mengikat, tetapi sistem tidak mengembalikan nilai apabila pengesanan atau pemasaan pengesanan terlalu cepat, menyebabkan sistem tidak membenarkan pengikatan Sila tunggu induk menambah butiran lanjut
Semak sama ada pengguna yang memulakan nginx ialah pengguna root Secara lalai, port 80 hanya boleh diduduki oleh root Anda juga mesti mengubah suai konfigurasi yang berkaitan untuk membolehkan pengguna biasa menduduki port 80.