在Nginx中實(shí)現(xiàn)基于IP的訪問(wèn)控制(IP黑白名單)的具體步驟
1. 配置白名單(允許特定 IP 訪問(wèn))
要允許特定 IP 地址或 IP 范圍訪問(wèn)網(wǎng)站,你可以使用 allow 指令。假設(shè)我們要允許 192.168.1.100 這個(gè) IP 地址訪問(wèn) NGINX 服務(wù):
編輯你的 NGINX 配置文件(通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/sites-available/default):
server { listen 80; server_name yourdomain.com; location / { # 允許特定 IP 訪問(wèn) allow 192.168.1.100; # 其余的 IP 被拒絕訪問(wèn) deny all; # 配置其他參數(shù) } }
2. 配置黑名單(拒絕特定 IP 訪問(wèn))
要拒絕特定 IP 地址訪問(wèn),你可以使用 deny
指令。假設(shè)我們要阻止 192.168.1.101
這個(gè) IP 地址訪問(wèn):
server { listen 80; server_name yourdomain.com; location / { # 拒絕特定 IP 訪問(wèn) deny 192.168.1.101; # 允許其他 IP 訪問(wèn) allow all; # 配置其他參數(shù) } }
3. 配置多個(gè) IP 的黑白名單
你可以同時(shí)使用多個(gè) allow
和 deny
指令,來(lái)配置多個(gè) IP 地址或 IP 范圍的訪問(wèn)控制。例如:
server { listen 80; server_name yourdomain.com; location / { # 允許多個(gè) IP 訪問(wèn) allow 192.168.1.100; allow 203.0.113.0/24; # 允許整個(gè) IP 范圍 # 拒絕多個(gè) IP 訪問(wèn) deny 192.168.1.101; deny 198.51.100.200; # 配置其他參數(shù) } }
4. 結(jié)合黑白名單進(jìn)行更細(xì)粒度的控制
如果你有一個(gè)更復(fù)雜的需求(例如,只有某些 IP 可以訪問(wèn)某些特定路徑),可以為不同的 location
配置不同的訪問(wèn)控制。例如:
server { listen 80; server_name yourdomain.com; # 默認(rèn)配置,允許所有人訪問(wèn) location / { allow all; deny all; } # 特定路徑的訪問(wèn)控制 location /admin { # 只允許 192.168.1.100 和 203.0.113.0/24 訪問(wèn) /admin 路徑 allow 192.168.1.100; allow 203.0.113.0/24; deny all; # 其余 IP 拒絕訪問(wèn) } }
5. 使用 geo 模塊進(jìn)行更靈活的控制(可選)
你還可以使用 NGINX 的 geo 模塊來(lái)基于客戶端的 IP 地址進(jìn)行更加靈活的訪問(wèn)控制。這個(gè)方法允許你創(chuàng)建一個(gè)變量,該變量基于 IP 地址的來(lái)源來(lái)設(shè)置不同的權(quán)限。
例如,創(chuàng)建一個(gè) geo 模塊來(lái)根據(jù) IP 地址定義訪問(wèn)權(quán)限:
http { geo $restricted { default 1; 192.168.1.100 0; # 允許 192.168.1.100 203.0.113.0/24 0; # 允許 203.0.113.0/24 網(wǎng)段 } server { listen 80; server_name yourdomain.com; location / { if ($restricted) { deny all; # 如果 $restricted 變量為 1,拒絕訪問(wèn) } allow all; # 允許其他 IP 訪問(wèn) } } }
6. 重載 NGINX 配置
完成配置后,記得驗(yàn)證配置并重載 NGINX 服務(wù):
sudo nginx -t # 測(cè)試配置是否正確 sudo systemctl reload nginx # 重新加載 NGINX 配置
7. 常見(jiàn)的配置應(yīng)用場(chǎng)景
- 白名單:當(dāng)你只希望某些 IP 地址可以訪問(wèn)你的服務(wù),而其他的都被拒絕。
- 黑名單:當(dāng)你希望阻止某些特定的 IP 地址,允許其他的訪問(wèn)。
- 組合使用:當(dāng)你需要更細(xì)粒度的控制,允許或拒絕某些 IP 地址訪問(wèn)特定路徑時(shí)。
總結(jié)
通過(guò)在 NGINX 中使用 allow
和 deny
指令,你可以非常方便地實(shí)現(xiàn) IP 地址的黑白名單控制,保護(hù)你的服務(wù)器免受不必要的訪問(wèn)。
到此這篇關(guān)于在Nginx中實(shí)現(xiàn)基于IP的訪問(wèn)控制(IP黑白名單)的具體步驟的文章就介紹到這了,更多相關(guān)Nginx IP訪問(wèn)控制內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux Nginx VPS下簡(jiǎn)單解決CC攻擊
Linux Nginx VPS下簡(jiǎn)單解決CC攻擊,使用Nginx與php的朋友可以參考下。2010-12-12Nginx服務(wù)器中限制連接數(shù)與限制請(qǐng)求的模塊配置教程
這篇文章主要介紹了Nginx服務(wù)器中限制連接數(shù)與限制請(qǐng)求的模塊配置教程,分別為limit conn模塊與limit req模塊的相關(guān)用法講解,需要的朋友可以參考下2016-01-01nginx容器配置文件獨(dú)立的實(shí)現(xiàn)
本文主要介紹了nginx容器配置文件獨(dú)立,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12詳解Nginx服務(wù)器中配置超時(shí)時(shí)間的方法
這篇文章主要介紹了Nginx服務(wù)器中配置超時(shí)時(shí)間的方法,同時(shí)也對(duì)Nginx中的時(shí)間管理機(jī)制作了詳細(xì)的介紹,需要的朋友可以參考下2015-12-12nginx 反向代理之 proxy_pass的實(shí)現(xiàn)
這篇文章主要介紹了nginx 反向代理之 proxy_pass的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11詳解Nginx幾種常見(jiàn)實(shí)現(xiàn)301重定向方法上的區(qū)別
本篇文章主要介紹了詳解Nginx幾種常見(jiàn)實(shí)現(xiàn)301重定向方法上的區(qū)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06nginx+tomcat實(shí)現(xiàn)負(fù)載均衡,使用redis session共享
這篇文章主要介紹了nginx tomcat負(fù)載均衡 使用redis session共享,有興趣的同學(xué)可以了解一下。2016-12-12