오늘은 운이 좋게도 서버의 80번 포트가 IP로 접속이 안 되는 걸 발견했습니다. 어제는 괜찮았고, 다른 포트도 정상이었습니다. 방화벽에는 문제가 없었습니다. 그래서 전산실에 물어보니 우리 서버에 등록되지 않은 도메인 이름이 있어서 차이나텔레콤에서 여러 차례 통보를 받고 우리 IP 포트가 차단됐다는 엉뚱한 답변을 했습니다. . . . 폐쇄되었습니다. . . 미친, 핵심은 이 도메인 이름이 내 것이 아니라는 것입니다.
몇 번 뒤척인 끝에 nginx 구성에 허점이 있는 것 같다는 것을 발견했습니다. 이로 인해 서버로 확인된 모든 도메인 이름이 정상적으로 요청됩니다. 빈 페이지인데도 HTTP 상태 코드가 200입니다.
주된 이유는 다음 구성 코드가 부족하기 때문입니다: nginx 버전 1.8.0
<code><span>server</span> { listen <span>80</span> default_server; server_name _; <span>return</span><span>403</span>; }</code>
구성되지 않은 모든 server_name이 403 오류를 반환하도록 허용
저도 Nginx를 다시 사용했습니다. 이 구성을 추가한 적도 없고, 이런 문제를 겪어본 적도 없고, 다른 서버에서 테스트해 본 적도 있는데, 이 코드가 없어도 파싱 및 요청이 성공적으로 불가능합니다.
보충:
검색한 결과 이런 종류의 문제에는 Nginx가 고유한 444 상태 코드를 사용해야 한다는 것을 알았습니다.
<code><span>server</span> { listen <span>80</span> default_server; server_name _; access_log off; <span>return</span><span>444</span>; }</code>
서버 측에서 접속 시 브라우저는 자동으로 사용자에게 접속할 수 없다는 메시지를 표시합니다.
CURL을 통해 캡처한 결과(출력은 HTTP 오류 메시지임)
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });위 내용은 관련 측면을 포함하여 악성 도메인 이름 확인을 방지하는 Nginx의 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.