From 90e78bf41334603e93f2fde2233067347eeb43b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B2=B3?= Date: Sat, 14 Dec 2019 17:39:46 +0800 Subject: [PATCH] add web https --- conf/nps.conf | 3 +++ docs/nps_extend.md | 3 ++- server/proxy/tcp.go | 14 +++++++++++--- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/conf/nps.conf b/conf/nps.conf index d93d48f..01f3e27 100755 --- a/conf/nps.conf +++ b/conf/nps.conf @@ -42,6 +42,9 @@ web_password=123 web_port = 8080 web_ip=0.0.0.0 web_base_url= +web_open_ssl=false +web_cert_file=conf/server.pem +web_key_file=conf/server.key # if web under proxy use sub path. like http://host/nps need this. #web_base_url=/nps diff --git a/docs/nps_extend.md b/docs/nps_extend.md index e15ca8e..5208667 100644 --- a/docs/nps_extend.md +++ b/docs/nps_extend.md @@ -44,7 +44,8 @@ server { } } ``` - +## web管理使用https +如果web管理需要使用https,可以在配置文件`nps.conf`中设置`web_open_ssl=true`,并配置`web_cert_file`和`web_key_file` ## web使用Caddy代理 如果将web配置到Caddy代理,实现子路径访问nps,可以这样配置. diff --git a/server/proxy/tcp.go b/server/proxy/tcp.go index 5b04252..1f593ba 100755 --- a/server/proxy/tcp.go +++ b/server/proxy/tcp.go @@ -65,13 +65,21 @@ func (s *WebServer) Start() error { beego.BConfig.WebConfig.Session.SessionOn = true beego.SetStaticPath(beego.AppConfig.String("web_base_url")+"/static", filepath.Join(common.GetRunPath(), "web", "static")) beego.SetViewsPath(filepath.Join(common.GetRunPath(), "web", "views")) - if l, err := connection.GetWebManagerListener(); err == nil { + err := errors.New("Web management startup failure ") + var l net.Listener + if l, err = connection.GetWebManagerListener(); err == nil { beego.InitBeforeHTTPRun() - http.Serve(l, beego.BeeApp.Handlers) + if beego.AppConfig.String("web_open_ssl") == "true" { + keyPath := beego.AppConfig.String("web_key_file") + certPath := beego.AppConfig.String("web_cert_file") + err = http.ServeTLS(l, beego.BeeApp.Handlers, certPath, keyPath) + } else { + err = http.Serve(l, beego.BeeApp.Handlers) + } } else { logs.Error(err) } - return errors.New("Web management startup failure") + return err } func (s *WebServer) Close() error {