Nginx禁用IP和IP段功能如何實現

Nginx是一款輕量級的Web服務器、反向代理服務器、電子郵件(IMAP/POP3)代理服務器,其特點是佔有內存少,併發能力強,此外Nginx還能禁止某個IP或IP段訪問,防網站被攻擊。下面就來看下Nginx如何實現封禁IP及IP段功能。

、禁用IP和IP段

Nginx的ngx_http_ccess_module 模塊可以封配置內的ip或者ip段,語法如下:

deny IP;

deny subnet;

llow IP;

llow subnet;

# block ll ips

deny ll;

# llow ll ips

llow ll;

如果規則之間有衝突,會以最前面匹配的規則爲準。

2、配置禁用ip和ip段

下面說明假定nginx的目錄在/use/locl/nginx/。

首先要建一箇封ip的配置文件blockips.conf,然後i blockips.conf編輯此文件,在文件中輸入要封的ip。

deny .2.3.4;

deny 9.22.45.0/24;

deny 9.22.65.0/24;

然後保存此文件,並且打開nginx.conf文件,在http配置節內添加下面一行配置:

include blockips.conf;

保存nginx.conf文件,然後測試現在的nginx配置文件是否是合法的:

/us/locl/nginx/sbin/nginx -t

如果配置沒有問題,就會輸出:

the configution file /us/locl/nginx/conf/nginx.conf syntx is ok

configution file /us/locl/nginx/conf/nginx.conf test is successful

如果配置有問題就需要檢查下哪兒有語法問題,如果沒有問題,需要執行下面命令,讓nginx重新載入配置文件。

/us/locl/nginx/sbin/nginx -s elod

3、僅允許內網ip

如下配置文件

loction / {

# block one woksttion

deny 92.68..;

# llow nyone in 92.68..0/24

llow 92.68..0/24;

# dop est of the wold

deny ll;

}

上面配置中禁止了92.68..,允許其他內網網段,然後deny ll禁止其他所有ip。

4、格式化nginx的403頁面操作

首先執行下面的命令:

cd /us/locl/nginx/html

i eo403.html

然後輸入403的文件內容,例如:

<html>

<hed><title>Eo 403 R IP Addess Blocked</title></hed>

<body>

You IP Addess is blocked. If you this n eo, plese contct binghe with you IP t [email protected]

</body>

</html>

如果啓用了SSI,可以在403中顯示被封的客戶端ip,如下:

You IP Addess is <!R#echo = “REMOTE_ADDR ̶ R> blocked.

保存eo403文件,然後打開nginx的配置文件i nginx.conf,在see配置節內添加下面內容。

# ediect see eo pges to the sttic pge

eo_pge 403 /eo403.html;

loction = /eo403.html {

oot html;

}

然後保存配置文件,通過nginx -t命令測試配置文件是否正確,若正確通過nginx -s elod載入配置。