Documentation
¶
Overview ¶
Example ¶
package main
import (
"context"
"log"
"net/http"
"github.com/peknur/nginx-unit-sdk/unit"
"github.com/peknur/nginx-unit-sdk/unit/client"
"github.com/peknur/nginx-unit-sdk/unit/config"
"github.com/peknur/nginx-unit-sdk/unit/config/listener"
"github.com/peknur/nginx-unit-sdk/unit/config/route"
"github.com/peknur/nginx-unit-sdk/unit/config/settings"
)
func main() {
client, err := client.New("http://127.0.0.1:8080", http.DefaultClient)
if err != nil {
log.Fatal(err)
}
svc := unit.NewService(client)
cfg := config.Config{
Settings: config.Settings{
HTTP: settings.HTTP{
HeaderReadTimeout: 10,
BodyReadTimeout: 10,
},
},
Listeners: config.Listeners{
"*:80": listener.Config{
Pass: "routes/main",
},
},
Routes: config.Routes{
"main": []route.Config{
{
Match: &route.Match{
Host: []string{"example.com"},
},
Action: &route.Action{
Return: http.StatusNotFound,
},
}},
},
AccessLog: config.AccessLog{
Path: "/var/log/access.log",
Format: "$remote_addr - - [$time_local] \"$request_line\" $status $body_bytes_sent \"$header_referer\" \"$header_user_agent\"",
},
}
if err := svc.CreateConfig(context.Background(), cfg); err != nil {
log.Fatal(err)
}
}
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Certificates ¶ added in v0.3.0
type Certificates map[string]certificate.Config
type Service ¶
type Service interface {
// Applications
Applications(ctx context.Context) (config.Applications, error)
CreateApplications(ctx context.Context, c config.Applications) error
CreateApplication(ctx context.Context, name string, c application.Config) error
DeleteApplication(ctx context.Context, name string) error
// Config
Config(ctx context.Context) (config.Config, error)
CreateConfig(ctx context.Context, c config.Config) error
DeleteConfig(ctx context.Context) error
// Listeners
Listeners(ctx context.Context) (config.Listeners, error)
CreateListener(ctx context.Context, name string, c listener.Config) error
CreateListeners(ctx context.Context, c config.Listeners) error
DeleteListener(ctx context.Context, name string) error
// Routes
Routes(ctx context.Context) (config.Routes, error)
CreateRoute(ctx context.Context, name string, c []route.Config) error
CreateRoutes(ctx context.Context, c config.Routes) error
AppendRoute(ctx context.Context, name string, c route.Config) error
DeleteRoute(ctx context.Context, name string) error
// Upstreams
Upstreams(ctx context.Context) (config.Upstreams, error)
CreateUpstream(ctx context.Context, name string, c upstream.Config) error
CreateUpstreams(ctx context.Context, c config.Upstreams) error
DeleteUpstream(ctx context.Context, name string) error
// Certificates
Certificates(ctx context.Context) (certificate.Certificates, error)
CreateCertificate(ctx context.Context, name string, bundle []byte) error
DeleteCertificate(ctx context.Context, name string) error
// Settings
Settings(ctx context.Context) (config.Settings, error)
CreateSettings(ctx context.Context, c config.Settings) error
DeleteSettings(ctx context.Context) error
// Status
Status(ctx context.Context) (status.Status, error)
}
Service interface defines methods that can be used to interact with Unit instance.
func NewService ¶ added in v0.2.0
NewService creates new service instance.
func NewServiceFromURL ¶ added in v0.2.0
NewServiceFromURL creates new service instance using URL as client base URL.
Example ¶
package main
import (
"context"
"log"
"github.com/peknur/nginx-unit-sdk/unit"
)
func main() {
svc, err := unit.NewServiceFromURL("http://127.0.0.1:8080")
if err != nil {
log.Fatal(err)
}
svc.Config(context.TODO())
}
type Unit ¶ added in v0.3.0
type Unit struct {
Certificates certificate.Certificates `json:"certificates,omitempty"`
Config config.Config `json:"config,omitempty"`
}
Click to show internal directories.
Click to hide internal directories.