文章目录

  • Nginx 日志配置
  • `log_format` 指令中常用的一些变量:
  • 访问日志 案例
  • 可以配置段:`http`, `stream`, `server`, `location`作用域。
  • error_log 指令 错误访问日志 级别
  • rewrite_log 指令 用户跳转日志 一般不用
  • 配置流量控制相关功能
    • 配置日志记录
  • Nginx 日志配置总结
  • Nginx的日志轮转**

Nginx 日志配置

1、Nginx 日志介绍
Nginx 有一个非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志, 所需日志模块 ngx_http_log_module 的支持,日志格式通过 log_format 命令来定义,日志对于统计和排错是非常有利的,下面总结了 nginx 日志相关的配置 包括 access_logrewrite_logerror_log
设置访问日志 access_log path 样式;
2、作用域
可以应用access_log指令的作用域分别有httpserverlocation。也就是说,在这几个作用域外使用该指令,Nginx会报错。

3、log_format 指令
Nginx 预定义了名为 combined 日志格式,如果没有明确指定日志格式默认使用该格式:

log_format combined '$remote_addr - $remote_user [$time_local] ''"$request" $status $body_bytes_sent ''"$http_referer" "$http_user_agent"';

log_format 指令中常用的一些变量:

访问日志 案例

面试时:注意日志里面的ip地址一定要在第一列。
访问日志 自定义 server下面写
我这里是使用的yum 安装的nginx 支持在子配置文件下 编写server文件

使用log_format指令定义了一个main的格式,并在access_log指令中引用了它。假如客户端有发起请求:ip,我们看一下我截取的一个请求的日志记录:
针对 server块
步骤:/etc/nginx/conf.d/ 进入这个目录下
步骤:vim ceshi.conf 编写一个 子配置文件以conf 结尾

log_format  ming  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';
server {listen       80;server_name  localhost;access_log  /var/log/nginx/ming.access.log  ming;location / {root   /usr/share/nginx/html;index  index.html index.htm;}
}


进行测试 查看 cat /var/log/nginx/ming.access.log 会记录在你创建的文件下

可以配置段:http, stream, server, location作用域。

针对 location块
编写配置文件

log_format  qing  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';
server {listen       80;server_name  localhost;location / {root   /usr/share/nginx/html;index  index.html index.htm;access_log  /var/log/nginx/qing.access.log  qing;}
}


测试 cat qing.access.log

error_log 指令 错误访问日志 级别

错误日志在Nginx中是通过error_log指令实现的。该指令记录服务器和请求处理过程中的错误信息。

语法

error_log file [level];
Default:
error_log logs/error.log warn;

file 参数指定日志的写入位置。

level 参数指定日志的级别。level可以是debug, info, notice, warn, error, crit, alert,emerg中的任意值。可以看到其取值范围是按紧急程度从低到高排列的。只有日志的错误级别等于或高于level指定的值才会写入错误日志中。
基本用法
error_log /var/logs/nginx/nginx-error.log;
配置段:http, mail, stream, server, location作用域。

例子中指定了错误日志的路径为:/var/logs/nginx/nginx-error.log,日志级别使用默认的 error

跟上面 操作一样 ,我这里就不一一举例示范拉

rewrite_log 指令 用户跳转日志 一般不用

ngx_http_rewrite_module模块提供的。用来记录重写日志的。对于调试重写规则建议开启,启用时将在error log中记录重写日志。
基本语法:

rewrite_log on | off;默认值:
rewrite_log off;

配置段: http, server, location, if作用域。

配置流量控制相关功能

配置日志记录

默认情况下,Nginx会在日志中记录由于流量限制而延迟或丢弃的请求,如下所示:

设置错误日志 记录等级

       limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;upstream xianliu {server 196.196.196.131:80 weight=1 max_fails=1 fail_timeout=1;}server {listen 80;server_name localhost;location / {limit_req zone=mylimit; #burst=10;limit_req_log_level warn;limit_req_status  505;proxy_pass http://xianliu;proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}


继续访问测试,看error.log日志

2、发送到客户端的错误代码
一般情况下,客户端超过配置的流量限制时,Nginx响应状态码为503(Service Temporarily Unavailable)。可以使用limit_req_status指令来设置为其它状态码(例如下面的404状态码):

        limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;upstream xianliu {server 196.196.196.131:80 weight=1 max_fails=1 fail_timeout=1;}server {listen 80;server_name localhost;location / {limit_req zone=mylimit; #burst=10;limit_req_log_level warn;limit_req_status  505;proxy_pass http://xianliu;proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}


测试查看

5、Nginx 流量控制总结

以上已经涵盖了Nginx提供的“流量限制”的很多功能,包括为HTTP请求的不同location设置请求速率,给“流量限制”配置burst参数。

Nginx 日志配置总结

Nginx中通过access_logerror_log指令配置访问日志和错误日志,通过log_format我们可以自定义日志格式。

详细的日志配置信息可以参考Nginx官方文档

Nginx的日志轮转**

[root@192 ~]# rpm -ql nginx |grep log
/etc/logrotate.d/nginx
/var/log/nginx
[root@192 ~]# vim /etc/logrotate.d/nginx
/var/log/nginx/*.log {           #指定需要轮转处理的日志文件daily     #日志文件轮转周期,可用值为: daily/weekly/yearlymissingok               # 忽略错误信息rotate 7               # 轮转次数,即最多存储7个归档日志,会删除最久的归档日志minsize 5M        #限制条件,大于5M的日志文件才进行分割,否则不操作dateext             # 以当前日期作为命名格式compress         # 轮循结束后,已归档日志使用gzip进行压缩delaycompress    # 与compress共用,最近的一次归档不要压缩notifempty         # 日志文件为空,轮循不会继续执行create 640 nginx nginx     #新日志文件的权限sharedscripts     #有多个日志需要轮询时,只执行一次脚本postrotate    # 将日志文件转储后执行的命令。以endscript结尾,命令需要单独成行if [ -f /var/run/nginx.pid ]; then    #判断nginx的PID。# 默认logrotate会以root身份运行kill -USR1 cat /var/run/nginx.pidfiendscript
}执行命令:
[root@192 nginx]# /usr/sbin/logrotate -f /etc/logrotate.conf
创建计划任务:
[root@192 nginx]# crontab -e
59 23 * * * /usr/sbin/logrotate -f /etc/logrotate.conf

【Nginx 日志配置】【访问日志log_format】【错误日志error_log 指令】【Nginx的日志轮转】相关推荐

  1. Nginx配置中的log_format用法梳理(设置详细的日志格式)

    Nginx配置中的log_format用法梳理(设置详细的日志格式) nginx服务器日志相关指令主要有两条:一条是log_format,用来设置日志格式:另外一条是access_log,用来指定日志 ...

  2. Android日志[进阶篇]五-阅读错误报告

    Android日志[进阶篇]一-使用 Logcat 写入和查看日志 Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈) Android日志[进阶篇]三-Logcat命令行工具 Androi ...

  3. nginx的工作原理与nginx的配置

    1.nginx的工作原理 nginx的模块直接被编译进nginx,因此属于静态编译方式. 启动nginx后,nginx的模块被自动加载,与Apache不一样,首先将模块编译为一个so文件,然后在配置文 ...

  4. 2、nginx常用配置----作为web服务端

    目录 环境及目的 nginx配置文件特点和结构 1 特性 2 主配置文件结构 常用全局配置 1 main段 2 events段 web服务相关配置 1 server_namerootlisten 11 ...

  5. Nginx - 正反向代理,nginx.conf配置

    Nginx (engine x) 是一个轻量级的高性能的HTTP和反向代理web服务器及电子邮件(IMAP/POP3)代理服务器. Nginx 是由俄罗斯人 Igor Sysoev 采用C语言开发编写 ...

  6. nginx技术(2)nginx的配置详解

    nginx的配置 1,启动nginx 1 2 3 4 5 6 7 [root@centos6 nginx-1.2.9]# /usr/sbin/nginx -c /etc/nginx/nginx.con ...

  7. nginx 全局配置

    nginx 全局配置 #user nobody; # user 主模块 ,指定nginx worker 进程的运行用户组 worker_processes 1; # worker_processes ...

  8. Nginx 安装配置【必须把文件到放到机器上】

    [必须把所有下载的gz文件到放到机器上:编译] 1.安装nginx之前的编译软件 yum -y install make zlib zlib-devel gcc-c++ libtool openssl ...

  9. nginx php环境搭建_php+nginx环境配置

    本篇文章的内容是PHP和nginx环境的配置,在这里分享给大家,也给有需要的朋友一个参考 php+nginx环境配置 1.首先需要准备的应用程序包. nginx:nginx/Windows-1.0.4 ...

最新文章

  1. python正则取字符串日期_python 正则表达式获取字符串中所有的日期和时间
  2. 抢劫(01背包+对立事件)
  3. 手机刷的面具是什么_从刷入到跑路-Magisk(面具)刷入使用教程
  4. mysql 端口time_wait_linux上大量tcp端口处于TIME_WAIT的问题
  5. 双代号网络图基础算法_软考网络工程师之系统开发和运行基础(软件分类、测试、模型)...
  6. C#中的文件操作 (一)
  7. Windows系统服务器中安装Redis服务
  8. 计算机网络未来的发展和趋势论文,计算机网络发展论文范文
  9. 【2019西安邀请赛热身赛C:】python算数表达式求值+模拟int溢出
  10. linux远程配置ssh服务,Linux远程服务之OpenSSH配置
  11. python自动化系列之使用win32com操作Excel
  12. ELF文件详解—初步认识
  13. 路边的小花 2010/05/15@多摩川
  14. 模电_热敏PTC电阻_NTC电阻-区别与作用-20190507
  15. 如何快速查找综述类论文
  16. 深蓝学院-多传感器融合定位课程学习分享-专栏汇总
  17. JS函数式编程——来源freecodecamp
  18. agent常见处理问题的处理
  19. ios开发 服务器通信协议,iOS开发网络篇—HTTP协议
  20. 冯东阳:吐胆汁分享原创文章写作经验

热门文章

  1. KMP算法原理详解_论文解读版
  2. android权限机制,你真的了解么
  3. Java IO流读取中文
  4. python人工智能面试题爱奇艺面试题_爱奇艺面试试题是什么?爱奇艺怎么面试的?...
  5. 重新启动的老式喷墨打印机
  6. Redis学习之秒杀案例
  7. 谷歌浏览器不填充密码问题
  8. Day03| 第四期-阿里巴巴股票行情分析(二)
  9. 华为数通笔记-网络参考模型及数据通信过程
  10. 2018年湖北省大学程序设计竞赛 D. Who killed Cock Robin(树形DP)