nginx的高级配置(3)——日志管理

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:
  1. 设置日志格式

在nginx.conf配置文件里添加

1
2
3
log_format xy  '$remote_user [$time_local] ' 
                       '"$request" $status $body_bytes_sent '
                       '"$http_referer" "$http_user_agent"' ;

此日志格式为IP不仅记录代理的IP还记录远程客户端的真实IP。然后在虚拟主机的配置文件里添加 

1
access_log  /tmp/access .log xy;

   上述的xy是自己取得名字。

2.指定日志的不记录内容

刷新下nginx代理的页面,在cat /tmp/access后,发现会有许许多多的日志,特别是图片格式等内容特别多,而我们又不需要这种信息,这时就应该指定日志不去记录这些内容。

在虚拟主机的配置文件里添加localtion,

1
2
3
4
5
6
7
  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$        
  {             
                  access_log off;        }       
  location ~ .*\.(js|css)$       
   {           
                  access_log off;        }
这时候我们去查询access.log,发现gif|jpg|jpeg|png|bmp|swf|js|css的内容已经不见了

3.配置静态文件过期时间

一般浏览器都有缓存功能,而我们可以配置静态文件过期时间,在之前的location里添加expires,如

1
2
3
4
5
  location ~ .*\.(js|css)$
         {
                 expires      12h;
                 access_log off;
         }

这样有关js|css的内容会在12小时后过期。

4.日志切割

首先创建一个shell脚本,我的脚本是这样的

1
2
3
4
5
6
7
#!/bin/bash
d=` date  -d  "-1 day"  +%F`
[ -d  /tmp/nginx_log  ] ||  mkdir  /tmp/nginx_log
mv  /tmp/access .log  /tmp/mginx_log/ $d.log
/etc/init .d /nginx  reload >  /dev/null
cd  /tmp/nginx_log/
gzip  -f $d.log

然后利用crontab制定任务计划,比如第二天的0点执行这个脚本。

5.错误日志级别

错误日志error_log日志级别

error_log 级别分为 debug, info, notice, warn, error, crit  默认为crit, 该级别在日志名后边定义格式如下:

error_log  /your/path/error.log crit;

crit 记录的日志最少,而debug记录的日志最多。如果你的nginx遇到一些问题,比如502比较频繁出现,但是看默认的error_log并没有看到有意义的信息,那么就可以调一下错误日志的级别>,当你调成error级别时,错误日志记录的内容会更加丰富,可以在nginx.conf里面修改错误日志级别

1
error_log  /usr/local/nginx/logs/nginx_error .log debug;





      本文转自YU文武貝 51CTO博客,原文链接:http://blog.51cto.com/linuxerxy/1718567 ,如需转载请自行联系原作者





相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
4月前
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
565 87
|
4月前
|
负载均衡 应用服务中间件 nginx
Nginx配置与命令
Nginx 是一款高性能的 HTTP 和反向代理服务器,其配置文件灵活且功能强大。本文介绍了 Nginx 配置的基础结构和常用指令,包括全局块、Events 块、HTTP 块及 Server 块的配置方法,以及静态资源服务、反向代理、负载均衡、HTTPS 和 URL 重写等功能实现。此外,还提供了常用的 Nginx 命令操作,如启动、停止、重载配置和日志管理等,帮助用户高效管理和优化服务器性能。
|
2月前
|
应用服务中间件 网络安全 nginx
配置Nginx以支持Websocket连接的方法。
通过上述配置,Nginx将能够理解WebSocket协议的特殊要求,代理Websocket流量到合适的后端服务器。注意,Websocket并不是HTTP,尽管它最初是通过HTTP请求启动的连接升级,因此保证Nginx了解并能够妥善处理这种升级流程是关键。
394 10
|
2月前
|
JSON 安全 Go
Go语言项目工程化 —— 日志、配置、错误处理规范
本章详解Go语言项目工程化核心规范,涵盖日志、配置与错误处理三大关键领域。在日志方面,强调其在问题排查、性能优化和安全审计中的作用,推荐使用高性能结构化日志库zap,并介绍日志级别与结构化输出的最佳实践。配置管理部分讨论了配置分离的必要性,对比多种配置格式如JSON、YAML及环境变量,并提供viper库实现多环境配置的示例。错误处理部分阐述Go语言显式返回error的设计哲学,讲解标准处理方式、自定义错误类型、错误封装与堆栈追踪技巧,并提出按调用层级进行错误处理的建议。最后,总结各模块的工程化最佳实践,助力构建可维护、可观测且健壮的Go应用。
|
3月前
|
安全 应用服务中间件 网络安全
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
213 0
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
|
3月前
|
JSON 前端开发 应用服务中间件
配置Nginx根据IP地址进行流量限制以及返回JSON格式数据的方案
最后,记得在任何生产环境部署之前,进行透彻测试以确保一切运转如预期。遵循这些战术,守卫你的网络城堡不再是难题。
165 3
|
5月前
|
存储 监控 API
【Azure App Service】分享使用Python Code获取App Service的服务器日志记录管理配置信息
本文介绍了如何通过Python代码获取App Service中“Web服务器日志记录”的配置状态。借助`azure-mgmt-web` SDK,可通过初始化`WebSiteManagementClient`对象、调用`get_configuration`方法来查看`http_logging_enabled`的值,从而判断日志记录是否启用及存储方式(关闭、存储或文件系统)。示例代码详细展示了实现步骤,并附有执行结果与官方文档参考链接,帮助开发者快速定位和解决问题。
147 23
|
存储 负载均衡 架构师
Nginx极简入门(七)Nginx的日志管理及配置
前面讲了如何配置Nginx虚拟主机和Nginx负载均衡。我们知道日志对于Nginx非常重要。今天要说的是如何配置Nginx的日志。
Nginx极简入门(七)Nginx的日志管理及配置
|
10月前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
618 7
|
6月前
|
应用服务中间件 nginx
Nginx进程配置指令详解
Nginx进程配置指令主要包括:`worker_processes`设置工作进程数;`worker_cpu_affinity`绑定CPU核心;`worker_rlimit_nofile`设置最大文件描述符数量;`worker_priority`设置进程优先级;`worker_connections`设置最大连接数;`daemon`控制守护进程模式;`master_process`启用主进程模式;`pid`设置PID文件路径;`user`指定用户和组;`error_log`配置错误日志。这些指令在`nginx.conf`中配置,用于优化和控制Nginx的运行行为。
263 10