nginx禁止ip访问,只允许域名访问

本文讲述了Nginx服务器配置中如何通过Host参数来区分IP直接访问和域名访问,对于非域名访问的情况,Nginx会返回403错误,确保了域名访问的正常处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 无论ip直接访问,还是通过域名访问,最终都是通过ip访问到服务器
  2. 浏览器访问时会携带Host参数,通过ip访问时携带的是ip,通过域名访问时携带的是域名
  3. nginx收到请求后判断host的值,如果判断出不是通过域名访问的则拒绝,通过域名访问的则正常放行,最终实现

ningx配置如下

     server {
        listen       9001;
        server_name  xxx.xxx.com;
        client_max_body_size 2000M;

    	# 一定要注意空格,没有空格配置失效
        if ( $host != 'xxx.xxx.com' ) {
            return 403;
        }

        location / {
            root   htmlh5;
            index  index.html index.html;
        }

    }

允许多个host访问


    map $host $is_allowed_host {
        default 0;
        terminal.hqterminal.com 1;
        "114.94.20.15" 1;
    }
     server {
        listen       9001;
        server_name  xxx.xxx.com;
        client_max_body_size 2000M;

    	 # 使用映射变量检查Host是否合法
        if ($is_allowed_host = 0) {
            return 403;  # 如果Host不在允许列表中,则返回403
        }
        location / {
            root   htmlh5;
            index  index.html index.html;
        }

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值