• Nginx禁止直接通过IP地址访问网站以及限制IP登陆某目录(关闭默认站点或空主机头)


    这篇文章主要介绍了Nginx中禁止使用IP访问网站的配置实例,一般在备案时可能需要这种设置,需要的朋友可以参考下
     
    
    国内因为备案的原因,所有服务器都要禁止使用IP访问网站。否则,如果允许使用IP访问网站,那随便解析一个域名到该IP,访问该域名就可以打开网站了。这是一个极大的风险!Nginx中可以很方便的来解决这个问题,小菜鸟来跟大家一起探讨一下。
    
    如下的配置项,可以设置允许使用IP访问网站。
    
     
    
    server {
        listen       80;
        server_name  "";
    }
    
     
    这里相当于是绑定了一个空的主机头,于是任意主机头,只要是指向这个IP的都可以打开网站了。
    
     
    
    也可以把这些流量收集起来,导进到本人的网站,只需做以下跳转设置就可以: 
    
    server { 
    
    listen 80 default; 
    rewrite ^(.*) http://www.abc.com; 
    } 
    
     
    
     
    
    如果需要Nginx禁止使用IP访问网站,可以定义如下主机,丢弃这些请求:
    
     
    
    server {
        listen 80default;
        server_name "";
        return  444;
    }
    
     
    
     或者
    
    server {
    listen 80 default;
    server_name _;
    return 500;
    }
    
     
    
     
    在这里,我们设置主机名为空字符串以匹配未定义“Host”头的请求,而且返回了一个nginx特有的,非http标准的返回码444,它可以用来关闭连接。
    
     
    
    从0.8.48版本开始,这已成为主机名的默认设置,所以可以省略server_name "",即如下的配置即可:
    
    server {
        listen   80;
        return   444;
    }
    
     
    
     
    
    限制某IP登陆网站
    allow all;
    
    deny all;
    
    其中网段的写法是这样的:192.168.1.0/24这样的形式。
    
    deny 192.168.1.11;
    deny 192.168.1.123;
    deny 10.0.1.0/24;
    
     
    如果你想实现这样的应用,除了几个IP外,其他全部拒绝,
    那需要你在ip.balcklist中这样写
    然后在在nginx的配置文件nginx.conf中加入:include blocksip.conf; 或者直接在相应虚拟主机server{中填写}
    
    allow 1.1.1.1; 
    allow 1.1.1.2;
    allow 192.168.1.0/24;
    deny all; 
    
     
     
    如果你想实现这样的应用,禁止几个IP,其他通过,
    
    deny 1.1.1.1;
    deny 192.168.1.0/24;
    allow all;
    
     
    
    单独网站屏闭IP的方法:
    
    在server"{}",在这个大括号内加入deny IP地址是限制某IP地址访问;allow IP地址是只允许某IP地址访问;
    
    #屏蔽单个IP的命令是
    deny 123.45.6.7
    #封整个段即从123.0.0.1到123.255.255.254的命令
    deny 123.0.0.0/8
    #封IP段即从123.45.0.1到123.45.255.254的命令
    deny 124.45.0.0/16
    #封IP段即从123.45.6.1到123.45.6.254的命令是
    deny 123.45.6.0/24
  • 相关阅读:
    Linux Shell编程(25)——I/O 重定向
    Linux Shell编程(24)——命令替换
    Linux Shell编程(23)——文本处理命令
    Linux Shell编程(22)——时间/日期 命令
    Linux Shell编程(21)——复杂命令
    玩转大数据,顺利渡过34岁裁退危机!
    传统企业IT架构如何能更好的支撑企业互联网业务的转型
    业务技术协同线上化的硬盘式研发管理实践
    做一个美女图片大全那种的网站怎么提高网站流量?
    Eclipse曾经的行业之王,为何堕落了?
  • 原文地址:https://www.cnblogs.com/suway/p/7232583.html
Copyright © 2020-2023  润新知