기계적 인조 인간

nginx 오류 및 액세스 로그 구성

gugudan (구구단) - '나 같은 애' (A Girl Like Me) Official MV

gugudan (구구단) - '나 같은 애' (A Girl Like Me) Official MV

차례:

Anonim

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

로그를 구성하고 읽는 방법을 아는 것은 서버 또는 응용 프로그램 문제가 자세한 디버깅 정보를 제공하므로 문제를 해결할 때 매우 유용합니다.

Nginx는 이벤트 로그를 액세스 로그와 오류 로그라는 두 가지 유형의 로그에 기록합니다. 액세스 로그는 클라이언트 요청에 대한 정보를 쓰고 오류 로그는 서버 및 응용 프로그램 문제에 대한 정보를 씁니다.

이 기사에서는 Nginx 액세스 및 오류 로그를 구성하고 읽는 방법을 간략하게 설명합니다.

액세스 로그 구성

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

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

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

access_log log_file log_format;

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

액세스 로그는 http , server 또는 location 지시문 블록에서 활성화 할 수 있습니다.

기본적으로 액세스 로그는 기본 Nginx 구성 파일의 http 지시문에서 전체적으로 활성화됩니다.

/etc/nginx/nginx.conf

http {… access_log /var/log/nginx/access.log;… }

유지 관리 성을 향상 시키려면 각 서버 블록마다 별도의 액세스 로그 파일을 설정하는 것이 좋습니다. server 지시문에 설정된 access_log 지시문은 http (상위 레벨) 지시문에 설정된 것을 무시합니다.

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

http {… access_log /var/log/nginx/access.log;… server { server_name domain.com access_log /var/log/nginx/domain.access.log;… } }

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

log_format combined '$remote_addr - $remote_user ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"';

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

log_format custom '$remote_addr - $remote_user "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';

새 형식을 사용하려면 아래와 같이 로그 파일 이름을 지정하십시오.

access_log /var/log/nginx/access.log custom;

액세스 로그는 매우 유용한 정보를 제공합니다. 디스크 공간이 필요하며 서버 성능에 영향을 줄 수 있습니다. 서버의 리소스가 부족하고 웹 사이트 사용량이 많은 경우 액세스 로그를 비활성화 할 수 있습니다. 그렇게하려면 access_log 지시문의 값을 off 설정하십시오.

access_log off;

오류 로그 구성

Nginx는 응용 프로그램 및 일반 서버 오류에 대한 메시지를 오류 로그 파일에 기록합니다. 웹 응용 프로그램에 오류가 발생하면 문제 해결을 위해 먼저 오류 로그를 시작하십시오.

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

error_log log_file log_level

log_level 매개 변수는 로깅 레벨을 설정합니다. 아래는 심각도 (낮음에서 높음)로 나열된 수준입니다.

  • debug -메시지 디버깅. info -정보 메시지. notice -통지. warn -경고. error-요청을 처리하는 중 error . crit 치명적인 문제. 신속한 조치가 필요합니다. alert -경고. 즉시 조치를 취해야합니다. 긴급 상황. 시스템을 사용할 수없는 상태입니다.

각 로그 수준에는 더 높은 수준이 포함됩니다. 예를 들어, 로그 수준을 warn 설정하면 Nginx는 error , crit , alert emerg 메시지도 기록합니다.

log_level 매개 변수가 지정되지 않은 경우 기본값은 error 입니다.

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

/etc/nginx/nginx.conf

http {… error_log /var/log/nginx/error.log;… }

액세스 로그와 마찬가지로 각 서버 블록에 대해 별도의 오류 로그 파일을 설정하는 것이 좋습니다.이 오류 로그 파일은 상위 수준에서 상속 된 설정보다 우선합니다.

예를 들어 domain.com의 오류 로그를 warn 로 설정하려면 다음을 사용하십시오.

http {… error_log /var/log/nginx/error.log;… server { server_name domain.com error_log /var/log/nginx/domain.error.log warn;… } }

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

로그 파일의 위치

Ubuntu, CentOS 및 Debian과 같은 대부분의 Linux 배포에서 기본적으로 액세스 및 오류 로그는 /var/log/nginx 디렉토리에 있습니다.

Nginx 로그 파일 읽기 및 이해

cat , less , grep , cut , awk 등과 같은 표준 명령을 사용하여 로그 파일을 열고 구문 분석 할 수 있습니다.

기본 결합 Nginx 로그 형식을 사용하는 액세스 로그 파일의 레코드 예는 다음과 같습니다.

192.168.33.1 - - "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"

레코드의 각 필드가 의미하는 것을 분석해 보겠습니다.

  • $remote_addr - 192.168.33.1 요청하는 클라이언트의 IP 주소 $remote_user ---HTTP 인증 된 사용자. 사용자 이름을 설정하지 않으면이 필드에 - 됩니다. - -로컬 서버 시간. "$request" - "GET / -요청 유형, 경로 및 프로토콜. $status - 200 서버 응답 코드. $body_bytes_sent - $body_bytes_sent 바이트 단위의 서버 응답 크기. "$http_referer" - "-" -추천의 URL입니다. "$http_user_agent" Mozilla/5.0… 클라이언트 (웹 브라우저)의 사용자 에이전트.

tail 명령을 사용하여 실시간으로 로그 파일을보십시오.

tail -f access.log

결론

로그 파일은 서버 문제 및 방문자가 웹 사이트와 상호 작용하는 방법에 대한 유용한 정보를 제공합니다.

Nginx를 사용하면 필요에 따라 액세스 및 오류 로그를 구성 할 수 있습니다.

니 진스