LNMP详解(十四)——Nginx日志详解
今天继续给大家介绍Linux运维相关知识,本文主要内容是Nginx日志分析。
一、Nginx日志分析简介当Nginx作为web服务器时,会提供对外访问功能,这时对Nginx日志运行的错误和访问记录会进行记录,这就是Nginx的日志。Nginx日志主要记录以下信息:1、记录Nginx服务启动和停止的信息。2、记录客户端访问Nginx服务的信息,包括客户端IP、客户端浏览器、访问时间、访问状态等等。3、记录Nginx运行的异常情情况及错误信息。如果是使用源码的方式安装Nginx,那么Nginx日志在安装目录下的logs目录下,在该目录下存在访问日志和错误日志,访问日志如下所示:
错误日志如下所示:
在企业生产环境中,当Nginx运行后,SA(系统分析师)会密切关注Nginx日志的相关内容,发现异常情况及时处理。
二、Nginx日志配置Nginx对于日志的配置,分为日志格式和日志文件两部分,日志格式定义了日志中含有什么内容,而日志文件定义了日志文件的位置和文件名。Nginx的日志包含访问日志access_log和错误日志error_log两种,错误日志配置格式如下:error_log 【日志文件】 【日志级别】错误日志的级别有以下6种,从高到低分别是debug——info——notice——warning——error——critic,含义分别是测试、显示、通知、警告、报错和紧急,显示信息逐步减少。在生产环境中,我们一般将日志级别定义为warning及以上。访问日志配置格式如下:log_format 【日志格式名】 【日志参数】access_log 【日志文件】 【日志格式】log_format定义了日志中含有什么类型的参数,而access_log定义了访问日志的位置和采用的格式。定义access_log时必须定义log_format。
三、Nginx日志参数有时我们需要根据我们的需要来定义Nginx访问日志的参数,即Nginx访问日志的内容,这时需要我们对Nginx日志的参数有一定的了解,从而筛选出我们想要的信息。常见的Nginx日志参数及其含义如下所示:1、$remote_addr表示客户端IP地址。2、$server_name表示虚拟主机名称3、$http_x_forward_for表示HTTP端请求的真实IP4、$remote_user表示客户端用户5、$request表示请求的URL和HTTP协议6、$status表示返回的HTTP状态码7、$upstream_status表示upstream的状态,Nginx作为反向代理时使用。8、$ssl_protocol表示SSL协议版本9、$body_bytes_sent表示Nginx发送给客户端的字节数,不包括HTTP头的大小10、$bytes_sent表示Nginx发送给客户端的字节数,包括HTTP头的大小11、$connection_requests表示通过当前链接获得的请求数量12、$http_referer表示该访问的来源网页13、$http_user_agent表示客户端浏览器14、$request_length表示HTTP请求的长度,包括请求行、请求头和请求正文15、$msec表示日志写入时间16、$request_time表示请求处理时间,单位为秒,精度为毫秒级别,表示Nginx接受用户请求的第一个字节到发送完响应数据的时间,包括接收请求数据时间17、$upstream_response_time表示应用程序响应时间,Nginx作为反向代理时使用,计算从Nginx向后端真实服务器建立链接开始到接受完完整数据然后关闭链接的总时间。原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_40228200/article/details/123011564