nginx在具有特殊字符的文件上返回404

我刚刚切换到nginx作为一个静态文件服务器,它适用于绝大多数的文件,但它是在特定字符的某些文件上抛出404。

这是Kevin Worthington在Windows Server 2008 R2上运行的64位nginx版本。

我的nginx.conf条目看起来像这样…

server { server_name example.com; listen 80; 

location / static / {root / cygdrive / g / Files; 到期30天; }

  location / { proxy_pass http://127.0.0.1:8080; } } 

错误日志中的条目如下所示…

recvmsg()返回无效的辅助数据级别19或types8 2011/08/19 19:04:22 [error] 3756#0:* 1 open()“/cygdrive/g/Files/static/Pilón.jpg”failed 2:没有这样的文件或目录),客户端:12.168.24.203,服务器:example.com,请求:“GET /static/Pil%F3n.jpg HTTP / 1.1”,主机:“example.com”

如果我抓住错误中引用的path,将反斜杠交换反斜杠,并在那里折腾冒号,然后窗口将从运行菜单打开文件。 其他文件在同一个文件夹,但不包含特殊字符工作得很好。

似乎有一个与Unicode版本的nginx unicode字符的错误。 在nginx maillist中提出了一些解决方法 ,试试吧。