Nginx 접근 로그, Nginx 로그 절단, 정적 파일 은 로그 와 만 료 시간 을 기록 하지 않 습 니 다.
1. Nginx 방문 일지 2, Nginx 로그 절단 3. 정적 파일 은 로그 와 만 료 시간 을 기록 하지 않 습 니 다.
1. Nginx 접근 로그
[root@minglinux-01 ~] 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"';
nginx 프로필 에서 ";" 설정 의 끝 이기 때문에 이상 은 한 줄 의 설정 입 니 다. 이 줄 의 설정 은 로그 형식 을 정의 합 니 다.
combined_realip 는 로그 형식의 이름 입 니 다. 뒤에 $remote 를 참조 할 수 있 습 니 다.addr 웹 사 이 트 를 방문 하 는 사용자 의 출구 IP, 클 라 이언 트 ip (공공 네트워크 ip) $httpx_forwarded_for 프 록 시 를 위 한 IP, 프 록 시 를 사용 하면 프 록 시 IP $time 을 기록 합 니 다.local 서버 로 컬 시간 $host 접근 호스트 이름 $requesturi 접근 할 URL 주소 $status 상태 코드 $httpreferer 는 referer 주소 $httpuser_에이전트 useragent
log_format ming '$remote_addr $http_x_forwarded_for [$time_local]'
' $host "$request_uri" $status'
' "$http_referer" "$http_user_agent"';
1 server
2 {
3 listen 80;
4 server_name test.com test2.com test3.com;
5 index index.html index.htm index.php;
6 root /data/wwwroot/test.com;
7 if ($host != 'test.com' ) {
8 rewrite ^/(.*)$ http://test.com/$1 permanent;
9 }
10 access_log /tmp/test.com.log ming; //
11
12 location ~admin.php
13 {
14 auth_basic "Auth";
15 auth_basic_user_file /usr/local/nginx/conf/htpasswd;
16 }
17 }
access_log 지정 로그 의 저장 경로, 맨 뒤에 지정 한 로그 의 형식 이름
[root@minglinux-01 /usr/local/nginx/conf/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@minglinux-01 /usr/local/nginx/conf/vhost] /usr/local/nginx/sbin/nginx -s reload
[root@minglinux-01 /usr/local/nginx/conf/vhost] curl -x127.0.0.1:80 test.com
test page
[root@minglinux-01 /usr/local/nginx/conf/vhost] curl -x127.0.0.1:80 test3.com
301 Moved Permanently
301 Moved Permanently
nginx/1.12.2
[root@minglinux-01 /usr/local/nginx/conf/vhost] cat /tmp/test.com.log
127.0.0.1 - [27/Nov/2018:21:56:30 +0800] test.com "/" 200 "-" "curl/7.29.0"
127.0.0.1 - [27/Nov/2018:21:56:37 +0800] test3.com "/" 301 "-" "curl/7.29.0"
2. Nginx 로그 절단
Nginx 는 httpd 와 자체 절단 도구 가 아 닌 Nginx 로 그 를 자 르 려 면 시스템 의 절단 도구 나 사용자 정의 스 크 립 트 를 사용 해 야 합 니 다.로그 절단 스 크 립 트 를 만 듭 니 다:
[root@minglinux-01 /usr/local/sbin] vim nginx_logrotate.sh
1 #!/bin/bash
2 d=`date -d "-1 day" +%Y%m%d` ##date -d "-1 day"
3 logdir="/tmp/" ##
4 nginx_pid="/usr/local/nginx/logs/nginx.pid" ## nginx pid
5 cd $logdir
6 for log in `ls *.log`
7 do
8 mv $log $log-$d ## $log-$d”,$d
9 done
10 /bin/kill -HUP `cat $nginx_pid` ## nginx -s reload(
)
11
[root@minglinux-01 /usr/local/sbin] sh -x /usr/local/sbin/nginx_logrotate.sh // -x
++ date -d '-1 day' +%Y%m%d
+ d=20181126
+ logdir=/tmp/
+ nginx_pid=/usr/local/nginx/logs/nginx.pid
+ cd /tmp/
++ ls php_errors.log test.com.log
+ for log in '`ls *.log`'
+ mv php_errors.log php_errors.log-20181126
+ for log in '`ls *.log`'
+ mv test.com.log test.com.log-20181126
++ cat /usr/local/nginx/logs/nginx.pid
+ /bin/kill -HUP 1584
[root@minglinux-01 /usr/local/sbin] ls /tmp/
mysql.sock php-fcgi.sock vmware-root
pear test.com.log
php_errors.log-20181126 test.com.log-20181126
스 크 립 트 는 전날 로그 에 날짜 접 두 사 를 붙 이 고 새 로그 파일 을 만 듭 니 다.
[root@minglinux-01 /usr/local/sbin] find /tmp/ -name *.log-* -type f -mtime +30|xargs rm
rm: // ,
Try 'rm --help' for more information.
명령 은 / tmp / 디 렉 터 리 의 이름 이 일치 하 는. log - 를 찾 고 최근 파일 내용 이 수 정 된 시간 이 30 일 이전 파일 을 초과 한 다 는 뜻 입 니 다.
[root@minglinux-01 /usr/local/sbin] crontab -e
0 0 * * * /bin/bash /usr/local/sbin/nginx_logrotate.sh
매일 새벽 0 시 에 스 크 립 트 실행
3. 정적 파일 은 로그 와 만 료 시간 을 기록 하지 않 습 니 다.
가상 호스트 설정 파일 에 다음 과 같은 내용 을 추가 합 니 다.
···
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ // .gif/.jpg/.jpeg/.png/.bmp/.swf
{
expires 7d; // 7
access_log off; //
}
localtion ~ .*\.(js|css)$
{
expires 12h; //
access_log off; //
}
···
[root@minglinux-01 /usr/local/sbin] /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@minglinux-01 /usr/local/sbin] /usr/local/nginx/sbin/nginx -s reload
[root@minglinux-01 /usr/local/sbin] cd /data/wwwroot/test.com/
[root@minglinux-01 /data/wwwroot/test.com] ls
1.html admin admin.php index.html
[root@minglinux-01 /data/wwwroot/test.com] vim 1.gif
[root@minglinux-01 /data/wwwroot/test.com] vim 2.js
[root@minglinux-01 /data/wwwroot/test.com] curl -x127.0.0.1:80 test.com/1.gif
a
[root@minglinux-01 /data/wwwroot/test.com] curl -x127.0.0.1:80 test.com/2.js
g
[root@minglinux-01 /data/wwwroot/test.com] curl -x127.0.0.1:80 test.com/index.html
test page
[root@minglinux-01 /data/wwwroot/test.com] cat /tmp/test.com.log
127.0.0.1 - [27/Nov/2018:23:02:04 +0800] test.com "/index.html" 200 "-" "curl/7.29.0"
// js gif
[root@minglinux-01 /data/wwwroot/test.com] curl -x127.0.0.1:80 test.com/2.js -I
HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Tue, 27 Nov 2018 15:05:30 GMT
Content-Type: application/javascript
Content-Length: 2
Last-Modified: Tue, 27 Nov 2018 14:59:37 GMT
Connection: keep-alive
ETag: "5bfd5bd9-2"
Expires: Wed, 28 Nov 2018 03:05:30 GMT
Cache-Control: max-age=43200 // 43200s 12
Accept-Ranges: bytes
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.