是否可以将当前状态代码用作 中的参数try_files?
例如,我们尝试提供特定于主机的 503 静态响应,或者如果未找到则提供服务器范围的回退:
error_page 503 @error503;
location @error503 {
root /path_to_static_root/;
try_files /$host/503.html /503.html =503;
}
Run Code Online (Sandbox Code Playgroud)
有许多这样的指令,因此执行以下操作会很方便:
error_page 404 @error
error_page 500 @error
error_page 503 @error
location @error {
root /path_to_static_root/;
try_files /$host/$status.html /$status.html =$status;
}
Run Code Online (Sandbox Code Playgroud)
但是变量文档没有列出我们可以用来做这件事的任何东西。
是否有可能,或者是否有其他方法可以做到这一点?
你的例子有无限循环。
也许,你想要这样的东西:
error_page 404 @error404;
error_page 500 @error500;
error_page 503 @error503;
location @error404 {
root /path_to_static_root/;
try_files /$host/404.html /404.html =404;
}
location @error500 {
root /path_to_static_root/;
try_files /$host/500.html /500.html =500;
}
location @error503 {
root /path_to_static_root/;
try_files /$host/503.html /503.html =503;
}
Run Code Online (Sandbox Code Playgroud)
..它会比使用变量运行得更快。
NGINX 常见问题解答:是否有正确的方法来使用 nginx 变量来缩短配置部分,将它们用作宏以使部分配置作为模板工作?
更新:
社区 wiki 不是文档。来自官方文档:
$status- 响应状态(1.3.2、1.2.2)
@ http://nginx.org/en/docs/http/ngx_http_core_module.html#variables
| 归档时间: |
|
| 查看次数: |
6029 次 |
| 最近记录: |