func (cmd2 *Cmd2HttpServe) Run() {
	cmd2.setupCache()
	http.Handle("/s/", http.FileServer(http.Dir("./")))
	http.Handle("/res/", Asset.HTTPHandler("/"))
	http.Handle("/favicon.ico", Asset.FileHandlerFunc("/res/css/favicon.ico"))
	http.HandleFunc("/help", cmd2.myHandlerHelp)
	http.HandleFunc("/", cmd2.myHandlerRoot)
	addr := fmt.Sprintf(":%d", cmd2.config.Port)
	log.Println("listen at", addr)
	cmd2.setupLog()
	defer cmd2.logFile.Close()
	err := http.ListenAndServe(addr, nil)
	if err != nil {
		fmt.Println(err.Error())
		log.Println(err.Error())
	}
}
Run start http server
package serve
import (
	"fmt"
	"log"
	"net/http"
	"os"
	"github.com/hidu/goutils/cache"
	"github.com/hidu/goutils/fs"
	"github.com/hidu/goutils/time_util"
)
type Cmd2HttpServe struct {
	logFile   *os.File
	logPath   string
	config    *serverConf
	Cache     cache.Cache
	cacheAble bool
}
func NewCmd2HTTPServe(confPath string) *Cmd2HttpServe {
	server := new(Cmd2HttpServe)
	server.config = loadConfig(confPath)
	return server
}
func (cmd2 *Cmd2HttpServe) SetPort(port int) {
	cmd2.config.Port = port
}