func()

in nginx/nginx.go [122:159]


func (c *Config) Build(params map[string]interface{}) ([]byte, error) {
	tmpl, err := c.getTemplate()
	if err != nil {
		return nil, fmt.Errorf("get template: %s", err)
	}
	if _, ok := params["client_verification"]; !ok {
		params["client_verification"] = config.DefaultClientVerification
	}
	// Add proxy_read_timeout to params for site template
	if _, ok := params["proxy_read_timeout"]; !ok {
		params["proxy_read_timeout"] = c.ProxyTimeout
	}
	if _, ok := params["ssl_enabled"]; !ok {
		params["ssl_enabled"] = !c.tls.Server.Disabled
	}
	site, err := populateTemplate(tmpl, params)
	if err != nil {
		return nil, fmt.Errorf("populate template: %s", err)
	}

	// Build nginx config with base template and component specific template.
	tmpl, err = config.GetDefaultTemplate("base")
	if err != nil {
		return nil, fmt.Errorf("get default base template: %s", err)
	}
	src, err := populateTemplate(tmpl, map[string]interface{}{
		"site":                   string(site),
		"ssl_enabled":            !c.tls.Server.Disabled,
		"ssl_certificate":        c.tls.Server.Cert.Path,
		"ssl_certificate_key":    c.tls.Server.Key.Path,
		"ssl_password_file":      c.tls.Server.Passphrase.Path,
		"ssl_client_certificate": _clientCABundle,
	})
	if err != nil {
		return nil, fmt.Errorf("populate base: %s", err)
	}
	return src, nil
}