如何使nginx-gridfs正确使用正则表达式位置匹配的结果

时间:2011-10-13 19:08:53

标签: nginx gridfs

简而言之,这不起作用:

location ~* /grid/(.+)/ {
         gridfs filestore field=filename type=string root_collection=storage.$1;
}

这是使用https://github.com/mdirolf/nginx-gridfs

它存在多个问题。这只是一个FYI,因为我不认为它可以通过位置正则表达式完成,因为:

  1. group不是进程,$ 1被逐字用作“storage。$ 1”集合名称
  2. 不知何故,可能在C代码中,通过删除正则表达式中指定的确切字符数,从匹配中删除字符来拾取文件名。意思是“/grid/(.+)/”是10个字符长,这是从整个网址中删除了多少个字符(显然是减去域名)。我已经对此进行了相当多的测试(仅仅是通过C代码),这就是它正在做的事情。
  3. 我认为这仍然可以通过某种方式重写或另一个nginx配置来完成。

    作为最后的手段,我会联系到项目维护者,但是nginx的配置似乎足够灵活,可以解决这些问题,因为这可以像宣传的那样工作:

    location ~* /grid/ABC/ {
             gridfs filestore field=filename type=string root_collection=storage.ABC;
    }
    

0 个答案:

没有答案