如何让我们的nginx access_log不在时区偏移量中放置:?

时间:2017-09-29 15:46:16

标签: nginx logging amazon-cloudwatch

nginx以这种格式输出正确的ISO860标准:

2017-09-29T15:39:06+00:00

除了AWS CloudWatch之外,哪个版本很好,只有当:不在时区偏移量时才有效。像这样:

2017-09-29T15:39:06+0000

我们需要输出CloudWatch可以解释的时间格式。 CloudWatch因为它使用python 2.7中的时间函数而被“破坏”。

1 个答案:

答案 0 :(得分:1)

没有直接的方式。但是可以自定义日志格式和更改变量。所以我们可以用它来锻炼这个

events {
    worker_connections  1024;
}
http {

map $time_iso8601 $time_aws {
   ~(.*):(00)  "$1$2";
}

log_format new_format '$remote_addr - $remote_user [$time_aws] '
                    '"$request" $status $body_bytes_sent '
                    '"$http_referer" "$http_user_agent"';
access_log /dev/stdout  new_format;
server {
   listen 80;
   location / {
      return 200 "test";
   }
}

}

这给我下面的访问日志

172.19.0.1 - - [2017-09-29T16:43:55+0000] "GET /tarun HTTP/1.1" 200 51 "-" "curl/7.47.0"

所以现在你只需要将格式与你想要的方式相匹配