对于程序员、运维来说,日志非常得重要。通过日志可以查看到很多请求访问信息,及异常信息。Nginx 也提供了对日志的强大支持。
首先,下面要讲的这些日志相关属性可以配置在任意模块。在不同的模块,记录的是不同请求的日志信息。即,日志记录的请求范围是不同的。Nginx 日志一般可以指定三个范围: http{}模块范围、server{}模块范围,与 location{}模块范围。
只要有请求通过 http 协议访问该 Nginx,就会有日志信息写入到这里的日志文件。
只要有请求访问当前 Server,就会有日志信息写入到这里的日志文件。
只要有请求访问当前 location,就会有日志信息写入到这里的日志文件。
下面以 http{}模块下的日志为例来学习 Nginx 日志管理指令。
Nginx 的日志分为两类:访问日志与错误日志。Nginx 整个系统的默认日志在生成预编译文件 makefile 时就已经默认给配置好了。当然,无论是访问日志还是错误日志,其默认路径与名称在 nginx.conf 中均是可以修改的。在配置文件中不仅定义了日志文件的路径及名称, 还定义了日志格式。
用于设置访问日志的格式,其后的 main 是为该格式所起的名称,可以任意,而其后面的内容则为具体格式,通过 Nginx 内置变量定义。
该指令用于设置访问日志。上面的格式包含三个参数:
该指令用于指定错误日志的路径与文件名。需要注意以下几点:
logs/error.log 文件中了。所以关于错误日志,一般使用默认的即可。
认为error,级别越高记录的信息越少。
该指令用于打开日志文件读缓存,将日志信息读取到缓存中,以加快对日志的访问。该功能默认为 off,即 open_log_file_cache off;
客户端对于服务端页面会自动提交一个/favicon.ico 请求,若没有 favicon.ico 文件则会在日志文件中报出 404。
从网上任意下载一个 ico 图标,将其重命名为 favicon.ico,然后放到 Linux 中的任意目录。然后再修改 nginx.conf 文件,在其中添加如下的 location{}模块。注意,若将其添加到的位置与页面在同一个目录,下面的 location{}模块不用设置。
这里仅仅简单介绍一下日志切割的实现步骤,具体实现,网上非常多,用时再查即可。
在 Linux 下创建一个实现日志切割的 shell 脚本文件,脚本文件的具体内容可以从网上查找,资源很多。例如,将该 shell 文件创建在 Nginx 安装目录下的 logs 目录中,并命名为cut_nginx_log.sh。
该文件是要作为定时任务被执行的,所以该文件需要具有可执行权限。
crontab 是 Linux 中的一个定义任务文件,每一行都代表一项定义任务。每行由 6 个字段组成,前 5 段是时间设定段,第 6 段是任务段。具体格式如下:
minute(0-59) hour(0-23) day(1-31) month(1-12) week(0-6) command
本例执行如下命令后会打开文本编辑器,然后再输入如下文本内容即可。
上一篇: 教师教育教学感悟随笔
下一篇:近义词和同义词有什么区别