APTX Blog

A Moe Blog Set Up By APTX

Nginx internal 限制仅内部调用

文章目录[隐藏]

本文介绍 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 官方文档

 

本文全文转自:https://sometimesnaive.org/article/72

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注