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

我目前想在我的Rails设置中使用NGINX。 我已经将configuration文件放在目录RAILS_ROOT/config/nginx 。 这是我的configuration文件放在名为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 

我做错了什么?

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

  1. 缺省值是error_log logs/error.log error;
  2. 为了使调试日志工作,nginx需要使用–with-debug.`来构建

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

你可以用nginx -V (注意:这是大写的V)

MAC上,

 /usr/local/logs/error.log 

运行后我发现这个:

 nginx -V 

配置参数:–prefix = / usr / local –with-cc-opt = -Wno-deprecated-声明–with-http_ssl_module –add-module = .. / nginx-rtmp-module /