Windows nginx配置赢得';不要交付静态资产
我希望通过虚拟目录交付静态资产,但我遇到了以下两个问题Windows nginx配置赢得';不要交付静态资产,windows,nginx,static,assets,Windows,Nginx,Static,Assets,我希望通过虚拟目录交付静态资产,但我遇到了以下两个问题 我被重定向到一个URL,其中nginx希望在文件名和 系统认为我需要一个目录列表而不是一个文件,这导致nginx做了错误的事情 error.log文件中的示例: 2014/04/24 11:21:37 [error] 6808#6952: *15 directory index of "E:/fileserver/intranet/" is forbidden, client: 192.168.110.79, server: intraTe
2014/04/24 11:21:37 [error] 6808#6952: *15 directory index of "E:/fileserver/intranet/" is forbidden, client: 192.168.110.79, server: intraTest, request: "GET /intraStatic/employees/0C0C3E08-5056-A300-0E2C2FF5D437C6A3.png/ HTTP/1.1", host: "intraTest"
我的配置文件中的代码段:
location ~ /intraStatic/ {
autoindex off;
alias e:/fileserver/intranet/;
break;
}
由于日志包含别名中提到的路径,我知道位置块不会被忽略,但我无法访问其中的文件,即使文件系统权限很好,并且文件存在并且没有被任何东西损坏
由于谷歌只是回复结果,而每一个结果都比之前的结果更无用,我只能希望这里的人能对此有所了解
提前感谢您的回复 来自ngx_http_核心模块: 如果位置由以斜杠字符结尾的前缀字符串定义,并且请求由proxy_pass、fastcgi_pass、scgi_pass、uwsgi_pass或memcached_pass中的一个进行处理,则响应URI等于此字符串但不带尾随斜杠的请求时,代码为301的永久重定向将返回到请求的URI,并附加斜杠。如果不需要这样做,可以这样定义URI和位置的精确匹配: 因此,请尝试:
location ~ /intraStatic {
谢谢大家的回复 当我几乎沮丧地浏览一个被注释掉的应用程序后面的Tomcat服务器时,我突然想到使用一种更为暴力的解决方案,因为上面的建议在我的情况下似乎不起作用 最后,我重命名了文件系统文件夹,并采用了以下方法:
location ~ /intraStatic/ {
autoindex off;
root e:/fileserver/;
break;
}
无论如何,感谢您抽出时间帮助我找到解决方案。我已经尽可能地精简了此服务器的配置,但问题仍然存在:我看不到任何可能导致使用尾部斜杠重定向到url的内容。可能是在注释掉的块中的某个地方。我已经注释掉了不相关的内容,停止了服务,确保没有孤立的nginx进程仍在运行,并在问题仍然存在时重新启动它,因此缩短了版本。您的nginx进程有权读取有问题的路径吗?正如我上面提到的,进程所属的服务具有必要的权限,这就是为什么我对该消息感到如此惊讶。此位置由regexp定义,而不是前缀字符串。我忽略了这一点。但是上面定义的尾部斜杠行为是否仍然适用?它不应该适用。但作者并没有给出完整的配置,所以我没什么可说的了。
location ~ /intraStatic/ {
autoindex off;
root e:/fileserver/;
break;
}