2017-02-20 1 views
0

일반 PHP 페이지 내에 Grafana 대시 보드를 표시하려고합니다. oauth로 인증하기 위해 웹 사이트 지침을 따랐습니다. 여기 내 코드는 다음과 같습니다.Grafana의 헤더 변경 (Access-Control-Allow-Origin)

<?php 
$ch = curl_init(); 
$authorization = "Authorization: Bearer <myToken>"; 
curl_setopt_array(
    $ch, array( 
    CURLOPT_URL => 'url-to-my-dashboard', 
    CURLOPT_HTTPHEADER => array('Content-Type: application/json' , $authorization), 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_HTTPAUTH => "HTTP/1.1" 
)); 

$output = curl_exec($ch); 
?> 

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    </head> 
    <body> 
     <?php echo $output; ?> 
    </body> 
</html> 

페이지가로드되면 CSS가 표시되지만 404 오류가 발생합니다. 어디하여야한다

Header set Access-Control-Allow-Origin "xxx" 
Header set Access-Control-Allow-Methods "GET, OPTIONS" 
Header set Access-Control-Allow-Headers "origin, authorization, accept" 

문제는 나도 몰라된다

Access to Font at 'http://xxxxx' from origin 'http://localhost' 
has been blocked by CORS policy: 
No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'http://localhost' is therefore not allowed access. 

나는 이러한 헤더를 구성 할 필요가 꽤 확신 : 나는 Grafana의 헤더 행동의이 종류 허용하지 않는 것을 발견 해. Grafana (또는 Graphite와 함께 사용하는)에 대한 .htaccess 파일을 찾고있었습니다. 나는 또한 아파치 2 conf 파일 (/ etc/apache2/apache2/conf)을 수정하려고 시도했다. 다시 시작한 후에는 아무 것도 바뀌지 않습니다 ...

나는 아주 붙어 있습니다. 누구든지 나를 도울 수 있습니까?

+0

당신이 문제를 해결할 수 있었다 : 여기 고르와 아파치에 대한 검색은? @JMeterDude를 통해 –

답변

1

요청을 차단하고있는 브라우저이며 Same Origin Policy을 위반하는 요청으로 인해 Grafana가 아닙니다. localhost의 경우 서로 다른 포트에서 실행되는 두 개의 웹 사이트가 서로 다른 두 도메인으로 간주됩니다.

CORS (Cross Origin resource sharing)를 허용하려면 Grafana 서버를 역방향 프록시 뒤에 배치해야합니다.

문서에 대한 링크와 함께이 문제를 설명하는 데 문제가 있습니다.

추출물 (상기 링크) 아파치 구성 설명 :

아파치 2.x에서 :

Header set Access-Control-Allow-Origin "*" 
Header set Access-Control-Allow-Methods "GET, OPTIONS" 
Header set Access-Control-Allow-Headers "origin, authorization, accept" 

아니요 당신 는 HTTP를 사용 에 흑연 웹은 기본 인증에 의해 항상 보호됩니다

경우 "는"당신이 대신 "http://my.grafana.com"을 사용하여 고려할 수 있도록 테는 ""를 사용하는 것은 매우 열어 흑연 인스턴스를 떠난다 동사의 OPTIONS. 기본 인증을 사용하는 경우 Access-Control-Allow-Origin을 와일드 카드로 설정하면 안되며 헤더 인 Access-Control-Allow-Credentials도 지정해야합니다. 이것은 아파치에 대해 다음과 같이 같습니다

Header set Access-Control-Allow-Origin "http://mygrafana.com:5656" 
Header set Access-Control-Allow-Methods "GET, OPTIONS" 
Header set Access-Control-Allow-Headers "origin, authorization, accept" 
Header set Access-Control-Allow-Credentials true 

<Location /> 
    AuthName "graphs restricted" 
    AuthType Basic 
    AuthUserFile /etc/apache2/htpasswd 
    <LimitExcept OPTIONS> 
     require valid-user 
    </LimitExcept> 
</Location> 

을 그리고 여기에 아파치와 Grafana에 대한 역방향 프록시 생성을위한 설정을 설명하는 문제 : 이러한 링크 할 경우

https://github.com/grafana/grafana/issues/4136

을 도움이되지 않는다면, Grafana repo에서 이것에 관한 많은 폐점이 있습니다.

https://github.com/grafana/grafana/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aclosed%20cors%20apache

+0

고맙습니다. –