Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.
Running Grafana behind a reverse proxy
It should be straight forward to get Grafana up and running behind a reverse proxy. But here are some things that you might run into.
Links and redirects will not be rendered correctly unless you set the server.domain setting.
[server]
domain = foo.barTo use sub path ex http://foo.bar/grafana make sure to include /grafana in the end of root_url.
Otherwise Grafana will not behave correctly. See example below.
Examples
Here are some example configurations for running Grafana behind a reverse proxy.
Grafana configuration (ex http://foo.bar)
[server]
domain = foo.barNginx configuration
Nginx is a high performance load balancer, web server and reverse proxy: https://www.nginx.com/
server {
listen 80;
root /usr/share/nginx/www;
index index.html index.htm;
location / {
proxy_pass http://localhost:3000/;
}
}Examples with sub path (ex http://foo.bar/grafana)
Grafana configuration with sub path
[server]
domain = foo.bar
root_url = %(protocol)s://%(domain)s/grafana/Nginx configuration with sub path
server {
listen 80;
root /usr/share/nginx/www;
index index.html index.htm;
location /grafana/ {
proxy_pass http://localhost:3000/;
}
}HAProxy configuration with sub path
frontend http-in
bind *:80
use_backend grafana_backend if { path /grafana } or { path_beg /grafana/ }
backend grafana_backend
# Requires haproxy >= 1.6
http-request set-path %[path,regsub(^/grafana/?,/)]
# Works for haproxy < 1.6
# reqrep ^([^\ ]*\ /)grafana[/]?(.*) \1\2
server grafana localhost:3000IIS URL Rewrite Rule (Windows) with Subpath
IIS requires that the URL Rewrite module is installed.
Given:
subpath
grafanaGrafana installed on
http://localhost:3000server config:
[server] domain = localhost:8080 root_url = %(protocol)s://%(domain)s/grafana/
Create an Inbound Rule for the parent website (localhost:8080 in this example) in IIS Manager with the following settings:
- pattern:
grafana(/)?(.*) - check the
Ignore casecheckbox - rewrite url set to
http://localhost:3000/{R:2} - check the
Append query stringcheckbox - check the
Stop processing of subsequent rulescheckbox
This is the rewrite rule that is generated in the web.config:
<rewrite>
<rules>
<rule name="Grafana" enabled="true" stopProcessing="true">
<match url="grafana(/)?(.*)" />
<action type="Rewrite" url="http://localhost:3000/{R:2}" logRewrittenUrl="false" />
</rule>
</rules>
</rewrite>See the tutorial on IIS Url Rewrites for more in-depth instructions.



