最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx實(shí)現(xiàn)精準(zhǔn)IP訪問(wèn)控制的方法全攻略

 更新時(shí)間:2026年03月06日 09:08:22   作者:qq_29757467  
在日常服務(wù)器運(yùn)維、前后端聯(lián)調(diào)、測(cè)試環(huán)境部署中,精準(zhǔn)控制訪問(wèn)權(quán)限是高頻且核心的需求,Nginx?作為當(dāng)下最流行的?Web?服務(wù)器和反向代理工具,本文將從基礎(chǔ)用法入手,結(jié)合實(shí)際測(cè)試場(chǎng)景,拆解?Nginx?IP?訪問(wèn)控制的核心指令、實(shí)用技巧、常見(jiàn)坑點(diǎn),需要的朋友可以參考下

在日常服務(wù)器運(yùn)維、前后端聯(lián)調(diào)、測(cè)試環(huán)境部署中,“精準(zhǔn)控制訪問(wèn)權(quán)限”是高頻且核心的需求——比如測(cè)試階段只允許自己或指定人員訪問(wèn)服務(wù),禁止同事、未知設(shè)備或外部惡意請(qǐng)求干擾。Nginx 作為當(dāng)下最流行的 Web 服務(wù)器和反向代理工具,其自帶的 IP 訪問(wèn)控制模塊無(wú)需依賴第三方插件、無(wú)需修改業(yè)務(wù)代碼,輕量、高效且零成本,就能完美解決這類權(quán)限控制問(wèn)題。

本文將從基礎(chǔ)用法入手,結(jié)合實(shí)際測(cè)試場(chǎng)景,拆解 Nginx IP 訪問(wèn)控制的核心指令、實(shí)用技巧、常見(jiàn)坑點(diǎn),最終給出企業(yè)級(jí)最佳實(shí)踐,無(wú)論是新手運(yùn)維還是開(kāi)發(fā)人員,都能快速上手、靈活運(yùn)用,輕松搭建安全可靠的訪問(wèn)屏障。

一、核心基礎(chǔ):Nginx IP 控制的核心指令

Nginx 默認(rèn)集成 ngx_http_access_module 模塊,無(wú)需額外編譯安裝,核心僅靠?jī)蓷l指令就能實(shí)現(xiàn)基礎(chǔ)的 IP 訪問(wèn)控制,上手門檻極低。

核心指令說(shuō)明:

  • allow IP/網(wǎng)段;:允許指定 IP 或網(wǎng)段訪問(wèn),可單次配置多個(gè),支持單個(gè) IP、網(wǎng)段、本地回環(huán)地址等。
  • deny IP/網(wǎng)段;:禁止指定 IP 或網(wǎng)段訪問(wèn),用法與 allow 一致。
  • deny all;:禁止所有未被 allow 指令匹配的 IP 訪問(wèn),是白名單配置的“兜底指令”。

關(guān)鍵執(zhí)行規(guī)則:指令按從上到下的順序匹配,一旦匹配成功就立即生效,不再繼續(xù)向下判斷。 這也是配置中最容易踩坑的點(diǎn),后續(xù)會(huì)詳細(xì)說(shuō)明。

二、實(shí)戰(zhàn)場(chǎng)景:精準(zhǔn)控制內(nèi)網(wǎng)訪問(wèn)(貼合測(cè)試需求)

結(jié)合實(shí)際測(cè)試場(chǎng)景,我們以“僅允許自己訪問(wèn)、禁止同事及其他內(nèi)網(wǎng)設(shè)備”為例,講解最常用的白名單配置,可直接復(fù)制套用。

場(chǎng)景需求

測(cè)試服務(wù)部署在 Nginx(監(jiān)聽(tīng)端口 18072),內(nèi)網(wǎng)環(huán)境下需滿足:

  1. 允許自己的設(shè)備 IP:192.168.10.5 正常訪問(wèn)所有服務(wù);
  2. 明確禁止同事的設(shè)備 IP:192.168.10.8 訪問(wèn);
  3. 禁止內(nèi)網(wǎng)中其他所有未知設(shè)備(包括其他同事、測(cè)試設(shè)備)訪問(wèn)。

完整可直接套用的配置
將以下核心配置放入 Nginx 的 server 塊內(nèi),即可實(shí)現(xiàn)全局訪問(wèn)控制,不影響原有服務(wù)功能:

server {
    listen       18072;
    server_name  localhost 192.168.50.150;
    
    # 核心 IP 白名單配置(順序不可亂)
    allow 192.168.10.5;   # 允許自己的設(shè)備 IP
    deny  192.168.10.8;    # 禁止同事的設(shè)備 IP
    deny  all;             # 兜底:禁止所有未被允許的 IP
    
    # 原有其他配置(保留不變)
    add_header Strict-Transport-Security value;
    add_header Referrer-Policy value; 
    add_header X-Permitted-Cross-Domain-Policies value; 
    add_header X-Download-Options value;
    
    if ($http_Host !~* ^192.168.50.150|127.0.0.1$)
    {
        return 403;
    }   
    
    # 后續(xù) location 配置、反向代理配置等均保留不變...
}

配置效果驗(yàn)證

  • 自己(192.168.10.5)訪問(wèn):正常打開(kāi)服務(wù)、接口,無(wú)任何限制;
  • 同事(192.168.10.8)訪問(wèn):直接返回 403 Forbidden,無(wú)法訪問(wèn)任何內(nèi)容;
  • 其他內(nèi)網(wǎng)設(shè)備(如 192.168.10.20、192.168.50.xxx 等):同樣返回 403 Forbidden,實(shí)現(xiàn)精準(zhǔn)限制。

三、干貨技巧:7 個(gè) Nginx IP 白名單實(shí)用技巧(覆蓋多場(chǎng)景)

除了基礎(chǔ)的單IP限制,實(shí)際工作中會(huì)遇到網(wǎng)段控制、多IP維護(hù)、局部限制等場(chǎng)景,以下 7 個(gè)技巧可直接解決各類需求,提升配置效率和安全性。

技巧 1:允許整個(gè)內(nèi)網(wǎng)網(wǎng)段(公司/團(tuán)隊(duì)通用)

如果需要允許整個(gè)公司內(nèi)網(wǎng)或團(tuán)隊(duì)網(wǎng)段訪問(wèn),無(wú)需逐個(gè)配置IP,直接指定網(wǎng)段即可(以 192.168.10.0/24 網(wǎng)段為例):

allow 192.168.10.0/24;  # 允許整個(gè) 192.168.10.x 網(wǎng)段訪問(wèn)
deny all;             # 禁止外部IP訪問(wèn)

適用場(chǎng)景:團(tuán)隊(duì)測(cè)試環(huán)境,允許團(tuán)隊(duì)內(nèi)所有設(shè)備訪問(wèn),禁止外部干擾。

技巧 2:允許本地回環(huán) + 外網(wǎng)出口IP(內(nèi)外網(wǎng)兼顧)

適合測(cè)試環(huán)境需要“本地調(diào)試 + 公司外網(wǎng)訪問(wèn)”的場(chǎng)景,既保證本地開(kāi)發(fā)便捷,又限制外部非法訪問(wèn):

allow 127.0.0.1;          # 允許本地回環(huán)地址(服務(wù)器本機(jī)調(diào)試)
allow 203.0.113.100;    # 公司外網(wǎng)出口IP(外部辦公可訪問(wèn))
deny all;

技巧 3:只禁止單個(gè)/多個(gè)IP,允許其他所有訪問(wèn)

反向需求:大部分IP可正常訪問(wèn),僅禁止個(gè)別惡意IP或特定設(shè)備(如同事的測(cè)試設(shè)備):

deny 192.168.10.8;    # 禁止同事IP
deny 192.168.10.30;   # 可添加多個(gè)禁止IP
allow all;           # 允許其他所有IP訪問(wèn)

技巧 4:獨(dú)立文件管理白名單,便于批量維護(hù)

如果白名單IP較多(如多個(gè)測(cè)試人員、多個(gè)外網(wǎng)出口IP),直接寫在 server 塊內(nèi)會(huì)顯得雜亂,可創(chuàng)建獨(dú)立白名單文件,便于批量更新和維護(hù)。

創(chuàng)建白名單文件:在 Nginx 配置目錄(如 /etc/nginx/conf.d/)下創(chuàng)建 ip_white.conf 文件;

寫入白名單規(guī)則:
allow 192.168.10.5; # 自己的IP
allow 192.168.10.12; # 其他測(cè)試人員IP
allow 203.0.113.100; # 公司外網(wǎng)出口IP
deny all;

在 nginx.conf 中引入該文件(放入 server 塊內(nèi),位置與基礎(chǔ)白名單一致):
include /etc/nginx/conf.d/ip_white.conf;

優(yōu)勢(shì):后續(xù)新增、刪除IP,只需修改獨(dú)立文件,無(wú)需改動(dòng)主配置,降低誤操作風(fēng)險(xiǎn)。

技巧 5:只對(duì)特定接口/目錄做限制(局部控制)

無(wú)需全局限制,僅對(duì)敏感接口(如后臺(tái)管理、測(cè)試接口)做IP白名單,普通接口允許正常訪問(wèn):

# 僅對(duì) /admin 后臺(tái)目錄做IP限制
location /admin {
    allow 192.168.10.5;
    deny all;
    # 其他配置(如反向代理、根目錄等)
}

# 其他接口允許所有訪問(wèn)
location / {
    root   html/port-scene;
    index  index.html index.htm;
}

適用場(chǎng)景:后臺(tái)管理頁(yè)、敏感測(cè)試接口,避免未授權(quán)訪問(wèn)。

技巧 6:使用 geo 模塊,實(shí)現(xiàn)復(fù)雜權(quán)限分級(jí)(大量IP/網(wǎng)段場(chǎng)景)

當(dāng)需要配置大量IP、多個(gè)網(wǎng)段,或需要區(qū)分不同權(quán)限(如管理員、測(cè)試人員、外部合作方)時(shí),使用 Nginx 的 geo 模塊更靈活、更易管理。

# 定義變量 $allow_ip,默認(rèn)0(禁止),匹配到的IP設(shè)為1(允許)
geo $allow_ip {
    default 0;
    192.168.10.5 1;          # 自己(管理員)
    192.168.10.15-192.168.10.20 1; # 測(cè)試人員IP段
    203.0.113.100 1;        # 公司外網(wǎng)出口IP
    192.168.50.0/24 0;        # 禁止該網(wǎng)段訪問(wèn)
}

server {
    listen 18072;
    server_name localhost;
    
    # 判斷變量,禁止未匹配的IP
    if ($allow_ip = 0) {
        return 403;
    }
    
    # 后續(xù)配置不變...
}

技巧 7:搭配真實(shí)IP配置,解決代理后IP不準(zhǔn)問(wèn)題

如果 Nginx 前面有負(fù)載均衡(SLB)、CDN 或網(wǎng)關(guān),Nginx 直接獲取到的是代理設(shè)備的IP,而非用戶真實(shí)IP,此時(shí)白名單會(huì)失效。需添加以下配置,獲取用戶真實(shí)IP:

# 在反向代理配置中添加(location /prod-api/ 等反向代理塊內(nèi))
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

同時(shí),白名單配置需使用用戶的真實(shí)IP(而非代理IP),確保限制生效。

四、避坑指南:5 個(gè)最容易踩的 Nginx IP 控制坑(必看)

很多人配置完白名單后,出現(xiàn)“限制失效”“全部禁止”等問(wèn)題,大多是踩了以下坑,提前規(guī)避能節(jié)省大量排查時(shí)間。

坑 1:allow/deny 指令順序?qū)懛矗ㄗ畛R?jiàn))
錯(cuò)誤配置(永遠(yuǎn)全部禁止):

deny all;             # 先禁止所有
allow 192.168.10.5;   # 后允許自己IP

原因:指令按從上到下匹配,先執(zhí)行 deny all,所有IP都被禁止,后續(xù) allow 指令無(wú)法生效。
正確配置:先允許,后禁止,兜底指令 deny all 放在最后。

坑 2:內(nèi)網(wǎng)多網(wǎng)卡,IP 填寫錯(cuò)誤

內(nèi)網(wǎng)設(shè)備可能存在多網(wǎng)卡(如有線、無(wú)線),不同網(wǎng)卡對(duì)應(yīng)不同IP,若填寫的IP不是“訪問(wèn)服務(wù)時(shí)真實(shí)使用的IP”,會(huì)導(dǎo)致自己也無(wú)法訪問(wèn)。
解決方法:在自己的設(shè)備上,通過(guò)ipconfig(Windows)或 ifconfig(Linux/Mac)查看當(dāng)前聯(lián)網(wǎng)的內(nèi)網(wǎng)IP,確保與白名單配置一致。``

坑 3:前面有網(wǎng)關(guān)/CDN,白名單限制失效

如技巧7所述,Nginx 前面有代理設(shè)備時(shí),獲取到的是代理IP,而非用戶真實(shí)IP,此時(shí)白名單配置的用戶IP會(huì)失效。
解決方法:添加真實(shí)IP配置(X-Real-IP、X-Forwarded-For),同時(shí)白名單填寫用戶真實(shí)IP,而非代理IP。

坑 4:location 內(nèi)的 allow/deny 覆蓋 server 內(nèi)的配置
Nginx 配置優(yōu)先級(jí):location 塊內(nèi)的配置 > server 塊內(nèi)的配置。若 server 塊配置了全局白名單,但某個(gè) location 塊內(nèi)單獨(dú)配置了 allow/deny,會(huì)覆蓋全局規(guī)則。

示例:

server {
    allow 192.168.10.5;
    deny all;
    
    # 該 location 覆蓋全局規(guī)則,允許所有IP訪問(wèn)
    location /test {
        allow all;
    }
}

注意:局部配置需與全局配置保持一致,避免誤覆蓋。

坑 5:修改配置后未重載 Nginx,配置不生效

很多人修改完配置后,直接關(guān)閉終端,導(dǎo)致配置未生效,誤以為是配置錯(cuò)誤。
正確操作:修改配置后,先檢查語(yǔ)法,再重載 Nginx:

nginx -t   # 檢查配置語(yǔ)法是否正確(無(wú)報(bào)錯(cuò)即正常)
nginx -s reload  # 重載配置,使修改生效

五、企業(yè)級(jí)最佳實(shí)踐:雙層防護(hù),安全更穩(wěn)妥

無(wú)論是測(cè)試環(huán)境還是生產(chǎn)環(huán)境,單一的 Nginx 白名單仍有風(fēng)險(xiǎn)(如配置誤操作、代理IP干擾),企業(yè)級(jí)場(chǎng)景最推薦“雙層防護(hù)”方案,兼顧安全與穩(wěn)定。

雙層防護(hù)方案

  1. 第一層:云安全組 / 系統(tǒng)防火墻(網(wǎng)絡(luò)層攔截)在云服務(wù)器控制臺(tái)(阿里云、騰訊云等)配置安全組,或在服務(wù)器系統(tǒng)中配置防火墻(firewalld、iptables),只放行指定IP(如公司出口IP、測(cè)試人員IP)訪問(wèn) 80、443、18072 等相關(guān)端口。優(yōu)勢(shì):流量在網(wǎng)絡(luò)層就被攔截,未被允許的IP甚至無(wú)法連接到服務(wù)器,Nginx 無(wú)需承擔(dān)任何攔截壓力。
  2. 第二層:Nginx IP 白名單(應(yīng)用層兜底)
    在 Nginx 中配置IP白名單,僅允許測(cè)試/管理員IP訪問(wèn),作為兜底防護(hù)——即使安全組配置有誤,Nginx 也能攔截未授權(quán)訪問(wèn)。

核心優(yōu)勢(shì):雙重保險(xiǎn),降低配置誤操作風(fēng)險(xiǎn),最大限度保障服務(wù)安全,是企業(yè)運(yùn)維中最常用、最穩(wěn)妥的方案。

六、總結(jié)

Nginx IP 訪問(wèn)控制的核心是 allow/deny 指令,掌握其匹配規(guī)則和實(shí)用技巧,就能輕松應(yīng)對(duì)各類訪問(wèn)控制需求。結(jié)合本文內(nèi)容,可快速總結(jié)出不同場(chǎng)景的選型建議:

  • 簡(jiǎn)單場(chǎng)景(僅限制單個(gè)/幾個(gè)IP):直接使用 allow + deny all 基礎(chǔ)配置;
  • 大量IP/網(wǎng)段場(chǎng)景:使用獨(dú)立白名單文件或 geo 模塊,便于維護(hù);
  • 測(cè)試環(huán)境:優(yōu)先使用“云安全組 + Nginx 白名單”雙層防護(hù),兼顧安全與便捷;
  • 生產(chǎn)環(huán)境:必須搭配網(wǎng)絡(luò)層防護(hù)(安全組/防火墻),避免單一防護(hù)的風(fēng)險(xiǎn);
  • 核心原則:allow/deny 指令順序永遠(yuǎn)是“先允許,后禁止”,修改配置后務(wù)必重載 Nginx。

Nginx IP 訪問(wèn)控制雖然簡(jiǎn)單,但細(xì)節(jié)決定成敗——避開(kāi)常見(jiàn)坑點(diǎn)、結(jié)合場(chǎng)景選擇合適的技巧,就能用最簡(jiǎn)單的方式,搭建起可靠的訪問(wèn)安全屏障。

以上就是Nginx實(shí)現(xiàn)精準(zhǔn)IP訪問(wèn)控制的方法全攻略的詳細(xì)內(nèi)容,更多關(guān)于Nginx IP訪問(wèn)控制的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解實(shí)現(xiàn)Nginx+Tomcat實(shí)現(xiàn)單IP、多域名、多站點(diǎn)的訪問(wèn)

    詳解實(shí)現(xiàn)Nginx+Tomcat實(shí)現(xiàn)單IP、多域名、多站點(diǎn)的訪問(wèn)

    這篇文章主要介紹了詳解實(shí)現(xiàn)Nginx+Tomcat實(shí)現(xiàn)單IP、多域名、多站點(diǎn)的訪問(wèn)的相關(guān)資料,這里提供實(shí)例幫助到大家實(shí)現(xiàn)改功能,希望能幫助到大家,需要的朋友可以參考下
    2017-08-08
  • nginx 負(fù)載均衡配置及如何解決重復(fù)登錄問(wèn)題

    nginx 負(fù)載均衡配置及如何解決重復(fù)登錄問(wèn)題

    文章詳解Nginx源碼安裝與Docker部署,介紹四層/七層代理區(qū)別及負(fù)載均衡策略,通過(guò)ip_hash解決重復(fù)登錄問(wèn)題,對(duì)nginx 負(fù)載均衡配置及如何解決重復(fù)登錄問(wèn)題感興趣的朋友一起看看吧
    2025-07-07
  • nginx提示:500 Internal Server Error錯(cuò)誤解決辦法

    nginx提示:500 Internal Server Error錯(cuò)誤解決辦法

    這篇文章主要介紹了 nginx提示:500 Internal Server Error錯(cuò)誤解決辦法的相關(guān)資料,這里提供了解決該問(wèn)題的詳細(xì)步驟,希望能幫助到大家,需要的朋友可以參考下
    2017-08-08
  • nginx中的路徑匹配location規(guī)則詳解

    nginx中的路徑匹配location規(guī)則詳解

    Nginx的匹配規(guī)則用location指令來(lái)實(shí)現(xiàn),Nginx 的location指令用于匹配請(qǐng)求的 URI(請(qǐng)求路徑),并根據(jù)匹配結(jié)果執(zhí)行特定的處理指令,這篇文章主要介紹了nginx中的路徑匹配規(guī)則詳解(location規(guī)則),需要的朋友可以參考下
    2025-04-04
  • Nginx做NodeJS應(yīng)用負(fù)載均衡配置實(shí)例

    Nginx做NodeJS應(yīng)用負(fù)載均衡配置實(shí)例

    這篇文章主要介紹了Nginx做NodeJS應(yīng)用負(fù)載均衡配置實(shí)例,本文直接給出配置實(shí)例,需要的朋友可以參考下
    2015-01-01
  • 詳解nginx日志定時(shí)備份和刪除

    詳解nginx日志定時(shí)備份和刪除

    本篇文章主要介紹了nginx日志定時(shí)備份和刪除 ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • nginx里集成php模塊安裝配置步驟詳解

    nginx里集成php模塊安裝配置步驟詳解

    這篇文章主要為大家介紹了nginx里集成php模塊安裝配置步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Nginx啟動(dòng)、重啟失敗的一般解決方法和步驟

    Nginx啟動(dòng)、重啟失敗的一般解決方法和步驟

    這篇文章主要介紹了Nginx啟動(dòng)、重啟失敗的一般解決方法和步驟,本文沒(méi)啥技術(shù)含量,只是一個(gè)慣用手法的總結(jié),需要的朋友可以參考下
    2015-07-07
  • Nginx配置并兼容HTTP實(shí)現(xiàn)代碼解析

    Nginx配置并兼容HTTP實(shí)現(xiàn)代碼解析

    這篇文章主要介紹了Nginx配置并兼容HTTP實(shí)現(xiàn)代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • nginx+redis實(shí)現(xiàn)session共享

    nginx+redis實(shí)現(xiàn)session共享

    這篇文章主要為大家詳細(xì)介紹了nginx+redis實(shí)現(xiàn)session的共享,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03

最新評(píng)論

辛集市| 宁河县| 怀柔区| 左权县| 宝丰县| 陆良县| 庄河市| 临安市| 利辛县| 庆元县| 开封县| 凯里市| 吐鲁番市| 山阳县| 廊坊市| 昌乐县| 社会| 新余市| 略阳县| 寿阳县| 土默特右旗| 武义县| 阳谷县| 中方县| 日喀则市| 丰镇市| 东乌珠穆沁旗| 洞口县| 宁阳县| 磴口县| 海丰县| 东乡县| 琼结县| 光山县| 梁河县| 克山县| 始兴县| 弋阳县| 南通市| 桐乡市| 靖州|