찾다

 >  Q&A  >  본문

Centos 7 nginx는 IP 바인딩 후 시스템을 시작할 수 없으며 바인딩() 실패를 표시합니다.

테스트를 위해 특별히 새 가상 머신을 만들었습니다. 가상 머신에는 a.a.a.a와 b.b.b.b라는 두 개의 IP가 있습니다. nginx가 a.a.a.a:80만 수신하기를 바랍니다. 하지만 지정된 청취 IP가 구성 파일
에 설정되어 있으면 정상적으로 시작할 수 있습니다. 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 구성 파일
에서 IP를 제거하고 시스템을 다시 시작하면 nginx가 정상적으로 시작할 수 있습니다. listen 80; 요약:
Listening IP를 지정한 후에는 시스템에서 자동으로 서비스를 시작할 수 없지만 수동으로 서비스를 시작하여 정상적으로 사용할 수 있습니다.
수신 IP를 지정하지 않으면 서비스가 시스템과 함께 자동으로 시작되어 정상적으로 작동합니다.

이 상황을 해결하는 방법은 무엇입니까?

임시 해결 방법은 이 게시물의 댓글을 참조하세요(기본적으로 확장되지 않음)

추측되는 이유는 nginx가 바인딩을 위해 IP를 감지해야 하는데 시스템이 감지 중에 값을 반환하지 않거나 감지 타이밍이 너무 빨라 시스템이 바인딩을 허용하지 않기 때문입니다
.

PHPzPHPz2747일 전713

모든 응답(1)나는 대답할 것이다

  • 習慣沉默

    習慣沉默2017-05-16 17:27:18

    nginx를 시작한 사용자가 루트 사용자인지 확인하세요. 기본적으로 포트 80은 루트만 점유할 수 있습니다. 또한 일반 사용자가 포트 80을 점유할 수 있도록 관련 구성을 수정해야 합니다.

    회신하다
    0
  • 취소회신하다