如何在洪泛日志中停止前景中的dockerized nginx?

时间:2016-05-25 06:08:01

标签: ruby-on-rails nginx docker supervisord

我在由supervisord管理的docker容器中运行nginx和unicorn 所以,supervisord是docker命令。它反过来产生nginx和独角兽。 Unicorn通过套接字与nginx对话。 nginx侦听端口80.

我还有一个logspout docker容器正在运行,基本上通过监听docker.sock将所有docker日志传递给papertrail。

问题是nginx不断向日志中喷出数以千计的普通条目:

172.31.45.231 - - [25/May/2016:05:53:33 +0000] "GET / HTTP/1.0" 200 12961 0.0090

我正在尝试禁用它。

到目前为止我已经:

  1. access_logs /dev/null;和vhost文件中设置nginx.conf

  2. 试图告诉supervisord停止记录请求

    [程序:nginx的] command = bash -c“/ usr / sbin / nginx -c /etc/nginx/nginx.conf” stdout_logfile =的/ dev / null的 stderr_logfile =的/ dev / null的

  3. 试图告诉supervisord将日志发送到syslog而不是stdout:

    [程序:nginx的] command = bash -c“/ usr / sbin / nginx -c /etc/nginx/nginx.conf” stdout_logfile =日志 stderr_logfile =日志

  4. 将Unicorn中的日志级别设置为rails代码中的警告,并通过env var。

  5. Full supervisord conf:

    [supervisord]
    nodaemon=true
    loglevel=warn
    
    
    [program:unicorn]
    command=bundle exec unicorn -c /railsapp/config/unicorn.rb
    process_name=%(program_name)s_%(process_num)02d
    numprocs=1
    stdout_logfile=/dev/stdout
    stdout_logfile_maxbytes=0
    redirect_stderr=true
    
    
    [program:nginx]
    command=bash -c "/usr/sbin/nginx -c /etc/nginx/nginx.conf"
    stdout_logfile=/dev/null
    stderr_logfile=/dev/null
    

1 个答案:

答案 0 :(得分:0)

您可以尝试change nginx log level并使用:

access_log  off;

目标仍然是修改nginx图像使用的nginx.conf