在/mp / log on tmpfs上使用Nginx

时间:2012-05-08 19:55:35

标签: logging nginx tmpfs

我将开发机器设置为使用/ var / log的tmpfs。鉴于此,在每次启动时,内容都是空白的,并逐渐填充了记录其内容时创建的任何进程。

问题是(根据我对错误消息的解释):nginx非常不愿意只创建它自己的日志目录(在这种情况下是/ var / log / nginx),所以在启动过程中它不断抛出我的错误:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
2012/05/08 21:42:35 [emerg] 2368#0: open() "/var/log/nginx/error.log" failed (2: No such file or directory)
nginx: configuration file /etc/nginx/nginx.conf test failed

一旦我创建了dir,一切正常。 有没有办法告诉nginx(至少尝试)创建日志目录?

2 个答案:

答案 0 :(得分:3)

作为脚本/etc/init.d/nginx中do_start函数的第一行,添加以下命令:

# Create the folder "nginx" in /var/log otherwise nginx can't start
mkdir -p /var/log/nginx

我不喜欢这个解决方案,但这也是我发现的最简单/最快的。

此致

编辑 - 如果使用Debian,init.d脚本有点不同。 " mkdir"第一行"开始":

start)
    mkdir -p /var/log/nginx

答案 1 :(得分:0)

我意识到这个帖子比小行星上的泥土还要古老,但我想在这里提供这个答案,以供后代勇敢的搜索者使用,这样他们就可以避免我刚刚让自己经历的辛劳时间。

如果您收到消息:

ws.send(json.dumps(params))
while True:
    result = ws.recv()
    print(result)
    time.sleep(1)
    converted = json.loads(result)

确保你的 var/log 文件夹没有设置为 tmpfs!!! 我已经设置了这种方式来减少对我系统中 SD 卡的写入,这意味着每次 nginx开始时,它在 /var/log/nginx 中找不到日志或 nginx 文件夹 - 所以它失败并退出。如果看到/etc/fstab中输入了/var/log,注释掉,重启,手动创建nginx文件夹ONCE(我也手动创建了error.log和access.log(空白文件))并重启nginx服务。从那时起,您的 nginx 服务器将运行良好(除非您执行其他操作来破坏它,但那是针对另一个线程的)。