为什么NGINX想要使用./logs/error.log作为默认值?

时间:2012-10-22 11:06:34

标签: nginx osx-lion

我目前想在我的Rails设置中使用NGINX。我已将配置文件放在目录RAILS_ROOT/config/nginx中。这是我的配置文件,名为development.confmime.types - 文件。

我想将我的日志放在RAILS_ROOT/log - 目录中。

这是我的development.conf

worker_processes  1;

events {
    worker_connections  1024;
}

http {
  include       mime.types;
  default_type  application/octet-stream;

  # main access log
  access_log log/nginx.access.log;

  # main error log
  error_log log/nginx.error.log debug;

  sendfile      on;

  keepalive_timeout  65;

  server {
    listen 9001; #omg!
    server_name local.woman.dk;

    rewrite ^/(.*)/$ /$1 last;

    proxy_set_header  X-Real-IP  $remote_addr;
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_max_temp_file_size  0;

    location / {
      ssi on;
      proxy_pass http://127.0.0.1:3000;
    }
  }
}

我使用此命令从我的RAILS_ROOT启动NGINX:

nginx -p . -c config/nginx/development.conf

我收到以下错误:

nginx: [alert] could not open error log file: open() "./logs/error.log" failed (2: No such file or directory)

我的版本是:

[(master)]=> nginx -v
nginx version: nginx/1.2.4

我做错了吗?

2 个答案:

答案 0 :(得分:9)

MAC 上,它位于

/usr/local/logs/error.log 

我跑完后发现了这个:

nginx -V 

配置参数: - prefix = / usr / local --with-cc-opt = -Wno-deprecated-declarations --with-http_ssl_module --add-module = .. / nginx -rtmp模块/

答案 1 :(得分:8)

http://nginx.org/en/docs/ngx_core_module.html#error_log表示:

  1. 默认值为error_log logs/error.log error;
  2. 要使调试日志工作正常,需要使用--with-debug。
  3. 构建nginx

    发生了什么事情,你正在降低到默认值,我没有发现任何语法错误,所以我的猜测是你的nginx没有用--with-debug编译。

    您可以使用nginx -V检查(注意:那是大写V)