mirror of
https://github.com/dokku/dokku.git
synced 2025-12-16 12:07:45 +01:00
This avoids adding a new environment variable in favor of a script that can be called both globally as well as on a per-app basis.
521 lines
13 KiB
Go
521 lines
13 KiB
Go
package nginxvhosts
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"github.com/dokku/dokku/plugins/common"
|
|
)
|
|
|
|
func AppAccessLogFormat(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "access-log-format")
|
|
}
|
|
|
|
func ComputedAccessLogFormat(appName string) string {
|
|
appValue := AppAccessLogFormat(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalAccessLogFormat()
|
|
}
|
|
|
|
func GlobalAccessLogFormat() string {
|
|
return common.PropertyGet("nginx", "--global", "access-log-format")
|
|
}
|
|
|
|
func AppAccessLogPath(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "access-log-path")
|
|
}
|
|
|
|
func ComputedAccessLogPath(appName string) string {
|
|
appValue := AppAccessLogPath(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalAccessLogPath(appName)
|
|
}
|
|
|
|
func GlobalAccessLogPath(appName string) string {
|
|
defaultLogPath := fmt.Sprintf("%s/%s-access.log", getLogRoot(), appName)
|
|
return common.PropertyGetDefault("nginx", "--global", "access-log-path", defaultLogPath)
|
|
}
|
|
|
|
func AppBindAddressIPv4(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "bind-address-ipv4")
|
|
}
|
|
|
|
func ComputedBindAddressIPv4(appName string) string {
|
|
appValue := AppBindAddressIPv4(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalBindAddressIPv4()
|
|
}
|
|
|
|
func GlobalBindAddressIPv4() string {
|
|
return common.PropertyGet("nginx", "--global", "bind-address-ipv4")
|
|
}
|
|
|
|
func AppBindAddressIPv6(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "bind-address-ipv6")
|
|
}
|
|
|
|
func ComputedBindAddressIPv6(appName string) string {
|
|
appValue := AppBindAddressIPv6(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalBindAddressIPv6()
|
|
}
|
|
|
|
func GlobalBindAddressIPv6() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "bind-address-ipv6", "::")
|
|
}
|
|
|
|
func AppClientBodyTimeout(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "client-body-timeout")
|
|
}
|
|
|
|
func ComputedClientBodyTimeout(appName string) string {
|
|
appValue := AppClientBodyTimeout(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalClientBodyTimeout()
|
|
}
|
|
|
|
func GlobalClientBodyTimeout() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "client-body-timeout", "60s")
|
|
}
|
|
|
|
func AppClientHeaderTimeout(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "client-header-timeout")
|
|
}
|
|
|
|
func ComputedClientHeaderTimeout(appName string) string {
|
|
appValue := AppClientHeaderTimeout(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalClientHeaderTimeout()
|
|
}
|
|
|
|
func GlobalClientHeaderTimeout() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "client-header-timeout", "60s")
|
|
}
|
|
|
|
func AppClientMaxBodySize(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "client-max-body-size")
|
|
}
|
|
|
|
func ComputedClientMaxBodySize(appName string) string {
|
|
appValue := AppClientMaxBodySize(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalClientMaxBodySize()
|
|
}
|
|
|
|
func GlobalClientMaxBodySize() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "client-max-body-size", "1m")
|
|
}
|
|
|
|
func AppDisableCustomConfig(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "disable-custom-config")
|
|
}
|
|
|
|
func ComputedDisableCustomConfig(appName string) string {
|
|
appValue := AppDisableCustomConfig(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalDisableCustomConfig()
|
|
}
|
|
|
|
func GlobalDisableCustomConfig() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "disable-custom-config", "false")
|
|
}
|
|
|
|
func AppErrorLogPath(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "error-log-path")
|
|
}
|
|
|
|
func ComputedErrorLogPath(appName string) string {
|
|
appValue := AppErrorLogPath(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalErrorLogPath(appName)
|
|
}
|
|
|
|
func GlobalErrorLogPath(appName string) string {
|
|
defaultLogPath := fmt.Sprintf("%s/%s-error.log", getLogRoot(), appName)
|
|
return common.PropertyGetDefault("nginx", "--global", "error-log-path", defaultLogPath)
|
|
}
|
|
|
|
func AppHSTSIncludeSubdomains(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "hsts-include-subdomains")
|
|
}
|
|
|
|
func ComputedHSTSIncludeSubdomains(appName string) string {
|
|
appValue := AppHSTSIncludeSubdomains(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalHSTSIncludeSubdomains()
|
|
}
|
|
|
|
func GlobalHSTSIncludeSubdomains() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "hsts-include-subdomains", "true")
|
|
}
|
|
|
|
func AppHSTSMaxAge(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "hsts-max-age")
|
|
}
|
|
|
|
func ComputedHSTSMaxAge(appName string) string {
|
|
appValue := AppHSTSMaxAge(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalHSTSMaxAge()
|
|
}
|
|
|
|
func GlobalHSTSMaxAge() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "hsts-max-age", "15724800")
|
|
}
|
|
|
|
func AppHSTSPreload(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "hsts-preload")
|
|
}
|
|
|
|
func ComputedHSTSPreload(appName string) string {
|
|
appValue := AppHSTSPreload(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalHSTSPreload()
|
|
}
|
|
|
|
func GlobalHSTSPreload() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "hsts-preload", "false")
|
|
}
|
|
|
|
func AppHSTS(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "hsts")
|
|
}
|
|
|
|
func ComputedHSTS(appName string) string {
|
|
appValue := AppHSTS(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalHSTS()
|
|
}
|
|
|
|
func GlobalHSTS() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "hsts", "true")
|
|
}
|
|
|
|
func AppNginxConfSigilPath(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "nginx-conf-sigil-path")
|
|
}
|
|
|
|
func ComputedNginxConfSigilPath(appName string) string {
|
|
appValue := AppNginxConfSigilPath(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalNginxConfSigilPath()
|
|
}
|
|
|
|
func GlobalNginxConfSigilPath() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "nginx-conf-sigil-path", "nginx.conf.sigil")
|
|
}
|
|
|
|
func AppNginxServiceCommand(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "nginx-service-command")
|
|
}
|
|
|
|
func ComputedNginxServiceCommand(appName string) string {
|
|
appValue := AppNginxServiceCommand(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalNginxServiceCommand()
|
|
}
|
|
|
|
func GlobalNginxServiceCommand() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "nginx-service-command", "")
|
|
}
|
|
|
|
func AppKeepaliveTimeout(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "keepalive-timeout")
|
|
}
|
|
|
|
func ComputedKeepaliveTimeout(appName string) string {
|
|
appValue := AppKeepaliveTimeout(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalKeepaliveTimeout()
|
|
}
|
|
|
|
func GlobalKeepaliveTimeout() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "keepalive-timeout", "75s")
|
|
}
|
|
|
|
func AppLingeringTimeout(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "lingering-timeout")
|
|
}
|
|
|
|
func ComputedLingeringTimeout(appName string) string {
|
|
appValue := AppLingeringTimeout(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalLingeringTimeout()
|
|
}
|
|
|
|
func GlobalLingeringTimeout() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "lingering-timeout", "5s")
|
|
}
|
|
|
|
func AppProxyBufferSize(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "proxy-buffer-size")
|
|
}
|
|
|
|
func ComputedProxyBufferSize(appName string) string {
|
|
appValue := AppProxyBufferSize(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalProxyBufferSize()
|
|
}
|
|
|
|
func GlobalProxyBufferSize() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "proxy-buffer-size", fmt.Sprintf("%dk", os.Getpagesize()/1024))
|
|
}
|
|
|
|
func AppProxyBuffering(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "proxy-buffering")
|
|
}
|
|
|
|
func ComputedProxyBuffering(appName string) string {
|
|
appValue := AppProxyBuffering(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalProxyBuffering()
|
|
}
|
|
|
|
func GlobalProxyBuffering() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "proxy-buffering", "on")
|
|
}
|
|
|
|
func AppProxyBuffers(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "proxy-buffers")
|
|
}
|
|
|
|
func ComputedProxyBuffers(appName string) string {
|
|
appValue := AppProxyBuffers(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalProxyBuffers()
|
|
}
|
|
|
|
func GlobalProxyBuffers() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "proxy-buffers", fmt.Sprintf("8 %dk", os.Getpagesize()/1024))
|
|
}
|
|
|
|
func AppProxyBusyBuffersSize(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "proxy-busy-buffers-size")
|
|
}
|
|
|
|
func ComputedProxyBusyBuffersSize(appName string) string {
|
|
appValue := AppProxyBusyBuffersSize(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalProxyBusyBuffersSize()
|
|
}
|
|
|
|
func GlobalProxyBusyBuffersSize() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "proxy-busy-buffers-size", fmt.Sprintf("%dk", (os.Getpagesize()/1024)*2))
|
|
}
|
|
|
|
func AppProxyConnectTimeout(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "proxy-connect-timeout")
|
|
}
|
|
|
|
func ComputedProxyConnectTimeout(appName string) string {
|
|
appValue := AppProxyConnectTimeout(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalProxyConnectTimeout()
|
|
}
|
|
|
|
func GlobalProxyConnectTimeout() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "proxy-connect-timeout", "60s")
|
|
}
|
|
|
|
func AppProxyReadTimeout(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "proxy-read-timeout")
|
|
}
|
|
|
|
func ComputedProxyReadTimeout(appName string) string {
|
|
appValue := AppProxyReadTimeout(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalProxyReadTimeout()
|
|
}
|
|
|
|
func GlobalProxyReadTimeout() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "proxy-read-timeout", "60s")
|
|
}
|
|
|
|
func AppProxySendTimeout(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "proxy-send-timeout")
|
|
}
|
|
|
|
func ComputedProxySendTimeout(appName string) string {
|
|
appValue := AppProxySendTimeout(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalProxySendTimeout()
|
|
}
|
|
|
|
func GlobalProxySendTimeout() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "proxy-send-timeout", "60s")
|
|
}
|
|
|
|
func AppSendTimeout(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "send-timeout")
|
|
}
|
|
|
|
func ComputedSendTimeout(appName string) string {
|
|
appValue := AppSendTimeout(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalSendTimeout()
|
|
}
|
|
|
|
func GlobalSendTimeout() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "send-timeout", "60s")
|
|
}
|
|
|
|
func AppUnderscoreInHeaders(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "underscore-in-headers")
|
|
}
|
|
|
|
func ComputedUnderscoreInHeaders(appName string) string {
|
|
appValue := AppUnderscoreInHeaders(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalUnderscoreInHeaders()
|
|
}
|
|
|
|
func GlobalUnderscoreInHeaders() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "underscore-in-headers", "off")
|
|
}
|
|
|
|
func AppXForwardedForValue(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "x-forwarded-for-value")
|
|
}
|
|
|
|
func ComputedXForwardedForValue(appName string) string {
|
|
appValue := AppXForwardedForValue(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalXForwardedForValue()
|
|
}
|
|
|
|
func GlobalXForwardedForValue() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "x-forwarded-for-value", "$remote_addr")
|
|
}
|
|
|
|
func AppXForwardedPortValue(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "x-forwarded-port-value")
|
|
}
|
|
|
|
func ComputedXForwardedPortValue(appName string) string {
|
|
appValue := AppXForwardedPortValue(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalXForwardedPortValue()
|
|
}
|
|
|
|
func GlobalXForwardedPortValue() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "x-forwarded-port-value", "$server_port")
|
|
}
|
|
|
|
func AppXForwardedProtoValue(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "x-forwarded-proto-value")
|
|
}
|
|
|
|
func ComputedXForwardedProtoValue(appName string) string {
|
|
appValue := AppXForwardedProtoValue(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalXForwardedProtoValue()
|
|
}
|
|
|
|
func GlobalXForwardedProtoValue() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "x-forwarded-proto-value", "$scheme")
|
|
}
|
|
|
|
func AppXForwardedSSL(appName string) string {
|
|
return common.PropertyGet("nginx", appName, "x-forwarded-ssl")
|
|
}
|
|
|
|
func ComputedXForwardedSSL(appName string) string {
|
|
appValue := AppXForwardedSSL(appName)
|
|
if appValue != "" {
|
|
return appValue
|
|
}
|
|
|
|
return GlobalXForwardedSSL()
|
|
}
|
|
|
|
func GlobalXForwardedSSL() string {
|
|
return common.PropertyGetDefault("nginx", "--global", "x-forwarded-ssl", "")
|
|
}
|