我已经安装并启动默认的Grafana,并按照预期在http:// localhost:3000上工作 。 我试图用nginx代理它,我已经安装了SSL。 我试图让它响应https:// localhost / grafana,但它只是服务于以下内容:
{{alert.title}}
我有这在我的nginx服务器块:
location /grafana { proxy_pass http://localhost:3000; proxy_set_header Host $host; }
看来nginx支持重写请求到代理服务器,所以更新configuration到这使它的工作:
location /grafana { proxy_pass http://localhost:3000; rewrite ^/grafana/(.*) /$1 break; proxy_set_header Host $host; }
我的grafana.ini也有一个更新的根:
[server] root_url = %(protocol)s://%(domain)s:%(http_port)s/grafana
添加到@AX-Labs的答案,你不需要重写的URL。
nginx.conf location /grafana/ { proxy_pass http://localhost:3000/; proxy_set_header Host $host; } grafana.ini update root: [server] root_url = %(protocol)s://%(domain)s:%(http_port)s/grafana/
注意位置块中的附加位置,这使得所有的区别。
供参考:
root_url = %(protocol)s://%(domain)s:%(http_port)s/grafana
导致一些API调用的代理错误。 我发现:
root_url = %(protocol)s://%(domain)s:/grafana
在Docker上使用nginx和grafana时,我遇到了同样的问题,在两个不同的容器中。 将以下选项传递给docker-compose上的grafana服务,请参阅http://docs.grafana.org/installation/behind_proxy/#nginx-configuration-with-sub-path :
- GF_SERVER_DOMAIN=foo.bar.com - GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s:/grafana
但如果没有工作,我的浏览器的控制台显示: net::ERR_CONTENT_LENGTH_MISMATCH 。
所以,为了解决这个问题,我在nginxconfiguration文件中join了下面的代码:
location /grafana/ { proxy_pass http://monitoring_grafana:3000/; proxy_max_temp_file_size 0; # THIS MADE THE TRICK! }