隨著網路發展的快速進步,應用程式和服務的部署數量越來越多。在一些場景下需要將請求路由到特定的伺服器或應用程式。 Nginx是一個高效能的Web伺服器,也是常用的反向代理方式,可以解決這些問題。基於Nginx的反向代理所提供的ACL模組,管理員可以靈活地控制和管理請求的路由,存取控制以及其他一些網路安全性方面的問題。
在反向代理中,請求從客戶端發送到反向代理伺服器,代理伺服器則代表客戶端向後端伺服器發送請求並將返回結果提供給客戶端。例如,在多種語言和技術棧的現代Web應用程式中,可以透過Nginx反向代理實現透過同一網域路由不同的請求到不同的後端服務。
在本文中,我們將學習如何設定基於關鍵字和黑名單的ACL來實現Nginx反向代理更精細的路由策略和安全控制。
關鍵字ACL
關鍵字ACL是透過匹配請求URL中的關鍵字來實現請求路由的方式。例如,在目前應用程式中,當請求的URL中包含"/app1/"時,我們希望Nginx反向代理將請求路由到後端應用程式1。如果URL中包含"/app2/",則將請求路由到後端應用程式2。
要實現這個功能,需要在Nginx設定檔中設定一個關鍵字ACL。下面是如何配置:
http { ... # 关键词acl map $request_uri $app_name { ~* "/app1/" app1; ~* "/app2/" app2; default ""; } }
這個配置中,$request_uri是Nginx內建變量,表示請求的URL。這個變數的值被傳遞到map指令中,map指令則根據預先定義的關鍵字正規表示式進行比對。如果符合成功,則會將應用程式的名稱儲存在$app_name變數中,否則使用default預設值。
接下來就可以將上述定義的$app_name變數作為代理的目標傳遞給代理指令中的代理URL選項:
server { ... location / { ... # 配置关键词代理 proxy_pass http://$app_name.backend.com; } }
在這個組態中,關鍵字ACL會從請求的URL中符合所要求的應用程式的名字,並透過代理指令將用戶端的請求路由到對應的後端應用程式上。
基於黑名單的ACL
黑名單ACL是一種用來阻止某些IP或請求URL的存取的方法。在某些情況下,這種方法非常有用。例如,在遭受惡意攻擊時,管理員可以在Nginx反向代理程式中設定一個黑名單ACL來拒絕一組IP位址的存取。也可以使用黑名單ACL來拒絕某些常見的攻擊URL。
以下是如何配置基於黑名單的ACL:
http { ... # 黑名单acl geo $blocked_ip { default 0; include /path/to/blacklists/ip.txt; } }
這個配置中,geo指令定義了一個名為$blocked_ip的記憶體變量,用於儲存被阻止的IP位址清單。在這個例子中,使用了一個外部的IP位址黑名單檔案。檔案的格式如下:
10.2.1.10 1; 192.168.0.0/24 1; 202.102.85.154 1;
檔案的每一行包含一個IP位址或CIDR格式的網段,後面跟著數字1表示這個IP位址或CIDR網段被封鎖。
接下來可以在Nginx設定中使用這個黑名單ACL:
server { ... location / { ... # 配置黑名单ACL if ($blocked_ip) { return 403; } proxy_pass http://backend.com; } }
在這個設定中,使用了if指令來判斷被要求的IP位址是否在黑名單內,如果是則直接返回403禁止訪問的回應。否則就將請求路由到後端的代理伺服器上。
綜上所述,Nginx反向代理提供了很好的ACL模組,和其他功能模組一起使用,可以實現非常靈活的請求路由和存取控制。在反向代理的使用中,了解和掌握這些方法可以讓我們更好地適應各種情況,並提高網路服務的品質和安全性。
以上是Nginx反向代理中基於關鍵字和黑名單的ACL配置的詳細內容。更多資訊請關注PHP中文網其他相關文章!

NGINX適合處理高並發請求,Apache適合需要復雜配置和功能擴展的場景。 1.NGINX採用事件驅動、非阻塞架構,適用於高並發環境。 2.Apache採用進程或線程模型,提供豐富的模塊生態系統,適合複雜配置需求。

NGINX可用於提升網站性能、安全性和可擴展性。 1)作為反向代理和負載均衡器,NGINX可優化後端服務和分擔流量。 2)通過事件驅動和異步架構,NGINX高效處理高並發連接。 3)配置文件允許靈活定義規則,如靜態文件服務和負載均衡。 4)優化建議包括啟用Gzip壓縮、使用緩存和調整worker進程。

NGINXUnit支持多種編程語言,通過模塊化設計實現。 1.加載語言模塊:根據配置文件加載相應模塊。 2.應用啟動:調用語言運行時執行應用代碼。 3.請求處理:將請求轉發給應用實例。 4.響應返回:將處理後的響應返回給客戶端。

NGINX和Apache各有優劣,適合不同場景。 1.NGINX適合高並發和低資源消耗場景。 2.Apache適合需要復雜配置和豐富模塊的場景。通過比較它們的核心特性、性能差異和最佳實踐,可以幫助你選擇最適合需求的服務器軟件。

確認 Nginx 是否啟動的方法:1. 使用命令行:systemctl status nginx(Linux/Unix)、netstat -ano | findstr 80(Windows);2. 檢查端口 80 是否開放;3. 查看系統日誌中 Nginx 啟動消息;4. 使用第三方工具,如 Nagios、Zabbix、Icinga。

要關閉 Nginx 服務,請按以下步驟操作:確定安裝類型:Red Hat/CentOS(systemctl status nginx)或 Debian/Ubuntu(service nginx status)停止服務:Red Hat/CentOS(systemctl stop nginx)或 Debian/Ubuntu(service nginx stop)禁用自動啟動(可選):Red Hat/CentOS(systemctl disable nginx)或 Debian/Ubuntu(syst

如何在 Windows 中配置 Nginx?安裝 Nginx 並創建虛擬主機配置。修改主配置文件並包含虛擬主機配置。啟動或重新加載 Nginx。測試配置並查看網站。選擇性啟用 SSL 並配置 SSL 證書。選擇性設置防火牆允許 80 和 443 端口流量。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Dreamweaver Mac版
視覺化網頁開發工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。