2018년 4월 16일 월요일

[NGINX] 3. 로그 / FCGI와 WSGI 모듈

1. 로그 경로 및 레벨 설정
  access_log /var/log/nginx/access.log combined;
  error_log / var/log/nginx/error.log crit;
  => <접근 및 에러 로그> <로그 경로> <출력 형식>;

2. 로그 사용 예제
  - 아파치 로그 포맷 예제
  log_format main '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sents "$http_referer" ' '"$http_user_agent" "$http_x_forwared_for" ';
  - 404 에러 기록 해제
  log_not_found off
  - 가상호스별로 서버로그 설정 가능 : 서버별로 로그 설정

3. 로그 파일 캐시의 설정
  http {
    open_log_file_cache max=1000 inactive=20s min_user=2 valid=1m;
   ...
  }
  => Max : 캐시에 저장되는 최대 기술자 수 | inactive : 시간 설정 값으로서 이 시간 후에는 이 시간 동안 사용되지 않은 기술자는 제거 | min_used : inactive 매개 변수 안에 지정된 시간 내에 파일이 사용된 최소 회수를 설정, 이 횟수가 넘으면 파일 기술자는 캐시 파일안에 놓임 | valid : 파일이 여전히 같은 이름으로 존재하는지 체크할 때까지의 시간값

4. 로그 스테이션 설정
  - 로그 기록 시 효율적인 로그 저장(페도라, 데비안 사용) : logrotate.conf
  /var/log/nginx/*.log {
    daily
    missingok
    rotate 52
    compress
    notifempty
    create 640 root adm
    sharedescripts
    postrotate
    [ ! -f /var/run/nginx.pid ] || kill -USRI 'cat /var/run/nginx.pid'
    endscript
  }

5. PHP FCGI / WSGI 개념
  - 엔진엑스는 아파치와 달리 PHP 모듈이 내장되어 있지 않으며 코어 모듈과 서드파티 모듈을 통해 CGI, FCGI, SCGI, WSGI와 같은 표준 프로토콜을 지원하는 독립형 웹 서버 형태를 유지함