nginxのerror_logはformat指定できない.

備忘録です.

http://toshitanian.hatenablog.com/entry/2013/10/25/023838

2013-10-25

nginxのerror_logはformat指定できない.

nginxとかsupervisorとかDBのログをfluentdで一括管理したいなぁとおもったので,とりあえず 参考 にしたがって,nginxのログをltsv形式にしてみようとしたわけです.

環境は

  • ubuntu server 12.04 LTS
  • nginx 1.4.3

怒られる

nginx.confのログの部分をこんな感じにしてみました.

        log_format ltsv "time:$time_local"
                        "\thost:$remote_addr"
                        "\tforwardedfor:$http_x_forwarded_for"
                        "\treq:$request"
                        "\tstatus:$status"
                        "\tsize:$body_bytes_sent"
                        "\treferer:$http_referer"
                        "\tua:$http_user_agent"
                        "\treqtime:$request_time"
                        "\tvhost:$host";

        access_log /var/log/nginx/access.log ltsv;
        error_log /var/log/nginx/error.log ltsv;

nginx再起動!...動かない...

$ sudo nginx -t

してみると,

nginx: [emerg] invalid log level "ltsv" in /etc/nginx/nginx.conf:45
nginx: configuration file /etc/nginx/nginx.conf test failed

らしい....(´?ω?`)

Nginx-HttpLogModuleを見る限りででは,公式でサポートされてるっぽいよなぁ.

ログレベルを指定してみる

Is it possible to specify custom error log format in nginx? を見てみる.

ログレベルってのは[ debug | info | notice | warn | error | crit ] のどれからしい.

    access_log /var/log/nginx/access.log info;

にして,テストしてみた.

nginx: [emerg] unknown log format "info" in /etc/nginx/nginx.conf:44

ぐぬぬ...

つまり,log_formatを指定したら,level入れろよ!って怒られて.level入れたらlog_format入れろよ!って怒られる.

わかったこと

色々やっててテストがパスした.

わかったことは...

  • access_logはlog_formatを指定する.
  • error_logはlog_levelを指定する.
nginx: [emerg] invalid log level "ltsv" in /etc/nginx/nginx.conf:45

エラーログにlog_formatは指定できない.

nginx: [emerg] unknown log format "info" in /etc/nginx/nginx.conf:44

アクセスログにlog_levelは指定できない.

ということみたいです.

参考ページとか,ちゃんとみると,access_logしか指定してませんね.

ちゃんと読むようにしないとなぁ.

nginxのエラーログはどういう風に管理しましょう.

时间: 2024-10-09 19:56:46

nginxのerror_logはformat指定できない.的相关文章

Nginx 访问控制&屏蔽指定 user_agent

禁止非法恶意访问的IP [[email protected] ~]# vim /usr/local/nginx/conf/vhosts/linux.conf location ~ .*admin\.php$ { allow 127.0.0.1; deny all; #auth_basic "auth"; #auth_basic_user_file /usr/local/nginx/conf/.htpasswd; include fastcgi_params; fastcgi_pass

利用nginx来屏蔽指定的user_agent的访问以及根据user_agent做跳转

对于做国内站的我来说,我不希望国外蜘蛛来访问我的网站,特别是个别垃圾蜘蛛,它们访问特别频繁.这些垃圾流量多了之后,严重浪费服务器的带宽和资源.通过判断user agent,在nginx中禁用这些蜘蛛可以节省一些流量,也可以防止一些恶意的访问. 方法一:修改nginx.conf,禁止网络爬虫的user_agent,返回403. 1.进入nginx的配置目录,例如cd /usr/local/nginx/conf 2.添加agent_deny.conf配置文件 vim agent_deny.conf

nginx不记录指定文件类型的日志

1.指定记录文件日志记录的内容. vim /usr/local/nginx/conf/nginx.conf如下部分: log_format dd '$remote_addr $http_x_forwarded_for [$time_local]' '$host "$request_uri" $status' '"$http_referer" "$http_user_agent"'; 其中dd是指日志格式的名字,可修改.2.在虚拟主机配置文件中,指

nginx:文件下载指定保存文件名的配置

一般在我们上传完资源文件之后,为了避免文件名冲突,会将文件名改成毫无意义的一段字符.这个字符,可能是MD5产生的,或者是其他方式产生的字符串.这时候,下载的时候,默认保存的文件名会是这段毫无意义的文件名(图1). 其实,nginx是支持下载时重命名的,让文件名更加友好. nginx也很容易配置:只要加入以下几行即可: 复制代码 代码如下: location ~* .*\.(doc|txt|jar|zip|apk)(\?.*)?${        if ($request_uri ~* ^.*\/

linux下nginx服务器域名指定目录

一般,域名指定ip之后,需要在ip所在的机器去指定相应站点的目录,否则域名会不起作用: 下面说说linux下的nginx服务器指定目录的细节: 域名绑定目录的配置文件都放到这里: /usr/local/nginx/conf/vhost/ 在改目录下,新建一个文件,命名:域名.conf: 如:www.baidu.com.conf 内容大概如下: server { listen 80; server_name www.baidu.com; index index.html index.htm ind

nginx下根据指定路由重定向

前言: 最近在搭建vue后台,后端接口是PHP写的,线上构建好之后,需要请求其他域名下的接口,开发环境已经使用proxytable解决了接口问题,为了开发和生成的代码一致, 编译后的代码,放在nginx下运行,配置了路由重写. 项目说明: 前端页面域名 front.me,后端接口backend.me,前端访问后端接口都是请求front.me/api/controller/action,nginx配置了重定向,当检测到路由里面/api/是会重定向到 backend.me/controller/ac

Nginx配置——禁止指定user_agent

用途 你的网站访问量很大,而且服务器资源比较紧缺,因为我们的成本要稍微控制地严谨一点,所以呢,服务器稍微有点吃力,那么,网站呢它都会被搜索引擎的蜘蛛去爬取,它们去爬取的时候呢,跟咱们真人访问的行为是一样的,同样也会访问我们的数据库,同样也会耗费php资源,所以这个时候,有必须把一些不太重要的搜索引擎.蜘蛛爬虫给它禁掉. ## 编辑配置文件 [[email protected] ~]# vim /usr/local/nginx/conf/vhosts/test.conf if ($http_use

Nginx 不记录指定文件类型的日志

查看主配置文件: [[email protected] vhosts]# vim ../nginx.conf 在配置文件里: log_format    combined_realip   '$remote_addr $http_x_forwarded_for   [$time_local]' (日志格式)   (日志名字)           (两个IP,一个自己的IP,一个代理IP)     (时间) '$host           "$request_uri"        

nginx不记录指定文件类型日志

1.vim 主配置文件: vim /usr/local/nginx/conf/nginx.conf 自定义日志名称: 2.vim /usr/local/nginx/conf/vhosts/jz.conf     ---编辑虚拟主机文件 加入:      access_log /tmp/access.log xrc;      ----定义日志位置和名称 加入: location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$         ---过滤文件 { access_