Setup HTTPS and HTTP/2 on Nginx

19 April 2018

最近發現某台提供HTTPS的server,在Android手機瀏覽器上訪問,常常被提示說不安全的憑證,
於是就去這個檢測網站 https://www.ssllabs.com/ssltest/analyze.html做檢測,發現結果是分數是B,且有chain issue。 之後去server上檢查Nginx confg,發現我忘記放intermediate cert了,於是就把intermediate cert和cert合併再一起就解決。因此這篇筆記會紀錄:

  • 為了避免忘記所以決定紀錄一下設定HTTPS的步驟,
  • 如何讓HTTPS評分為A+。
  • 設置HTTP2

read more »


Using AWS Lambda with Amazon S3 (Node.js)

13 March 2018

AWS Lambda提供serverless的運算服務,serverless意思是開發者不需要管server的任何資源,也就是說你不需要創建一個EC2 instance,然後還要煩惱auto scaling, HA等設定,AWS Lambda替開發者解決這些問題,它會自動scale。
開發者只需要專心在code就好,你的code會透過Event來驅動, 這個Event可以來自於AWS上的服務,例如S3, API Gateway等服務,舉例來說你可以設定,當上傳檔案至S3時,S3會發送一個Event給你的code來回應這個Event。這篇文章就會以AWS上建立縮圖的example來說明。
而AWS Lambda的費用是取決於你的code執行時間,也就是說當沒有任何Event去trigger你的code時,是不需要收費的,在某些應用情況來說,是比EC2來得優惠。但AWS Lambda還是有它的缺點,因為你不需要也無法管server的任何設定/資源,在某些應用情況來說,替開發者帶來了些限制,所以當想要更有彈性,或者喜歡hands-on架構的開發者,或許就可以考慮EC2。

read more »


Firebase Realtime Database (Web)

25 August 2017

最近要替我們的服務加一個類似公告的服務,想了好幾個solution,譬如說在我們既有的API Server上加一隻API,讓前端獲取目前最新的公告, 但這麼做的缺點就是前端得用pulling or long pulling的方式,不管哪個方式對Server來說都是一種負擔,再加上把公告的獲取放在API Server的話,又得處理zero downtime的問題,基於以上的原因,所以打算使用Firebase realtime database
Firebase realtime database是一個即時的資料庫,當你更改任一個在database的值時,會立即的同步到各個已經連結到資料庫上的client上面,傳統作法是得讓client自己定期去DB query,而Firebase會主動的讓各個client知道,然後目前已經支援非常多種client了,像是普遍的iOS, Android,而我這篇是選擇使用Web,我可以在前端頁面上,使用JavaScript與Firebase realtime database做一個連結。


read more »