系列簡(jiǎn)介
該段來(lái)自于博客的開(kāi)篇:
大多數(shù) Nginx 新手都會(huì)頻繁遇到這樣一個(gè)困惑,那就是當(dāng)同一個(gè) location 配置塊使用了多個(gè) Nginx 模塊的配置指令時(shí),這些指令的執(zhí)行順序很可能會(huì)跟它們的書(shū)寫(xiě)順序大相徑庭。于是許多人選擇了“試錯(cuò)法”,然后他們的配置文件就時(shí)常被改得一片狼藉。
這個(gè)系列的教程就旨在幫助讀者逐步地理解這些配置指令背后的執(zhí)行時(shí)間和先后順序的奧秘。
概覽
由于工作需要,需要學(xué)習(xí)Nginx的相關(guān)知識(shí),特地開(kāi)了這個(gè)系列來(lái)做學(xué)習(xí)筆記。
主要的學(xué)習(xí)內(nèi)容將來(lái)自于agentzh的博客
該篇為第一篇
安裝echo模塊
-前提:已經(jīng)有Nginx服務(wù),需要額外安裝echo模塊
安裝教程可以看:Nginx在已安裝的情況下新增 echo 模塊
最重要的是要注意這兩個(gè)命令
# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
# cp -f objs/nginx /usr/local/nginx/sbin/nginx
第一個(gè)命令是備份;第二個(gè)命令很關(guān)鍵,將新編譯的Nginx服務(wù)覆蓋原有的Nginx服務(wù)。如果沒(méi)有覆蓋原有Nginx服務(wù),可能會(huì)導(dǎo)致
- Nginx報(bào)錯(cuò)unknown directive "echo"
- 無(wú)法使用類(lèi)似于service nginx restart這種自定義Nginx命令
注意,在第一篇文章中,需要額外安裝echo模塊,也需要打開(kāi)Nginx 的 debug日志級(jí)別
./configure --with-debug
建議一起操作
使用curl命令測(cè)試
curl命令簡(jiǎn)介:Linux curl命令詳解
先使用以下命令查看localhost是否解析到127.0.0.1;如果本地解析前面有“#”號(hào),刪除保存即可
# cat /etc/hosts
小結(jié)
- set命令作用于rewrite階段
- ngx_echo作用于content階段
- ngx_echo之所以輸出三行,是因?yàn)樽詈笠恍袨檩敵鲋甘卷憫?yīng)體末尾的結(jié)束標(biāo)記
- 在NG中輸出響應(yīng)體數(shù)據(jù),都會(huì)調(diào)用NG的輸出過(guò)濾器(output filter)