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

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 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

1