Skip to content

Nginxallow、deny:IP访问控制模块

Nginx 中IP访问控制模块名称为 ngx_http_access_module,该模块可以对客户端的源 IP 地址进行允许或拒绝访问控制。该模块的内置配置指令如下面表格中所示。

表:允许访问指令

<tbody>
	<tr>
		<th>名称</th>
		<th>允许访问指令</th>
	</tr>
	<tr>
		<td>指令 </td>
		<td>allow</td>
	</tr>
	<tr>
		<td>作用域</td>
		<td>http、server、location、limit_except</td>
	</tr>
	<tr>
		<td>默认值</td>
		<td>--</td>
	</tr>
	<tr>
		<td>指令说明</td>
		<td>允许指定源 IP 的客户端请求访问</td>
	</tr>
</tbody>

表:拒绝访问指令

<tbody>
	<tr>
		<th>名称</th>
		<th>拒绝访问指令</th>
	</tr>
	<tr>
		<td>指令</td>
		<td>deny</td>
	</tr>
	<tr>
		<td>作用域</td>
		<td>http、server、location、limit_except</td>
	</tr>
	<tr>
		<td>默认值</td>
		<td>--</td>
	</tr>
	<tr>
		<td>指令说明</td>
		<td>拒绝指定源 IP 的客户端请求访问</td>
	</tr>
</tbody>

配置样例如下:

location / {

deny  192.168.1.1;          # 禁止192.168.1.1

allow 192.168.0.0/24;       # 允许192.168.0.0/24的IP访问

allow 10.1.1.0/16;          # 允许10.1.1.0/16的IP访问

allow 2001:0db8::/32;

deny  all;

} Nginx 会按照自上而下的顺序进行匹配。