mirror of
https://github.com/yusing/godoxy.git
synced 2025-05-19 20:32:35 +02:00
fixed output formatting
This commit is contained in:
parent
3895718d6d
commit
076c19c4ea
10 changed files with 41 additions and 35 deletions
|
@ -14,6 +14,7 @@ ENV GOPROXY_DEBUG 0
|
|||
ENV GOPROXY_REDIRECT_HTTP 1
|
||||
|
||||
EXPOSE 80
|
||||
EXPOSE 8080
|
||||
EXPOSE 443
|
||||
EXPOSE 8443
|
||||
|
||||
|
|
BIN
bin/go-proxy
BIN
bin/go-proxy
Binary file not shown.
|
@ -69,30 +69,35 @@ const (
|
|||
)
|
||||
|
||||
// TODO: default + per proxy
|
||||
var transport = &http.Transport{
|
||||
Proxy: http.ProxyFromEnvironment,
|
||||
DialContext: (&net.Dialer{
|
||||
Timeout: 60 * time.Second,
|
||||
KeepAlive: 60 * time.Second,
|
||||
}).DialContext,
|
||||
MaxIdleConns: 1000,
|
||||
MaxIdleConnsPerHost: 1000,
|
||||
}
|
||||
var (
|
||||
transport = &http.Transport{
|
||||
Proxy: http.ProxyFromEnvironment,
|
||||
DialContext: (&net.Dialer{
|
||||
Timeout: 60 * time.Second,
|
||||
KeepAlive: 60 * time.Second,
|
||||
}).DialContext,
|
||||
MaxIdleConns: 1000,
|
||||
MaxIdleConnsPerHost: 1000,
|
||||
}
|
||||
|
||||
var transportNoTLS = func() *http.Transport {
|
||||
var clone = transport.Clone()
|
||||
clone.TLSClientConfig = &tls.Config{InsecureSkipVerify: true}
|
||||
return clone
|
||||
}()
|
||||
transportNoTLS = func() *http.Transport {
|
||||
var clone = transport.Clone()
|
||||
clone.TLSClientConfig = &tls.Config{InsecureSkipVerify: true}
|
||||
return clone
|
||||
}()
|
||||
)
|
||||
|
||||
const wildcardLabelPrefix = "proxy.*."
|
||||
|
||||
const clientUrlFromEnv = "FROM_ENV"
|
||||
|
||||
const configPath = "config.yml"
|
||||
const (
|
||||
configPath = "config.yml"
|
||||
templatePath = "templates/panel.html"
|
||||
)
|
||||
|
||||
const StreamStopListenTimeout = 1 * time.Second
|
||||
|
||||
const templateFile = "templates/panel.html"
|
||||
|
||||
const udpBufferSize = 1500
|
||||
|
||||
var logLevel = func() logrus.Level {
|
||||
|
|
|
@ -51,7 +51,7 @@ func (p *Provider) getContainerProxyConfigs(container types.Container, clientIP
|
|||
if err != nil {
|
||||
l.Error(err)
|
||||
}
|
||||
err = p.setConfigField(&config, label, value, wildcardPrefix)
|
||||
err = p.setConfigField(&config, label, value, wildcardLabelPrefix)
|
||||
if err != nil {
|
||||
l.Error(err)
|
||||
}
|
||||
|
@ -196,5 +196,3 @@ func selectPortInternal(c types.Container, getPort func(types.Port) uint16) uint
|
|||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
const wildcardPrefix = "proxy.*."
|
||||
|
|
|
@ -20,3 +20,10 @@ func (p *httpLoadBalancePool) Add(route *HTTPRoute) {
|
|||
func (p *httpLoadBalancePool) Iterator() []*HTTPRoute {
|
||||
return p.pool
|
||||
}
|
||||
|
||||
func (p *httpLoadBalancePool) Pick() *HTTPRoute {
|
||||
// round-robin
|
||||
index := int(p.curentIndex.Load())
|
||||
defer p.curentIndex.Add(1)
|
||||
return p.pool[index%len(p.pool)]
|
||||
}
|
|
@ -68,7 +68,7 @@ func NewHTTPRoute(config *ProxyConfig) (*HTTPRoute, error) {
|
|||
route.Proxy.ModifyResponse = func(r *http.Response) error {
|
||||
contentType, ok := r.Header["Content-Type"]
|
||||
if !ok || len(contentType) == 0 {
|
||||
route.l.Debug("unknown content type for", r.Request.URL.String())
|
||||
route.l.Debug("unknown content type for ", r.Request.URL.String())
|
||||
return nil
|
||||
}
|
||||
// disable cache
|
||||
|
@ -110,13 +110,6 @@ func NewHTTPRoute(config *ProxyConfig) (*HTTPRoute, error) {
|
|||
return route, nil
|
||||
}
|
||||
|
||||
func (p *httpLoadBalancePool) Pick() *HTTPRoute {
|
||||
// round-robin
|
||||
index := int(p.curentIndex.Load())
|
||||
defer p.curentIndex.Add(1)
|
||||
return p.pool[index%len(p.pool)]
|
||||
}
|
||||
|
||||
func (r *HTTPRoute) RemoveFromRoutes() {
|
||||
httpRoutes.Delete(r.Alias)
|
||||
}
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/signal"
|
||||
|
@ -14,7 +13,7 @@ import (
|
|||
func main() {
|
||||
var err error
|
||||
|
||||
flag.Parse()
|
||||
// flag.Parse()
|
||||
runtime.GOMAXPROCS(runtime.NumCPU())
|
||||
|
||||
log.SetFormatter(&log.TextFormatter{
|
||||
|
@ -46,7 +45,7 @@ func main() {
|
|||
}()
|
||||
go func() {
|
||||
log.Infof("starting http panel on port 8080")
|
||||
err := http.ListenAndServe(":8080", http.HandlerFunc(panelHandler))
|
||||
err = http.ListenAndServe(":8080", http.HandlerFunc(panelHandler))
|
||||
if err != nil {
|
||||
log.Warning("HTTP panel error: ", err)
|
||||
}
|
||||
|
@ -75,6 +74,7 @@ func main() {
|
|||
signal.Notify(sig, syscall.SIGHUP)
|
||||
|
||||
<-sig
|
||||
cfg.StopWatching()
|
||||
cfg.StopProviders()
|
||||
close(fsWatcherStop)
|
||||
close(dockerWatcherStop)
|
||||
|
|
|
@ -42,7 +42,7 @@ func panelIndex(w http.ResponseWriter, r *http.Request) {
|
|||
return
|
||||
}
|
||||
|
||||
tmpl, err := template.ParseFiles(templateFile)
|
||||
tmpl, err := template.ParseFiles(templatePath)
|
||||
|
||||
if err != nil {
|
||||
palog.Error(err)
|
||||
|
|
|
@ -136,9 +136,9 @@ func (route *StreamRouteBase) SetupListen() {
|
|||
return
|
||||
}
|
||||
route.ListeningPort = freePort
|
||||
route.l.Info("Assigned free port", route.ListeningPort)
|
||||
route.l.Info("Assigned free port ", route.ListeningPort)
|
||||
}
|
||||
route.l.Info("Listening on", route.ListeningUrl())
|
||||
route.l.Info("Listening on ", route.ListeningUrl())
|
||||
}
|
||||
|
||||
func (route *StreamRouteBase) RemoveFromRoutes() {
|
||||
|
|
|
@ -135,6 +135,8 @@ func watchFiles() {
|
|||
defer fsWatcher.Close()
|
||||
for {
|
||||
select {
|
||||
case <-fsWatcherStop:
|
||||
return
|
||||
case event, ok := <-fsWatcher.Events:
|
||||
if !ok {
|
||||
wlog.Error("file watcher channel closed")
|
||||
|
@ -174,7 +176,7 @@ func (w *dockerWatcher) watch() {
|
|||
case <-w.stop:
|
||||
return
|
||||
case msg := <-msgChan:
|
||||
w.l.Info("container", msg.Actor.Attributes["name"], msg.Action)
|
||||
w.l.Infof("container %s %s", msg.Actor.Attributes["name"], msg.Action)
|
||||
w.onChange()
|
||||
case err := <-errChan:
|
||||
w.l.Errorf("%s, retrying in 1s", err)
|
||||
|
|
Loading…
Add table
Reference in a new issue