Nginx 액세스 및 오류 로그와 정보 세부 정보(error_log) 구성

Nginx는 인터넷에서 가장 큰 규모의 사이트들의 부하를 처리하는 오픈 소스 고성능 HTTP 및 역방향 프록시 서버입니다. NGINX 웹 서버를 관리할 때 가장 자주 수행하는 작업 중 하나는 로그 파일을 확인하는 것입니다.

Nginx 로그란 무엇입니까?

Nginx는 인터넷에서 가장 큰 규모의 사이트들의 부하를 처리하는 오픈 소스 고성능 HTTP 및 역방향 프록시 서버입니다. NGINX 웹 서버를 관리할 때 가장 자주 수행하는 작업 중 하나는 로그 파일을 확인하는 것입니다.

로그를 구성하고 읽는 방법을 아는 것은 서버나 애플리케이션 문제를 해결할 때 매우 유용합니다. 로그는 자세한 디버깅 정보를 제공하기 때문입니다.

Nginx는 두 가지 유형의 로그로 이벤트를 기록합니다.액세스 로그와 오류 로그. 액세스 로그는 클라이언트 요청에 대한 정보를 기록하고, 오류 로그는 서버 및 애플리케이션 문제에 대한 정보를 기록합니다.

액세스 로그 구성

클라이언트 요청이 처리될 때마다 Nginx는 액세스 로그에 새로운 이벤트를 생성합니다. 각 이벤트 레코드에는 타임스탬프와 클라이언트 및 요청된 리소스에 대한 다양한 정보가 포함됩니다. 액세스 로그에는 방문자의 위치, 방문한 페이지, 페이지에서 머문 시간 등이 표시될 수 있습니다.

log_format 지시어를 사용하면 로깅되는 메시지가 기록되는 형식을 정의할 수 있습니다. access_log 지시어는 로그 파일의 위치와 사용되는 형식을 활성화하고 설정합니다.

access_log 지시어의 가장 기본적인 구문은 다음과 같습니다.

액세스 로그 로그 파일 로그 형식;

여기서 log_file은 로그 파일의 전체 경로이고 log_format은 로그 파일에서 사용하는 형식입니다.

액세스 로깅은 http, 서버 또는 위치 지시 블록에서 활성화할 수 있습니다.

기본적으로 액세스 로그는 Nginx 기본 설정 파일의 http 지시어를 통해 전역적으로 활성화됩니다.

/etc/nginx/nginx.conf


http {
...
액세스_로그 /var/log/nginx/access.log;
...
}

유지 관리 편의성을 높이려면 각 서버 블록에 대해 별도의 액세스 로그 파일을 설정하는 것이 좋습니다. server 지시어에 설정된 access_log 지시어는 http(상위 레벨) 지시어에 설정된 것보다 우선합니다.

/etc/nginx/conf.d/domain.com.conf


http {
...
액세스_로그 /var/log/nginx/access.log;
...
서버 {
서버 이름 도메인.com
액세스_로그 /var/log/nginx/도메인.액세스.로그;
...
}
}

로그 형식이 지정되지 않으면 Nginx는 다음과 같이 미리 정의된 결합 형식을 사용합니다.

log_format은 '$remote_addr - $remote_user [$time_local]'을 결합했습니다.
'"$요청" $상태 $본문_바이트_전송됨'
'"$http_referer" "$http_user_agent"';

로깅 형식을 변경하려면 기본 설정을 재정의하거나 새 형식을 정의하세요. 예를 들어, 표시된 X-Forwarded-For 헤더 값을 사용하여 결합된 형식을 확장하는 main이라는 새 로깅 형식을 정의하려면 http 또는 server 지시문에 다음 정의를 추가하세요.

log_format 사용자 정의 '$remote_addr - $remote_user [$time_local] "$request" '
'$상태 $body_bytes_sent "$http_referer"'
'"$http_user_agent" "$http_x_forwarded_for"';

새로운 형식을 사용하려면 다음과 같이 로그 파일 뒤에 해당 이름을 지정하세요.

access_log /var/log/nginx/access.log 사용자 정의;
액세스 로그는 매우 유용한 정보를 제공하지만 디스크 공간을 차지하고 서버 성능에 영향을 줄 수 있습니다. 서버 리소스가 부족하고 웹사이트 사용량이 많은 경우 액세스 로그를 비활성화하는 것이 좋습니다. 이를 위해 access_log 지시어 값을 off로 설정합니다.

액세스 로그 끄기;

오류 로깅 구성

Nginx는 애플리케이션 및 일반적인 서버 오류에 대한 메시지를 오류 로그 파일에 기록합니다. 웹 애플리케이션에서 오류가 발생하면 가장 먼저 오류 로그를 통해 문제 해결을 시작해야 합니다.

error_log 지시어는 오류 로그의 위치 및 심각도 수준을 활성화하고 설정합니다. 다음 형식을 따르며 http, server 또는 location 블록에서 설정할 수 있습니다.

오류 로그 로그 파일 로그 레벨
log_level 매개변수는 로깅 수준을 설정합니다. 심각도가 낮은 순에서 높은 순으로 나열된 수준은 다음과 같습니다.

  • 디버그 - 디버그 메시지.
  • info - 정보 메시지.
  • 공지사항 - 발표사항.
  • 경고하다 - 경고.
  • 오류 - 요청을 처리하는 동안 오류가 발생했습니다.
  • crit - 심각한 문제입니다. 즉각적인 조치가 필요합니다.
  • 알림 - 경고입니다. 즉각적인 조치가 필요합니다.
  • emerg - 긴급 상황. 시스템을 사용할 수 없는 상태입니다.

각 로그 레벨에는 더 높은 레벨이 포함됩니다. 예를 들어, 로그 레벨을 "warn"으로 설정하면 Nginx는 error, crit, alert, emerg 메시지도 함께 기록합니다.
log_level 매개변수가 지정되지 않으면 기본값은 error입니다.

기본적으로 error_log 지시문은 기본 nginx.conf 파일 내의 http 지시문에 정의되어 있습니다.

/etc/nginx/nginx.conf


http {
...
오류_로그 /var/log/nginx/error.log;
...
}

액세스 로그와 마찬가지로, 상위 레벨에서 상속된 설정을 재정의하기 위해 각 서버 블록에 대해 별도의 오류 로그 파일을 설정하는 것이 좋습니다.

예를 들어, domain.com의 오류 로그를 경고로 설정하려면 다음을 사용합니다.


http {
...
오류_로그 /var/log/nginx/error.log;
...
서버 {
서버 이름 도메인.com
error_log /var/log/nginx/domain.error.log 경고;
...
}
}

 

구성 파일을 수정할 때마다 변경 사항을 적용하려면 Nginx 서비스를 다시 시작해야 합니다.

점수

댓글남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다