我正在尝试使用与讨论的方法非常相似的技术来设置 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;
我不知道它是否有用,但这是我能想到的唯一可以尝试的方法。
但实际上,您应该修复导致配置文件不存在的任何进程。