让Nginx从多个来源提供静态文件

Fla*_*ien 11 nginx static-files

我有一个Nginx配置工作正常,并正确提供静态文件:

location /static/ {
    alias /tmp/static/;
    expires 30d;
    access_log off;
}
Run Code Online (Sandbox Code Playgroud)

但我现在要做的是,如果静态文件不存在/tmp/static,Nginx会查找该文件/srv/www/site/static.我不知道如何实现这一点,我尝试过一些事情try_files,但我不知道如何正确使用它.

kol*_*ack 10

您可以将根设置为要使用的两个路径的公共前缀(在本例中为/),然后仅指定try_files args中的其余路径:

location /static/ {
  root /;
  try_files /tmp$uri /srv/www/site$uri =404;
  expires 30d;
  access_log off;
}
Run Code Online (Sandbox Code Playgroud)

在某个位置使用root /可能看起来令人不安,但try_files将确保不会提供/ tmp/static或/ srv/www/site/static之外的文件.