nginx 使用可能不存在的映射文件进行重定向

nginx 使用可能不存在的映射文件进行重定向

我正在尝试使用与讨论的方法非常相似的技术来设置 nginx 重定向在这个问题中

我还使用以下代码设置了默认值:

map $arg_request_id $url_prefix{
  default /old;
  include /a/b/c/redirect_urls.map;
}

默认是当出现任何问题时我想要使用的后备方法。redirect_urls.map 文件会定期更新。现在,我遇到的问题是,有些情况下会出现问题,redirect_urls.map 文件会被删除(或者是一台新机器,还没有 redirect_urls.map 文件)。我遇到的问题是,当我运行

>>> nginx -s reload 
nginx: [emerg] open() "/a/b/c/d/redirect_urls.map" failed (2: No such file or directory) in /etc/nginx/nginx.conf:22

如果文件不存在,我该如何做才能让 nginx 只选择默认值,并始终将 $url_prefix 设置为 /old,而不是给出文件未找到错误? 在这种情况下 try_files 有帮助吗?

答案1

你可以尝试

include /a/b/c/*.map;

我不知道它是否有用,但这是我能想到的唯一可以尝试的方法。

但实际上,您应该修复导致配置文件不存在的任何进程。

相关内容