摘要:改為后,顯示出文件的大概大小,單位是或者或者默認(rèn)為,顯示的文件時(shí)間為時(shí)間。
這是 Nginx 學(xué)習(xí)總結(jié)的第三篇,上一篇介紹到了 Nginx 學(xué)習(xí)總結(jié)(2) —— 基本配置,這一篇會(huì)對(duì)Location 模塊 做一些總結(jié)。我們知道,Location 模塊 主要是用于針對(duì)某些特定的 URL 進(jìn)行配置,可以由前綴字符串定義,也可以由正則表達(dá)式定義。
Location 匹配規(guī)則location = /test.png { # 精確匹配 [ configuration A ] } location / { # 通用匹配,但是正則表達(dá)式和最長(zhǎng)字符串會(huì)優(yōu)先被匹配 [ configuration B ] } location /documents/ { # 前綴字符串匹配 # 匹配任何以 /documents/ 開頭的請(qǐng)求 # 只有后面的正則表達(dá)式?jīng)]有匹配到時(shí),該配置才會(huì)被采用 [ configuration C ] } location ^~ /images/ { # 前綴字符串匹配 # 匹配任何以 /images/ 開頭的請(qǐng)求,匹配成功以后,會(huì)停止搜索后面的正則表達(dá)式匹配 [ configuration D ] } location ~* .(gif|jpg|jpeg)$ { # 正則表達(dá)式匹配,匹配所有以 gif,jpg,jpeg 結(jié)尾的請(qǐng)求 # 然而,所有請(qǐng)求 /images/ 下的圖片會(huì)被 configuration D 處理,因?yàn)?^~ 指令,匹配不到這一條規(guī)則 [ configuration E ] } location /images/abc/ { # 前綴字符串匹配 # 只有去掉 configuration D 才能被匹配到 [ configuration F ] }
= 精確匹配;
^~ 提高前綴字符串的匹配優(yōu)先級(jí);
~ 區(qū)分大小寫的正則表達(dá)式匹配;
~* 不區(qū)分大小寫的正則表達(dá)式匹配;
/ 通用匹配(因?yàn)樗械牡刂范家?/ 開頭,所以這條規(guī)則將匹配到所有請(qǐng)求),如果沒有其它匹配,任何請(qǐng)求都會(huì)匹配到。
默認(rèn)情況, Nginx 先進(jìn)行前綴字符串匹配,然后進(jìn)行正則表達(dá)式匹配:如果前綴字符串匹配到了,并且前綴字符串有^~ ,就不繼續(xù)往下匹配正則表達(dá)式;如果沒有這個(gè)^~ ,即使前綴匹配到了,也要進(jìn)行正則表則式匹配,如果正則表達(dá)式匹配到了,就是用正則表達(dá)式的,沒有就是用前綴字符串匹配到的路徑。總結(jié)如下:
匹配優(yōu)先級(jí):精確匹配 >(^~) > 正則匹配 > 字符串(長(zhǎng) > 短)Location 配置應(yīng)用
# 第一個(gè)必選規(guī)則 # 直接匹配網(wǎng)站根目錄,通過域名訪問網(wǎng)站首頁比較頻繁,使用這個(gè)會(huì)加速處理,比如官網(wǎng)首頁 location = / { root /usr/share/nginx/html; index index.php index.html index.htm; } # 第二個(gè)必選規(guī)則 # 處理靜態(tài)文件請(qǐng)求,有兩種配置模式,目錄匹配或后綴匹配,任選其一或搭配使用 location ~* .(gif|jpg|jpeg|png|css|js|ico)$ { expires 7d; # 用來設(shè)置 HTTP 應(yīng)答中的 Expires 和 Cache-Control 的頭標(biāo)時(shí)間,來告訴瀏覽器訪問這個(gè)靜態(tài)文件時(shí),不用再去請(qǐng)求服務(wù)器,直接從本地緩存讀取就可以了 } location ^~ /public/ { root /usr/share/nginx/html/laravel/public; expires 7d; } # 第三個(gè)必選規(guī)則 # 用來轉(zhuǎn)發(fā)動(dòng)態(tài)請(qǐng)求到后端應(yīng)用服務(wù)器 location / { root /usr/share/nginx/html; index index.php index.html index.htm; }
有時(shí),需要將原來的 URL 請(qǐng)求跳轉(zhuǎn)到新的 URL 鏈接,但又不想使原來的 URL 失效,比如訪問 http://jochen.com/test 時(shí),需要跳轉(zhuǎn)到 http://jochen.com/ ,此時(shí)可以配置一個(gè)跳轉(zhuǎn):
location = /test/ { return 302 http://jochen.com/; }
有時(shí),我們需要對(duì)訪問做一些限制。比如,Nginx 的 ngx_http_stub_status_module 模塊(該模塊不是默認(rèn)安裝的,可以使用 --with-http_stub_status_module 編譯安裝)提供了查看 Nginx 運(yùn)行的基本狀態(tài)信息,我們只想讓部分 IP 的人可以查看,此時(shí)可以配置一個(gè)訪問控制:
location /nginx-status { # 在1.7.5版本之前,使用 stub_status on; 指令 stub_status; allow 127.0.0.1; allow 192.168.4.220; deny all; }
Nginx 默認(rèn)是不允許列出整個(gè)目錄的。如需此功能,我們可以通過一下配置開啟:
location / { root /usr/share/nginx/html; autoindex on; # 開啟目錄自動(dòng)索引 autoindex_exact_size off; # 默認(rèn)為on,顯示出文件的確切大小,單位是bytes。改為off后,顯示出文件的大概大小,單位是kB或者M(jìn)B或者GB autoindex_localtime on; # 默認(rèn)為off,顯示的文件時(shí)間為GMT時(shí)間。改為on后,顯示的文件時(shí)間為文件的服務(wù)器時(shí)間 }
參考文章
nginx 服務(wù)器安裝及配置文件詳解
前端工程師學(xué)習(xí) Nginx 入門篇
Module ngx_http_stub_status_module
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/39851.html
摘要:根據(jù)官方文檔說明,模塊是用于使用正則表達(dá)式更改請(qǐng)求,有條件地選擇配置,并返回重定向。指令停止執(zhí)行模塊的指令集,但是其他模塊指令不受影響。可以使用標(biāo)志來終止指令的進(jìn)一步處理。 這是 Nginx 學(xué)習(xí)總結(jié)的第四篇,上一篇介紹到了 Nginx 學(xué)習(xí)總結(jié)(3) —— Location 模塊,這一篇會(huì)對(duì)Rewrite模塊 做一些總結(jié)。根據(jù)官方文檔說明,Rewrite 模塊是用于使用 PCRE 正...
摘要:配置信息主要分為六大部分全局設(shè)置事件設(shè)置服務(wù)器設(shè)置虛擬主機(jī)設(shè)置匹配設(shè)置反向代理設(shè)置。最大客戶端連接數(shù)由和決定作為服務(wù)器時(shí),作為反向代理時(shí),。參考文章服務(wù)器安裝及配置文件詳解的配置虛擬主機(jī)負(fù)載均衡和反向代理 這是 Nginx 學(xué)習(xí)總結(jié)的第二篇,上一篇介紹到了 Nginx 學(xué)習(xí)總結(jié)(1) —— 概述,這一篇會(huì)對(duì) Nginx 的基本配置做一些總結(jié)。 Nginx 配置信息主要分為六大部分: m...
摘要:實(shí)現(xiàn)負(fù)載均衡負(fù)載均衡是反向代理技術(shù)的一種運(yùn)用。而實(shí)現(xiàn)負(fù)載均衡的核心在于如何將請(qǐng)求合理地分配給不同的后端服務(wù)器。 這是 Nginx 學(xué)習(xí)總結(jié)的第六篇,上一篇介紹到了 Nginx 學(xué)習(xí)總結(jié)(5) —— 反向代理,本文主要演示結(jié)合 proxy 和 upstream 模塊的使用來實(shí)現(xiàn) Nginx 的負(fù)載均衡。 Nginx 官網(wǎng)中對(duì) upstream 模塊的介紹:ngx_http_upstrea...
摘要:代理請(qǐng)求當(dāng)代理請(qǐng)求時(shí),它會(huì)將請(qǐng)求發(fā)送到指定的代理服務(wù)器,獲取響應(yīng)并將其發(fā)送回客戶端。是否啟用緩沖使用指令,默認(rèn)是開啟的。 這是 Nginx 學(xué)習(xí)總結(jié)的第五篇,上一篇介紹到了 Nginx 學(xué)習(xí)總結(jié)(4)—— Rewrite 模塊,這一篇會(huì)對(duì) 反向代理 相關(guān)知識(shí)做一些總結(jié)。 什么是代理?代理通常用于在多個(gè)服務(wù)器之間分配負(fù)載,無縫地顯示來自不同網(wǎng)站的內(nèi)容,或通過除 HTTP 以外的協(xié)議將請(qǐng)求...
摘要:本文將從源碼從此深入分析配置文件的解析,配置存儲(chǔ),與配置查找。在學(xué)習(xí)配置文件的解析過程之前,需要先了解一下模塊與指令的一些基本知識(shí)。 運(yùn)營研發(fā)團(tuán)隊(duì) 李樂 配置文件是nginx的基礎(chǔ),對(duì)于學(xué)習(xí)nginx源碼甚至開發(fā)nginx模塊的同學(xué)來說更是必須深究。本文將從源碼從此深入分析nginx配置文件的解析,配置存儲(chǔ),與配置查找。 看本文之前讀者可以先思考兩個(gè)問題: 1.nginx源碼中隨處可以...
閱讀 3487·2021-11-18 10:02
閱讀 1616·2021-10-12 10:12
閱讀 2998·2021-10-09 09:53
閱讀 4881·2021-09-09 09:34
閱讀 864·2021-09-06 15:02
閱讀 2784·2021-08-05 10:02
閱讀 3141·2019-08-30 15:44
閱讀 3126·2019-08-28 18:04