1、介紹
location指令是http模組當中最核心的一項配置,根據預先定義的url匹配規則來接收用戶發送的請求,根據匹配結果,將請求轉送到後台伺服器、非法的請求直接拒絕並傳回403、404、500錯誤處理等。
2、location指令語法
location [=|~|~*|^~|@] /uri/ { … } 或location @name { … }
3、uri符合模式
location指令分為兩種符合模式:
1> 普通字串符合:以=開頭或開頭無引導字元(~)的規則
2> 正規匹配:以~或~*開頭表示正則匹配,~*表示正則不區分大小寫
4、location uri符合規則
當nginx收到一個請求後,會截取請求的uri部份,去搜尋所有location指令中定義的uri符合模式。在server模組中可以定義多個location指令來匹配不同的url請求,多個不同location配置的uri匹配模式,總體的匹配原則是:先匹配普通字串模式,再匹配正規模式。只辨識uri部份,例如請求為:/test/abc/user.do?name=xxxx
一個請求過來後,nginx符合這個請求的流程如下:
1> 先找出是否有=開頭的精確匹配,如:location = /test/abc/user.do { … }
2> 再找普通匹配,以最大前綴為原則,如有以下兩個location,則會匹配後一項
* location /test/ { … }
* location /test/abc { … }
3> 匹配到一個普通格式後,搜尋並未結束,而是暫存目前符合的結果,並繼續搜尋正規符合模式
4> 所有正規符合模式location中找到第一個符合項目後,就以此項為最終匹配結果
所以正規匹配項匹配規則,受定義的前後順序影響,但普通匹配模式不會
5> 如果未找到正則匹配項,則以3中快取的結果為最終匹配結果
6> 如果一個匹配都沒搜尋到,則返回404
5、精確匹配與模糊匹配差異
# location =/ { … } 與location / { … } 的差別:
* 前一個是精確匹配,只響應/請求,所有/xxx或/xxx/xxxx類的請求都不會以前綴的形式匹配到它
* 後一個是只要以/ 為前綴的請求都會被匹配到。如:/abc , /test/abc, /test/abc/aaaa
6、正規與非正則符合
1> location ~ /test /. .jsp$ { … } :正規匹配,支援標準的正規表示式語法。
2> location ^~ / { … } : ^~意思是關閉正規匹配,當搜尋到這個普通匹配模式後,將不再繼續搜尋正規匹配模式。
... http { ... server { listen 80; server_name localhost; location / { root html; index index.html index.htm; # deny all; 拒绝请求,返回403 # allow all; 允许请求 } location /abc { deny all; } location ~ /.+\.jsp$ { proxy_pass http://location:9090; } # 匹配所有/test路径下的jsp文件 location ~ /test/.+\.jsp$ { proxy_pass http://localhost:8080; } # 定义各类错误页 error_page 404 /404.html error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # @类似于变量定义 # error_page 403 http://blog.csdn.net; #这种定义不允许,需求利用@定义临时变量来实现 error_page 403 @page403; location @page403 { proxy_pass http://blog.csdn.net; } } }
以上是Nginx Location指令URI符合規則是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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 端口流量。

服務器無權訪問所請求的資源,導致 nginx 403 錯誤。解決方法包括:檢查文件權限。檢查 .htaccess 配置。檢查 nginx 配置。配置 SELinux 權限。檢查防火牆規則。排除其他原因,如瀏覽器問題、服務器故障或其他可能的錯誤。

在 Linux 中啟動 Nginx 的步驟:檢查 Nginx 是否已安裝。使用 systemctl start nginx 啟動 Nginx 服務。使用 systemctl enable nginx 啟用在系統啟動時自動啟動 Nginx。使用 systemctl status nginx 驗證啟動是否成功。在 Web 瀏覽器中訪問 http://localhost 查看默認歡迎頁面。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

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

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Atom編輯器mac版下載
最受歡迎的的開源編輯器