> For the complete documentation index, see [llms.txt](https://bohans.gitbook.io/devops/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bohans.gitbook.io/devops/ngnix/ji-chu-zhi-shi/2.-nginx-pei-zhi/2.2-pei-zhi-zhi-ling/deny.md).

# deny

<mark style="color:blue;">**deny**</mark>指令的作用和allow指令相反，它用于设置<mark style="color:blue;">**禁止访问Nginx的客户端IP**</mark>，语法结构为：

```nginx
deny address | CIDR | all;
```

* <mark style="color:blue;">**address**</mark>：禁止访问的客户端的IP，不支持同时设置多个。如果有多个IP需要设置，需要重复使用deny指令。
* <mark style="color:blue;">**CIDR**</mark>：禁止访问的客户端的CIDR地址，例如202.80.18.23/25，前面是32位IP地址，后面“/25”代表该IP地址中前25位是网络部分，其余位代表主机部分。
* <mark style="color:blue;">**all**</mark>：代表禁止所有客户端访问。

{% hint style="info" %} <mark style="color:blue;">**这个指令可以在http块、server块或者location块中配置**</mark>
{% endhint %}

{% hint style="success" %}

<pre class="language-nginx" data-line-numbers><code class="lang-nginx"><strong>location / {
</strong><strong>    deny  192.168.1.1;
</strong>    allow  192.168.1.0/24;
    deny  all;
}
</code></pre>

在上面的配置示例中我们首先配置禁止192.168.1.1访问Nginx，然后配置允许192.168.1.0/24访问Nginx，最后又使用all配置禁止所有IP的访问。那么，<mark style="color:orange;">**192.168.1.0/24客户端到底可不可以访问呢？**</mark>

<mark style="color:red;">**是可以的。**</mark>Nginx配置在解析的过程中，遇到deny指令或者allow指令是**按照顺序**对当前客户端的连接进行访问权限检查的。如果**遇到匹配的配置**时，则**停止继续向下搜索**相关配置。因此，当192.168.1.0/24客户端访问时，Nginx在第3行解析配置发现允许该客户端访问，就不会继续向下解析第4行了。
{% endhint %}
