Nginx禁止直接經過IP地址訪問網站以及限制IP登錄某目錄(關閉默認站點或空主機頭)

這篇文章主要介紹了Nginx中禁止使用IP訪問網站的配置實例,通常在備案時可能須要這種設置,須要的朋友能夠參考下
 

國內由於備案的緣由,全部服務器都要禁止使用IP訪問網站。不然,若是容許使用IP訪問網站,那隨便解析一個域名到該IP,訪問該域名就能夠打開網站了。這是一個極大的風險!Nginx中能夠很方便的來解決這個問題,小菜鳥來跟你們一塊兒探討一下。nginx

以下的配置項,能夠設置容許使用IP訪問網站。服務器

 

server {
    listen       80;
    server_name  "";
}

 

這裏至關因而綁定了一個空的主機頭,因而任意主機頭,只要是指向這個IP的均可以打開網站了。

 

也能夠把這些流量收集起來,導進到本人的網站,只需作如下跳轉設置就能夠: 網站

server { 

listen 80 default; 
rewrite ^(.*) http://www.abc.com; 
} 

 

 

若是須要Nginx禁止使用IP訪問網站,能夠定義以下主機,丟棄這些請求:spa

 

server {
    listen 80default;
    server_name "";
    return  444;
}

 

 或者code

server {
listen 80 default;
server_name _;
return 500;
}

 

 

在這裏,咱們設置主機名爲空字符串以匹配未定義「Host」頭的請求,並且返回了一個nginx特有的,非http標準的返回碼444,它能夠用來關閉鏈接。

 

從0.8.48版本開始,這已成爲主機名的默認設置,因此能夠省略server_name "",即以下的配置便可:server

server {
    listen   80;
    return   444;
}

 

 

限制某IP登錄網站
allow all;blog

deny all;ip

其中網段的寫法是這樣的: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

相關文章
相關標籤/搜索