Nginx笔记总结十:Nginx日志切割】的更多相关文章

1.Nginx日志切割 logrotate日志文件管理工具,通过cron程序定期执行,默认在cron默认程序的dayli目录下 [root@joker logrotate.d]# cat /etc/cron.daily/logrotate #!/bin/sh /usr/sbin/logrotate /etc/logrotate.conf EXITVALUE=$? ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with…
一.日志切割脚本 #!/bin/sh #nginx目录 BASE_DIR=/usr/local/nginx #生成的日志 BASE_FILE_NAME=jonychen.access.log CURRENT_PATH=$BASE_DIR/logs BAK_PATH=$BASE_DIR/datalogs CURRENT_FILE=$CURRENT_PATH/$BASE_FILE_NAME BAK_TIME=`/bin/date -d yesterday +%Y%m%d%H%M` BAK_FILE=…
一.Nginx简介 Nginx (“engine x”) 是俄罗斯人Igor Sysoev(塞索耶夫)编写的一款高性能的 HTTP 和反向代理服务器.Nginx 已经在俄罗斯最大的门户网站── Rambler Media(www.rambler.ru)上运行了4年时间,同时俄罗斯超过20%的虚拟主机平台采用Nginx作为反向代理服务器.在国内,已经有新 浪博客.新浪播客.搜狐通行证.网易新闻.网易博客.金山逍遥网.金山爱词霸.校内网.YUPOO相册.豆瓣.迅雷看看等多家网站.频道使用 Nginx…
1.重载 修改nginx配置文件之后,在不影响服务的前提下想加载最新的配置,就可以重载配置即可. 操作如下: 1)修改nginx配置文件 2)nginx -t     检查nginx文件语法是否有误 3)nginx -s reload    重载nginx配置 2.热部署(升级nginx版本) 比如我把版本冲nginx1.14-2升级到nginx1.16.1: 我之前nginx安装目录为:/data/geek/nginx目录 操作如下: 注意:千万不要make insatll 否则会把二进制执行…
1.高层的配置 worker_processes 定义了nginx对外提供web服务时的worker进程数 worker_rlimit_nofile 更改worker进程最大打开文件数量限制,如果没有配置,以系统限制2. Events模块 events { worker_connections ; multi_accept on; use epoll; } worker_connections 设置一个worker进程同时打开的最大连接数 multi_accept 告诉nginx收到一个新链接通…
编译:./configure --prefix=/usr/local/nginx --add-module=../ngx-fancyindex-master 配置: location / { fancyindex on; 开启fancy索引 fancyindex_exact_size off;  不使用精确大小,使用四舍五入 fancyindex_localtime on; 使用本地时间 fancyindex_footer "myfooter.shtml"; 当前路径下的myfoote…
编译:./configure --prefix=/usr/local/nginx --add-module=../ngx_http_status_code_counter-master make && make install 配置: location /ttlsa_http_code_status/ { show_status_code_count on; } location /ttlsa_http_code_status500/ { return 500; } location /t…
nginx编译 wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz ./configure --prefix=/usr/local/nginx --add-module=../ngx_cache_purge-2.3 --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_modul…
user www www; worker_processes ; error_log logs/error.log; pid logs/nginx.pid; worker_rlimit_nofile ; events { use epoll; worker_connections ; } http{ include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout ; gzip on…
vim nginx.conf http { server_tokens off;} php-fpm fastcgi.conf或fcgi.conf fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; 改为fastcgi_param SERVER_SOFTWARE nginx;…
ngx_http_log_module用来定义请求日志格式1. access_log指令 语法:   access_log path [format [buffer=size [flush=time]]] access_log path format gzi=[level] [buffer=size] [flush=time] access_log syslog:server=address[,paramter=value] [format]; access_log off; 默认值:acces…
-prefix=                                                    安装路径-with-http_ssl_module                               启用ssl支持,需要安装openssl--with-http_realip_module                          允许从请求报头修改客户端的ip地址--with-http_image_filter_module                …
编译: ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_realip_module--with-http_image_filter_module --with-debug 配置: location ~* /(\d+).(jpg)$ { set $h $arg_h; set $w $arg_w; image_filter resize $h $w; } location ~* /(\d…
server { listen ; location / { resolver 202.106.0.20 202.106.119.116; resolver_timeout 30s; proxy_pass http://$host$request_uri; } access_log /data/httplogs/proxy-$host-access.log; } 需要浏览器设置代理,抓包可看到所有包通过nginx正向代理访问互联网…
location ~ .*\.(php)?${ expires -ls; try_file $uri=404; fastcgi_split_path_info ~(.+\.php)(/.+)$; include fastcgi_params; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script…
依赖PCRE库,需要安装pcre,最多循环10次,超过后返回500错误, 1.       rewrite模块指令 break:完成当前设置的重写规则,停止执行其他的重写规则 if:  if () {...} return:停止处理并返回客户端状态码 rewrite: rewrite regex replacement flag last:停止处理重写模块指令,之后搜索location与更改后的URI匹配 break:完成重写 redirect:返回302临时重定向,如果用http://则被使用…
upstream proxy1 { server ; } upstream proxy2 { server ; } server { listen ; server_name www1.dlab.com; location / { proxy_pass http://proxy1; } } server { listen ; server_name www2.dlab.com; location / { proxy_pass http://proxy2; } } server{} 配置虚拟主机必…
语法规则:location [= | ~ | ~* | ^~] /uri/ {....} = 表示精确匹配 ^~ 表示uri以某个常规字符串开头 ~ 表示区分大小写的正则表达式 ~* 表示不区分大小写的正则表达式 !~ !~* / 通用匹配,默认匹配 静态文件匹配规则实例 location ~* .*\.(js|css)?$ { expires 7d; access_log off; } location ~* .*\.(png|jpg|gif|jpeg|bmp|ico)?$ {} locati…
上篇文章,我们已经安装好 Nginx,并且配置好 Nginx 文件后,这个时候我就需要操作 Nginx 的命令行了,这篇文章主要讲解 Nginx 命令行相关知识,并通过日常遇到的热部署.切割日志文件场景来熟悉 Nginx 命令行操作. 推荐阅读:Nginx 了解一下? Nginx 命令行 格式:nginx -s stop 帮助:-? -h 使用指定的配置文件:-c 指定配置指令:-g (用途是覆盖配置文件中的指令) 指定运行目录:-p 发送信号:-s(立刻停止服务:stop,优雅的停止服务:qu…
写在前面的话 上一节我们谈了关于 nginx 服务器的一些简单的安全优化问题,能够帮助我们解决一部分线上服务存在的安全隐患.但是想要提升用户体验这是原因不够的,我们还需要从服务的优化方面入手. 本节更多的还是偏理论的东西,会给出相应的配置.可能有些就无法立即做测试. 访问优化:静态压缩 我们知道一个网站总会有一些 CSS/JS 等静态文件需要加载,如果用户每次请求都需要去服务器下载一遍,比如 Jquery 这种根本不会变的.明显会造成带宽的浪费.同时由于用户可能本身网速还不好,就容易给用户带来不…
要在第二天的凌晨把前一天的访问日志切割备份,并以时间作为文件名,例如:access.20150728.log,这就需要在 Linux 中格式化时间,例如: [root@localhost ~]# date 2015年 07月 28日 星期二 02:33:02 CST [root@localhost ~]# date -d yesterday 2015年 07月 27日 星期一 02:33:18 CST [root@localhost ~]# date -d yesterday +%Y 2015…
1.修改Nginx日志格式: log_format json '$remote_addr - $remote_user [$time_local] "$request" '              '$status $body_bytes_sent "$http_referer" '              '"$http_user_agent" "$http_x_forwarded_for"';             …
需求原因:nginx不具备日志切割功能,日志量较大,方便分析. 实现目的:完成nginx日志切割,并根据时间命名   简要命令: mv /usr/local/tengine/logs/access.log /usr/local/tengine/logs/access-date.log kill -USER1 Nginx主进程号.   解释:      通过mv命令重命名日志,并且通过kill -USER1 nginx-id的命令,告诉nginx需要写新的日志, 不然nginx不会在mv之后继续写…
一:日志切割步骤 命令都在root下进行 1.创建目录 mkdir -p /etc/opt/modules/bin ## 创建文件夹 2.上传cut 3.观察目录 4.修改的cut文件 5.检测 需要保证nginx已经开启 6.效果 7.定时 二:切割程序 1.脚本 #!/bin/bash # nginx日志存储的linux路径 LOGS_PATH="/usr/local/nginx/userlogs/" # 旧日志存储的linux路径 OLD_LOGS_PATH=${LOGS_PAT…
nginx的日志文件没有rotate功能.如果你不处理,日志文件将变得越来越大,还好我们可以写一个nginx日志切割脚本来自动切割日志文件.第一步就是重命名日志文件,不用担心重命名后nginx找不到日志文件而丢失日志.在你未重新打开原名字的日志文件前,nginx还是会向你重命名的文件写日志,linux是靠文件描述符而不是文件名定位文件.第二步向nginx主进程发送USR1信号.nginx主进程接到信号后会从配置文件中读取日志文件名称,重新打开日志文件(以配置文件中的日志名称命名),并以工作进程的…
日志配置 日志对于统计排错来说非常有利的.本文总结了nginx日志相关的配置如access_log.log_format.open_log_file_cache.log_not_found.log_subrequest.rewrite_log.error_log.nginx有一个非常灵活的日志记录模式.每个级别的配置可以有各自独立的访问日志.日志格式通过log_format命令来定义.ngx_http_log_module是用来定义请求日志格式的.1. access_log指令 语法: acce…
Nginx是一个高并发,高性能的服务器,可以进行反向代理以及网站的负载均衡.这些功能的运用都在配置文件中,也就是Nginx安装目录下的conf/nginx.conf. nginx.conf 1. 先来看下Nginx默认的配置文件以及说明: #user nobody;#----------------------------------------------# user用来配置使用的用户和组,默认是没有进行配置的:# 如下配置表示配置aries这个用户以及aries这个用户组:# user ar…
nginx自己不会对日志文件进行切割,可以通过两种不同的方式进行,分别是:通过logrotate和通过shell脚本. 如果是yum方式安装的nginx,系统默认会自动通过logrotate这个日志管理软件,按天进行分割(配置如下,具体含义可看下文). [root@flume- ~]# cat /etc/logrotate.d/nginx /var/log/nginx/*log { create 0644 nginx nginx daily rotate 10 missingok notifem…
Nginx本身并不支持日志切割,那么就会造成日志非常的大,为了解决这个问题我们用到了windows的计划任务和dos命令.具体思路: 1.写一个dos文件,通过windows的计划任务定时执行(每天执行一次) 2.dos命令里面将根据日期来移动文件 3.移动前停止nginx,移动成功后启动nginx dos命令如下: @echo off cd D:\Program Files\nginx- taskkill /F /IM nginx.exe > nul rem date格式:Wed // ,%-…
Nginx日志切割脚本: #!/bin/bash ############################################################################# logs_path="/usr/local/nginx/logs" pid_path="/var/run/nginx.pid" backup_dir="/data/log/nginx" [ ! -d $backup_dir ] &&am…