12.10 - 12.12 Nginx 의 접근 로그, 로그 절단, 정적 파일 은 로그 와 만 료 시간 을 기록 하지 않 습 니 다.

12.10 Nginx 접근 로그
12.11 Nginx 로그 절단
12.12 정적 파일 은 로그 와 만 료 시간 을 기록 하지 않 습 니 다.
12.10 Nginx 접근 로그
1 프로필 을 열 고 / log 검색format, 로그 파일 형식 보기.아니면 그냥 grep 로 걸 러 내 거나.
[root@AliKvn vhost]# grep -A2 log_format /usr/local/nginx/conf/nginx.conf
   log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
    ' $host "$request_uri" $status'
    ' "$http_referer" "$http_user_agent"';

2 그 중 combinedrealip 는 로그 형식 이름 으로 사용자 정의 할 수 있 습 니 다.
#vim nginx.cnf 
3 메 인 프로필 nginx. conf 에서 로그 형식 을 정의 하 는 것 외 에 가상 호스트 프로필 에 추가 해 야 합 니 다.
[root@AliKvn vhost]# vim test.com.conf 
 access_log /tmp/test.com.log aming;

4 -t  && -s reload 검사 및 다시 불 러 오기
[root@AliKvn vhost]# /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@AliKvn vhost]# /usr/local/nginx/sbin/nginx -s reload
5 curl 테스트
6 접근 로그
12.11 Nginx 로그 절단
1 사용자 정의 셸 스 크 립 트
 vim /usr/local/sbin/nginx_log_rotate. sh / / 다음 내용 을 기록 합 니 다.
셸 스 크 립 트 형식
#! /bin/bash
##   nginx        /data/logs/
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`

매개 변수 분석
d=`date -d "-1 day" +%Y%m%d`  
이곳 의 격식 은 현재 의 시간 으로 하루 를 빼 면 언제 오늘 의 어 제 를 의미 합 니까?
로 그 는 보통 다음날 새벽 0 시 에 생 성 되 기 때문에 로 그 를 자 르 는 것 은 반드시 어제 의 시간 이다.
% Y% m% d '는 시간의 형식 으로 년, 월, 일 을 나타 낸다.
logdir="/tmp/"
로그 가 있 는 경 로 는 / tmp / 이 어야 합 니 다. test. com. log 가 tmp / 에 있 기 때 문 입 니 다.
nginx_pid="/usr/local/nginx/logs/nginx.pid"
nginx 목록pid 경로 의 목적 은 실행 에 협조 하 는 것 입 니 다. - UP ` cat $nginxpid ` 변수 사용,
/bin/kill -HUP `cat $nginx_pid ` nginx - s reload 재 로드 기능 에 해당 합 니 다.
cd $logdir
for log in `ls *.log`
do
    mv $log $log-$d
done

(cd $logdir) $logdir (/ tmp /) 에 들 어가 면,
그리고 ls 는 어떤. log (*. log) 파일 이 있 는 지 보고 모든 log 파일 의 이름 을 바 꿉 니 다.
이름 형식 은 어제 날짜 에 접 두 사 를 붙 였 습 니 다. log (mv $log $log - $d),
for 형식 참조:
for f in `ls `; do ls -l $f; done
   파일 이 어디 에 있 습 니까? ls 시퀀스 `; 
[root@AliKvn vhost]# for f in `ls `; do ls -l $f; done
-rw-r--r-- 1 root root 142 Apr 24 16:58 aaa.com.conf
-rw-r--r-- 1 root root 419 Apr 25 16:18 test.com.conf
2 스 크 립 트 실행
[root@AliKvn vhost]# vim  /usr/local/sbin/nginx_log_rotate.sh
[root@AliKvn tmp]# sh -x  /usr/local/sbin/nginx_log_rotate.sh
++ date -d '-1 day' +%Y%m%d
+ d=20180424
+ logdir=/tmp/
+ nginx_pid=/usr/local/nginx/logs/nginx.pid
+ cd /tmp/
++ ls test.com.log
+ for log in '`ls *.log`'
+ mv test.com.log test.com.log-20180424
++ cat /usr/local/nginx/logs/nginx.pid
+ /bin/kill -HUP 17745
3. 30 일 전의 로 그 를 정리 합 니 다.
find /tmp/ -name *.log-* -type f -mtime +30 |xargs rm  
4. 작업 계획 은 매일 새벽 0: 00 에 이 스 크 립 트 를 실행 하도록 합 니 다.
#crontab -e
 0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh
12.12 정적 파일 은 로그 와 만 료 시간 을 기록 하지 않 습 니 다.
대강
1 설정 은 다음 과 같 습 니 다.
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
          expires      7d;
          access_log off;
    }
location ~ .*\.(js|css)$
    {
          expires      12h;
          access_log off;
    }

매개 변수 분석,
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
location ~ 일치 요청, 뒤에 지정 한 정적 파일 이 있 습 니 다.
\.(gif|jpg|jpeg|png|bmp|swf)$ 
\ \ 탈 의, \. 접미사, () 안 은 파일 형식, | 표시 또는.
2 - t & & - s reload 문법 검사 및 다시 불 러 오기
[root@AliKvn vhost]# /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@AliKvn vhost]# /usr/local/nginx/sbin/nginx -s reload
3 curl 테스트
준비 작업:
touch 1. gif 와 2. js 
각각 임의의 내용 1111 222 입력
테스트
[root@AliKvn test.com]# curl -x127.0.0.1:80 test.com/1.gif
111111111111111111111111111111111
[root@AliKvn test.com]# curl -x127.0.0.1:80 test.com/2.js
2222
[root@AliKvn test.com]# curl -x127.0.0.1:80 test.com/index.html
test.com
4 접근 로그
[root@AliKvn test.com]# cat /tmp/test.com.log
127.0.0.1 - [25/Apr/2018:17:56:32 +0800] test.com "/index.html" 200 "-" "curl/7.29.0"
존재 하지 않 는 페이지, 404 페이지 를 다시 방문 합 니 다.
[root@AliKvn test.com]# curl -x127.0.0.1:80 test.com/2.js11111111
404 Not Found
404 Not Found
nginx/1.8.0
[root@AliKvn test.com]# !cat
cat /tmp/test.com.log
127.0.0.1 - [25/Apr/2018:17:56:32 +0800] test.com "/index.html" 200 "-" "curl/7.29.0"
127.0.0.1 - [25/Apr/2018:18:01:04 +0800] test.com "/2.js11111111" 404 "-" "curl/7.29.0"
로그 기록 에 접근 하면 curl 1. gif 와 2. js 의 정보 가 걸 러 집 니 다.
표시 되 지 않 은 다른 정적 요소 파일 은 이 접근 기록 에 기록 되 어 있 습 니 다.
5 테스트 만 료 시간

좋은 웹페이지 즐겨찾기