Nginx日志配置

这篇具有很好参考价值的文章主要介绍了Nginx日志配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.  系统默认的错误日志配置:

[root@node1 ~]# vim /etc/nginx/nginx.conf

error_log  /usr/local/nginx/logs/error.log;
error_log  /usr/local/nginx/logs/error.log  notice;
error_log  /usr/local/nginx/logs/error.log  info;

2.  系统默认的访问日志配置:

[root@node1 ~]# vim /etc/nginx/nginx.conf

http {

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

    access_log  /usr/local/nginx/logs/access.log  main;
}

3.  nginx日志切割:

        1>.  日志管理工具logrotate:在linux上logrotate是一个日志文件管理工具。用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到“转储”作用,它是默认随linux一起被安装的。

Logrotate是基于CRON来运行的,其脚本是/etc/cron.daily/logrotate,内容如下:

[root@node2 ~]# vim /etc/cron.daily/logrotate

#!/bin/sh

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

        2>.  日志轮询周期:daily、weekly、monthly、yearly 。

默认是daily(即logrotate脚本放到了/etc/cron.daily下),具体执行时间可以查看 /etc/crontab 或者 /etc/anacrontab。

注意: logrotate是基于crontab运行的, 所以这个时间点是有crontab控制的, 具体可以查询crontab的配置文件/etc/anacrontab.。系统会按照计划的频率运行logrotate,通常是每天。

        3>.  强制执行:如果等不及cron自动执行日志轮转,可以强制切割日志。

语法:[root@node2 ~]# logrotate [OPTION...] <configfile>

[root@node2 ~]# logrotate -f /etc/logrotate.d/nginx

-d, --debug :debug模式,测试配置文件是否有错误,不真实执行。
-f, --force :强制转储文件。
-m, --mail=command :压缩日志后,发送日志到指定邮箱。
-s, --state=statefile :使用指定的状态文件。
-v, --verbose :显示转储过程。

logrotate默认的日志在: /var/lib/logrotate/logrotate.status中。

  4>.  logrotate配置:使用rpm包安装的nginx,系统会自动生成日志切割的策略

## rpm包安装的nginx系统默认的日志切割策略:
[root@node2 ~]# cd /etc/logrotate.d/

[root@node2 logrotate.d]# vim nginx 

/var/log/nginx/*.log {  ##日志文件位置
    create 0640(mode) nginx(owner) root(group)  ##转储文件,使用该模式创建日志文件
    daily  ##日志轮询周期,weekly,monthly,yearly
    rotate 10  ##保存30天数据,超过的则删除
    missingok  ##如果没有日志文件也不报错
    notifempty  ##日志为空时不进行切换,默认为ifempty
    compress  ##切割后压缩,也可以为nocompress
    delaycompress  ##切割时对上次的日志文件进行压缩
    sharedscripts  ##所有的文件切割之后只执行一次下面脚本
    postrotate
        /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true
    endscript
}

而使用源码安装的nginx,系统不会默认生成日志切割策略,可以复制rpm的默认切割策略,也可以自己定义切割策略。文章来源地址https://www.toymoban.com/news/detail-451835.html

## 自定义日志切割策略:
[root@node1 ~]# mkdir -p /server/script/

[root@node1 ~]# cd /server/script/

[root@node1 script]# vim nginxlog.sh 

#!/bin/sh 

Dateformat=`date +%Y%m%d`
Basedir="/usr/local/nginx"
Nginxlogdir="$Basedir/logs"
Logname="access"
[ -d $Nginxlogdir ] && cd $Nginxlogdir || exit 1
[ -f ${Logname}.log ] || exit 1
/bin/mv ${Logname}.log ${Dateformat}_${Logname}.log
/usr/sbin/nginx -s reload

## 添加执行权限:
[root@node1 script]# chmod +x nginxlog.sh 

## 创建计划任务:
[root@node1 script]# crontab -e

00 00 * * * /bin/sh /server/script/nginxlog.sh > /dev/null 2>&1

到了这里,关于Nginx日志配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微服务系列文章 之 nginx日志配置指令详解

    日志对于统计排错来说非常有利的。本文总结了nginx日志相关的配置如access_log、log_format、open_log_file_cache、log_not_found、log_subrequest、rewrite_log、error_log。 nginx有一个非常灵活的日志记录模式。每个级别的配置可以有各自独立的访问日志。日志格式通过log_format命令来定义。ngx_

    2024年02月16日
    浏览(45)
  • docker复现nginx错误配置漏洞

    目录 一、nginx环境搭建 1.1搭建步骤  二、docker复现Nginx配置漏洞  2.1安装docker  2.2复现过程 2.1CRLF(carriage return/line feed)注入漏洞  2.2.目录穿越 1.先创建 Nginx 的目录并进入(命令如下) 2.下载 Nginx 的安装包,可以通过 FTP 工具上传离线环境包,也可通过 wget 命令在线获取安装包

    2024年02月13日
    浏览(36)
  • 为nginx配置好看的错误提示页面

    nginx默认错误页面确实有些丑哈,leeader让我换一个样式 ,我就来喽! nginx默认错误页面确实有些丑哈,leeader让我换一个样式 ,我就来喽! 我演示的html源文件放在文章末尾 ant.design 网站有几个设计的例子。也挺好可以借鉴。 https://ant.design/docs/spec/research-exception-cn 我在gitee上

    2024年02月04日
    浏览(39)
  • 关于刷新nginx配置报nginx: [emerg] unknown directive错误的问题

    朋友在windows服务器用记事本编辑nginx配置文件后,刷新nginx配置,nginx返回以下错误: unknown directive 是未知指令的意思,后面带着未知指令的内容是\\\"锘?user\\\"。由此判断,是nginx配置文件编码不正确的原因。 事实上,windows的记事本编辑文本后,会以ASCII码编码进行保存。这与

    2024年02月21日
    浏览(42)
  • linux 服务器进程、端口查找,nginx 配置日志查找,lsof 命令详解

    1.1 使用查看端口号对应的进程信息 方式一 : 使用netstat命令 -t:显示TCP连接 -u:显示UDP连接 -l:仅显示监听状态的连接 -n:以数字形式显示端口号,而不是以服务名称显示 通过管道符号|将netstat的输出结果传递给grep命令,用于过滤出包含指定端口号的行。 执行命令后,终端

    2024年02月04日
    浏览(60)
  • nginx上web服务的基本安全优化、服务性能优化、访问日志优化、目录资源优化和防盗链配置简介

    目录 一.基本安全优化 1.隐藏nginx软件版本信息 2.更改源码来隐藏软件名和版本 (1)修改第一个文件(核心头文件),在nginx安装目录下找到这个文件并修改 (2)第二个文件 (3)第三个文件,内置响应信息页面 (4)第四个文件 (5)重新编译安装并重启 3.更改nginx服务的默

    2024年02月13日
    浏览(43)
  • 3节点ubuntu24.04服务器docker-compose方式部署高可用elk+kafka日志系统并接入nginx日志

    节点名称 IP 部署组件及版本 配置文件路径 机器CPU 机器内存 机器存储 Log-001 10.10.100.1 zookeeper:3.4.13 kafka:2.8.1 elasticsearch:7.7.0 logstash:7.7.0 kibana:7.7.0 zookeeper:/data/zookeeper kafka:/data/kafka elasticsearch:/data/es logstash:/data/logstash kibana:/data/kibana 2*1c/16cores 62g 50g 系统 800g 数据盘 Log-002 10.10.10

    2024年04月27日
    浏览(43)
  • Ubuntu 服务器通过 resolvconf 管理配置系统默认DNS解析服务器配置文件

    1、首先安装 resolvconf 如果未安装 2、检查已启动并启用的解析服务 3、如果未启用服务,则可以通过以下方式启动和启用它:  4、现在编辑 resolv.conf.d/head 配置文件 5、将您的 DNS 地址添加到此文件中,例如我使用(223.5.5.5 和 223.6.6.6)  6、现在强制 resolvevconf 在使用 -u 调用时

    2024年02月11日
    浏览(46)
  • Ubuntu的SSH安全配置,查看SSH登录日志文件,修改默认端口,UFW配置防火墙,禁止root用户登录,禁用密码登陆,使用RSA私钥登录,使用 Fail2ban 工具,使用两步验证(2FA)

    环境是Ubuntu 22.04 LTS 不出意外会看到很多类似如下的日志 然后可以统计有多少人在暴力破解root密码错误登录,展示错误次数和ip 因为腾讯云还有个默认用户Ubuntu,也可以一起看看,或是查看一下自己其他用户的错误登录 统计有多少暴力猜用户名的 这台才买回来3天就被扫了

    2024年02月14日
    浏览(51)
  • Django配置日志系统的最佳实践

    日志是跟踪应用行为、监控错误、性能分析和安全审计的重要工具。在Django框架中,合理配置日志系统可以帮助开发者有效管理项目运行过程中的关键信息。本文将详细介绍Django日志系统的最佳实践。 Django使用Python的  logging  模块来实现日志系统。 logging  模块强大且灵活,

    2024年02月02日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包