nginx,仅允许某些IP访问URL前缀

nginx,仅允许某些IP访问URL前缀

在 nginx 中,如何通过 IP 地址限制对某个 URL 前缀的访问。即“只允许这些 IP 访问$URL?”。

我有一个location … {指令,但它看起来像nginx allow&deny不做任何工作locations

我希望所有 IP 地址都能访问服务器的所有部分,但我只希望少数几个 IP 地址能够访问此 URL 前缀

在 Uuntu Linux 22.04 上通过 apt 安装 nginx v 1.18.0

答案1

要根据 IP 地址限制对 Nginx 中特定 URL 前缀的访问,您可以在块中使用allowand指令。指令指定允许哪些 IP,而指令阻止所有其他 IP。您可以这样配置它:denylocationallowdeny

  • 定义一个location与您的 URL 前缀匹配的块。
  • 在此块内,使用allow您想要授予访问权限的每个 IP 地址。
  • 用于deny all阻止所有其他 IP 地址。

以下是 Nginx 的示例配置:

server {
    # ... other server config ...

    location /your_url_prefix/ {
        allow 192.168.1.100;   # Allow this IP
        allow 192.168.1.101;   # Allow another IP
        deny all;              # Deny all other IPs

        # ... other location config ...
    }
}

在此示例中,将 替换/your_url_prefix/为您的特定 URL 前缀,并将192.168.1.100替换192.168.1.101为您要允许的 IP 地址。更新配置后,请确保重新加载 Nginx 以应用更改。

  • allow摘要:配置 Nginx 以通过使用块内的 IP和deny指令来限制对特定 URL 前缀的访问location

相关内容