iT邦幫忙

0

ELK Kibana nginx + 反向代理設定

  • 分享至 

  • xImage

Hi 大家好:

最近再搭 ELK 8.10 cluster,再設定 nginx reverse proxy + kibana 的時候發生異常,
我有三台 es , 一台 nginx 反向代理

                |----|| kibana-01 -- es-01 ||       # instance01 
client -> nginx |----|| kibana-02 -- es-02 ||       # instance02
                |----|| kibana-03 -- es-03 ||       # instance03
nginx 是獨立機器,共四台機器

因為我希望做高可用設定,我不希望 instance01 死掉的時候,完全訪問不了,
所以我才在面搭了 nginx 要做反向代理。
設定一台反向代理沒有問題,
可是當兩台以上的時候就會出錯。
瀏覽器輸入完密碼後,會跳轉出現錯誤訊息 Too_many_directors
然後又回到 kibana 的 xpack 登入密碼的畫面,

https://ithelp.ithome.com.tw/upload/images/20230923/20160038WUxcfl5Rmy.png

以下是我的 ngnix 設定

upstream backend_servers {
    server 172.31.20.227:5601;
    server 172.31.18.79:5601 ;
}


server {
  listen 80 default_server ;
  access_log /var/log/nginx/access_ELK.log;
  error_log /var/log/nginx/error_ELK.log;

  location / {
    proxy_pass http://backend_servers ;
    # proxy_pass http://172.31.18.79:5601 ; 只有一台的情況可以。
        # proxy_password http://43.207.225.37:5601 ;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header connection 'update';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_update;
    }
}

error_ELK.log

XXXXX - - [23/Sep/2023:14:02:26 +0000] "GET /ui/fonts/inter/Inter-Medium.woff2 HTTP/1.1" 304 0 "http://`nginx_IP`/login?next=%2Fapp%2Fhome" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36"
XXXXX - - [23/Sep/2023:14:02:26 +0000] "GET /ui/fonts/roboto_mono/RobotoMono-Regular.ttf HTTP/1.1" 304 0 "http://`nginx_IP`/login?next=%2Fapp%2Fhome" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36"
XXXXX - - [23/Sep/2023:14:02:26 +0000] "GET /ui/fonts/inter/Inter-SemiBold.woff2 HTTP/1.1" 304 0 "http://`nginx_IP`/login?next=%2Fapp%2Fhome" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36"
froce iT邦大師 1 級 ‧ 2023-09-25 09:57:14 檢舉
不確定,但加這三行看看:
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
這樣不行, 另外網友給出的解答可行。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
wiseguy
iT邦超人 1 級 ‧ 2023-09-25 10:34:24
最佳解答

試試看把這個

upstream backend_servers {
    server 172.31.20.227:5601;
    server 172.31.18.79:5601 ;
}

改為

upstream backend_servers {
    ip_hash;
    server 172.31.20.227:5601;
    server 172.31.18.79:5601 ;
}

這樣會讓來自同一個 IP 的你,永遠使用同一台 Kib,而不是輪流,不致影響登入 session。

/images/emoticon/emoticon41.gif

可行,成功。

我要發表回答

立即登入回答