在 Golang 中,使用 autocert,我不断看到这样的例子:
server := &http.Server{
Addr: ":https",
Handler: r,
TLSConfig: &tls.Config{
GetCertificate: certManager.GetCertificate,
},
}
go http.ListenAndServe(":http", certManager.HTTPHandler(nil))
但是,我有一个包含许多站点(go 应用程序)的服务器,并且我使用 NGINX 来代理流量。我可以做这样的事情吗?
server := &http.Server{
Addr: ":8443",
Handler: r,
TLSConfig: &tls.Config{
GetCertificate: certManager.GetCertificate,
},
}
go http.ListenAndServe(":8080", certManager.HTTPHandler(nil))
如果没有,还有其他解决方案吗?
如果是这样,我不确定我做错了什么。我确实看到 certManager.GetCertificate 方法的返回之一是错误。
所以这个问题的第二部分是,我怎样才能捕捉到 certManager.GetCertificate 的错误?我的应用程序可以正常加载和编译。没有错误被抛出。