提交 18a02d7d 编写于 作者: A astaxie

beego:support https & http listen

上级 3f4d750d
...@@ -88,7 +88,7 @@ func listConf(rw http.ResponseWriter, r *http.Request) { ...@@ -88,7 +88,7 @@ func listConf(rw http.ResponseWriter, r *http.Request) {
fmt.Fprintln(rw, "StaticExtensionsToGzip:", StaticExtensionsToGzip) fmt.Fprintln(rw, "StaticExtensionsToGzip:", StaticExtensionsToGzip)
fmt.Fprintln(rw, "HttpAddr:", HttpAddr) fmt.Fprintln(rw, "HttpAddr:", HttpAddr)
fmt.Fprintln(rw, "HttpPort:", HttpPort) fmt.Fprintln(rw, "HttpPort:", HttpPort)
fmt.Fprintln(rw, "HttpTLS:", HttpTLS) fmt.Fprintln(rw, "HttpTLS:", EnableHttpTLS)
fmt.Fprintln(rw, "HttpCertFile:", HttpCertFile) fmt.Fprintln(rw, "HttpCertFile:", HttpCertFile)
fmt.Fprintln(rw, "HttpKeyFile:", HttpKeyFile) fmt.Fprintln(rw, "HttpKeyFile:", HttpKeyFile)
fmt.Fprintln(rw, "RecoverPanic:", RecoverPanic) fmt.Fprintln(rw, "RecoverPanic:", RecoverPanic)
......
...@@ -45,6 +45,7 @@ func (app *App) Run() { ...@@ -45,6 +45,7 @@ func (app *App) Run() {
err error err error
l net.Listener l net.Listener
) )
endRunning := make(chan bool)
if UseFcgi { if UseFcgi {
if HttpPort == 0 { if HttpPort == 0 {
...@@ -83,18 +84,34 @@ func (app *App) Run() { ...@@ -83,18 +84,34 @@ func (app *App) Run() {
ReadTimeout: time.Duration(HttpServerTimeOut) * time.Second, ReadTimeout: time.Duration(HttpServerTimeOut) * time.Second,
WriteTimeout: time.Duration(HttpServerTimeOut) * time.Second, WriteTimeout: time.Duration(HttpServerTimeOut) * time.Second,
} }
if HttpTLS { if EnableHttpTLS {
err = s.ListenAndServeTLS(HttpCertFile, HttpKeyFile) go func() {
} else { if HttpsPort != 0 {
err = s.ListenAndServe() s.Addr = fmt.Sprintf("%s:%d", HttpAddr, HttpsPort)
}
err := s.ListenAndServeTLS(HttpCertFile, HttpKeyFile)
if err != nil {
BeeLogger.Critical("ListenAndServe: ", err)
time.Sleep(100 * time.Microsecond)
endRunning <- true
}
}()
}
if EnableHttpListen {
go func() {
err := s.ListenAndServe()
if err != nil {
BeeLogger.Critical("ListenAndServe: ", err)
time.Sleep(100 * time.Microsecond)
endRunning <- true
}
}()
} }
} }
} }
if err != nil { <-endRunning
BeeLogger.Critical("ListenAndServe: ", err)
time.Sleep(100 * time.Microsecond)
}
} }
// Router adds a url-patterned controller handler. // Router adds a url-patterned controller handler.
......
...@@ -270,7 +270,7 @@ func initBeforeHttpRun() { ...@@ -270,7 +270,7 @@ func initBeforeHttpRun() {
sessionConfig = `{"cookieName":"` + SessionName + `",` + sessionConfig = `{"cookieName":"` + SessionName + `",` +
`"gclifetime":` + strconv.FormatInt(SessionGCMaxLifetime, 10) + `,` + `"gclifetime":` + strconv.FormatInt(SessionGCMaxLifetime, 10) + `,` +
`"providerConfig":"` + SessionSavePath + `",` + `"providerConfig":"` + SessionSavePath + `",` +
`"secure":` + strconv.FormatBool(HttpTLS) + `,` + `"secure":` + strconv.FormatBool(EnableHttpTLS) + `,` +
`"sessionIDHashFunc":"` + SessionHashFunc + `",` + `"sessionIDHashFunc":"` + SessionHashFunc + `",` +
`"sessionIDHashKey":"` + SessionHashKey + `",` + `"sessionIDHashKey":"` + SessionHashKey + `",` +
`"enableSetCookie":` + strconv.FormatBool(SessionAutoSetCookie) + `,` + `"enableSetCookie":` + strconv.FormatBool(SessionAutoSetCookie) + `,` +
......
...@@ -30,9 +30,11 @@ var ( ...@@ -30,9 +30,11 @@ var (
StaticDir map[string]string StaticDir map[string]string
TemplateCache map[string]*template.Template // template caching map TemplateCache map[string]*template.Template // template caching map
StaticExtensionsToGzip []string // files with should be compressed with gzip (.js,.css,etc) StaticExtensionsToGzip []string // files with should be compressed with gzip (.js,.css,etc)
EnableHttpListen bool
HttpAddr string HttpAddr string
HttpPort int HttpPort int
HttpTLS bool EnableHttpTLS bool
HttpsPort int
HttpCertFile string HttpCertFile string
HttpKeyFile string HttpKeyFile string
RecoverPanic bool // flag of auto recover panic RecoverPanic bool // flag of auto recover panic
...@@ -98,9 +100,12 @@ func init() { ...@@ -98,9 +100,12 @@ func init() {
TemplateCache = make(map[string]*template.Template) TemplateCache = make(map[string]*template.Template)
// set this to 0.0.0.0 to make this app available to externally // set this to 0.0.0.0 to make this app available to externally
EnableHttpListen = true //default enable http Listen
HttpAddr = "" HttpAddr = ""
HttpPort = 8080 HttpPort = 8080
HttpsPort = 443
AppName = "beego" AppName = "beego"
RunMode = "dev" //default runmod RunMode = "dev" //default runmod
...@@ -176,6 +181,10 @@ func ParseConfig() (err error) { ...@@ -176,6 +181,10 @@ func ParseConfig() (err error) {
HttpPort = v HttpPort = v
} }
if v, err := AppConfig.Bool("EnableHttpListen"); err == nil {
EnableHttpListen = v
}
if maxmemory, err := AppConfig.Int64("MaxMemory"); err == nil { if maxmemory, err := AppConfig.Int64("MaxMemory"); err == nil {
MaxMemory = maxmemory MaxMemory = maxmemory
} }
...@@ -281,8 +290,12 @@ func ParseConfig() (err error) { ...@@ -281,8 +290,12 @@ func ParseConfig() (err error) {
TemplateRight = tplright TemplateRight = tplright
} }
if httptls, err := AppConfig.Bool("HttpTLS"); err == nil { if httptls, err := AppConfig.Bool("EnableHttpTLS"); err == nil {
HttpTLS = httptls EnableHttpTLS = httptls
}
if httpsport, err := AppConfig.Int("HttpsPort"); err == nil {
HttpsPort = httpsport
} }
if certfile := AppConfig.String("HttpCertFile"); certfile != "" { if certfile := AppConfig.String("HttpCertFile"); certfile != "" {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册