前言: 本人安裝nginx-echo-module的初衷是之前遇到過一些時候,雖然有配置location規則,但是卻在瀏覽器訪問時,出現錯誤等未匹配或不符合預期的情況,想要知道,實際上是否有匹配哪條location規則,但是nginx的日誌卻只能記錄請求url,所以,看到echo輸出就很開心,畢竟感 ...
前言:
本人安裝nginx-echo-module的初衷是之前遇到過一些時候,雖然有配置location規則,但是卻在瀏覽器訪問時,出現錯誤等未匹配或不符合預期的情況,想要知道,實際上是否有匹配哪條location規則,但是nginx的日誌卻只能記錄請求url,所以,看到echo輸出就很開心,畢竟感覺return不是那麼好用的,作為一個小白前端,只能寫到這種程度,各位參考指教吧~
- 下載nginx源碼 下載地址:鏈接: https://pan.baidu.com/s/1m3ICsUnJ6XXilFdYrXDQXQ 密碼: 936t
- 下載nginx-echo-module 鏈接:https://github.com/openresty/echo-nginx-module/releases/tag/v0.61
- 命令行新建文件夾,將下載下來的nginx源碼解壓,cd到該目錄
./configure
sudo make
sudo make install
此時,nginx已經成功安裝到系統/usr/local/nginx目錄下,可執行文件是/usr/local/nginx/sbin中的nginx文件
啟動命令:cd /usr/local/nginx/sbin
sudo ./nginx
重啟使配置生效 sudo ./nginx -s reload
停止服務 sudo ./nginx -s stop
4. 將nginx-echo-module解壓後移動到3中目錄下
sudo ./configure --add-module=echo-nginx-module-0.61
sudo make
sudo make install
這個過程中,因為按照網上教程操作,但是,下載的0.60及0.58在sudo make時都會在控制台報2個錯,因為沒截圖,記得報錯是賦值類型不匹配相關,錯誤文件是http-request.c,後來嘗試下載了鏈接中的0.61版本,重新從.configure執行一次,發現沒有報錯了(這個過程真是煎熬啊,自己又不懂nginx實現的細節,網上又沒有很多類似報錯信息,像沒頭蒼蠅一樣亂試)
接下來,發現nginx安裝目錄下的nginx.conf不允許修改,嘗試在文件簡介處將許可權修改為可讀寫,但是還是不行,只能講文件複製到別處修改後再覆蓋回來,個人其他nginx配置是放在nginx安裝目錄下新建了一個servers文件夾,裡頭有各種功能變數名稱的配置文件
此時,再在任意location /xxx配置中echo 'xxxxx' 然後在瀏覽器中訪問該功能變數名稱:埠號/location路徑, 發現回車後,瀏覽器會自動下載下來一個文件,內容為echo輸出的字元串(這裡不太明白為什麼,開始初衷是以為echo應該在瀏覽器控制台輸出才對,可能還是哪裡沒太搞對吧【補充:今天做測試時,發現可以在頁面上直接展示echo的字元串,好像只有匹配location時,會下載這個文件~(有待考證)】),不過到目前為止,nginx-echo也算能用了,不枉搗鼓了一天
註:
這種方法只適用於自己編譯nginx源碼,不適用於直接下載安裝nginx的(包括npm install,brew install等),直接下載的在安裝目錄下是沒有.configure可執行文件的!
參考鏈接:
https://blog.csdn.net/rex_nie/article/details/79305097