在企业服务器运维中,当 Nginx服务器正常运行后,SA会经常密切关注 Nginx的即时日志,发现有异常的日志信息需要进行及时处理。
Nginx默认日志路径/usr/local/nginx/logs/,其中包含访问日志accesss.log和错误记录日志error. log,查看 Nginx请访同目志cat/usr/local/nginx/logs/access. log。
Nginx访问日志打印的格式可以自定义,例如 Nginx日志打印格式配置, log_format用来设置日志格式,name为模块名,type为日志类型,可以配置多个日志模块,分别供不同的虚拟主机日志记录所调用,代码如下:
log_format main '$remote_addr - remoteuser[remote_user [remoteuser[time_local] “KaTeX parse error: Double superscript at position 33: … '̲status bodybytessent"body_bytes_sent "bodybytessent"http_referer” ’
‘“httpuseragent""http_user_agent""httpuseragent""http_x_forwarded_for”’;
Nginx日志格式内部变量及函数参数说明如下
$remote_addr:记录客户端IP地址
$server_name:虚拟主机名称
$http_x_forward_for : Http请求端真实的IP
$remote_user:记录客户端用户名称
$request:记录请求的URL和HTTP协议
$status:记录返回HTTP请求的状态。
$uptream_status: upstream的状态
$ssl_protocol:SSL协议版本。
$body_bytes_sent: 发送给客户端的字节数,不包括响应头的大小
$bytes_sent:发送给客户端的总字节数
$connection_requests:当前通过一个连接获得的请求数量
$http_referer:记录从哪个页面链接访问过来的,
$http_user_agent:记录客户端浏览器相关信息
$msec;日志写入时间
$request_length请求的长度,包括请求行、请求头和请求正文
$request_time:请求处理时间,单位为s,精度为ms, Nginx接受用户请求的第一个字节到发送完响应数据的时间,包括接收请求数据时间、程序响应时间,输出、响应数据时间
$upstream_response_time:应用程序响应时间, Nginx向后端服务建立连接开始到接受完数据然后关闭连接为止的总时间。
通过 Nginx日志,可以简单分析Web网站的运行状态、数据报表,IP,UV( uniquePV(page view)访问量等需求