You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Nginx配置实现网站仅允许域名访问、禁止IP直接访问

Nginx 仅允许域名访问配置修改方案

你无需修改现有配置,只需要在现有两个server块的最前面,新增两个默认请求捕获的server块即可,逻辑是所有未匹配到域名avoe.com的请求(包括直接用IP访问的请求)都会被这两个默认块拦截,直接返回拒绝访问的状态码。

注意:如果你的nginx配置里其他server块已经配置了default_server参数,需要先删除原有default_server标记,再添加下面的两个默认拦截块。

操作步骤

1. 新增80端口默认拦截块

server {
    listen 80 default_server;
    server_name _;
    # 直接返回403禁止访问,也可以换成return 444直接断开连接不返回任何内容
    return 403;
}

2. 新增443端口默认拦截块

server {
    listen 443 ssl default_server;
    server_name _;
    # 复用你现有的证书即可,用户用IP访问HTTPS时浏览器会先提示证书不匹配,不影响拦截效果
    ssl_certificate             /etc/ssl/__reksoft_ru.crt;
    ssl_certificate_key         /etc/ssl/private.key;
    return 403;
}

3. 生效配置

保存配置文件后执行以下命令验证配置正确性:
nginx -t
如果提示syntax is ok、test is successful,再执行重载命令生效:
nginx -s reload

配置生效后,直接输入IP访问站点会被拦截返回403,只有通过域名avoe.com访问才能正常加载站点内容。

内容的提问来源于stack exchange,提问作者Артур Вартанян

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 14:45:06