摘要:前端最基礎(chǔ)的就是。我這邊預(yù)期準(zhǔn)備進(jìn)入中級(jí)階段,中間還是會(huì)穿插一些實(shí)戰(zhàn)。語(yǔ)法精確匹配,匹配成功,則停止搜索正則不能有嵌套的。指令會(huì)根據(jù)在配置文件中出現(xiàn)的順序依次執(zhí)行,可以使用來終止接下來的處理。如果以或者或者,則停止處理,立刻重定向。
前端最基礎(chǔ)的就是 HTML+CSS+Javascript。掌握了這三門技術(shù)就算入門,但也僅僅是入門,現(xiàn)在前端開發(fā)的定義已經(jīng)遠(yuǎn)遠(yuǎn)不止這些。前端小課堂(HTML/CSS/JS),本著提升技術(shù)水平,打牢基礎(chǔ)知識(shí)的中心思想,我們開課啦(每周四)。
截止到 2019-05-30 期,所有成員都進(jìn)行了一次分享。內(nèi)部對(duì)課程進(jìn)行了一些調(diào)整,之后會(huì)針對(duì)項(xiàng)目開始 review 。我這邊預(yù)期準(zhǔn)備進(jìn)入中級(jí)階段,中間還是會(huì)穿插一些實(shí)戰(zhàn)。 前端培訓(xùn)目錄
今天講什么?nginx 的 server
nginx 的 location 匹配規(guī)則
nginx 的 root、rewrite、proxy_pass、alias
nginx 的命令以及報(bào)錯(cuò)日志
今天為什么會(huì)開這個(gè)題目?
公司內(nèi)部的前端構(gòu)建工具升級(jí)(gulp),幫小伙伴處理了一下 nginx 的配置,輔助提升開發(fā)的體驗(yàn)。
公司想要加快網(wǎng)頁(yè)訪問速度(前端緩存),為了測(cè)試,我改了我自己服務(wù)器的 nginx 配置。
PWA ()
manifest ()
其他方案(localStroage存)
有老哥有科學(xué)有效的方案嗎?緩存這塊我還在實(shí)驗(yàn)中,我司有結(jié)果之后我會(huì)寫個(gè)文章發(fā)出來。
nginx 的 server定義虛擬主機(jī)相關(guān)。server 中通過 server_name 來匹配域名,listen來匹配端口
server_name用于匹配域名,需要已經(jīng)映射的域名。
舉個(gè)栗子,我在阿里云有一臺(tái)云服務(wù)器 IP:123.56.16.33:443。買了一個(gè)域名 lilnong.top。
我現(xiàn)在把我的域名指向了我的ip。那所有請(qǐng)求我域名的都會(huì)到我這臺(tái)服務(wù)器上。我需要用 server_name 來判斷請(qǐng)求的是那臺(tái)主機(jī),再進(jìn)行分發(fā)
用于匹配端口號(hào),一般來說,我們當(dāng)做服務(wù)的就需要加上 80 和 443
協(xié)議 | 端口 | 用途 |
---|---|---|
http | 80 | 瀏覽器訪問 |
https | 443 | 瀏覽器訪問 |
ftp | 21 |
完全匹配
通配符在前的,如 *.lilnong.top
在后的,如 www.lilnong.*
正則匹配,如 ~^.www.lilnong.com$
如果都不匹配
優(yōu)先選擇 listen 配置項(xiàng)后有 default 或 default_server 的
找到匹配 listen 端口的第一個(gè) server 塊
nginx 的 location 匹配規(guī)則 location 是什么?location 是用于在 server 服務(wù)中,根據(jù) URL 進(jìn)行匹配查找。屬于 ngx_http_core_module 模塊。
location 語(yǔ)法location [ = | ~ | ~* | ^~ ] uri {...}
= : 精確匹配,匹配成功,則停止搜索正則; 不能有嵌套的 location。可以加速 request 的處理。
~ : 區(qū)分大小寫的正則匹配
~* :不區(qū)分大小寫正則匹配
^~ :不進(jìn)行正則的匹配。
location 匹配規(guī)則前綴匹配(prefix string)
如 /、/static/
正則匹配(regular expresstion)(RegExp)
如 .(gif|jpg|png|js|css)$
nginx 首先檢查 前綴匹配,使用 longest matching prefix 最長(zhǎng)前綴匹配規(guī)則,記住匹配的 location,然后使用正則匹配,根據(jù)他們?cè)谂渲梦募械捻樞颍坏┢ヅ涑晒Γ瑒t停止檢索。
匹配時(shí)要注意/的使用。是否要封閉。
location /static { # 可以匹配到 URL 如: "/static/html" 和 "statichtml/html` } location /static/ { # 只可匹配到 URL 如: "/static/html" 和 "static/**" }nginx 的 root、rewrite、proxy_pass、alias root
用來指定請(qǐng)求資源的真實(shí)路徑,本地磁盤路徑
location /nginx/ { root /var/log/; #請(qǐng)求http://nginx.lilnong.top/nginx/20190227_access.log #>/var/log/nginx/20190227_access.log }alias
用來指定請(qǐng)求資源的真實(shí)路徑,本地磁盤路徑。會(huì)丟棄 location 所匹配的,這是和 root 的區(qū)分
location /nginx/ { alias /var/log/nginx/; #請(qǐng)求http://nginx.lilnong.top/nginx/20190227_access.log #>/var/log/nginx/20190227_access.log }rewrite
在 server 塊中,會(huì)先執(zhí)行 rewrite 部分,然后才會(huì)匹配 location 塊。
語(yǔ)法:rewrite regex replacement [flag];
如果 regex 匹配到,則會(huì)使用 replacement 來替換 URL。
rewrite 指令會(huì)根據(jù)在配置文件中出現(xiàn)的順序依次執(zhí)行,可以使用 flag 來終止接下來的處理。
如果 replacement 以 http:// 或者 https:// 或者 $scheme,則停止處理,立刻重定向。
flag 描述
last 將根據(jù) rewrite 后的地址重新在 server標(biāo)簽執(zhí)行。
break 將根據(jù) rewrite 后的地址重新在當(dāng)前的 location標(biāo)簽執(zhí)行。
redirect 302跳轉(zhuǎn)到rewrtie后面的地址。
permanent 301永久調(diào)整到rewrtie后面的地址,即當(dāng)前地址已經(jīng)永久遷移到新地址,一般是為了對(duì)搜索引擎友好。
#這是我把ip訪問重定向到我的網(wǎng)頁(yè) server { listen 80; server_name 123.56.16.33; rewrite ^/(.*)$ https://www.lilnong.top/$1 permanent; }proxy_pass
訪問 https://nginx.lilnong.top/static/html
location /static/ { proxy_pass http://www.lilnong.top; #結(jié)尾不帶 `/`,將匹配到 http://www.lilnong.top/static/html } location /static/ { proxy_pass http://www.lilnong.top/; #結(jié)尾帶 `/`,將匹配到 http://www.lilnong.top/html }nginx 的命令以及報(bào)錯(cuò)日志
重啟(重新載入配置文件) nginx -s reload
重啟 nginx -s reopen
停止 nginx -s stop
啟動(dòng) nginx
如果有錯(cuò)誤,重啟的時(shí)候會(huì)報(bào)錯(cuò)。
在 windows 中(我們正在用的),看不到報(bào)錯(cuò),服務(wù)也起不來,可以的 nginx/logs/error.log 看錯(cuò)誤日志來排查問題。
nginx 中文
nginx org
nginx的location配置詳解
微信公眾號(hào):前端linong文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/104560.html
摘要:前端最基礎(chǔ)的就是。我這邊預(yù)期準(zhǔn)備進(jìn)入中級(jí)階段,中間還是會(huì)穿插一些實(shí)戰(zhàn)。語(yǔ)法精確匹配,匹配成功,則停止搜索正則不能有嵌套的。指令會(huì)根據(jù)在配置文件中出現(xiàn)的順序依次執(zhí)行,可以使用來終止接下來的處理。如果以或者或者,則停止處理,立刻重定向。 前端最基礎(chǔ)的就是 HTML+CSS+Javascript。掌握了這三門技術(shù)就算入門,但也僅僅是入門,現(xiàn)在前端開發(fā)的定義已經(jīng)遠(yuǎn)遠(yuǎn)不止這些。前端小課堂(HTM...
摘要:前端最基礎(chǔ)的就是。數(shù)據(jù)被編碼為鍵值對(duì)。大法好,精準(zhǔn)識(shí)別,也算是正確的表單提交。全局的默認(rèn)值實(shí)例默認(rèn)值創(chuàng)建實(shí)例時(shí)設(shè)置配置的默認(rèn)值在實(shí)例已創(chuàng)建后修改默認(rèn)值攔截器,可以攔截錯(cuò)誤,進(jìn)行上報(bào)。參考資料類型看云 前端最基礎(chǔ)的就是 HTML+CSS+Javascript。掌握了這三門技術(shù)就算入門,但也僅僅是入門,現(xiàn)在前端開發(fā)的定義已經(jīng)遠(yuǎn)遠(yuǎn)不止這些。前端小課堂(HTML/CSS/JS),本著提升技術(shù)水...
摘要:前端最基礎(chǔ)的就是。數(shù)據(jù)被編碼為鍵值對(duì)。大法好,精準(zhǔn)識(shí)別,也算是正確的表單提交。全局的默認(rèn)值實(shí)例默認(rèn)值創(chuàng)建實(shí)例時(shí)設(shè)置配置的默認(rèn)值在實(shí)例已創(chuàng)建后修改默認(rèn)值攔截器,可以攔截錯(cuò)誤,進(jìn)行上報(bào)。參考資料類型看云 前端最基礎(chǔ)的就是 HTML+CSS+Javascript。掌握了這三門技術(shù)就算入門,但也僅僅是入門,現(xiàn)在前端開發(fā)的定義已經(jīng)遠(yuǎn)遠(yuǎn)不止這些。前端小課堂(HTML/CSS/JS),本著提升技術(shù)水...
摘要:我們先來了解一下需求,微信大家都有吧,拉個(gè)群注意觀察群頭像。實(shí)現(xiàn)微信頭像布局效果地址,本來是在的,但是大哥最近有點(diǎn)不穩(wěn)定老連不上。設(shè)置一下就好了實(shí)現(xiàn)微信頭像布局效果地址,我還是個(gè)孩子,寫起來真的煩啊,我就寫前幾個(gè)好不好。 前端最基礎(chǔ)的就是 HTML+CSS+Javascript。掌握了這三門技術(shù)就算入門,但也僅僅是入門,現(xiàn)在前端開發(fā)的定義已經(jīng)遠(yuǎn)遠(yuǎn)不止這些。前端小課堂(HTML/CSS/...
摘要:我們先來了解一下需求,微信大家都有吧,拉個(gè)群注意觀察群頭像。實(shí)現(xiàn)微信頭像布局效果地址,本來是在的,但是大哥最近有點(diǎn)不穩(wěn)定老連不上。設(shè)置一下就好了實(shí)現(xiàn)微信頭像布局效果地址,我還是個(gè)孩子,寫起來真的煩啊,我就寫前幾個(gè)好不好。 前端最基礎(chǔ)的就是 HTML+CSS+Javascript。掌握了這三門技術(shù)就算入門,但也僅僅是入門,現(xiàn)在前端開發(fā)的定義已經(jīng)遠(yuǎn)遠(yuǎn)不止這些。前端小課堂(HTML/CSS/...
閱讀 3504·2021-10-18 13:30
閱讀 2957·2021-10-09 09:44
閱讀 1973·2019-08-30 11:26
閱讀 2306·2019-08-29 13:17
閱讀 769·2019-08-29 12:17
閱讀 2259·2019-08-26 18:42
閱讀 484·2019-08-26 13:24
閱讀 2964·2019-08-26 11:39