如何配置Nginx反向代理用於Kibana?


介紹

在當今世界,資料是每個行業的支柱。為了理解所有這些資料,人們使用像Kibana這樣的工具來視覺化和分析資料。

然而,單獨執行Kibana常常會導致效能問題和安全漏洞。這就是Nginx反向代理派上用場的地方。

準備Nginx反向代理配置的環境

在伺服器上安裝Nginx

在伺服器上安裝Nginx之前,務必確保已安裝所有必要的依賴項。這可以透過執行系統更新,然後使用發行版的包管理器安裝依賴項來完成。

安裝完這些後,您可以繼續安裝Nginx本身。安裝過程可能因發行版而異,但通常包括將Nginx儲存庫新增到您的系統中,然後執行安裝命令。

設定域名和SSL證書

為了使用反向代理配置中的HTTPS,您需要為您的網站設定域名和SSL證書。這包括從GoDaddy或Namecheap等註冊商處獲取域名,然後從LetsEncrypt或Comodo等提供商處獲取SSL證書。獲得這兩樣東西后,您就可以配置Nginx在反向代理配置中使用它們。

在伺服器上安裝Kibana

Kibana是使用Node.js構建的,並將其作為依賴項。因此,在安裝Kibana本身之前,如果伺服器上不存在Node.js,我們必須先安裝它。這可以透過添加發行版的相關儲存庫,然後執行安裝命令來完成。

完成後,我們可以從其官方網站下載Kibana本身,並將其解壓到我們的伺服器上。然後,我們應該建立一個符號連結或將其移動到我們所需的安裝目錄中,以便稍後在我們的配置檔案中輕鬆引用它。

將Nginx配置為Kibana的反向代理

建立Nginx配置檔案

將Nginx配置為Kibana的反向代理的第一步是建立一個Nginx配置檔案。此檔案將包含允許Nginx充當Kibana反向代理的必要設定。

可以使用任何文字編輯器(例如vi或nano)建立配置檔案,並應將其儲存為.conf副檔名。建立檔案後,應將其放置在/etc/nginx/conf.d/目錄中。

向配置檔案新增代理設定

建立配置檔案後,下一步是向其中新增適當的代理設定。以下示例顯示如何配置Nginx以充當Kibana的反向代理:```

server { listen 80;

server_name domain.com; location / {

proxy_pass https://:5601/; proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

auth_basic "受限內容"; auth_basic_user_file /etc/nginx/.htpasswd; } }

此配置在埠80上設定一個HTTP伺服器,偵聽來自domain.com的請求並將它們代理到在https://:5601/上執行的Kibana。它還使用位於/etc/nginx/.htpasswd的.htpasswd檔案設定基本身份驗證。

測試配置

將必要的設定新增到配置檔案後,您需要測試新的設定。為此,您可以使用curl或您選擇的Web瀏覽器並訪問您的域名(例如http://domain.com)。

如果一切正常,您應該在瀏覽器中看到Kibana介面。將Nginx配置為Kibana的反向代理可能有點棘手,但是透過仔細規劃和關注細節,可以設定一個有效且安全的反向代理配置,使遠端使用者可以輕鬆訪問Kibana資源。

高階配置選項

使用Nginx和Kibana進行身份驗證

預設情況下,Kibana不包含任何內建身份驗證機制。但是,為了保護對Kibana例項的訪問,您可以使用Nginx的內建基本HTTP身份驗證功能。基本HTTP身份驗證允許您設定使用者名稱和密碼來訪問Kibana例項。

要啟用基本HTTP身份驗證,您需要修改Kibana代理的Nginx配置檔案。在您的域名的伺服器塊中,新增以下幾行:

auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/.htpasswd;   

第一行設定一條訊息,當提示使用者輸入憑據時將顯示該訊息。第二行指定包含加密使用者名稱和密碼的密碼檔案。

要使用使用者帳戶和密碼建立.htpasswd檔案,請使用以下`htpasswd`命令:

sudo htpasswd -c /etc/nginx/.htpasswd exampleuser     

`-c`選項會在檔案尚不存在時建立一個新檔案。將`exampleuser`替換為您選擇的任何使用者名稱。

使用多個Kibana例項進行負載均衡

如果您在叢集環境中執行多個Kibana例項,建議使用Nginx作為負載均衡器。負載均衡將傳入的網路流量分配到不同的伺服器例項,以最佳化資源使用並提高可用性。

要將Nginx配置為多個Kibana例項的負載均衡器,請修改Nginx配置檔案如下:

upstream kibanapool { 
server 10.0.0.1:5601; server 10.0.0.2:5601; } 
server { listen 80; 
server_name your-domain.com; location / { 
proxy_pass http://kibanapool; proxy_set_header Host $host; } }  

`upstream`塊定義了一組Kibana例項及其IP地址。然後,`server`塊指定偵聽埠和域名,以及將請求轉發到上游組的`proxy_pass`設定。

使用Nginx快取靜態檔案

Nginx還可以快取靜態檔案(例如影像、CSS樣式表和JavaScript指令碼)以提高效能。快取允許頻繁或重複請求相同的檔案從記憶體中提供服務,而不是每次都從磁碟讀取。要在Nginx中啟用靜態檔案的快取,請修改您的配置檔案如下:

http { ... # Define a path for where to store cached data on disk 
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m; ... server { 
listen 80; server_name your-domain.com; 
location / { # Enable caching for all types of static files 
proxy_cache my_cache; proxy_cache_valid 200 60m; # Cache responses with HTTP status code 200 OK for up to 60 minutes 
add_header X-Cache-Status $upstream_cache_status; # Add a header indicating whether a response was served from cache proxy_pass https://:5601; # Forward requests to Kibana } ... } }  

`proxy_cache_path`指令指定一個目錄路徑,快取資料將儲存在磁碟上。`proxy_cache`指令啟用對所有型別靜態檔案的快取。

`proxy_cache_valid`指令根據其HTTP狀態程式碼設定應快取響應多長時間。`add_header`指令新增自定義標頭以指示響應是否來自快取。

結論

將Nginx配置為Kibana的反向代理可以極大地增強Web應用程式的效能和安全性。透過透過Nginx重定向流量,您可以利用其高階快取和負載均衡功能來改善使用者體驗。此外,使用SSL證書進行SSL加密可以幫助保護敏感資料免受潛在的安全漏洞。

更新於:2023年7月11日

瀏覽量1K+

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.