mirror of
https://github.com/willnorris/imageproxy.git
synced 2026-04-25 04:46:24 +02:00
cmd/imageproxy: add support for listening on Unix socket
Allows listening to Unix domain socket with the `-addr` option. The syntax is `unix:path`. (same as nginx `listen` directive)
This commit is contained in:
parent
816f1a6855
commit
731fa16921
1 changed files with 16 additions and 3 deletions
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
|
|
@ -30,7 +31,7 @@ import (
|
||||||
|
|
||||||
const defaultMemorySize = 100
|
const defaultMemorySize = 100
|
||||||
|
|
||||||
var addr = flag.String("addr", "localhost:8080", "TCP address to listen on")
|
var addr = flag.String("addr", "localhost:8080", "address to listen on, either a TCP address or a Unix domain socket path prefixed with unix:")
|
||||||
var allowHosts = flag.String("allowHosts", "", "comma separated list of allowed remote hosts")
|
var allowHosts = flag.String("allowHosts", "", "comma separated list of allowed remote hosts")
|
||||||
var denyHosts = flag.String("denyHosts", "", "comma separated list of denied remote hosts")
|
var denyHosts = flag.String("denyHosts", "", "comma separated list of denied remote hosts")
|
||||||
var referrers = flag.String("referrers", "", "comma separated list of allowed referring hosts")
|
var referrers = flag.String("referrers", "", "comma separated list of allowed referring hosts")
|
||||||
|
|
@ -92,6 +93,18 @@ func main() {
|
||||||
p.MinimumCacheDuration = *minCacheDuration
|
p.MinimumCacheDuration = *minCacheDuration
|
||||||
p.ForceCache = *forceCache
|
p.ForceCache = *forceCache
|
||||||
|
|
||||||
|
var ln net.Listener
|
||||||
|
var err error
|
||||||
|
|
||||||
|
if path, ok := strings.CutPrefix(*addr, "unix:"); ok {
|
||||||
|
ln, err = net.Listen("unix", path)
|
||||||
|
} else {
|
||||||
|
ln, err = net.Listen("tcp", *addr)
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("listen failed: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
server := &http.Server{
|
server := &http.Server{
|
||||||
Addr: *addr,
|
Addr: *addr,
|
||||||
Handler: p,
|
Handler: p,
|
||||||
|
|
@ -101,8 +114,8 @@ func main() {
|
||||||
IdleTimeout: 120 * time.Second,
|
IdleTimeout: 120 * time.Second,
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Printf("imageproxy listening on %s\n", server.Addr)
|
fmt.Printf("imageproxy listening on %s\n", *addr)
|
||||||
log.Fatal(server.ListenAndServe())
|
log.Fatal(server.Serve(ln))
|
||||||
}
|
}
|
||||||
|
|
||||||
type signatureKeyList [][]byte
|
type signatureKeyList [][]byte
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue