在Nginx中實(shí)現(xiàn)基于IP的訪問控制(IP黑白名單)的具體步驟
1. 配置白名單(允許特定 IP 訪問)
要允許特定 IP 地址或 IP 范圍訪問網(wǎng)站,你可以使用 allow 指令。假設(shè)我們要允許 192.168.1.100 這個(gè) IP 地址訪問 NGINX 服務(wù):
編輯你的 NGINX 配置文件(通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/sites-available/default):
server {
listen 80;
server_name yourdomain.com;
location / {
# 允許特定 IP 訪問
allow 192.168.1.100;
# 其余的 IP 被拒絕訪問
deny all;
# 配置其他參數(shù)
}
}2. 配置黑名單(拒絕特定 IP 訪問)
要拒絕特定 IP 地址訪問,你可以使用 deny 指令。假設(shè)我們要阻止 192.168.1.101 這個(gè) IP 地址訪問:
server {
listen 80;
server_name yourdomain.com;
location / {
# 拒絕特定 IP 訪問
deny 192.168.1.101;
# 允許其他 IP 訪問
allow all;
# 配置其他參數(shù)
}
}3. 配置多個(gè) IP 的黑白名單
你可以同時(shí)使用多個(gè) allow 和 deny 指令,來配置多個(gè) IP 地址或 IP 范圍的訪問控制。例如:
server {
listen 80;
server_name yourdomain.com;
location / {
# 允許多個(gè) IP 訪問
allow 192.168.1.100;
allow 203.0.113.0/24; # 允許整個(gè) IP 范圍
# 拒絕多個(gè) IP 訪問
deny 192.168.1.101;
deny 198.51.100.200;
# 配置其他參數(shù)
}
}4. 結(jié)合黑白名單進(jìn)行更細(xì)粒度的控制
如果你有一個(gè)更復(fù)雜的需求(例如,只有某些 IP 可以訪問某些特定路徑),可以為不同的 location 配置不同的訪問控制。例如:
server {
listen 80;
server_name yourdomain.com;
# 默認(rèn)配置,允許所有人訪問
location / {
allow all;
deny all;
}
# 特定路徑的訪問控制
location /admin {
# 只允許 192.168.1.100 和 203.0.113.0/24 訪問 /admin 路徑
allow 192.168.1.100;
allow 203.0.113.0/24;
deny all; # 其余 IP 拒絕訪問
}
}5. 使用 geo 模塊進(jìn)行更靈活的控制(可選)
你還可以使用 NGINX 的 geo 模塊來基于客戶端的 IP 地址進(jìn)行更加靈活的訪問控制。這個(gè)方法允許你創(chuàng)建一個(gè)變量,該變量基于 IP 地址的來源來設(shè)置不同的權(quán)限。
例如,創(chuàng)建一個(gè) geo 模塊來根據(jù) IP 地址定義訪問權(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,拒絕訪問
}
allow all; # 允許其他 IP 訪問
}
}
}6. 重載 NGINX 配置
完成配置后,記得驗(yàn)證配置并重載 NGINX 服務(wù):
sudo nginx -t # 測試配置是否正確 sudo systemctl reload nginx # 重新加載 NGINX 配置
7. 常見的配置應(yīng)用場景
- 白名單:當(dāng)你只希望某些 IP 地址可以訪問你的服務(wù),而其他的都被拒絕。
- 黑名單:當(dāng)你希望阻止某些特定的 IP 地址,允許其他的訪問。
- 組合使用:當(dāng)你需要更細(xì)粒度的控制,允許或拒絕某些 IP 地址訪問特定路徑時(shí)。
總結(jié)
通過在 NGINX 中使用 allow 和 deny 指令,你可以非常方便地實(shí)現(xiàn) IP 地址的黑白名單控制,保護(hù)你的服務(wù)器免受不必要的訪問。
到此這篇關(guān)于在Nginx中實(shí)現(xiàn)基于IP的訪問控制(IP黑白名單)的具體步驟的文章就介紹到這了,更多相關(guān)Nginx IP訪問控制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
網(wǎng)頁502?Bad?Gateway?nginx/1.20.1報(bào)錯(cuò)的原因與解決方法
502 bad gateway nginx/1.20.1 是一個(gè)錯(cuò)誤提示,通常出現(xiàn)在訪問網(wǎng)站時(shí)出現(xiàn)問題,這篇文章主要給大家介紹了關(guān)于網(wǎng)頁502?Bad?Gateway?nginx/1.20.1報(bào)錯(cuò)的原因與解決方法,需要的朋友可以參考下2024-03-03
Nginx設(shè)置成服務(wù)并開機(jī)自動啟動的配置
Nginx?是一個(gè)高性能的HTTP和反向代理web服務(wù)器,同時(shí)也提供了IMAP/POP3/SMTP服務(wù),接下來通過本文給大家介紹Nginx設(shè)置成服務(wù)并開機(jī)自動啟動的配置,需要的朋友可以參考下2022-01-01
Nginx服務(wù)器中瀏覽器本地緩存和虛擬機(jī)的相關(guān)設(shè)置
這篇文章主要介紹了Nginx服務(wù)器中瀏覽器本地緩存和虛擬機(jī)的相關(guān)設(shè)置,是Nginx服務(wù)器搭建過程中的基本配置,需要的朋友可以參考下2015-08-08
CentOS 7.0下nginx實(shí)現(xiàn)每天定時(shí)分割日志
大家都知道Nginx產(chǎn)生的日志都是存在一個(gè)文件,隨著網(wǎng)站運(yùn)行時(shí)間越長,日志文件的大小也在不斷增長,所以這個(gè)時(shí)候就需要實(shí)現(xiàn)定時(shí)分割,這篇文章主要介紹了在CentOS 7.0下nginx實(shí)現(xiàn)每天定時(shí)分割日志的相關(guān)資料,需要的朋友可以參考下。2017-04-04

