Nginx/NGINX 설정 에러

error_log에 off 사용 불가 → error_log /dev/null emerg으로 비활성화

hippo 데브옵스 2024. 3. 31. 17:02
  • error_log off 지시문으로는 로깅을 비활성화 불가 → access_log 지시어와 달리 error_log는 off 매개 변수를 사용하지 않음
  • 만약 nginx에 error_log off 지시어를 포함하면 nginx 구성 파일의 기본 디렉토리(/etc/nginx)에 off라는 이름의 에러 로그 파일을 생성됨
     
  • error_log 로그는 nginx의 문제를 디버깅할 때 중요한 정보 소스이므로 비활성화하지 않는 것이 좋지 않음
  • 만약 스토리지가 너무 제한적이어서 사용 가능한 디스크 공간을 모두 소진할 정도의 경우 오류 로깅을 비활성화하는 것이 좋음

  • main 설정에 error_log 지시어 사용 예시
    error_log /dev/null emerg;​

 

  • error_log 지시어
    • 여러 개의 로그를 지정 가능 
    • main configuration 수준에서 로그를 쓰는 것이 명시적으로 정의되어 있지 않으면 기본 파일이 사용
      구문 :	error_log file [level];
      기본 :	error_log logs/error.log error;
      문맥 :	main, http, mail, stream, server, location​
       
  • error_log 지시어의 매개변수
    1. error_log 첫 번째 매개변수
      • 로그를 저장할 파일을 정의
      • stderr 특수 값은 표준 오류 파일(standard error file)을 선택 
      • "syslog:" 접두사를 지정하여 syslog에 로깅하도록 구성 가능 
      • "memory: size" 접두사와 버퍼 크기를 지정하여 순환 메모리 버퍼에 로깅 구성 가능. 일반적으로 디버깅에 사용
         
    2. erorr_log 두 번째 매개변수
      • 로깅 수준을 결정
      • debug, info, notice, warn, error, crit, alert 중 하나가 될 수 있음
      • 로그 수준(Log levels)은 심각도가 높아지는 순서대로 나열
      • 특정 로그 수준(certain log level)을 설정하면 지정된 로그 수준보다 더 심각한 로그 수준의 모든 메시지가 기록됨 → 예시) 오류 로그(error log)는  error, crit 및 alert  메시지가 기록됨
      • error_log 매개 변수를 생략하면 error가 사용

 

  • error_log 지시어는 nginx가 구성을 읽고 유효성을 검사할 때까지 적용되지 않는다는 점에 유의
  • nginx가 시작하거나 구성이 다시 로드될 때마다 구성의 유효성이 검사 → 기본 error log(/var/log/nginx/error.log) 로깅
  • 로그 디렉터리를 변경하려면 nginx 명령에 -e <error_log_location> 파라미터를 포함

 

참고 자료 : Avoiding the Top 10 NGINX Configuration Mistakes - NGINX