本文介绍 Nginx 中 internal 的用法。
目的:建立一个仅内部可用的 server 或 location,使用 internal 指令是一种有效的方式。
internal
internal
指令用于指定只允许来自本地 Nginx 的内部调用,来自外部的访问会直接返回 404 not found 状态。
syntax: internal; context: server, location example: internal;
举个例子,internal 可以这样指定:
location /internal/ { internal; proxy_pass http://localhost:8000/; }
直接在浏览器访问网站 /internal/ 路径,你会发现服务端返回了 404 状态。
那么使用 internal 建立内部块后,可以怎么调用呢?本文介绍两种基于内部重定向的方式:其中一种使用 Nginx rewrite 模块,另一种方式则是利用 Openresty 的 ngx.exec 模块。
1、rewrite
location / { rewrite .* /internal/ last; }
其中 last 或 break 均可提供内部重定向。
2、ngx.exec
location / { access_by_lua_block { return ngx.exec("/internal/") } }
其中 ngx.exec 可参考 Openresty 官方文档
文章评论