Nginx限制IP访问网站:allow与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厂商文档获取。
做的过程中注意以下事项。
SSL证书快到期前续期。Let's Encrypt 90天有效期,配置自动续期但要定期检查是否成功。付费证书1年有效期,到期前1个月申请新证书更换。证书过期浏览器提示不安全,用户看到警告就会离开,影响流量和转化。
网站被黑后不要只清后门不修漏洞。清理完恶意代码一定要找入侵入口,弱密码就改密码,上传漏洞就限制上传,CMS漏洞就升级版本。不修补漏洞清除了还会被再次入侵,而且攻击者可能留了多个后门。
不要直接在生产环境试错。有条件搭测试环境,先验证操作步骤和配置效果,没问题再上生产。测试环境和生产环境配置尽量一致,PHP版本、数据库版本、服务器类型都要对应,避免测试通过生产出问题。
还有几个相关问题顺便提一下。
问:网站被黑后搜索引擎降权了能恢复吗?答:能恢复,先彻底清理恶意代码和后门,修补漏洞,然后到百度站长平台提交申诉,说明被黑已处理。持续更新原创内容,正常情况下1到4周收录和排名会逐步恢复。
问:虚拟主机没有服务器权限怎么操作?答:虚拟主机用主机面板提供的功能,文件管理器改文件,phpMyAdmin管数据库,伪静态和SSL在面板设置。大部分网站操作不需要命令行权限,只有服务器级别的配置(改PHP全局配置、装扩展)需要主机商协助。
技术问题最怕一知半解就动手改配置。这个功能涉及几个配置项联动,改一个不改另一个就会出问题。这篇文章把关联配置都列出来了,按顺序操作不会漏项。改完做一轮全面测试,确认没问题再收尾。

更新时间:2026-09-03 16:22:27