亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

REST HTTPS 服務器出錯

REST HTTPS 服務器出錯

Go
瀟瀟雨雨 2021-06-29 14:43:56
我正在嘗試在 Golang 中創建一個帶有 TLS 的 REST 服務器,但該程序不起作用:http.Handle("/", gorest.Handle())err = http.ListenAndServeTLS(":443", "cert.pem", "key.pem", nil)如果我用非 root 用戶運行它,我會得到listen tcp 127.0.0.1:443: permission denied. 以 root 用戶運行它不會顯示之前的消息,但在調用 ListenAndServeTLS 時會阻止執行。使用的操作系統是 Linux x86_64。有任何想法嗎?
查看完整描述

1 回答

?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

權限

端口 <= 1024 是特權端口。除非您是 root 或擁有使用它們的明確許可,否則您不能使用它們。請參閱此答案以獲取解釋或維基百科或您更信任的內容。

請參閱此答案以獲取允許您的應用程序打開這些端口而不授予它們超級用戶權限的解決方案(這是一個壞主意)。金錢報價:

sudo setcap 'cap_net_bind_service=+ep' /opt/yourGoBinary

阻塞

ListenAndServe和它的 TLS 對應ListeAndServeTLS是阻塞的。

返回的 http 處理程序gorest.Handle()/被訪問時并發執行。如果您希望其他代碼同時運行,請在運行ListeAndServe 或實現不同的 http 處理程序之前啟動一個 goroutine 。

使用 goroutine 的示例:

func printStuff() {

    time.Sleep(1 * time.Second)

    fmt.Println("foo")

}


func main() {

    go printSTuff()

    log.Fatal(http.ListeAndServe(":80"))

}


查看完整回答
反對 回復 2021-07-05
  • 1 回答
  • 0 關注
  • 217 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號