[LNMP] Nginx 접근 로그

4728 단어 lognginxCentOS7
접근 로그
1. 로그 형식 정의
 [root@plinuxos ~]# vi /usr/local/nginx/conf/nginx.conf
    log_format log001 '$remote_addr $http_x_forwarded_for [$time_local]'
    ' $host "$request_uri" $status'
    ' "$http_referer" "$http_user_agent"';

▎ Nginx 로그 형식:
$remote_addr
클 라 이언 트 IP (네트워크 IP)
$http_x_forwarded_for
프 록 시 IP
$time_local
서버 로 컬 시간
$host
호스트 이름 에 접근 (도 메 인 이름)
$request_uri
방문 한 url 주소
$status
상태 코드
$http_referer
referer
$http_user_agent
user_agent
2. 접근 로그 항목 추가
[root@plinuxos ~]# vi /usr/local/nginx/conf/vhost/default.conf
server
{
    listen 80 default_server;  
    server_name aaa.com;
    index index.html index.htm index.php;
    root /data/wwwroot/default;
    access_log /tmp/default.log log001;##    ,    :    ,    ,    
}

3. 검사 와 과부하
[root@plinuxos ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@plinuxos ~]# /usr/local/nginx/sbin/nginx -s reload

4. 테스트 효과
[root@plinuxos ~]# curl -x127.0.0.1:80 aaa.com/index.html
“This is a default site.”
[root@plinuxos ~]# curl -x127.0.0.1:80 aaa1.com/index.html
“This is a default site.”
[root@plinuxos ~]# cat /tmp/default.log 
127.0.0.1 - [12/Aug/2017:10:34:45 +0800] aaa.com "/index.html" 200 "-" "curl/7.29.0"
127.0.0.1 - [12/Aug/2017:10:34:52 +0800] aaa1.com "/index.html" 200 "-" "curl/7.29.0"

로그 절단
1. 로그 절단 스 크 립 트
[root@plinuxos ~]# vi /usr/local/sbin/nginx_log_rotate.sh
#! /bin/bash
d=`date -d "-1 day" +%Y%m%d`
logdir="/tmp/"
nginx_pid="/usr/local/nginx/logs/nginx.pid"
cd $logdir
for log in `ls *.log`
do
    mv $log $log-$d
done
/bin/kill -HUP `cat $nginx_pid`

▎ KILL 인자:
  • INT: 빠 른 닫 기 는 사용자 가 입력 할 때 터미널 드라이버 에서 보 내 는 신호 입 니 다.
  • TERM: 빠 른 종료, 실행 을 완전히 중지 하 기 를 요청 합 니 다. 수신 프로 세 스 가 자급 한 상 태 를 제거 하고 종료 하 기 를 바 랍 니 다.
  • HUP: 부 드 럽 게 시작 해서 프로필 을 다시 불 러 옵 니 다.
  • QUIT: 여 유 롭 게 닫 습 니 다.

  • 2. 스 크 립 트 실행
    [root@plinuxos tmp]# sh -x /usr/local/sbin/nginx_log_rotate.sh 
    ++ date -d '-1 day' +%Y%m%d
    + d=20170811
    + logdir=/tmp/
    + nginx_pid=/usr/local/nginx/logs/nginx.pid
    + cd /tmp/
    ++ ls default.log
    + for log in '`ls *.log`'
    + mv default.log default.log-20170811
    ++ cat /usr/local/nginx/logs/nginx.pid
    + /bin/kill -HUP 89689

    3. 효과 검사
    [root@plinuxos tmp]# ls
    default.log  default.log-20170811  mysql.sock  pear  php-fcgi.sock

    4. 정기 임무 계획
    [root@plinuxos tmp]# crontab -e
    0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh

    5. 만 료 로그 정리
    [root@plinuxos tmp]# find /tmp/ -name *.log-* -type f -mtime +10 |xagrs rm 
    ##        ,    

    정적 파일 은 로그 와 만 료 시간 을 기록 하지 않 습 니 다.
    1. 프로필 편집
    [root@plinuxos default]# vi /usr/local/nginx/conf/vhost/default.conf
    
    server
    {
        listen 80 default_server;
        server_name aaa.com;
        index index.html index.htm index.php;
        root /data/wwwroot/default;
        access_log /tmp/default.log log001;
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
              expires      7d;
              access_log off;
        }
        location ~ .*\.(js|css)$
        {
              expires      12h;
              access_log off;
        }
    }

    2. 검사 및 과부하
    [root@plinuxos default]# /usr/local/nginx/sbin/nginx -t
    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
    [root@plinuxos default]# /usr/local/nginx/sbin/nginx -s reload

    3. 효과 검사
    [root@plinuxos default]# ls
    index.html  pic001.gif
    [root@plinuxos default]# curl -x127.0.0.1:80 aaa.com/pic001.gif -I
    HTTP/1.1 200 OK
    Server: nginx/1.12.1
    Date: Sat, 12 Aug 2017 03:31:08 GMT
    Content-Type: p_w_picpath/gif
    Content-Length: 66698
    Last-Modified: Sat, 12 Aug 2017 03:29:18 GMT
    Connection: keep-alive
    ETag: "598e760e-1048a"
    Expires: Sat, 19 Aug 2017 03:31:08 GMT
    Cache-Control: max-age=604800
    Accept-Ranges: bytes
    
    [root@plinuxos tmp]# curl -x127.0.0.1:80 aaa.com/pic001 -I
    HTTP/1.1 404 Not Found
    Server: nginx/1.12.1
    Date: Sat, 12 Aug 2017 03:34:43 GMT
    Content-Type: text/html
    Content-Length: 169
    Connection: keep-alive
    
    [root@plinuxos tmp]# cat /tmp/default.log
    127.0.0.1 - [12/Aug/2017:11:34:43 +0800] aaa.com "/pic001" 404 "-" "curl/7.29.0"

    좋은 웹페이지 즐겨찾기