এনজিঙ্ক্স সহ কীভাবে প্রক্সি / গ্রাফানা?


15

আমি ডিফল্ট গ্রাফানা সেটআপ করেছি এবং শুরু করেছি এবং এটি http: // লোকালহোস্ট: 3000 তে প্রত্যাশা অনুযায়ী কাজ করে । আমি যেখানে এসএসএল ইনস্টল করেছি সেখানে এনজিনেক্স দিয়ে এটির প্রক্সি দেওয়ার চেষ্টা করছি। আমি এটি https: // লোকালহোস্ট / গ্রাফানার কাছে সাড়া দেওয়ার চেষ্টা করছি তবে এটি কেবল নিম্নলিখিতটি পরিবেশন করে:

{{alert.title}}

আমার এনগিনেক্স সার্ভার ব্লকে এটি রয়েছে:

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

উত্তর:


27

মনে হচ্ছে এনজিনেক্স প্রক্সড সার্ভারে অনুরোধগুলি পুনরায় লেখার পক্ষে সমর্থন করে তাই কনফিগারেশনটি আপডেট করে এটি কাজ করে:

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

আমি নিশ্চিত করতে পারি যে এটি কাজ করে। নোট করুন যে স্থির সম্পদের কারণে উভয়ই এনজিনেক্স পুনর্লিখন এবং মূল_রেল কনফিগারেশন প্রয়োজন হয়, তবে অন্যথায় এটি গ্রাফানার ২.২ এর সাথে কৌশলটি করে।
মাহন

2
এছাড়াও, গ্রাফানায় হিট হওয়ার আগে যদি আপনার এনজিঙ্ক্সের সামনে বেসিক http লেখক থাকে তবে নিশ্চিত হয়ে নিন যে আপনি নিজের প্রক্সি অবস্থান ব্লকটি Authorizationঅন্তর্ভুক্ত করে শিরোলেখাকে ওভাররাইড করেছেন proxy_set_header Authorization "";, অন্যথায় গ্রাফানা ডেটা উত্স সংযোগের জন্য এই শংসাপত্রগুলি পুনরায় ব্যবহার করতে জোর করবেন।
মাহন

এটি পুনরায় লেখার নিয়মটি কার্যকর করার জন্য প্রয়োজনীয়। এটি ডকস.গ্রাফানা.আর.ইনস্টলেশন
বিহাইন্ড_প্রক্সিতে

@ ডাসআপ নং, পুনর্লিখনের নিয়মের প্রয়োজন নেই (কমপক্ষে গ্রাফানায় নেই 4..6)। আপনাকে proxy_passকোনও ইউআরআই অন্তর্ভুক্ত করার দরকার আছে যেমন /, অন্যথায় অনুরোধটি যেমনটি পেরেছে ( ব্যাখ্যাটির জন্য আরও দেখুন nginx.com/resources/admin-guide/revers-proxy )। তাই কনফিগারেশনটি এমন হওয়া উচিত proxy_pass http://localhost:3000/;যা গ্রাফানা ডক্সের ঠিক ঠিক একই রকম হয়।
ক্রিসউইউ 25'18

10

@ অ্যাক্স-ল্যাবস উত্তরের সাথে যুক্ত করে, আপনার ইউআরএল পুনরায় লেখার দরকার নেই।

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 দেখুন যেখানে আমি ইনফ্লাবডের পাশাপাশি গ্রাফানার জন্য প্রক্সি সেটআপ রেখেছি।


1
হ্যাঁ, পার্থক্যটি এখানে ব্যাখ্যা করা হয়েছে: nginx.com/resources/admin-guide/reverse-proxy
ChrisWue

2
লক্ষ করুন যে পিছনে স্ল্যাশটিও http://localhost:3000/;গুরুত্বপূর্ণ।
বিটনিক

এবং ইন %(protocol)s://%(domain)s:%(http_port)s/grafana/- সমস্ত অবস্থানের পিছনে স্ল্যাশ হওয়া উচিত।
প্যাট্রিক্টোকিফ

3

দুটি ভিন্ন পাত্রে ডকারে এনজিনেক্স এবং গ্রাফানা ব্যবহার করার সময় আমি একই সমস্যা পেয়েছি। Grafana সেবা Docker-রচনাতে নিম্নলিখিত অপশন পাস, নিম্নলিখিত 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

সুতরাং, এটি ঠিক করার জন্য, আমি আমার এনজিএনএক্স কনফিগারেশনে নিম্নলিখিত লাইনটি যুক্ত করেছি:

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

0

অবগতির জন্য:

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

কিছু এপিআই কলগুলির জন্য প্রক্সি ত্রুটি ঘটায়। আমি খুজি:

root_url = %(protocol)s://%(domain)s:/grafana
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.