2 回答

TA貢獻(xiàn)1835條經(jīng)驗 獲得超7個贊
Golang 是一種編譯型語言。編譯源代碼的輸出是一個二進(jìn)制文件,可以直接在操作系統(tǒng)(編譯)上執(zhí)行,而不需要任何其他軟件。編譯后的二進(jìn)制文件本身包含一個使用 http 請求的網(wǎng)絡(luò)服務(wù)器。這是與 PHP 等解釋性語言的主要區(qū)別,后者需要網(wǎng)絡(luò)服務(wù)器(Apache、Nginx)將傳入請求轉(zhuǎn)換為 PHP 可以理解的協(xié)議。
我嘗試添加 .htaccess 文件但沒有成功
該.htaccess
文件是 Apache 網(wǎng)絡(luò)服務(wù)器配置文件,運行已編譯的網(wǎng)絡(luò)服務(wù)器應(yīng)用程序不需要它。
將我的Golang網(wǎng)站部署到托管上正常嗎?還是我應(yīng)該買一臺服務(wù)器?
網(wǎng)站托管提供商希望您運行 PHP 或任何其他理解 CGI 協(xié)議的應(yīng)用程序。
為了托管您的 golang webapp,您應(yīng)該像對待任何其他編譯語言一樣進(jìn)行操作:從經(jīng)典托管提供商處購買服務(wù)器 (VPS) 或使用公共云提供商。
您的另一種選擇是使用像 Google 的App Engine這樣的托管平臺。它需要您部署 golang 源代碼,并為您管理其他一切。它可能會為您省去一些 devops 的麻煩。

TA貢獻(xiàn)1807條經(jīng)驗 獲得超9個贊
共享主機計劃支持 CGI 是很常見的。net?/http/cgi包在 go 中提供了對此的支持。只要您使用標(biāo)準(zhǔn)庫中的 http 服務(wù)器,它只需要對您的 go 程序進(jìn)行微小的更改。
http.ListenAndServe(":8080", myServeMux)
會變成cgi.Serve(myServeMux)
。?http.ListenAndServe(":8080", nil)
會變成cgi.Serve(nil)
。
請注意,您不再指定端口,因為該端口現(xiàn)在已在網(wǎng)絡(luò)服務(wù)器上配置。
對此有一些注意事項:
這比內(nèi)置的 http 服務(wù)器慢,因為您的程序必須為每個頁面加載從頭開始。也就是說,go 啟動得非常快。只要您的應(yīng)用程序在啟動時沒有一堆事情要做,那就還不錯。
您不能運行后臺線程。您的程序在請求進(jìn)入時啟動,并應(yīng)在響應(yīng)發(fā)出后立即結(jié)束。
內(nèi)存和 go 通道不能在不同的請求之間共享。
- 2 回答
- 0 關(guān)注
- 160 瀏覽
添加回答
舉報