mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
HTTP Server: Serve Grafana with a custom URL path prefix (#17048)
Adds a new [server] setting `serve_from_sub_path`. By enabling this setting and using a subpath in `root_url` setting, e.g. `root_url = http://localhost:3000/grafana`, Grafana will be accessible on `http://localhost:3000/grafana`. By default it is set to `false` for compatibility reasons. Closes #16623
This commit is contained in:
committed by
Marcus Efraimsson
parent
b547a0cb34
commit
04d473b3e5
@@ -47,6 +47,9 @@ enforce_domain = false
|
||||
# The full public facing url
|
||||
root_url = %(protocol)s://%(domain)s:%(http_port)s/
|
||||
|
||||
# Serve Grafana from subpath specified in `root_url` setting. By default it is set to `false` for compatibility reasons.
|
||||
serve_from_sub_path = false
|
||||
|
||||
# Log web requests
|
||||
router_logging = false
|
||||
|
||||
|
||||
@@ -48,6 +48,9 @@
|
||||
# If you use reverse proxy and sub path specify full url (with sub path)
|
||||
;root_url = http://localhost:3000
|
||||
|
||||
# Serve Grafana from subpath specified in `root_url` setting. By default it is set to `false` for compatibility reasons.
|
||||
;serve_from_sub_path = false
|
||||
|
||||
# Log web requests
|
||||
;router_logging = false
|
||||
|
||||
|
||||
@@ -154,6 +154,15 @@ callback URL to be correct).
|
||||
> in front of Grafana that exposes it through a subpath. In that
|
||||
> case add the subpath to the end of this URL setting.
|
||||
|
||||
### serve_from_sub_path
|
||||
|
||||
Serve Grafana from subpath specified in `root_url` setting. By
|
||||
default it is set to `false` for compatibility reasons.
|
||||
|
||||
By enabling this setting and using a subpath in `root_url` above, e.g.
|
||||
`root_url = http://localhost:3000/grafana`, Grafana will be accessible on
|
||||
`http://localhost:3000/grafana`.
|
||||
|
||||
### static_root_path
|
||||
|
||||
The path to the directory where the front end files (HTML, JS, and CSS
|
||||
|
||||
@@ -30,7 +30,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
"github.com/prometheus/client_golang/prometheus"
|
||||
"github.com/prometheus/client_golang/prometheus/promhttp"
|
||||
"gopkg.in/macaron.v1"
|
||||
macaron "gopkg.in/macaron.v1"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -227,6 +227,10 @@ func (hs *HTTPServer) addMiddlewaresAndStaticRoutes() {
|
||||
|
||||
m.Use(middleware.AddDefaultResponseHeaders())
|
||||
|
||||
if setting.ServeFromSubPath && setting.AppSubUrl != "" {
|
||||
m.SetURLPrefix(setting.AppSubUrl)
|
||||
}
|
||||
|
||||
m.Use(macaron.Renderer(macaron.RenderOptions{
|
||||
Directory: path.Join(setting.StaticRootPath, "views"),
|
||||
IndentJSON: macaron.Env != macaron.PROD,
|
||||
|
||||
@@ -47,10 +47,11 @@ var (
|
||||
|
||||
var (
|
||||
// App settings.
|
||||
Env = DEV
|
||||
AppUrl string
|
||||
AppSubUrl string
|
||||
InstanceName string
|
||||
Env = DEV
|
||||
AppUrl string
|
||||
AppSubUrl string
|
||||
ServeFromSubPath bool
|
||||
InstanceName string
|
||||
|
||||
// build
|
||||
BuildVersion string
|
||||
@@ -205,8 +206,9 @@ type Cfg struct {
|
||||
Logger log.Logger
|
||||
|
||||
// HTTP Server Settings
|
||||
AppUrl string
|
||||
AppSubUrl string
|
||||
AppUrl string
|
||||
AppSubUrl string
|
||||
ServeFromSubPath bool
|
||||
|
||||
// Paths
|
||||
ProvisioningPath string
|
||||
@@ -610,8 +612,11 @@ func (cfg *Cfg) Load(args *CommandLineArgs) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
ServeFromSubPath = server.Key("serve_from_sub_path").MustBool(false)
|
||||
|
||||
cfg.AppUrl = AppUrl
|
||||
cfg.AppSubUrl = AppSubUrl
|
||||
cfg.ServeFromSubPath = ServeFromSubPath
|
||||
|
||||
Protocol = HTTP
|
||||
protocolStr, err := valueAsString(server, "protocol", "http")
|
||||
|
||||
Reference in New Issue
Block a user