Nginx 限制只能白名單 uri 請求的配置

實際生產項目中,大多數時候我們會將后端的 http 接口通過前置 nginx 進行反向代理,對互聯網用戶提供服務。往往我們后端服務所能提供的接口服務是大于互聯網用戶側的實際請求的接口地址數量的(例如后端服務一共有100個api接口,經過前置 nginx 對外提供的接口是給微信小程序使用的,而微信小程序中需要調用的實際接口只有40個)。鑒于此,從系統安全架構角度來講,我們必須應該在前置的 Nginx 中,白名單限定對外提供服務的具體 http 接口 URI 地址。

本文以具體配置示例的方式,演示在 Nginx 中如何實現白名單 Uri 的攔截配置。

1、配置白名單 URI 配置文件

我們為了更好的管理白名單地址,所以講配置白名單的配置文件獨立出來,然后使用 nginx 的 include 導入。

我的配置文件 ./nginx/conf.d/map_whitelist_uri.conf 內容如下:

map $uri $allowed_uri {default 0;# 精確匹配(推薦盡可能使用精確匹配,這樣利于管理)/api/v1/cs/configs 1;/exact/path1 1;/exact/path2 1;# 正則表達式匹配~^/demo/.+\.(css|js|ttf|woff|woff2|svg|git|jpg|jpeg|png)$ 1;~/regex/path/[0-9]+ 1;~/another/regex.* 1;# 更多的路徑...
}

主配置文件 ./nginx/nginx.conf 中使用 include 導入擴展的配置文件,可以通配符導入,也可以精確導入。

http {// 省略其他配置// 導入conf.d中的所有配置,你可以導入具體的配置文件include ./conf.d/*.conf;
}

2、使用白名單map配置

server 塊的 location 塊中配置條件攔截。

server {// 省略其他配置location / {// 不在白名單URI中的,直接響應403結束if ($allowed_uri = 0) {return 403;}}// 省略其他配置
}

(END)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62824.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62824.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62824.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

題海拾貝:力扣 141.環形鏈表

Hello大家好&#xff01;很高興我們又見面啦&#xff01;給生活添點passion&#xff0c;開始今天的編程之路&#xff01; 我的博客&#xff1a;<但凡. 我的專欄&#xff1a;《編程之路》、《數據結構與算法之美》、《題海拾貝》 歡迎點贊&#xff0c;關注&#xff01; 1、題…

Vite快速構建Vue教程

步驟 1: 初始化項目目錄 創建一個名為 projects 的文件夾&#xff0c;作為存放所有 Vite 項目的根目錄。這個文件夾將容納多個獨立的 Vite 項目。 步驟 2: 創建 Vite 項目 右鍵點擊 projects 文件夾并選擇“在此處打開終端”或使用您偏好的代碼編輯器&#xff08;如 VSCode&…

深入理解 CSS 文本換行: overflow-wrap 和 word-break

前言 正常情況下&#xff0c;在固定寬度的盒子中的中文會自動換行。但是&#xff0c;當遇到非常長的英文單詞或者很長的 URL 時&#xff0c;文本可能就不會自動換行&#xff0c;而會溢出所在容器。幸運的是&#xff0c;CSS 為我們提供了一些和文本換行相關的屬性&#xff1b;今…

【NumPy進階】:內存視圖、性能優化與高級線性代數

目錄 1. 深入理解 NumPy 的內存視圖與拷貝1.1 內存視圖&#xff08;View&#xff09;1.1.1 創建視圖1.1.2 視圖的特點 1.2 數組拷貝&#xff08;Copy&#xff09;1.2.1 創建拷貝1.2.2 拷貝的特點 1.3 視圖與拷貝的選擇 2. NumPy 的優化與性能提升技巧2.1 向量化操作示例&#x…

HarmonyOS 5.0應用開發——屬性動畫

【高心星出品】 文章目錄 屬性動畫animateTo屬性動畫animation屬性動畫 屬性動畫 屬性接口&#xff08;以下簡稱屬性&#xff09;包含尺寸屬性、布局屬性、位置屬性等多種類型&#xff0c;用于控制組件的行為。針對當前界面上的組件&#xff0c;其部分屬性&#xff08;如位置屬…

機器學習支持向量機(SVM)算法

一、引言 在當今數據驅動的時代&#xff0c;機器學習算法在各個領域發揮著至關重要的作用。支持向量機&#xff08;Support Vector Machine&#xff0c;SVM&#xff09;作為一種強大的監督學習算法&#xff0c;以其在分類和回歸任務中的卓越性能而備受矚目。SVM 具有良好的泛化…

介紹一款docker ui 管理工具

http://vm01:18999/main.html 管理員登陸賬號 jinghan/123456 ui啟動命令所在文件夾目錄 /work/docker/docker-ui 參考鏈接 DockerUI&#xff1a;一款功能強大的中文Docker可視化管理工具_docker ui-CSDN博客

Motrix WebExtension 使用教程

Motrix WebExtension 使用教程 項目地址:https://gitcode.com/gh_mirrors/mo/motrix-webextension 項目介紹 Motrix WebExtension 是一個瀏覽器擴展,用于與 Motrix 下載管理器集成。該擴展允許用戶通過 Motrix 下載管理器自動下載文件,而不是使用瀏覽器的原生下載管理器。…

前端(四)css選擇器、css的三大特性

css選擇器、css的三大特性 文章目錄 css選擇器、css的三大特性一、css介紹二、css選擇器2.1 基本選擇器2.2 組合選擇器2.3 交集并集選擇器2.4序列選擇器2.5屬性選擇器2.6偽類選擇器2.7偽元素選擇器 三、css三大特性3.1 繼承性3.2 層疊性3.3 優先級 一、css介紹 CSS全稱為Casca…

《探索視頻數字人:開啟未來視界的鑰匙》

一、引言 1.1視頻數字人技術的崛起 在當今科技飛速發展的時代&#xff0c;視頻數字人技術如一顆璀璨的新星&#xff0c;正逐漸成為各領域矚目的焦點。它的出現&#xff0c;猶如一場科技風暴&#xff0c;徹底改變了傳統的視頻制作方式&#xff0c;為各個行業帶來了前所未有的機…

【ETCD】[源碼閱讀]深度解析 EtcdServer 的 processInternalRaftRequestOnce 方法

在分布式系統中&#xff0c;etcd 的一致性與高效性得益于其強大的 Raft 協議模塊。而 processInternalRaftRequestOnce 是 etcd 服務器處理內部 Raft 請求的核心方法之一。本文將從源碼角度解析這個方法的邏輯流程&#xff0c;幫助讀者更好地理解 etcd 的內部實現。 方法源碼 …

免費下載 | 2024算網融合技術與產業白皮書

《2024算網融合技術與產業白皮書&#xff08;2023年&#xff09;》的核心內容概括如下&#xff1a; 算網融合發展概述&#xff1a; 各國細化算網戰略&#xff0c;指引行業應用創新升級。 算網融合市場快速增長&#xff0c;算力互聯成為投資新熱點。 算網融合產業模式逐漸成型…

基于卷積神經網絡的圖像二分類檢測模型訓練與推理實現教程 | 幽絡源

前言 對于本教程&#xff0c;說白了&#xff0c;就是期望能通過一個程序判斷一張圖片是否為某個物體&#xff0c;或者說判斷一張圖片是否為某個缺陷。因為本教程是針對二分類問題&#xff0c;因此主要處理 是 與 不是 的問題&#xff0c;比如我的模型是判斷一張圖片是否為蘋果…

安全見聞全解析

跟隨 瀧羽sec團隊學習 聲明&#xff01; 學習視頻來自B站up主 瀧羽sec 有興趣的師傅可以關注一下&#xff0c;如涉及侵權馬上刪除文章&#xff0c;筆記只是方便各位師傅的學習和探討&#xff0c;文章所提到的網站以及內容&#xff0c;只做學習交流&#xff0c;其他均與本人以及…

代碼隨想錄-算法訓練營-番外(圖論02:島嶼數量,島嶼的最大面積)

day02 圖論part02 今日任務:島嶼數量,島嶼的最大面積 都是一個模子套出來的 https://programmercarl.com/kamacoder/0099.島嶼的數量深搜.html#思路往日任務: day01 圖論part01 今日任務:圖論理論基礎/所有可到達的路徑 代碼隨想錄圖論視頻部分還沒更新 https://programmercar…

RabbitMQ個人理解與基本使用

目錄 一. 作用&#xff1a; 二. RabbitMQ的5中隊列模式&#xff1a; 1. 簡單模式 2. Work模式 3. 發布/訂閱模式 4. 路由模式 5. 主題模式 三. 消息持久化&#xff1a; 消息過期時間 ACK應答 四. 同步接收和異步接收&#xff1a; 應用場景 五. 基本使用 &#xff…

前端怎么預覽pdf

1.背景 后臺返回了一個在線的pdf地址&#xff0c;需要我這邊去做一個pdf的預覽&#xff08;需求1&#xff09;&#xff0c;并且支持配置是否可以下載&#xff08;需求2&#xff09;&#xff0c;需要在當前頁就能預覽&#xff08;需求3&#xff09;。之前我寫過一篇預覽pdf的文…

Python 參數配置使用 XML 文件的教程:輕松管理你的項目配置

Python 參數配置使用 XML 文件的教程&#xff1a;輕松管理你的項目配置 一句話總結&#xff1a;當配置項存儲在外部文件&#xff08;如 XML、JSON&#xff09;時&#xff0c;修改配置無需重新編譯和發布代碼。通過更新 XML 文件即可調整參數&#xff0c;無需更改源代碼&#xf…

解決 MySQL 啟動失敗與大小寫問題,重置數據庫

技術文檔&#xff1a;解決 MySQL 啟動失敗與大小寫問題&#xff0c;重置數據庫 1. 問題背景 在使用 MySQL 時&#xff0c;可能遇到以下問題&#xff1a; MySQL 啟動失敗&#xff0c;日志顯示 “permission denied” 或 “Can’t create directory” 錯誤。MySQL 在修改配置文…

python webdriver-manager 實現selenium 免下載安裝webdriver

python webdriver-manager 實現selenium 免下載安裝webdriver selenium在自動化測試中,通常需要使用瀏覽器驅動來與瀏覽器進行交互。然而,手動下載、安裝、以及管理這些驅動非常麻煩,尤其是當驅動版本頻繁更新時。為此,webdriver-manager庫提供了一個極簡的方案,自動幫我…