Nginx在看似有效的path上返回404

我试图直接提供静态文件,像这样的位置块:

location /static/ { alias /opt/graphite/webapp/content/; } 

但是,当我提出任何匹配/ static /的请求时,我得到一个404错误,并在错误日志中这样的消息:

 2016/09/14 09:28:47 [error] 66068#0: *4 open() "/opt/graphite/webapp/content/js/completer.js" failed (2: No such file or directory), client: my.ip.add.ress, server: server.domain, request: "GET /static/js/completer.js HTTP/1.1", host: "server.ip", referrer: "http://server.ip/composer?" 

问题是在错误消息中给出的path是完全有效的。 该文件存在。 这不是声称权限被拒绝,所以它似乎不是一个权限问题。 代理应用程序的位置正常工作。 我不知所措,而类似的post似乎都属于套接字。

在OpenBSD 6.0上运行nginx 1.10.1。

想通了。 nginx在OpenBSD中的分发默认是在/var/www/进行chroot,否则会拒绝整个文件系统访问该部分。 这可以通过直接用-u标志启动nginx或者在/etc/rc.d/nginx命令中添加同样的标志来绕开。

或者,一旦你知道发生了什么事,把所有东西都移动到chroot中是非常简单的。