Nginx는 대규모 웹 사이트 아키텍처에서 널리 사용되는 고성능 오픈 소스 웹 서버 및 리버스 프록시 서버입니다. 시스템의 안정적인 작동 및 성능 최적화를 보장하려면 일반적으로 웹 서비스의 요청 로그를 기록하고 분석해야합니다. 이 기사는 Nginx 프록시 서버를 통해 요청 로그를 녹화하고 분석하는 방법과 몇 가지 일반적인 도구를 통해 로그 분석을 수행하는 방법을 자세히 소개합니다.
먼저 Nginx 구성 파일에서 요청 로깅 기능을 활성화해야합니다. nginx 구성 파일`/etc/nginx/nginx.conf`를 열고 HTTP 블록에 다음 구성을 추가하십시오.
http { ... log_format main '$ 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 main; ... }
위의 구성은`log_format` 지침을 사용하여 클라이언트 IP, 요청 시간, 요청 메소드, 상태 코드 등과 같은 공통 정보가 포함 된 로그 형식 기본을 정의합니다. 다음으로`access_log` 지시를 사용하여 로그 정보를 지정된 파일 '/var/log/nginx/access.log'로 출력합니다.
다음으로, 백엔드 웹 서비스에 요청을 프록시하기 위해 Nginx의 역 프록시 함수를 구성해야합니다. nginx 구성 파일을 열고 서버 블록에서 다음 구성을 추가하십시오.
서버 { ... 위치 / { proxy_pass http : // 백엔드; proxy_set_header 호스트 $ 호스트; proxy_set_header xeal-ip $ remote_addr; ... } ... }
이 구성에서 Location/'은 모든 요청이 백엔드 웹 서비스 (예 : http : // backend`)에 프록시된다는 것을 의미합니다. `proxy_set_header`는 백엔드 서버가 올바른 요청 정보를 수신 할 수 있도록 호스트 및 Xeal-IP와 같은 요청 헤더를 설정하는 데 사용됩니다.
요청 로그를 분석하기 위해`awk`,`grep` 및`sort`와 같은 명령 줄 도구를 사용하여 로그 통계를 수행 할 수 있습니다. 다음은 특정 시간 범위에서 다른 IPS 방문 횟수를 계산하는 간단한 예입니다.
$ awk -v from = "2022-01-01 00:00:00"-v to = "2022-01-01 23:59:59"\ '$ 4> = from && $ 4 <= to {print $ 1}'/var/log/nginx/access.log | \ 정렬 | UNIQ -C | 정렬 -rn
이 명령에서`awk`는 시간 범위를 기반으로 로그를 필터링하고 IP 정보를 추출하는 데 사용됩니다. 그런 다음 IP 주소는`sort`를 사용하여 정렬됩니다.`uniq -c`는 IP 당 방문 횟수를 계산하는 데 사용되며 마지막으로`sort -rn`은 방문 횟수에 따라 내림차순으로 정렬됩니다.
위의 단계를 통해 Nginx 프록시 서버의 웹 요청 로깅 및 분석 기능을 성공적으로 구현할 수 있습니다. 로그 분석 도구와 결합 된 Nginx의 로깅 및 리버스 프록시 기능을 합리적으로 구성함으로써 웹 서비스의 성능을 더 잘 모니터링하고 최적화 할 수 있습니다. 이 기사를 통해 웹 서비스를보다 효율적으로 관리하고 최적화 할 수 있도록 Nginx 로그 구성 및 분석 기술을 마스터 할 수 있기를 바랍니다.