SSL frontend
This commit is contained in:
parent
91f95f4fa2
commit
cc88e28213
3 changed files with 19 additions and 13 deletions
|
@ -1,12 +1,10 @@
|
||||||
# /træfɪk/
|
# /træfɪk/
|
||||||
|
|
||||||
* Logs
|
|
||||||
* Default configuration values
|
* Default configuration values
|
||||||
* Retry with streams
|
* Retry with streams
|
||||||
* Static files
|
* Static files
|
||||||
* Licence
|
* Licence
|
||||||
* Add traefik.indlude all/enabled policy
|
* Add traefik.indlude all/enabled policy
|
||||||
* SSL frontend support
|
|
||||||
* SSL backends support
|
* SSL backends support
|
||||||
* Consul support
|
* Consul support
|
||||||
* README
|
* README
|
||||||
|
@ -24,3 +22,5 @@
|
||||||
* ~~Weights~~
|
* ~~Weights~~
|
||||||
* ~~Filter traefik.enabled=false apps~~
|
* ~~Filter traefik.enabled=false apps~~
|
||||||
* ~~Filter no exposed port apps~~
|
* ~~Filter no exposed port apps~~
|
||||||
|
* ~~Logs~~
|
||||||
|
* ~~SSL frontend support~~
|
||||||
|
|
|
@ -6,6 +6,7 @@ type GlobalConfiguration struct {
|
||||||
AccessLogsFile string
|
AccessLogsFile string
|
||||||
TraefikLogsFile string
|
TraefikLogsFile string
|
||||||
TraefikLogsStdout bool
|
TraefikLogsStdout bool
|
||||||
|
CertFile, KeyFile string
|
||||||
LogLevel string
|
LogLevel string
|
||||||
Docker *DockerProvider
|
Docker *DockerProvider
|
||||||
File *FileProvider
|
File *FileProvider
|
||||||
|
|
27
traefik.go
27
traefik.go
|
@ -39,11 +39,12 @@ func main() {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Error getting level", err)
|
log.Fatal("Error getting level", err)
|
||||||
}
|
}
|
||||||
if (len(gloablConfiguration.TraefikLogsFile) > 0 ){
|
|
||||||
|
if (len(gloablConfiguration.TraefikLogsFile) > 0 ) {
|
||||||
fi, err := os.OpenFile(gloablConfiguration.TraefikLogsFile, os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
|
fi, err := os.OpenFile(gloablConfiguration.TraefikLogsFile, os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Error opening file", err)
|
log.Fatal("Error opening file", err)
|
||||||
}else{
|
}else {
|
||||||
logBackend := logging.NewLogBackend(fi, "", 0)
|
logBackend := logging.NewLogBackend(fi, "", 0)
|
||||||
logBackendFormatter := logging.NewBackendFormatter(logBackend, logging.GlogFormatter)
|
logBackendFormatter := logging.NewBackendFormatter(logBackend, logging.GlogFormatter)
|
||||||
logBackendLeveled := logging.AddModuleLevel(logBackend)
|
logBackendLeveled := logging.AddModuleLevel(logBackend)
|
||||||
|
@ -51,7 +52,7 @@ func main() {
|
||||||
backends = append(backends, logBackendFormatter)
|
backends = append(backends, logBackendFormatter)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (gloablConfiguration.TraefikLogsStdout){
|
if (gloablConfiguration.TraefikLogsStdout) {
|
||||||
logBackend := logging.NewLogBackend(os.Stdout, "", 0)
|
logBackend := logging.NewLogBackend(os.Stdout, "", 0)
|
||||||
logBackendFormatter := logging.NewBackendFormatter(logBackend, format)
|
logBackendFormatter := logging.NewBackendFormatter(logBackend, format)
|
||||||
logBackendLeveled := logging.AddModuleLevel(logBackend)
|
logBackendLeveled := logging.AddModuleLevel(logBackend)
|
||||||
|
@ -121,7 +122,7 @@ func main() {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
srv = &graceful.Server{
|
srv = &graceful.Server{
|
||||||
Timeout: time.Duration(gloablConfiguration.GraceTimeOut) * time.Second,
|
Timeout: time.Duration(gloablConfiguration.GraceTimeOut) * time.Second,
|
||||||
NoSignalHandling: true,
|
NoSignalHandling: true,
|
||||||
|
|
||||||
Server: &http.Server{
|
Server: &http.Server{
|
||||||
|
@ -131,7 +132,11 @@ func main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
srv.ListenAndServe()
|
if (len(gloablConfiguration.CertFile) > 0 && len(gloablConfiguration.KeyFile) > 0) {
|
||||||
|
srv.ListenAndServeTLS(gloablConfiguration.CertFile, gloablConfiguration.KeyFile)
|
||||||
|
} else {
|
||||||
|
srv.ListenAndServe()
|
||||||
|
}
|
||||||
}()
|
}()
|
||||||
log.Notice("Started")
|
log.Notice("Started")
|
||||||
<-srv.StopChan()
|
<-srv.StopChan()
|
||||||
|
@ -145,13 +150,13 @@ func notFoundHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
func LoadDefaultConfig(gloablConfiguration *GlobalConfiguration) *mux.Router {
|
func LoadDefaultConfig(gloablConfiguration *GlobalConfiguration) *mux.Router {
|
||||||
router := mux.NewRouter()
|
router := mux.NewRouter()
|
||||||
if (len(gloablConfiguration.AccessLogsFile) > 0 ){
|
if (len(gloablConfiguration.AccessLogsFile) > 0 ) {
|
||||||
fi, err := os.OpenFile(gloablConfiguration.AccessLogsFile, os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
|
fi, err := os.OpenFile(gloablConfiguration.AccessLogsFile, os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Error opening file", err)
|
log.Fatal("Error opening file", err)
|
||||||
}
|
}
|
||||||
router.NotFoundHandler = handlers.CombinedLoggingHandler(fi, http.HandlerFunc(notFoundHandler))
|
router.NotFoundHandler = handlers.CombinedLoggingHandler(fi, http.HandlerFunc(notFoundHandler))
|
||||||
}else{
|
}else {
|
||||||
router.NotFoundHandler = http.HandlerFunc(notFoundHandler)
|
router.NotFoundHandler = http.HandlerFunc(notFoundHandler)
|
||||||
}
|
}
|
||||||
return router
|
return router
|
||||||
|
@ -159,13 +164,13 @@ func LoadDefaultConfig(gloablConfiguration *GlobalConfiguration) *mux.Router {
|
||||||
|
|
||||||
func LoadConfig(configuration *Configuration, gloablConfiguration *GlobalConfiguration) *mux.Router {
|
func LoadConfig(configuration *Configuration, gloablConfiguration *GlobalConfiguration) *mux.Router {
|
||||||
router := mux.NewRouter()
|
router := mux.NewRouter()
|
||||||
if (len(gloablConfiguration.AccessLogsFile) > 0 ){
|
if (len(gloablConfiguration.AccessLogsFile) > 0 ) {
|
||||||
fi, err := os.OpenFile(gloablConfiguration.AccessLogsFile, os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
|
fi, err := os.OpenFile(gloablConfiguration.AccessLogsFile, os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Error opening file", err)
|
log.Fatal("Error opening file", err)
|
||||||
}
|
}
|
||||||
router.NotFoundHandler = handlers.CombinedLoggingHandler(fi, http.HandlerFunc(notFoundHandler))
|
router.NotFoundHandler = handlers.CombinedLoggingHandler(fi, http.HandlerFunc(notFoundHandler))
|
||||||
}else{
|
}else {
|
||||||
router.NotFoundHandler = http.HandlerFunc(notFoundHandler)
|
router.NotFoundHandler = http.HandlerFunc(notFoundHandler)
|
||||||
}
|
}
|
||||||
backends := map[string]http.Handler{}
|
backends := map[string]http.Handler{}
|
||||||
|
@ -193,13 +198,13 @@ func LoadConfig(configuration *Configuration, gloablConfiguration *GlobalConfigu
|
||||||
log.Debug("Reusing backend", route.Backend)
|
log.Debug("Reusing backend", route.Backend)
|
||||||
}
|
}
|
||||||
for _, muxRoute := range newRoutes {
|
for _, muxRoute := range newRoutes {
|
||||||
if (len(gloablConfiguration.AccessLogsFile) > 0 ){
|
if (len(gloablConfiguration.AccessLogsFile) > 0 ) {
|
||||||
fi, err := os.OpenFile(gloablConfiguration.AccessLogsFile, os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
|
fi, err := os.OpenFile(gloablConfiguration.AccessLogsFile, os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Error opening file", err)
|
log.Fatal("Error opening file", err)
|
||||||
}
|
}
|
||||||
muxRoute.Handler(handlers.CombinedLoggingHandler(fi, backends[route.Backend]))
|
muxRoute.Handler(handlers.CombinedLoggingHandler(fi, backends[route.Backend]))
|
||||||
}else{
|
}else {
|
||||||
muxRoute.Handler(backends[route.Backend])
|
muxRoute.Handler(backends[route.Backend])
|
||||||
}
|
}
|
||||||
err := muxRoute.GetError()
|
err := muxRoute.GetError()
|
||||||
|
|
Loading…
Reference in a new issue