龙空技术网

NGINX中如何根据客户端IP地址控制访问

IT运维社区 289

前言:

当前兄弟们对“nginx请求ip地址”可能比较关心,你们都想要知道一些“nginx请求ip地址”的相关内容。那么小编同时在网摘上网罗了一些有关“nginx请求ip地址””的相关知识,希望同学们能喜欢,姐妹们一起来了解一下吧!

NGINX Web 服务器安全加固有多种方法,其中一种是基于 IP 地址的访问控制。本指南解释了如何通过在 NGINX 中基于客户端的 IP 地址控制访问来保护 Web 应用程序。

NGINX中基于客户端IP地址控制访问

NGINX 中的ngx_http_access_module模块可以限制对某些客户端 IP 地址的访问。您可以使用允许和拒绝指令激活它。

顾名思义,allow 指令允许访问特定的 IP 地址、网络、Unix 套接字或全部(前面实体的关键字),而拒绝指令拒绝访问特定的 IP 地址、网络、Unix 套接字或全部。

这两个指令在HTTP、服务器、位置以及limit_except上下文中都是有效的。下面是在位置上下文中使用允许和拒绝指令来限制对 API 服务的访问的示例:

upstream app_api {	keepalive 100;	server 10.1.1.50:5000;	server 10.1.1.71:5001;}server {    listen 80;    server_name _;    access_log /var/log/nginx/app_api_access.log main;    error_log /var/log/nginx/app_api_error.log debug;    root /usr/share/nginx/html/;        location / {        try_files $uri /api;    }    location /api {	proxy_read_timeout 3600;    	proxy_connect_timeout 3600s;	keepalive_timeout 15;	send_timeout 300;            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;            proxy_set_header X-Forwarded-Proto $scheme;            proxy_set_header Host $http_host;            proxy_redirect off;	proxy_http_version 1.1; 	proxy_set_header Connection "";            proxy_pass ;		#list of allowed IPs to access API	allow 10.10.10.20;	allow 10.10.40.29;	allow 192.168.2.23;  	allow 192.168.10.0/24;   	deny  all;    }}

在上面的示例中,仅允许10.10.10.20、10.10.40.29、192.168.2.23 IP 地址以及192.168.10.0/24网络中的任何 IP 地址访问任何代理 API 端点的请求。来自任何其他 IP 地址或网络或 UNIX 域套接字的请求将被拒绝。

NGINX 将向客户端响应 403 禁止错误,如图所示。

当您检查/var/log/nginx/app_api_error.log错误日志时,您会发现类似于以下屏幕截图中的条目:

# cat /var/log/nginx/app_api_error.log debug

本指南在NGINX中基于客户端IP地址控制访问到此结束,你比较常用那一种呢?

标签: #nginx请求ip地址