对性能有何影响?在一个 Nginx 实例上托管数以万计的虚拟主机是否可行?延迟会增加多少?
我们计划为用户提供自定义域,并为每个用户分配不同的 chroot,并直接从 nginx 提供 js/css 等静态资产,我们希望每个 nginx 实例托管尽可能多的用户。
该HttpMapModule文件指出:
从 1.0.4 开始,可以通过在模式前加上 ~* 来使用不区分大小写的正则表达式。
并举例:
map $uri $myvalue {
/aa /mapped_aa;
~^/aa/(?<suffix>.*)$ $suffix;
}
Run Code Online (Sandbox Code Playgroud)
我更新为nginx/1.2.7使用它,并且天真的正则表达式可以正常工作,但变量却不能。当我尝试上述语法时,出现错误:
nginx: [emerg] pcre_compile() failed: unrecognized character after (?< in "^/aa/(?<suffix>.*)$" at "suffix>.*)$"
Run Code Online (Sandbox Code Playgroud)
我还尝试了以下语法,但都没有奏效:
~^(.*)$ $1;
~^(.*)$ \1;
Run Code Online (Sandbox Code Playgroud)
但他们都没有工作。
有谁知道如何让变量在 HttpMapModule 中的正则表达式中工作?