Commit 18a02d7d authored by astaxie's avatar astaxie

beego:support https & http listen

parent 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 { if err != nil {
BeeLogger.Critical("ListenAndServe: ", err) BeeLogger.Critical("ListenAndServe: ", err)
time.Sleep(100 * time.Microsecond) time.Sleep(100 * time.Microsecond)
endRunning <- true
} }
}()
}
}
}
<-endRunning
} }
// 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% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment