Go 語言 Web 應(yīng)用怎么使用 Nginx 部署?
1、介紹
Golang 標(biāo)準(zhǔn)庫 net/http 和 Go 語言 Web 框架,比如 Gin、Beego 和 Iris 等,可以很方便地構(gòu)建一個(gè) Web 應(yīng)用。
Nginx 是一個(gè) HTTP 和反向代理服務(wù)器、一個(gè)郵件代理服務(wù)器和一個(gè)通用的 TCP/UDP 代理服務(wù)器。本文重點(diǎn)不是介紹 Nginx,感興趣的讀者朋友們請自行查閱 Nginx 相關(guān)資料了解更多。
為什么我們還需要使用 Nginx 部署 Go 語言開發(fā)的 Web 應(yīng)用呢?
因?yàn)槲覀兛梢允褂?Nginx 提供的反向代理功能,將 Go 語言開發(fā)的 Web 應(yīng)用接入 Nginx,從而將 Nginx 的強(qiáng)大功能賦能到 Go 語言開發(fā)的 Web 應(yīng)用中。
本文我們介紹怎么使用 Nginx 部署一個(gè) Go 語言開發(fā)的 Web 應(yīng)用。
2、構(gòu)建一個(gè) Web 應(yīng)用
首先,我們需要先構(gòu)建一個(gè) Web 應(yīng)用,Gin 是一個(gè)用 Golang 編寫的 HTTP Web 框架。為了方便,我們使用 Gin 框架構(gòu)建一個(gè) Web 應(yīng)用。
示例代碼:
閱讀上面這段代碼,使用 Gin 框架構(gòu)建一個(gè)監(jiān)聽 8080 端口的 Web 應(yīng)用。
運(yùn)行代碼,使用瀏覽器訪問 http://YourIP:8080/ping?,返回結(jié)果是 {"message":"pong"}。
3、使用 Nginx 部署
使用終端通過 ssh 方式登錄到 Linux 服務(wù)器,執(zhí)行命令 nginx -t,通過輸出結(jié)果我們可以得到 Nginx 配置文件的路徑。
根據(jù)輸出結(jié)果可知,Nginx 配置文件的路徑是 /usr/local/openresty/nginx/conf/nginx.conf。
編輯 Nginx 配置文件:
在 http{}? 塊中,新增以上代碼,Nginx 監(jiān)聽 8081? 端口,訪問 Nginx 的 8081? 端口,反向代理到監(jiān)聽 8080? 端口的 Go 語言開發(fā)的 Web 應(yīng)用,如果讀者朋友們有自己的域名,還可以將域名配置到 server{} 塊中。
保存并退出 Nginx 配置文件后,執(zhí)行命令 nginx -t? 測試配置文件語法是否有誤,沒有問題的話,執(zhí)行命令 nginx -s reload?,重新加載配置文件(前提是 Nginx 已啟動(dòng),如果 Nginx 還未啟動(dòng),可以執(zhí)行命令 nginx,啟動(dòng) Nginx)。
然后,在瀏覽器訪問 http://YourIP:8081/ping?,返回結(jié)果也是 {"message":"pong"}。
4、總結(jié)
本文我們介紹怎么使用 Nginx 部署 Go 語言開發(fā)的 Web 應(yīng)用,從而將 Nginx 的強(qiáng)大功能賦能給 Go 語言開發(fā)的 Web 應(yīng)用。
實(shí)際上,就是使用 Nginx 的反向代理功能,將 Nginx 監(jiān)聽端口收到的請求轉(zhuǎn)發(fā)到 Go 語言開發(fā)的 Web 應(yīng)用監(jiān)聽的端口上。
建議讀者朋友們自行操作一遍,從而加深體會。感興趣的讀者朋友們,關(guān)于 Gin 框架 和 Nginx 的更多內(nèi)容,請自行查閱相關(guān)資料了解更多。
參考資料:
- https://gin-gonic.com/docs/
- https://nginx.org/en/