2人参与 • 2026-05-11 • 阿里
try_files 是 nginx 中一个非常实用的指令,用于按顺序检查文件是否存在,并返回第一个找到的文件。如果所有文件都不存在,则执行最后一个参数指定的回退操作(通常是返回错误码或转发请求)。
try_files file1 file2 ... =code|uri|@named_location;
location / {
try_files $uri $uri/ /index.html;
}/index.htmllocation / {
try_files $uri $uri/ @backend;
}
location @backend {
proxy_pass http://backend_server;
}location /images/ {
try_files /cache$uri $uri =404;
}当前请求的 uri(不包含查询参数)
表示目录,会尝试寻找目录下的索引文件(需配合 index 指令)
静态文件/路径
try_files $uri /default.html;
命名 location(@ 开头)
try_files $uri @fallback;
location @fallback {
# 处理逻辑
}错误码
try_files $uri =404; try_files $uri =403;
代理转发
try_files $uri @proxy;
location @proxy {
proxy_pass http://backend;
}location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm.sock;
}location /assets/ {
try_files /cdn-cache/$uri
/local-cache/$uri
$uri
@generate_asset;
}location / {
try_files /maintenance.html $uri $uri/ @app;
}root 或 alias 指令try_files 会内部重定向,可能改变 $uri 值❌ 不推荐(低效):
if (-f $request_filename) {
# 处理静态文件
}✅ 推荐(高效):
try_files $uri @dynamic;
添加调试日志:
location / {
try_files $uri $uri/ @backend;
error_log /var/log/nginx/try_files.log debug;
}try_files 的核心思想是 “按优先级尝试,优雅降级”,合理使用可以大大简化配置逻辑并提高性能。
到此这篇关于nginx try_files 指令常见用法示例的文章就介绍到这了,更多相关nginx try_files 指令内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论