찾다
운영 및 유지보수엔진스Nginx에서 로깅을 사용자 정의하고 로그 버퍼를 활성화하는 방법

Access Log

nginx는 요청을 처리한 후 즉시 액세스 로그에 클라이언트 요청에 대한 정보를 기록합니다. 기본적으로 액세스 로그는 log/access.log에 위치하며, 정보는 미리 정의된 조합 형식으로 로그에 기록됩니다.

접속 정보를 정확하게 기록하려면 아래와 같이 더욱 완전한 접속 로그 형식을 맞춤 설정해야 합니다.

http {
  log_format geoproxy
  '[$time_local] $remote_addr '
  '$realip_remote_addr $remote_user '
  '$request_method $server_protocol '
  '$scheme $server_name $uri $status '
  '$request_time $body_bytes_sent '
  '$geoip_city_country_code3 $geoip_region '
  '"$geoip_city" $http_x_forwarded_for '
  '$upstream_status $upstream_response_time '
  '"$http_referer" "$http_user_agent"';
  ...
}

이 로그 구성은 geoproxy라는 이름으로, 많은 nginx 변수를 사용하여 nginx 로깅 기능을 보여줍니다. 구성 옵션에서 각 변수의 구체적인 의미를 자세히 설명합니다.

사용자가 요청을 시작하면 서버 시간 $time_local이 기록되며 $remote_user 값은 기본 인증을 통과한 사용자 이름입니다. nginx에서 geoip_proxy 및 realip_header 지침 IP 주소 및 클라이언트 IP 주소 열기를 처리하는 데 사용됩니다.

그런 다음 http 요청 메서드 $request_method, 프로토콜 $server_protocol 및 http 메서드 $scheme을 기록합니다. http 또는 https

물론, 서버 이름 $server_name, 요청 URI 및 응답 상태 코드

기본 정보 외에도 몇 가지 통계 결과 데이터도 있습니다. 밀리초 수준의 요청 처리 시간 $request_time, 서버 응답의 데이터 블록 크기 $ body_bytes_sent; 또한 클라이언트가 위치한 국가 $geoip_city_country_code3, 지역 $geoip_region 및 도시 정보 $geoip_city도 기록됩니다.

변수 $http_x_forwarded_for는 요청의 x-forwarded-for 헤더 메시지를 기록하는 데 사용됩니다.

업스트림 모듈의 일부 데이터도 로그에 기록됩니다. 프록시 서버 응답 상태 코드 $upstream_status, 연결을 설정하고 업스트림 서버에서 응답 본문의 마지막 바이트를 수신하는 시간 $ upstream_response_time , 업스트림 서버에 연결을 설정하는 시간 $upstream_connect_time , 연결을 설정하고 업스트림 서버 $upstream_header_time 에서 응답 헤더의 첫 번째 바이트를 수신하는 시간.

요청 소스 $http_referer 및 사용자 에이전트 $http_user_agent도 로그에 기록될 수 있습니다.

nginx의 로깅 기능은 매우 강력하고 유연합니다. 로그 형식을 정의하는 데 사용되는 log_format 지시문은 다음에만 적용됩니다. http 블록 클래스 지침 내에서 모든 시간 값은 밀리초 단위이며 밀리초 분해능으로 측정됩니다. .

이 형식의 로그 구성은 다음 유형의 로그를 생성합니다:

[25/feb/2019:16:20:42 +0000] 10.0.1.16 192.168.0.122 derek

get http/1.1 http / 200 0.001 370 usa mi

"ann arbor" - 200 0.001 "-" "curl/7.47.0"



이 로그 구성을 사용해야 하는 경우 access_log 지시어와 함께 사용해야 합니다. 매개 변수로 사용되는 로그 디렉터리 및 구성 이름:

server {
  access_log /var/log/nginx/access.log geoproxy;
  ...
}

access_log는 여러 컨텍스트에서 사용할 수 있으며 각 컨텍스트는 자체 로그 디렉터리 및 로그 기록 형식을 정의할 수 있습니다.

결론: nginx의 로그 모듈을 사용하면 다양한 로그 파일을 보기 위해 다양한 시나리오에 대한 로그 형식을 구성할 수 있습니다.

실제 적용에서는 상황에 따라 다양한 로그를 구성하는 것이 매우 유용합니다. 기록된 로그 내용은 간단한 정보일 수도 있고 필요한 모든 정보를 자세하게 기록할 수도 있습니다. 뿐만 아니라 로그 내용은 텍스트를 지원하는 것 외에도 json 형식 및 xml 형식으로 데이터를 기록할 수도 있습니다. 실제로 nginx 로그는 서버 트래픽, 클라이언트 사용량, 클라이언트 원본과 같은 정보를 이해하는 데 도움이 됩니다. 또한 액세스 로그는 업스트림 서버 또는 특정 URI와 관련된 응답 및 문제를 찾는 데도 도움이 될 수 있습니다. 액세스 로그는 트래픽을 분석하고 실제 사용자 상호 작용 시나리오를 시뮬레이션하는 데 사용할 수 있으므로 테스트에도 유용합니다. 로그는 문제 해결, 디버깅, 애플리케이션 분석 및 비즈니스 조정에 없어서는 안 될 요소입니다.

오류 로그

nginx의 오류 로그를 정확하게 찾으려면 내장된 error_log 지시어를 사용하여 오류 로그 디렉터리와 오류 로그 기록 수준을 정의하세요. 구성은 다음과 같습니다.

error_log /var/log/nginx/error.log warn;
error_log 지시어에는 디렉터리를 구성할 때 필수 로그와 선택적 오류 수준 옵션이 필요합니다.
if 지시어를 제외하고 error_log 지시어는 모든 상황에서 사용할 수 있습니다. 오류 로그 수준에는

디버그, 정보, 알림, 경고, 오류, 치명적, 경고 및 응급이 포함됩니다. 주어진 로그

수준 순서는 가장 작은 기록부터 가장 엄격한 기록까지의 로그 수준 순서입니다. nginx 서버를 컴파일할 때 디버그 로그

를 --with-debug 플래그와 함께 사용해야 한다는 점에 유의해야 합니다.

서버 구성에 오류가 있는 경우 먼저 오류 로그를 확인하여 문제를 찾아야 합니다. 오류 로그

는 또한 응용 프로그램 서버(예: fastcgi 서비스)를 찾는 데 유용한 도구입니다. 오류 로그를 통해 작업자 프로세스 연결 오류, 메모리 할당, 클라이언트 IP, 애플리케이션 서버 및 기타 문제를 디버깅할 수 있습니다. 오류 로그 형식은 사용자 정의 로그 형식을 지원하지 않지만 현재 시간, 로그 수준 및 특정 정보와 같은 데이터도 기록합니다.

注意:错误日志的默认设置适用于全局。要覆盖它,请将 error_log 指令放在 main (顶级)配置上下文中。 error_log 在开源 nginx 1.5.2 版中添加了在同一配置级别指定多个指令的功能。

通过 syslog 将日志发送到统一服务器

既然不再需要将日志写到磁盘的某个目录,而是发送到统一的日志服务器,则将原有的目录部分替换为服务器 ip 即可,配置如下:

error_log syslog:server=10.0.1.42 debug;
access_log syslog:server=10.0.1.42,tag=nginx,severity=info geoproxy;

#error_log server=unix:/var/log/nginx.sock debug;
#access_log syslog:server=[2001:db8::1]:1234,facility=local7,tag=nginx,severity=info;

error_log 和 access_log 指令的 syslog 参数紧跟冒号 : 和一些参数选项。包括:必选的 server 标记表示需要连接的 ip、dns 名称或 unix 套接字;

可以使用如上注释的高端玩。

可选参数有 facility 、 severity 、 tag :

server 参数接收带端口的 ip 地址或 dns 名称;默认是 udp 514 端口。

facility 参数设置 syslog 的类型 facility ,值是 syslog rfc 标准定义的 23 个值中一个,默认值为 local7 。其他可能的值是: auth , authpriv , daemon , cron , ftp , lpr , kern , mail , news , syslog , user , uucp , local0 ... local7

tag 参数表示日志文件中显示时候的标题,默认值是 nginx 。

severity 设置消息严重程度,默认是 info 级别日志。

日志缓冲区

当系统处于负载状态时,启用日志缓冲区以降低 nginx worker 进程阻塞。大量的磁盘读写和 cpu 资源使用对于服务器资源也是一种巨大消耗。将日志数据缓冲到内存中可能是很小的一个优化手段, buffer 参数意义是缓冲区的大小,功能是当缓冲区已经写满时,日志会被写入文件中; flush 参数意义是缓冲区内日志在缓冲区内存中保存的最长时间,功能即当缓存中的日志超过最大缓存时间,也会被写入到文件中, 不足的地方即写入到日志文件的日志有些许延迟,即时调试中应当关闭日志缓冲。 。配置如下:

http {
  access_log /var/log/nginx/access.log main buffer=32k flush=1m;
}

위 내용은 Nginx에서 로깅을 사용자 정의하고 로그 버퍼를 활성화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 亿速云에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
Nginx vs. Apache : 웹 호스팅 및 트래픽 관리Nginx vs. Apache : 웹 호스팅 및 트래픽 관리Apr 12, 2025 am 12:04 AM

NGINX는 동시성이 높은 자원 소비 시나리오에 적합하지만 APACHE는 복잡한 구성 및 기능 확장이 필요한 시나리오에 적합합니다. 1.NGINX는 고성능과의 많은 동시 연결을 처리하는 것으로 알려져 있습니다. 2. Apache는 안정성과 풍부한 모듈 지원으로 유명합니다. 선택할 때는 특정 요구에 따라 결정해야합니다.

NGINX : 최신 웹 애플리케이션을위한 다목적 도구NGINX : 최신 웹 애플리케이션을위한 다목적 도구Apr 11, 2025 am 12:03 AM

nginxissentialderformodernwebapplicationsduetoitsrolessareareverseproxy, loadbalancer 및 Webserver, HighperformanceAndscalability를 제공합니다

Nginx SSL/TLS 구성 : HTTPS로 웹 사이트 보안Nginx SSL/TLS 구성 : HTTPS로 웹 사이트 보안Apr 10, 2025 am 09:38 AM

Nginx를 통해 웹 사이트 보안을 보장하려면 다음 단계가 필요합니다. 1. 기본 구성을 만들고 SSL 인증서 및 개인 키를 지정하십시오. 2. 구성 최적화, HTTP/2 및 OCSPStapling 활성화; 3. 인증서 경로 및 암호화 제품군 문제와 같은 공통 오류 디버그; 4. Let 'sencrypt 및 세션 멀티플렉싱 사용과 같은 응용 프로그램 성능 최적화 제안.

Nginx 인터뷰 질문 : ACE 귀하의 DevOps/System Admin 인터뷰Nginx 인터뷰 질문 : ACE 귀하의 DevOps/System Admin 인터뷰Apr 09, 2025 am 12:14 AM

NGINX는 고성능 HTTP 및 리버스 프록시 서버로 높은 동시 연결을 처리하는 데 능숙합니다. 1) 기본 구성 : 포트를 듣고 정적 파일 서비스를 제공합니다. 2) 고급 구성 : 리버스 프록시 및로드 밸런싱을 구현하십시오. 3) 디버깅 기술 : 오류 로그를 확인하고 구성 파일을 테스트하십시오. 4) 성능 최적화 : GZIP 압축을 활성화하고 캐시 정책을 조정합니다.

Nginx 캐싱 기술 : 웹 사이트 성능 향상Nginx 캐싱 기술 : 웹 사이트 성능 향상Apr 08, 2025 am 12:18 AM

Nginx 캐시는 다음 단계를 통해 웹 사이트 성능을 크게 향상시킬 수 있습니다. 1) 캐시 영역을 정의하고 캐시 경로를 설정하십시오. 2) 캐시 유효성 기간 구성; 3) 다른 컨텐츠에 따라 다른 캐시 정책을 설정합니다. 4) 캐시 저장 및로드 밸런싱을 최적화합니다. 5) 캐시 효과를 모니터링하고 디버그합니다. 이러한 방법을 통해 NGINX 캐시는 백엔드 서버 압력을 줄이고 응답 속도 및 사용자 경험을 향상시킬 수 있습니다.

Docker와 Nginx : 컨테이너화 된 응용 프로그램을 배포하고 스케일링합니다Docker와 Nginx : 컨테이너화 된 응용 프로그램을 배포하고 스케일링합니다Apr 07, 2025 am 12:08 AM

dockercompose를 사용하면 Nginx의 배포 및 관리를 단순화 할 수 있으며 Dockerswarm 또는 Kubernetes를 통한 스케일링은 일반적인 관행입니다. 1) DockerCompose를 사용하여 Nginx 컨테이너를 정의하고 실행하십시오. 2) Dockerswarm 또는 Kubernetes를 통한 클러스터 관리 및 자동 스케일링 구현.

고급 NGINX 구성 : 서버 블록 마스터 링 및 리버스 프록시고급 NGINX 구성 : 서버 블록 마스터 링 및 리버스 프록시Apr 06, 2025 am 12:05 AM

NGINX의 고급 구성은 서버 블록 및 리버스 프록시를 통해 구현 될 수 있습니다. 1. 서버 블록을 사용하면 여러 웹 사이트를 한쪽으로 실행할 수있게되면 각 블록은 독립적으로 구성됩니다. 2. 리버스 프록시는 요청을 백엔드 서버로 전달하여로드 밸런싱 및 캐시 가속도를 실현합니다.

Nginx 성능 튜닝 : 속도 및 낮은 대기 시간을 최적화합니다Nginx 성능 튜닝 : 속도 및 낮은 대기 시간을 최적화합니다Apr 05, 2025 am 12:08 AM

작업자 프로세스 수, 연결 풀 크기, GZIP 압축 및 HTTP/2 프로토콜을 활성화하고 캐시 및로드 밸런싱을 사용하여 NGINX 성능 튜닝을 달성 할 수 있습니다. 1. 작업자 프로세스 수 및 연결 풀 크기 조정 : Worker_ProcessesAuto; 이벤트 {worker_connections1024;}. 2. GZIP 압축 및 HTTP/2 프로토콜 활성화 : http {gzipon; server {listen443sslhttp2;}}. 3. 캐시 최적화 사용 : http {proxy_cache_path/path/to/cachelevels = 1 : 2k

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전