0%

前言

參考上一篇文章: [Elasticsearch] 使用 Elasticsearch + Kibana 實現中文全文檢索 開始使用 Elasticsearch 和 Kibana 之後就會發現一個問題: 沒有使用者帳號密碼嗎? 因為像是 MySQL、MongoDB 等許多資料庫都有使用者認證的機制,需要有帳號密碼才可存取資料庫,但 Elasticsearch 和 Kibana 本身是沒有提供使用者驗證的機制,如果希望是內部使用,只能透過設定防火牆的方式限制特定網域使用,但是如果我們希望讓外部也能夠存取資源,綁定 IP 之後,任何人只要知道 IP 和 port 就都可以存取資料,這樣非常不安全,因此我們希望能夠設定使用者認證。

雖然 Elasticsearch 和 Kibana 本身沒有提供使用者認證機制,但 Elastic 有提供 X-Pack 工具,它可以用來做 Elasticsearch 和 Kibana 的安全防護、即時監控和產生報表等等,但是它是要付費的,試用期過了之後就無法使用。如果除了安全防護之外,也需要有即時監控、報表紀錄等等功能,也是可以考慮這個方案,詳細設定方式可以參考 Elastic 官網

因為我們主要的需求是希望讓外部也能夠存取資源,但需要有使用者驗證機制,不要讓任何人都能夠存取資料,所以我們選擇使用 Nginx 作為 proxy,接收外部的請求,再透過 Nginx 轉發給 Elasticsearch 或 Kibana, 將 Elasticsearch 和 Kibana 設定為只能本機存取 (host 設為 127.0.0.1),並針對 Nginx 設定 HTTP Basic Auth, 這樣就能夠達到需要輸入使用者帳號密碼才能夠存取 Elasticsearch 和 Kibana 的需求。

Read more »

Elasticsearch

簡介

Elasticsearch 是一個以 Apache Lucene 為核心,分散式的 RESTful 風格的搜尋和數據分析引擎。它是以 JSON 的形式儲存資料,並提供即時的分析及搜尋。

Kibana 將 Elasticsearch 中的資料以視覺化的方式呈現,並提供操作 Elastic Stack 的 UI 介面。

ik analyzer 是一個 Elasticsearch 的中文分詞 plugin,由於 Elasticsearch 預設對於中文的分詞是一個字一個字切割,沒有分詞的話,中文搜尋的效果會比較差,所以我們需要加上中文分詞的 plugin, 讓搜尋的結果更好。

Read more »

TLS/SSL

簡介

SSL

SSL 全名是 Secure Sockets Layer (安全通訊端層),是一種標準的技術,用來保持網路連線安全,防止敏感資料被竊取或傳輸的資料被修改。此技術可使用加密演算法來混淆傳輸的資料,防止資料被竊取。

Read more »

每次要 push, pull 或 clone 專案的時候,都要輸入密碼很麻煩,所以這裡紀錄一下如何免密碼就能夠操作 GitHub 專案,原理和 [Linux] 設定 SSH 免密碼登入 一樣,利用 ssh-keygen 來產生 public key and private key, 就可以建立互相信任的連線。

首先,先在 Windows/Linux/Mac cmd 執行 ssh-keygen 來產生 public key and private key.

如果是在 Windows 上執行,ssh-keygen 是包含在 <Git install path>\usr\bin 底下,記得先將此路徑加到系統環境變數 PATH,以免無法辨識 ssh-keygen 指令。

Read more »

Webpack

簡介

Webpack 是一個 module bundler,把許多不同類型的模組 build 成靜態資源。

主要功能:

  • 將 CSS、圖片與其他資源打包
  • Pre-processing Less、CoffeeScript、JSX、ES6 等檔案
  • 可依 entry 文件不同,把 .js 打包成多個 .js 檔案
  • 可以搭配許多 Loaders

這一篇文章主要是紀錄 Webpack 搭配 Express、Hot module replacement 、 Babel 和許多常用的 Lodaers 的設定及使用方式.

Read more »

Babel

簡介

Babel 是一個JavaScript compiler,可以將新的 JS 語法轉譯為瀏覽器支援的 ES5,因為 JavaScript 幾乎是每年會提出一個新的規格草案,但是瀏覽器沒辦法很快就能夠支援新的 JS,所以我們需要先轉譯成瀏覽器支援的 ES5。

Read more »

NPM

簡介

NPM 全名是 Node Package Manager, 是 Node.js 的套件管理工具,讓開發者方便地安裝及管理所需要的第三方套件,也可以讓開發者發佈自己的 packages.

Read more »

前言

在使用 scp, rsync 等工具傳送檔案時,需要手動輸入密碼才可進行操作,但如果我們想要使用 crontab 排程定時備份資料時,就無法手動輸入密碼再進行備份,因此這一篇文章主要紀錄如何設定 SSH 不需要密碼即可登入。

Read more »