Tôi đang cố gắng hạn chế quyền truy cập vào các tài nguyên đằng sau Nginx dựa trên IP của máy khách được truyền trong các tiêu đề X-Forwarded-for. Nginx đang chạy trong một thùng chứa trên Cụm Kubernetes trên Nền tảng đám mây của Google và ips khách hàng thực sự chỉ được truyền trong tiêu đề x-chuyển tiếp-cho
Cho đến nay tôi đã quản lý để làm điều đó cho một IP duy nhất với mã sau:
set $allow false;
if ($http_x_forwarded_for ~* 123.233.233.123) {
set $allow true;
}
if ($http_x_forward_for ~* 10.20.30.40) {
set $allow false;
}
if ($allow = false) {
return 403;
}
Nhưng làm thế nào tôi có thể làm điều đó cho toàn bộ phạm vi của IP? Chỉ định hàng trăm IP bằng tay không có ý nghĩa nhiều.
Mọi sự giúp đỡ đều được đánh giá cao
location / { real_ip_header X-Forwarded-For; set_real_ip_from 10.0.0.0/8; real_ip_recursive on; allow xxx.xxx.xxx.xxx;