Skip to content

NGINX autoindex 동작 정리

jeongmin edited this page Feb 2, 2024 · 1 revision

결론

  • autoindex 옵션과 상관없이 디렉토리 경로 요청에서 GET, HEAD, POST 를 제외한 요청은 405
  • autoindex와 상관없이 GET, HEAD, POST에서 파일이 존재하지 않는 경우 404
  • 파일이 존재할 때 autoindex on
    • GET, HEAD → 200
    • POST → 403
  • 파일이 존재할 때 autoindex off
    • GET, HEAD, POST → 403

  • 경로가 / 로 끝나지 않거나, GET과 HEAD가 아닌 경우 NGX_DECLINED(거절)
    • nginx에서는 /로 끝나지 않았을 때 디렉토리라면 자동으로 / 붙여서 301 요청 하는듯
Screen Shot 2024-02-02 at 9 59 22 PM Screen Shot 2024-02-02 at 9 59 48 PM
  • GPT 설명

    Nginx는 웹 서버로, 클라이언트의 요청을 처리하는 방법을 정의하고 있습니다. 각 HTTP 메소드(GET, POST, HEAD, DELETE 등)는 서버가 어떻게 요청을 처리할지 정의하는데 사용됩니다.

    autoindex on 설정은 Nginx가 디렉토리의 내용을 자동으로 인덱싱하도록 지시합니다. 이 설정은 주로 GET 또는 HEAD 요청과 함께 사용되며, 디렉토리의 내용을 볼 수 있게 해줍니다. 이 때문에 GET과 HEAD 요청에 대한 응답 바디가 온 것입니다.POST 요청은 서버에 데이터를 전송하는 데 사용되며, 일반적으로 디렉토리 자체에 데이터를 추가하거나 수정하는 데 사용됩니다. 그러나 autoindex on 설정은 디렉토리의 내용을 보여주는 것이므로, POST 요청을 처리할 수 있는 기능을 제공하지 않습니다. 따라서, POST 요청에 대해 서버는 403 Forbidden 오류를 반환하며, 이는 클라이언트가 요청을 완료하는 데 필요한 권한이 없음을 나타냅니다.DELETE 요청은 서버에서 특정 리소스를 제거하는 데 사용됩니다. Nginx의 autoindex on 설정은 이러한 요청을 처리하는 기능을 제공하지 않습니다. 따라서, DELETE 요청에 대해 서버는 405 Method Not Allowed 오류를 반환하며, 이는 사용된 HTTP 메소드가 해당 리소스에 대해 허용되지 않음을 나타냅니다.

    이러한 이유로, Nginx의 autoindex on 설정은 GET과 HEAD 요청에 대해서만 응답 바디를 반환하고, POST와 DELETE 요청에 대해서는 오류를 반환합니다. 다른 HTTP 메소드를 사용하려면 해당 메소드를 처리할 수 있는 설정이나 모듈이 Nginx에 추가되어야 합니다.

autoindex off

  • 존재하는 폴더에 대해서
    • GET, HEAD, POST → 403 Forbidden
    • DELETE, PUT → 405 Not Allowed
  • 존재하지 않은 폴더에 대해서
    • GET, HEAD, POST → 404 Not Found
    • DELETE, PUT → 405 Not Allowed

Clone this wiki locally