如何在nginxconfiguration中组织位置指令

我有一堆共享一个共同的父目录的url,例如

/content/a/.../... /content/b/.../... /content/c/.../... 

我目前正在做的是为他们每个人都有一个单独的位置块,但块内执行的操作是相同的。

我想知道是否只有一个单一的位置指令/content/ ,是最佳的,例如

 location ^~ /content/ { proxy_pass http://127.0.0.1:8080; proxy_redirect off; } 

但是,我应该如何处理无效请求,如/content/d/.../content/blah/等?

您可以在内容位置内使用try_file指令,如:

 location /content { try_files $uri $uri/ @pass =404; } location @pass { proxy_pass http://127.0.0.1:8080; proxy_redirect off; } 

它会检查文件,@pass位置,然后返回404,如果没有发现;

如果有效资源列表已知并且很小,那么正则expression式匹配怎么样? 就像是:

 location ~ ^/content/(a|b|c|etc)/ { proxy_pass http://127.0.0.1:8080; proxy_redirect off; }