Nginx 로깅을 비활성화하는 방법은 무엇입니까?


27

구성 파일에 다음이 있습니다.

server {
    listen       80;
    server_name  _;
    access_log  /var/log/nginx/access.log  main;
  ...

server {
    listen       80;
    server_name  example.com
    access_log  off;
    error_log off;

그러나 여전히 example.com가상 호스트에 대한 로깅을 계속 유지 합니다. 내가 무엇을 잘못하고 있지?


여기서 "메인"은 무엇을하려고합니까?
Evan Carroll

가장 많이 제기 된 답변은 구문 오류와 관련이 있기 때문에이 질문을 삭제했습니다. 오류 로깅을 해제하는 것과는 아무런 관련이 없습니다. 검색 가능한 오류 메시지가 없으며 요청한 내용이나 제공된 답변이 문제를 해결하지 못하는 이유를 잘 모르겠습니다.
Evan Carroll

답변:


31

;server_name 지시문 이후 에 누락되었습니다 . access_logoff추가 server_names로 취급되고있다.


12
또한 error_log off; 오류 로깅을 해제하지 않습니다. 'off'라는 파일에 오류를 기록합니다. 에러 로깅을 완전히 비활성화 할 수있는 방법은 없습니다. 가장 가까운 에러는 error_log / dev / null crit입니다. 오류 로그가 표시되지 않으므로 거의 동일합니다.
kolbyjack

6
실제로 이렇게 access_log off;하면 nginx가로 불리는 파일에 로그를 기록합니다 off. 따라서 이것은 정답이 아닙니다.
user965363

4
실제로 이것은 정답입니다. "off"를 유일한 매개 변수로 사용하면 wiki.nginx.org/HttpLogModule#access_log 와 같이 현재 레벨에 대한 모든 access_log 지시문이 지워 집니다 . error_log (@kolbyjack에 의해 추가됨)에는 해당되지 않지만 질문은 오류 로그가 아니라 액세스에 관한 것입니다. 이전 버전의 nginx가이를 지원하지 않을 수 있습니다.
RVS

off대신에 사용하는 것이 유리 /dev/null합니까? 경우 off라는 이름의 파일에 Nginx에 쓰기의 일부 버전을 유발 off하고 /dev/null더 보편적 인 해결책처럼 보인다.
Joe Mornin

20

물론 로깅을 완전히 비활성화 할 수 있습니다. 로그 파일을 / dev / null로 지정하고 완료하십시오. ;)

access_log  /dev/null;
error_log /dev/null;

3
나는 이것도 사용한다; /dev/null실제 목적지입니다. "off"는 일부 디렉토리에있는 파일입니다.
edoceo

4
이것은 공식적으로 권장되는 방법이 아닙니다. 'off'를 사용하는 것이 올바른 방법입니다.
user1751825

나는 그것을 / var / null로 만들고 이제 var 디렉토리에 "null"이라는 파일에 로그를 저장하기 시작한다. "/ dev / null"이어야합니까?
Gaurav

13

당신은 사용 access_log하여 비활성화 할 수 있습니다

access_log off;

그러나 error_log를 비활성화하려면 conf에서 error_log 옵션을 사용하지 마십시오.


2
이것이 이전 답변에 어떻게 추가됩니까?
Dave M

1
Cuz, 이전 답변은 쓸모가 없습니다! 사용하지 마십시오
Mustafa Özgür

2
설정에 error_log 옵션이없는 경우 nginx의 기본값은 "error_log logs / error.log error"입니다. nginx.org/en/docs/ngx_core_module.html#error_log
Julian Ladisch

그래, 맞아. 그래서 / dev / null 또는 다른 것이어야합니까? 당신의 제안은 무엇입니까?
Mustafa Özgür

로그 파일 '/ usr / share / nginx / off'를
생성하므로이

1

꽤 간단해야합니다. 로그 라인을 주석 처리 할 수 ​​있습니다.

server {
    listen       80;
    server_name  _;
    #access_log  /var/log/nginx/access.log  main;
  ...

server {
    listen       80;
    server_name  example.com
    #access_log  off;
    #error_log off;

그리고 치명적 오류가 발생하면 다음과 같이해야합니다 : ´error_log / dev / null crit; ´

server {
    listen       80;
    server_name  _;
    access_log  /dev/null crit;
  ...

server {
    listen       80;
    server_name  example.com
    access_log  /dev/null crit;
    error_log /dev/null crit;

'off'를 사용하지 마십시오. 아래에서 언급했듯이 nginx의 홈 디렉토리에 'off'라는 로그 파일이 생성됩니다.
DanielKhan

0

Nginx 포스트 의 조건부 로깅을 기반으로 하지만 변수를 사용하여 요청 로깅을 결정하는 대신 상수 값 0을 사용하십시오.

server {
listen       80;
server_name  _;
access_log  /var/log/nginx/access.log  main;
}

server {
listen       80;
server_name  example.com
access_log  /var/log/nginx/access.log if=0;
error_log /var/log/nginx/error.log if=0;
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.