Compare commits
No commits in common. "main" and "globalIdler" have entirely different histories.
main
...
globalIdle
27
README.md
27
README.md
@ -1,4 +1,4 @@
|
|||||||
Create http server listening on unix sockets and systemd socket activated fds
|
Create http server listening on unix sockets or systemd socket activated fds
|
||||||
|
|
||||||
## Quick Usage
|
## Quick Usage
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ Syntax
|
|||||||
sysd/fdname/<fd name set using FileDescriptorName socket setting >
|
sysd/fdname/<fd name set using FileDescriptorName socket setting >
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
# First (or only) socket fd passed to app
|
# First (or only) socket fd passed to app
|
||||||
sysd/fdidx/0
|
sysd/fdidx/0
|
||||||
|
|
||||||
@ -44,29 +44,14 @@ Examples:
|
|||||||
|
|
||||||
### TCP port
|
### TCP port
|
||||||
|
|
||||||
If the address is a number less than 65536, it is assumed as a port and passed
|
If the address is a number less than 65536, it is assumed as a port and passed as `http.ListenAndServe(":<port>",...)`
|
||||||
as `http.ListenAndServe(":<port>",...)` Anything else is directly passed to
|
|
||||||
`http.ListenAndServe` as well. Below examples should work
|
Anything else is directly passed to `http.ListenAndServe` as well. Below examples should work
|
||||||
|
|
||||||
:http
|
:http
|
||||||
:8888
|
:8888
|
||||||
127.0.0.1:8080
|
127.0.0.1:8080
|
||||||
|
|
||||||
## Idle server auto shutdown
|
|
||||||
|
|
||||||
When using systemd socket activation, idle servers can be shut down to save on
|
|
||||||
resources. They will be restarted with socket activation when new request
|
|
||||||
arrives. Quick example for the case. (Error checking skipped for brevity)
|
|
||||||
|
|
||||||
```go
|
|
||||||
addrType, httpServer, done, _ := anyhttp.Serve(addr, idle.WrapHandler(nil))
|
|
||||||
if addrType == anyhttp.SystemdFD {
|
|
||||||
idle.Wait(30 * time.Minute)
|
|
||||||
httpServer.Shutdown(context.TODO())
|
|
||||||
}
|
|
||||||
<-done
|
|
||||||
```
|
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
https://pkg.go.dev/go.balki.me/anyhttp
|
https://pkg.go.dev/go.balki.me/anyhttp
|
||||||
@ -74,4 +59,4 @@ https://pkg.go.dev/go.balki.me/anyhttp
|
|||||||
### Related links
|
### Related links
|
||||||
|
|
||||||
* https://gist.github.com/teknoraver/5ffacb8757330715bcbcc90e6d46ac74#file-unixhttpd-go
|
* https://gist.github.com/teknoraver/5ffacb8757330715bcbcc90e6d46ac74#file-unixhttpd-go
|
||||||
* https://github.com/coreos/go-systemd/tree/main/activation
|
* https://github.com/coreos/go-systemd/tree/main/activation
|
Loading…
Reference in New Issue
Block a user