惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
Simon Willison's Weblog
Simon Willison's Weblog
H
Help Net Security
F
Fortinet All Blogs
H
Heimdal Security Blog
S
Schneier on Security
L
LangChain Blog
博客园 - Franky
酷 壳 – CoolShell
酷 壳 – CoolShell
NISL@THU
NISL@THU
P
Palo Alto Networks Blog
J
Java Code Geeks
博客园 - 【当耐特】
The Last Watchdog
The Last Watchdog
W
WeLiveSecurity
www.infosecurity-magazine.com
www.infosecurity-magazine.com
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Vulnerabilities – Threatpost
I
InfoQ
Recorded Future
Recorded Future
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
CERT Recently Published Vulnerability Notes
T
Tenable Blog
腾讯CDC
C
Check Point Blog
量子位
M
MIT News - Artificial intelligence
GbyAI
GbyAI
罗磊的独立博客
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
B
Blog
小众软件
小众软件
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
CXSECURITY Database RSS Feed - CXSecurity.com
Stack Overflow Blog
Stack Overflow Blog
P
Proofpoint News Feed
P
Privacy & Cybersecurity Law Blog
V2EX - 技术
V2EX - 技术
T
Threatpost
Engineering at Meta
Engineering at Meta
Attack and Defense Labs
Attack and Defense Labs
T
Tailwind CSS Blog
S
Securelist
The Cloudflare Blog
博客园 - 叶小钗
L
LINUX DO - 最新话题
T
Troy Hunt's Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
爱范儿
爱范儿

博客园 - zjhgx

hjdang 从jdk11升级到jdk25遇到的问题 腾讯云服务器遭受大量请求攻击导致网页打不开 capacitor的android项目接入穿山甲遇到的坑 class file for org.apache.shiro.lang.util.Nameable not found class file for org.apache.shiro.lang.util.Nameable not found 使用capacitor遇到的问题记录 shiro的cookie去掉domain后导致用户无法登陆 android真机调试遇到的问题 用java爬取京东商品页注意点 SEO 经验记录 使用goaccess统计nginx日志 记一次流量爆发导致服务器无响应的记录 mac 安装完Navicat Premium 提示已损坏 无法打开的处理方法 腾讯云问题汇总 vue-element-admin npm install 错误 quasar <q-page>下面<div>自动计算height的问题 Adsense遇到的问题 web项目启动时dubbo报错: No provider available for the service com.davidhu.shopguide.api.service.UserEventService from the url zookeeper ://localhost:2181/org.apache.du quasar ssr模式出现了CLS issue vue ssr里面在template不能出现this,create时this还没有
nginx日志按天分割
zjhgx · 2024-05-29 · via 博客园 - zjhgx

原帖是这样的:

nginx 日志分割是比较常见的运维工作,关于这方面的文章也很多,通常无外乎两种做法:

cron定期执行shell脚本对日志文件进行归档。
使用专门日志归档logrotate。
以上方式与nginx其实没有特别的关系。 从nginx 0.7.6 版本开始,access_log 的路径配置可以包含变量,我们以此进行日志分割。

同时我们基于nginx的 timeiso8601 内嵌变量来获取时间。time_iso8601格式如下:

2018-09-21T16:01:02+02:00
然后使用正则表达式来获取所需时间的数据。

http {
  log_format default_format '$remote_addr - $remote_user [$time_iso8601] "$request" '
      '$status $body_bytes_sent "$http_referer" '
      '"$http_user_agent" "$http_x_forwarded_for" "$request_body"';
      
      
      server {
          listen 443 ssl;
          ... ...
          if ($time_iso8601 ~ '(\d{4}-\d{2}-\d{2})') {
            set $tttt $1;
          }
          
          access_log /log/blog_access_$tttt.log;
      }
}
主要关注两个地方:

要在外方法的log_format上添加 $time_iso8601 ,将原来的time_local修改为time_iso8601。
在单个server中,通过正则表达式截取 $time_iso8601 生成时间戳。
最后插一个话题,你知道 $time_iso8601 为什么叫这个名字吗?

国际标准ISO 8601,是国际标准化组织的日期和时间的表示方法,全称为《数据存储和交换形式·信息交换·日期和时间的表示方法》。目前是2004年12月1日发行的第三版“ISO8601:2004”以替代1998年的第一版“ISO8601:1998”与2000年的第二版“ISO8601:2000”。

  照着上面的做法试了下,发现了两个问题

2024/05/29 05:38:09 [warn] 2773055#2773055: *24990740 using uninitialized "tttt" variable while logging request, client: 185.15.178.156, server: hjdang.com, request: "GET /coupon HTTP/1.1", host: "hjdang.com"
2024/05/29 05:38:12 [warn] 2773056#2773056: *24990759 using uninitialized "tttt" variable while logging request, client: 178.171.65.26, server: hjdang.com, request: "GET /d/1782431195418632474 HTTP/1.1", host: "hjdang.com"
2024/05/29 05:38:19 [warn] 2773053#2773053: *24990776 using uninitialized "tttt" variable while logging request, client: 178.171.67.37, server: hjdang.com, request: "GET /d/1782431195418632265 HTTP/1.1", host: "hjdang.com"

1. 出现了上面的警告,原因是nginx访问 access_log这个参数是在定义了$ttt之前的,正确的配置是把access_log配置在location下面:

    location / {
        access_log  /data/log/nginx/www.hjdang_$tttt.log  main;
        proxy_pass   http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        send_timeout 600;
        proxy_connect_timeout 300;
        proxy_send_timeout 300;
        proxy_read_timeout 300;
        proxy_buffer_size 128k;
        proxy_buffers 2 256k;
        proxy_busy_buffers_size 256k;
        proxy_temp_file_write_size 256k;
        client_max_body_size 10m;
        add_header Cache-Control "no-store,max-age=0";

    }

2. error.log发现下面错误:

2024/05/29 03:49:55 [error] 2732888#2732888: *24973771 testing "/etc/nginx/html" existence failed (2: No such file or directory) while logging request, client: 111.230.194.84, server: web.hjdang.com, request: "POST /goods/detail HTTP/1.1", upstream: "http://127.0.0.1:8238/goods/detail", host: "web.hjdang.com"
2024/05/29 03:50:00 [error] 2732888#2732888: *24973775 testing "/etc/nginx/html" existence failed (2: No such file or directory) while logging request, client: 122.96.46.53, server: web.hjdang.com, request: "POST /yunpan/resource/list HTTP/1.1", upstream: "http://127.0.0.1:8238/yunpan/resource/list", host: "web.hjdang.com", referrer: "https://www.hjdang.com/category/%E5%AD%A6%E4%B9%A0?q="
2024/05/29 03:50:00 [error] 2732888#2732888: *24973775 testing "/etc/nginx/html" existence failed (2: No such file or directory) while logging request, client: 122.96.46.53, server: web.hjdang.com, request: "POST /yunpan/top/article/list HTTP/1.1", upstream: "http://127.0.0.1:8238/yunpan/top/article/list", host: "web.hjdang.com", referrer: "https://www.hjdang.com/category/%E5%AD%A6%E4%B9%A0?q="
2024/05/29 03:50:01 [error] 2732888#2732888: *24973775 testing "/etc/nginx/html" existence failed (2: No such file or directory) while logging request, client: 122.96.46.53, server: web.hjdang.com, request: "POST /yunpan/resource/list HTTP/1.1", upstream: "http://127.0.0.1:8238/yunpan/resource/list", host: "web.hjdang.com", referrer: "https://www.hjdang.com/category/%E5%AD%A6%E4%B9%A0?q="
2024/05/29 03:50:01 [error] 2732888#2732888: *24973779 testing "/etc/nginx/html" existence failed (2: No such file or directory) while logging request, client: 122.96.46.53, server: web.hjdang.com, request: "POST /yunpan/resource/list HTTP/1.1", upstream: "http://127.0.0.1:8238/yunpan/resource/list", host: "web.hjdang.com", referrer: "https://www.hjdang.com/category/%E5%AD%A6%E4%B9%A0?q="
2024/05/29 03:50:18 [error] 2732888#2732888: *24973790 testing "/etc/nginx/html" existence failed (2: No such file or directory) while logging request, client: 122.96.46.53, server: web.hjdang.com, request: "POST /yunpan/resource/list HTTP/1.1", upstream: "http://127.0.0.1:8238/yunpan/resource/list", host: "web.hjdang.com", referrer: "https://www.hjdang.com/category/%E5%AD%A6%E4%B9%A0?q="
2024/05/29 03:50:18 [error] 2732888#2732888: *24973789 testing "/etc/nginx/html" existence failed (2: No such file or directory) while logging request, client: 122.96.46.53, server: web.hjdang.com, request: "POST /yunpan/resource/list HTTP/1.1", upstream: "http://127.0.0.1:8238/yunpan/resource/list", host: "web.hjdang.com", referrer: "https://www.hjdang.com/category/%E5%AD%A6%E4%B9%A0?q="
2024/05/29 03:50:21 [error] 2732891#2732891: *24973810 testing "/etc/nginx/html" existence failed (2: No such file or directory) while logging request, client: 180.233.86.12, server: web.hjdang.com, request: "POST /user/islogin HTTP/1.1", upstream: "http://127.0.0.1:8238/user/islogin", host: "web.hjdang.com", referrer: "https://www.hjdang.com/d/1638545005108868059"
2024/05/29 03:50:25 [error] 2732890#2732890: *24973818 testing "/etc/nginx/html" existence failed (2: No such file or directory) while logging request, client: 218.109.200.144, server: web.hjdang.com, request: "POST /user/islogin HTTP/1.1", upstream: "http://127.0.0.1:8238/user/islogin", host: "web.hjdang.com", referrer: "https://www.hjdang.com/d/1780795623239385089"
2024/05/29 03:50:27 [error] 2732888#2732888: *24973790 testing "/etc/nginx/html" existence failed (2: No such file or directory) while logging request, client: 122.96.46.53, server: web.hjdang.com, request: "POST /yunpan/resource/list HTTP/1.1", upstream: "http://127.0.0.1:8238/yunpan/resource/list", host: "web.hjdang.com", referrer: "https://www.hjdang.com/category/%E5%AD%A6%E4%B9%A0?q="
2024/05/29 03:50:29 [error] 2732890#2732890: *24973818 testing "/etc/nginx/html" existence failed (2: No such file or directory) while logging request, client: 218.109.200.144, server: web.hjdang.com, request: "POST /user/islogin HTTP/1.1", upstream: "http://127.0.0.1:8238/user/islogin", host: "web.hjdang.com", referrer: "https://www.hjdang.com/d/1780795623239385089"
2024/05/29 03:50:32 [error] 2732890#2732890: *24973834 testing "/etc/nginx/html" existence failed (2: No such file or directory) while logging request, client: 116.179.37.84, server: web.hjdang.com, request: "OPTIONS /user/islogin HTTP/1.1", upstream: "http://127.0.0.1:8238/user/islogin", host: "web.hjdang.com", referrer: "https://www.hjdang.com/d/1749969100689408029"
2024/05/29 03:50:32 [error] 2732890#2732890: *24973836 testing "/etc/nginx/html" existence failed (2: No such file or directory) while logging request, client: 116.179.37.196, server: web.hjdang.com, request: "POST /user/islogin HTTP/1.1", upstream: "http://127.0.0.1:8238/user/islogin", host: "web.hjdang.com", referrer: "https://www.hjdang.com/d/1749969100689408029"
2024/05/29 03:50:36 [error] 2732888#2732888: *24973790 testing "/etc/nginx/html" existence failed (2: No such file or directory) while logging request, client: 122.96.46.53, server: web.hjdang.com, request: "POST /yunpan/resource/list HTTP/1.1", upstream: "http://127.0.0.1:8238/yunpan/resource/list", host: "web.hjdang.com", referrer: "https://www.hjdang.com/category/%E4%B9%A6%E7%B1%8D?q="
2024/05/29 03:50:36 [error] 2732888#2732888: *24973790 testing "/etc/nginx/html" existence failed (2: No such file or directory) while logging request, client: 122.96.46.53, server: web.hjdang.com, request: "POST /yunpan/top/article/list HTTP/1.1", upstream: "http://127.0.0.1:8238/yunpan/top/article/list", host: "web.hjdang.com", referrer: "https://www.hjdang.com/category/%E4%B9%A6%E7%B1%8D?q="
2024/05/29 03:50:48 [error] 2732891#2732891: *24973810 testing "/etc/nginx/html" existence failed (2: No such file or directory) while logging request, client: 180.233.86.12, server: web.hjdang.com, request: "POST /yunpan/resource/list HTTP/1.1", upstream: "http://127.0.0.1:8238/yunpan/resource/list", host: "web.hjdang.com", referrer: "https://www.hjdang.com/list?q=%E5%9B%BD%E8%AF%AD%E9%9F%A9%E5%89%A7%EF%BC%8C%E5%8F%B0%E9%85%8D%E9%9F%A9%E5%89%A7%E5%90%88%E9%9B%86%EF%BC%9E500%E9%83%A8&x=0.44488566441600863"

原因是配置带变量的access_log必须指定root,加上   root   /var/www 就可以了; #一定要加root,否则access_og不能加变量

That's a common pitfall. Doc on access_log says:

The file path can contain variables (0.7.6+), but such logs have some constraints:

...
during each log write the existence of the request’s root directory is checked, and if it does not exist the log is not created.
You didn't set root directory so nginx falls back to default one that is /etc/nginx/html and it doesn't exists.

Just add root /var/www; (or some other existing path) or, as zezollo suggested, create /etc/nginx/html.

https://linktr.ee/zjhgx 

https://bento.me/zjhgx163

https://flowus.cn/share/ad356d4e-74e8-4654-88d5-fba859f85baa

https://ramen.tools/@DavidHu

https://substack.com/@davidhu3

https://www.promoteproject.com/startup/180142/hao-jia-dang

https://roadmap.sh/u/zjhgx