网站IP限制访问配置:Nginx与Apache deny规则_IP限制_访问控制_安全防护
昨天又有站长问IP限制怎么弄。这个问题每个月都能碰到好几次,干脆写一篇完整的操作指南。从准备工作到收尾验证,把所有环节写清楚,以后直接发链接就行。
CDN环境下获取真实访客IP需要额外配置。CDN回源时带的是CDN节点IP,不配置的话日志里全是CDN IP,IP限制也会失效。Nginx用real_ip模块,Apache用mod_remoteip。
把整个过程拆成几步,每步做什么写清楚。
Nginx限制IP访问用allow和deny。location /admin { allow 192.168.1.0/24; deny all; }只允许指定网段访问后台。单个IP allow 1.2.3.4,IP段用CIDR格式。配置完nginx -t测试再reload。被拒绝的IP返回403。
Apache用.htaccess或者主配置。Order Deny,Allow,Deny from all,Allow from 1.2.3.4。或者用Require ip 1.2.3.4(2.4版本语法)。.htaccess需要AllowOverride All才生效。修改后不用重启,即时生效。
自动封禁攻击IP用fail2ban。自定义jail监控Nginx访问日志,匹配SQL注入、XSS、扫描器特征,匹配次数超过阈值就封禁IP。action用iptables或者firewall-cmd。封禁时间设1小时到24小时,严重攻击永久封禁。
CDN环境下获取真实IP。Nginx装real_ip模块,配置set_real_ip_from CDN节点IP段,real_ip_header X-Forwarded-For。这样日志和IP限制用的都是访客真实IP,而不是CDN节点IP。CDN节点IP段从CDN厂商文档获取。
操作前先看这些注意事项,能避免大部分问题。
CDN环境下改配置注意缓存。改了文件要刷新CDN缓存,否则用户看到旧内容。HTTPS证书要在CDN和源站都装,回源协议要对应。获取真实IP要配置real_ip,否则IP限制和日志都不准。
容灾备份要定期演练。备份完不验证,真到要用的时候发现备份损坏就晚了。每月选一个备份在测试环境恢复,确认数据完整、功能正常。恢复流程也要演练,知道每一步怎么做,真出故障才能快速恢复。
API接口和第三方服务要做异常处理。调用外部接口加超时和重试,返回错误要有降级方案,不要因为第三方服务挂了导致自己网站崩溃。密钥和Token不要硬编码在代码里,放配置文件并且不要提交到公开代码仓库。
处理过程中有人问得比较多的问题,整理在下面。
问:数据库密码忘记了怎么办?答:有服务器权限的话MySQL安全模式启动重置密码,或者看网站配置文件里存的数据库密码。宝塔面板在数据库管理里能看密码(点眼睛图标)。没服务器权限找主机商重置。
问:网站需要装安全狗之类的防护软件吗?答:看情况。服务器层面防火墙和fail2ban是基础,网站层面WAF能拦截常见攻击。云服务器厂商自带的安全组和云WAF够用,不一定装第三方防护软件。第三方软件占资源,配置不当还可能误封,根据实际需求选择。
以上是完整处理流程。网站运维遇到问题很正常,关键是按步骤排查、做好备份、操作后验证。大部分问题都有标准解法,照着流程走不会出大错。平时多积累操作记录,下次遇到同类问题直接套用,效率高很多。

更新时间:2026-08-27 12:16:02