Nginx背后的Grafana:重定向过多

时间:2019-06-19 21:50:20

标签: docker nginx docker-compose grafana

我正在尝试使用docker-compose将grafana设置为Nginx背后的docker容器。每当我尝试访问登录页面时,都会收到错误消息“重定向过多”。

Nginx配置:

server {
        listen 9999 ssl;
        server_name S_NAME;

        ssl_certificate ssl/S_NAME.crt;
        ssl_certificate_key ssl/S_NAME.key;

        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  30m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        root /usr/share/nginx/www;

        index index.html index.htm;

        location /grafana/ {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;

            resolver 127.0.0.11 valid=30s;

            set $grafana http://grafana:3000/;

            proxy_pass $grafana;
            rewrite  ^/grafana/(.*)  /$1 break;

            proxy_connect_timeout      30m;
            proxy_send_timeout         30m;
            proxy_read_timeout         30m;
        }
}

Docker-compose:

  grafana:
    image: grafana/grafana
    ports:
      - 3000:3000
    environment:
      GF_SECURITY_COOKIE_SECURE: "true"
      GF_SERVER_ROOT_URL: "%(protocol)s://%(domain)s/grafana/"
      GF_SERVER_DOMAIN: "test.com:9999"
    restart: on-failure

Grafana对这些日志发送垃圾邮件:

lvl=info msg="Request Completed" logger=context userId=0 orgId=0 uname= method=GET path=/ status=302
lvl=info msg="Request Completed" logger=context userId=0 orgId=0 uname= method=GET path=/ status=302

对于我来说,nginx会将所有请求重定向到/grafana,grafana重定向到/login,但是我可能是错的。

我已经尝试了GF_SECURITY_COOKIE_SECUREGF_SERVER_ROOT_URLGF_SERVER_DOMAIN的不同变体,以及从nginx中删除了没有/grafana属性的子路径rewrite

我正在使用https,因此需要将GF_SECURITY_COOKIE_SECURE设置为true。

您有什么想法吗?

1 个答案:

答案 0 :(得分:0)

错误出在resolver中。我已经添加了它,即使没有grafana,也可以使nginx起来,但是由于某种原因,它没有用。