我有一堆共享一个共同的父目录的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; }