nginx로 / grafana를 프록시하는 방법은 무엇입니까? : // localhost : 3000

기본 grafana를 설정하고 시작했으며 http : // localhost : 3000 에서 예상대로 작동합니다 . ssl이 설치된 nginx로 프록시하려고합니다. https : // localhost / grafana에 응답하려고 하지만 다음을 제공합니다.

{{alert.title}}

내 nginx 서버 블록 에이 기능이 있습니다.

location /grafana {
     proxy_pass         http://localhost:3000;
     proxy_set_header   Host $host;
}


답변

nginx는 프록시 서버에 요청을 다시 쓰는 것을 지원하므로 구성을 다음과 같이 업데이트하면 작동합니다.

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

답변

@ AXE-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/

위치 블록에서 추가 /를 보면 모든 차이가 있습니다.

전체 파일을 보려면 https://gist.github.com/mvadu/5fbb7f5676ce31f2b1e6 를 방문 하십시오. 여기서 Infludb 및 grafana에 대한 프록시 설정을 리버브했습니다.


답변

도커에서 두 개의 다른 컨테이너에서 nginx와 grafana를 사용할 때도 같은 문제가 발생했습니다. http://docs.grafana.org/installation/behind_proxy/#nginx-configuration-with-sub-path 다음에 따라 grafana 서비스에서 docker-compose에 다음 옵션을 전달했습니다 .

- GF_SERVER_DOMAIN=foo.bar.com
- GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s:/grafana

그러나 작동하지 않으며 브라우저의 콘솔에 다음이 표시 net::ERR_CONTENT_LENGTH_MISMATCH됩니다.

그래서 문제를 해결하기 위해 nginx 설정에 다음 줄을 추가했습니다.

location /grafana/ {
  proxy_pass http://monitoring_grafana:3000/;
  proxy_max_temp_file_size 0; # THIS MADE THE TRICK!
}

답변

참고 사항 :

root_url = %(protocol)s://%(domain)s:%(http_port)s/grafana

일부 API 호출에 프록시 오류가 발생합니다. 나는 찾는다 :

root_url = %(protocol)s://%(domain)s:/grafana