Isso funcionou para mim depois de algumas mudanças. O primeiro deles é o mais importante que ajudou a corrigir esse problema.
-
Coloque o aplicativo da web bem atrás do proxy. Antes eu fazia o login no aplicativo da web usando o número da porta e depois de carregar a página de monitoramento, ele tentava carregar o grafana em um iframe usando o proxy reverso. Eu fiz muita depuração e tentei muitas alterações de configuração do ngnix para fazê-lo funcionar e, em seguida, pensei em adicionar uma regra de reescrita para enviar a solicitação para a grafana. E para isso eu tive que colocar o aplicativo por trás do proxy reverso também. Mas essa única mudança fez a diferença e não houve necessidade de adicionar nenhuma regra de reescrita. A seguir está o arquivo nginx.conf modificado
worker_processes 1; #error_log logs / error.log debug; events { worker_connections 1024; } http { servidor { ouça 80;
root C:\installables\nginx-1.15.5\www; index index.html index.htm; server_name localhost; location /grafana/ { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; add_header 'Access-Control-Allow-Origin' $http_origin; add_header 'Access-Control-Allow-Credentials' 'true' always; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always; add_header 'Access-Control-Expose-Headers' 'Content-Type,Content-Length,Content-Range'; add_header 'Access-Control-Allow-Headers' 'Accept, Authorization, Cache-Control, Content-Type, DNT, If-Modified-Since, Keep-Alive, Origin, User-Agent, X-Requested-With' always; if ($request_method = 'OPTIONS') { return 204; } proxy_pass http://localhost:3000/; } location / { proxy_pass http://localhost:9121/; } }
}
-
teve que corrigir o código da função com bugs para carregar o conteúdo da resposta no iframe. Aqui essa modificação modificada específica.
success: function(data){ var iframeDoc = $("#monitoringframe").get(0).contentDocument; iframeDoc.open(); iframeDoc.write(data); iframeDoc.close(); }