Appearance
访问控制
访问控制可以限制特定IP或IP段访问网站,提高安全性。
基本配置
允许特定IP
nginx
location /admin/ {
allow 192.168.1.100;
deny all;
}拒绝特定IP
nginx
location /admin/ {
deny 192.168.1.100;
allow all;
}IP段控制
允许IP段
nginx
location /admin/ {
allow 192.168.1.0/24;
deny all;
}拒绝IP段
nginx
location /admin/ {
deny 192.168.1.0/24;
allow all;
}多IP控制
允许多个IP
nginx
location /admin/ {
allow 192.168.1.100;
allow 192.168.1.101;
allow 192.168.1.102;
deny all;
}拒绝多个IP
nginx
location /admin/ {
deny 192.168.1.100;
deny 192.168.1.101;
deny 192.168.1.102;
allow all;
}完整配置
管理后台访问控制
nginx
server {
listen 80;
server_name www.example.com;
root /var/www/html;
# 管理后台
location /admin/ {
allow 192.168.1.0/24;
allow 10.0.0.0/8;
deny all;
try_files $uri $uri/ /index.php?$query_string;
}
# API接口
location /api/ {
allow 192.168.1.0/24;
deny all;
proxy_pass http://backend;
}
}基于地理位置的访问控制
使用GeoIP模块
nginx
geo $allowed_country {
default no;
CN yes;
US yes;
}
server {
listen 80;
server_name www.example.com;
if ($allowed_country = no) {
return 403;
}
root /var/www/html;
}动态访问控制
基于变量的访问控制
nginx
set $allow 0;
if ($remote_addr ~* "192.168.1.") {
set $allow 1;
}
location /admin/ {
if ($allow = 0) {
return 403;
}
}常见问题
访问被拒绝
原因: IP不在允许列表中
解决: 检查IP配置
nginx
allow 192.168.1.0/24;规则不生效
原因: 规则顺序错误
解决: 调整规则顺序
nginx
allow 192.168.1.0/24;
deny all;总结
访问控制的关键点:
- allow:允许特定IP或IP段
- deny:拒绝特定IP或IP段
- 规则顺序:先allow后deny
- IP段:使用CIDR表示法
- 地理位置:使用GeoIP模块
合理配置访问控制,提高网站安全性。