NGINX配置中location块内的internal指令有什么作用?
Nginx配置中internal指令的作用
你给出的自定义404错误页配置如下:
error_page 404 /custom_404.html; location = /custom_404.html { root /usr/share/nginx/html; internal; }
这里internal指令的核心作用是限制这个location匹配的路径只能被Nginx内部请求访问,禁止外部用户直接通过URL访问这个路径,具体影响分为两点:
- 普通用户直接在浏览器输入
你的域名/custom_404.html时,Nginx会直接返回404状态码,不会把错误页内容返回给用户,避免错误页被单独暴露访问。 - 只有Nginx内部触发的跳转逻辑(比如你配置的404错误自动跳转)、rewrite重定向、或者其他Nginx内部生成的请求才能正常访问这个路径的资源,完全不会影响自定义错误页的正常触发展示。
如果去掉internal指令,用户就可以直接通过拼接URL的方式访问到你的404错误页,不符合常规站点的使用逻辑,也可能给恶意扫描的攻击者暴露不必要的站点信息。
内容的提问来源于stack exchange,提问作者pullhyphoonprotocol
相关产品推荐
相关产品推荐

