原文地址html
最近因爲要配置 nginx 服務器,裏面有個代理轉發(proxy_pass)的功能,可以將當前服務器接收到的請求轉發給其餘服務器來處理。nginx
可是在配置當中,我發現我沒法確認個人 proxy_pass 是否生效,網上現成的 echo 服務又不怎麼知足個人要求,因此就決定本身寫一個 echo 服務器,用 Golang。git
代碼在這裏 echogithub
具體的代碼就不作詳細介紹了,也就是用到了 Golang 的 http 庫,提供了一個 web 服務器和一個 websocket 服務器,使用 logrus 做爲日誌庫,原生的 template 做爲模版庫。golang
該工具爲命令行工具,只可以在命令行中啓動web
啓動事後,工具會在命令行中輸出當前 web 服務器的地址,可使用瀏覽器訪問瀏覽器
該工具備四種模式,經過 -m 參數來指定:服務器
-m echo
html 回聲模式,這也是該軟件默認的一種模式。他的做用就是:當你請求工具提供的 web 服務器地址時,服務器會將你剛纔發出的請求中全部信息都經過一個 html 文檔返回給你,相似下面這樣:websocket
-m terminal
命令行模式,這個模式下,工具只會將請求信息顯示在終端命令行中,訪問以前的那個 url (如 http://0.0.0.0:8888)不會有任何返回結果。命令行輸出以下:socket
-m file
文件模式,該模式下,工具只會將上面 terminal 模式下的請求信息寫入到指定文件,默認爲當前目錄下 logs/log.txt
文件中,但你也能夠經過 -f 自定義日誌文件地址
來自定義日誌文件存放位置。
-m ws
這個也是我最喜歡的模式了,經過 websocket 技術的使用,讓咱們可以在瀏覽器中實時觀察到指定連接的訪問信息。
該模式啓動後,照常訪問控制檯輸出的那個地址,而後瀏覽器會將該地址跳轉到一個新的地址上去,相似這樣:http://0.0.0.0:8888/4bf26e4f-7324-4942-a21c-706575cdb34d/client
:
在頁面中,有一個名爲 Target url 的字段,裏面的 url 即是指定的服務地址,任何客戶端一旦請求了該服務地址,他的請求信息就會被顯示在 http://0.0.0.0:8888/4bf26e4f-7324-4942-a21c-706575cdb34d/client
這個頁面上(也就是以前你跳轉獲得的地址),而且是實時更新的。