文档章节

(三)Nginx配置·续

杉下
 杉下
发布于 08/18 00:47
字数 1528
阅读 2
收藏 0

概述

  • 前文写了关于Nginx环境配置,但是还没有完,接下来将会继续讲三个相关的配置
  • 主要是以下三个 1.Nginx访问日志 2.Nginx日志切割 3.静态文件不记录日志和过期时间

Nginx访问日志

1.先看看日志格式

#日志的路径
[root@centos7mei ~]# vim /usr/local/ngin/conf/nginx.conf
#搜索log_format
#注意下面这段
 log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
    ' $host "$request_uri" $status'
    ' "$http_referer" "$http_user_agent"';

名词解释:

名称解释
$remote_addr客户端IP(公网IP)
$http_x_forwarded_for代理服务器的IP
$time_local服务器本地时间
$host访问主机名(域名)
$request_uri访问的url地址
$status状态码
$http_refererreferer
$http_user_agentuser_agent

2.刚才在主配置文件中定义了日志格式,接下来还需要在虚拟主机配置中定义日志的储存路径,最后面指定日志的格式名字

[root@centos7mei ~]# cd /usr/local/nginx/conf/vhost/
[root@centos7mei vhost]# ls
default.conf  test.com.conf
#编辑配置文件
[root@centos7mei vhost]# vim test.com.conf
#内容如下
[root@centos7mei vhost]# cat test.com.conf
server
{
    listen 80;
    server_name test.com test2.com test3.com;
    index index.html index.htm index.php;
    root /data/wwwroot/test.com;
    if ($host != 'test.com' ) {
        rewrite  ^/(.*)$  http://test.com/$1  permanent;
    }
	#加上这一行
    access_log /tmp/1.log combined_realip;
}
#检查读写并重新加载服务
[root@centos7mei 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@centos7mei vhost]# /usr/local/nginx/sbin/nginx -s reload

3.测试

#访问两次网站
[root@centos7mei vhost]# curl -x127.0.0.1:80 test3.com/index.html/SDFAS -I
HTTP/1.1 301 Moved Permanently
Server: nginx/1.8.0
Date: Fri, 17 Aug 2018 18:24:04 GMT
Content-Type: text/html
Content-Length: 184
Connection: keep-alive
Location: http://test.com/index.html/SDFAS

[root@centos7mei vhost]# curl -x127.0.0.1:80 test2.com/index.html/SDFAS -I
HTTP/1.1 301 Moved Permanently
Server: nginx/1.8.0
Date: Fri, 17 Aug 2018 18:24:23 GMT
Content-Type: text/html
Content-Length: 184
Connection: keep-alive
Location: http://test.com/index.html/SDFAS
#这里的问题是直接抄视频,没看自己写的具体路径
[root@centos7mei vhost]# cat /tmp/test.com.log
cat: /tmp/test.com.log: No such file or directory
#这下面就能看到访问日志了
[root@centos7mei vhost]# cat /tmp/1.log 
127.0.0.1 - [18/Aug/2018:02:24:04 +0800] test3.com "/index.html/SDFAS" 301 "-" "curl/7.29.0"
127.0.0.1 - [18/Aug/2018:02:24:23 +0800] test2.com "/index.html/SDFAS" 301 "-" "curl/7.29.0"

Nginx日志切割

  • 日志记录了很多东西,但不是每个都是有用的,所以需要对其做一些操作,去其糟粕取其精华。
  • 切割日志需要用到shell脚本

1.添加脚本

[root@centos7mei vhost]# vim /usr/local/sbin/nginx_log_rotate.sh
#脚本内容
[root@centos7mei vhost]# cat /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`
#执行一下脚本
[root@centos7mei vhost]# sh -x /usr/local/sbin/nginx_log_rotate.sh
++ date -d '-1 day' +%Y%m%d
+ d=20180817
+ logdir=/tmp/
+ nginx_pid=/usr/local/nginx/logs/nginx.pid
+ cd /tmp/
++ ls 1.log
+ for log in '`ls *.log`'
+ mv 1.log 1.log-20180817
++ cat /usr/local/nginx/logs/nginx.pid
+ /bin/kill -HUP 16489

2,测试

#清理文件
[root@centos7mei vhost]# find /tmp/ -name *.log-* -type f -mtime +30 |xargs rm
#这里报错是因为没有满足条件的文件
rm: missing operand
Try 'rm --help' for more information.
#查找下
[root@centos7mei vhost]# find /tmp/ -name *.log-* -type f 
/tmp/1.log-20180817
## 最后添加计划任务,清理文件总不能我们自己每天手动清理吧
[root@centos7mei vhost]# crontab -e
#内容
0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh

静态文件不记录日志和过期时间

  • 静态文件可以不记录日志,原因是除了占空间,没别的什么用

ps: 不记录日志就是说我们在访客记录中看不到,访客访问静态文件的信息

  • 简单的来说就是添加配置文件,让访问日志不记录静态文件,还有给图片缓存添加过期时间

1.编辑配置文件

#进入虚拟主机配置文件
[root@centos7mei vhost]# vim test.com.conf
#内容
[root@centos7mei vhost]# cat test.com.conf
server
{
    listen 80;
    server_name test.com test2.com test3.com;
    index index.html index.htm index.php;
    root /data/wwwroot/test.com;
    if ($host != 'test.com' ) {
        rewrite  ^/(.*)$  http://test.com/$1  permanent;
    }
	#主要是这里到access_log前面的括号完
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
          #过期时间
		  expires      7d;
	      #表示 不记录访问日志
          access_log off;
    }
    location ~ .*\.(js|css)$
    {
          expires      12h;
          access_log off;
    }
    
    access_log /tmp/1.log combined_realip;
}
#检查读写和重新加载服务
[root@centos7mei 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@centos7mei vhost]# /usr/local/nginx/sbin/nginx -s reload

2.测试

#这里我们创建两个图片文件,就是图片格式结尾的文件,然后去访问,最后查看访问日志
[root@centos7mei vhost]# cd /data/wwwroot/test.com/
[root@centos7mei test.com]# ls
index.html
#这里马虎的出现了一个符号错误
[root@centos7mei test.com]# vim 1,gif
[root@centos7mei test.com]# vim 2.gs
#导致访问出现404
[root@centos7mei test.com]# curl -x127.0.0.1:80 test.com/1.gif
<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.8.0</center>
</body>
</html>
#原来是点写成了逗号,根本没那个文件,所以报错了
[root@centos7mei test.com]# ls
1,gif  2.gs  index.html
[root@centos7mei test.com]# rm -f 1,gif
[root@centos7mei test.com]# ls
2.gs  index.html
[root@centos7mei test.com]# vim 1.gif
[root@centos7mei test.com]# ls
1.gif  2.gs  index.html
#连接下
[root@centos7mei test.com]# curl -x127.0.0.1:80 test.com/1.gif
fdsafs:
[root@centos7mei test.com]# curl -x127.0.0.1:80 test.com/2.gs
dasdfsfdadf
[root@centos7mei test.com]# curl -I -x127.0.0.1:80 test.com/1.GIF
HTTP/1.1 404 Not Found
Server: nginx/1.8.0
Date: Sat, 18 Aug 2018 01:21:14 GMT
Content-Type: text/html
Content-Length: 168
Connection: keep-alive
#添加-I选项能看到更加详细的信息
[root@centos7mei test.com]# curl -I -x127.0.0.1:80 test.com/1.gif
HTTP/1.1 200 OK
Server: nginx/1.8.0
Date: Sat, 18 Aug 2018 01:21:21 GMT
Content-Type: image/gif
Content-Length: 8
Last-Modified: Sat, 18 Aug 2018 01:04:52 GMT
Connection: keep-alive
ETag: "5b7770b4-8"
Expires: Sat, 25 Aug 2018 01:21:21 GMT
Cache-Control: max-age=604800
Accept-Ranges: bytes
#这里能看到我们访问的1.gif(小写的)就没有记录到日志里面了
[root@centos7mei test.com]# cat /tmp/1.log
127.0.0.1 - [18/Aug/2018:03:35:40 +0800] test2.com "/index.html/SDFAS" 301 "-" "curl/7.29.0"
127.0.0.1 - [18/Aug/2018:09:21:14 +0800] test.com "/1.GIF" 404 "-" "curl/7.29.0"

© 著作权归作者所有

共有 人打赏支持
杉下
粉丝 6
博文 107
码字总数 123532
作品 0
成都
私信 提问
nginx-upload-module模块实现文件断点续传

模块安装 下载模块: cd /tmpwget https://codeload.github.com/vkholodkov/nginx-upload-module/zip/2.2unzip 2.2 安装模块: .configure --add-module=/tmp/nginx-upload-module-2.2/ mult......

linuxprobe
2016/06/15
180
0
tengine(Nginx)优化实践——网站运维

续tomcat8运维与实践,这里我说一下代理服务器Nginx的配置与实践,这里我用的事Nginx的淘宝衍生版tengine。 一、服务器介绍 CPU核数:1核 内存大小:512MB 系统名称:CentOS 6.3 64位 安全加...

tngou
2013/12/05
0
0
使用docker和nginx搭建一个下载服务器

概述 这个是以前在公司搞得,因为公司的软件包比较大,然后每次在本地传给客户的时候很慢,一般要一天才可以传完,之后决定把软件包放到别的地方让用户自己下载,要求下载服务器有下面几个需求 支...

bboysoulcn
08/29
0
0
nginx + ngx_lua安装测试

nginx lua模块淘宝开发的nginx第三方模块,它能将lua语言嵌入到nginx配置中,从而使用lua就极大增强了nginx的能力.nginx以高并发 而知名,lua脚本轻便,两者的搭配堪称完美.接下来请看如何安装n...

小运
2013/09/03
0
0
keepalived(续一)

二、应用场景: 1.2、keepalived常常需要调用脚本来完成功能的切换工作。并通过track_script进行追踪记录。 vrrp_script{ } vrrp_instance{ track_script{ } } 1.3、如何保障故障通知机制的实...

blackstome
2017/09/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 快捷键

快捷键图标。 官方的下载地址为:https://atlassianblog.wpengine.com/wp-content/uploads/2018/01/keyboard-shortcuts-infographics.pdf...

honeymose
今天
2
0
Apache限定目录解析PHP,限制user_agent,PHP相关的配置

Apache限定目录解析PHP 配置前访问upload/index.php [root@test-a ~]# curl -x192.168.77.139:80 'www.test.com/upload/index.php'This is upload diretory 配置,/usr/local/apache2.4/......

野雪球
今天
3
0
java.util.Concurrent.Exchanger源码

类图 源码: package java.util.concurrent;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.atomic.AtomicReference;import java.util.concurrent......

狼王黄师傅
今天
6
0
Kubernetes里的secret最基本的用法

Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。 Secret可以以Volume或者环境变量的方式使用。 使用如下命令...

JerryWang_SAP
昨天
5
0
2018-11-20学习笔记

1. python数据类型: 给变量赋值什么样的值,变量就是什么样的类型 给变量赋值整数,变量就是整数类型 给变量赋值字符串,变量就是字符串类型 123 和“123”一样吗? 在python中 单引号 与双...

laoba
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部