標籤: server work

  • 伺服器轉移的 Check List

    伺服器轉移的 Check List

    伺服器轉移的時機點包括了:

    • 更換系統(e.g. centOS -> Debian)
    • 更換主機商
    • 主機需求迫不得已需要轉移

    各種各樣的問題,而如果不是使用 panel,或是沒有提供/規劃快速轉移的服務的話,這邊列一個轉移前後需要檢查的點,目前以 LEMP 環境,帶一些常用的服務/語言為主:

    1. 有上 git 的檔案
      • 如果不要完整備份,是否有備份 config, uploads, logs, writeable 等 ignore 的檔案?
      • 如果要完整備份,是否有把 .git 檔案包含在其中?
    2. 全部檔案
      • 除了 document root 資料夾之外,有沒有外部/連結/其他服務所使用到的資料夾?
      • Compose 等是否需要重新 build?
    3. 網站設定/環境
      • 程式本身使用到哪些服務/設定: user.ini, .htaccess 等等
      • 其他環境使用到哪些服務/設定:Node.js, python, Memcached, Redis 等等。
    4. GIT 使用的 private key 是否可重複使用,或是需要重新申請。
    5. PHP 使用的版本、擴充套件、啟用的套件、環境設定等。
    6. Nginx 的 vhost 設定,包含 log 路徑位置等;Apache 設定。
    7. SSL 的證書,其他服務可能使用到的憑證等。
    8. DNS 設定是否需要更動。
    9. FTP 的用戶、密碼與路徑(如果有用的話)
    10. Docker 的 image, compose, container 或是 dockerFile 等(如果有的話)
    11. IP 防火牆設定,請注意主機商或主機內都有機會設定。
    12. MySQL/MariaDB 或是其他資料庫服務等備份,請注意用戶權限,建議是備份成為 .sql 檔案,參考備份的 shell Script
    13. Cron 中對於網站的設定,注意除了網址呼叫之外,是否有針對路徑的呼叫?路徑是否有改變。
    14. Linux 的安全設定,包含是否有 ip 限制 SSH 連線、VPS 的設定等等以及驗證。
    15. Email 的設定,如果新的 server 不支援 email 設定的話可能得把這塊移轉到其他伺服器/服務商上面。
    16. 其他服務串接:包含了可能串接對方服務會有 ip 驗證或是作為 server 端, client 呼叫可能會產生的問題(例如設計上直接呼叫 ip)等。

    寫一寫發現有點多,主要還是怕避免落人口舌就越寫越多,肯定是還有遺漏的,畢竟我不是專職做系統工程師的角色,而伺服器鬼故事很多,天知道配合的 SE 是哪方天神。愛惜自己的肝,請從良好的配置習慣開始。

    1. 培養資料管理的態度和原則,一開始分類、整理好,以後採雷少。
    2. 建立一個關於自己技術成長的規則,避免自己被自己搞死
      • 例如我會利用每一台伺服器來做分類,舊的伺服器會遵循同一個資料管理的方法並且適時的更新,等於是對自己的技術作版本管理。
    3. 如果是接別人的 server/code ,除非自己能夠重構或是改好,要不遵守對方的規則為上策。等於是做一個版本的 branch 。
    4. 萬一很複雜(而且沒有管理系統),做文件是好的。
    5. 如果查看修改的頻率不高,做文件是好的。
    6. 最好的管理是給使用者自主管理,讓使用者有意識到那是他的東西,讓他懂得維護的方法。
      • 當然要做好期待管理以及費用的問題。通常使用者就是客戶。

    以上。

  • Progressive Web Application(PWA) 製作

    PWA 又稱「漸進式的網頁應用程式」,有很多文章已經有說明,參考這裡,或是參考這個都有說明。

    這次介紹一個 PWA 的好用工具:

    PWABuilder
    All the tools you need to build and deploy your Progressive Web Apps.

    操作方法簡化非常多,開始之前要注意幾件事情:

    • 準備一張  512×512 的 png logo (如果原本 logo 不夠大的話)
    • 要確保有更改網站內網頁的權限
    • HTTP Server 要注意安全性配置是否會阻擋根目錄的 json 和 js 檔案
    • 網站一定要有合規的 HTTPS 憑證使用

    首先進入網站以後輸入網址。
    系統便會開始撿測需要的資源,會給一份報告告訴你缺什麼,或是已經有了什麼。如下圖,會發現 PWA 需要的 Manifest.json 和 server-woker.js  都沒有,這時點擊一下右下角的 next 按鈕。

    點擊之後,會產生可以下載的 PWA 必要文件檔案。依照提示點擊 Generate 按鈕,下載必要檔案。
    下載完成解壓縮後,資料夾中會有如下檔案,點開 next-steps.html 會提示接下來要做的事情。
    next-steps.html 會導向 https://github.com/pwa-builder/pwabuilder-web/blob/V2/src/assets/next-steps.md 這個網址。簡單來說要做五件事情。

    1. 把目錄裡面的 manifest.json 上傳到網站根目錄。
    2. 把 pwabuilder-sw/pwabuilder-sw.js 上傳到網站根目錄
    3. 把準備好的 logo 改名 app-icon-512×512.png(預設 manifest.json 會吃 favicon.ico 可以從檔案中修改)
    4. 在網頁 header 中添加以下兩串代碼
      <link rel="manifest" href="manifest.json" />
      <script type="module">
         import 'https://cdn.jsdelivr.net/npm/@pwabuilder/pwaupdate';
         const el = document.createElement('pwa-update');
         document.body.appendChild(el);
      </script>
      
      

       

    以上,恭喜完成一個 PWA 基本配置,更進階的使用可以參考 manifest.json 中的配置:

    Web App Manifest | MDN
    Web App manifest 是一個 JSON 格式的文件,它提供了應用程式相關的資訊(像是名稱、作者、圖示、描述)。 manifest 的功用是將 Web …

    這裡面有詳細說明。像是如果要讓主畫面圖片更清晰,可以在 manifest.json 把 icons 參數調整過。

    值得一提的有幾個設定:

    —-

    安卓手機上使用 PWA 方法,請參考這裡

    iOS 上就是開 safari 然後把網站加入主畫面就行啦,參考這裡

    同場加映:

    Progressive Web App 加入主畫面 : PWA 究竟加入和安裝了什麼 (2) – iT …
    加入主畫面 (Add to Home screen) 加入主畫面 (Add to Home screen) 常見的縮寫為 A2HS,可以看成是讓使用者將 Web App 進行 "安裝&quo…

    iOS PWA Compatibility-firt.dev
    What's supported on Safari on iOS and iPadOS for Progressive Web Apps

    Day 02 – 30 天 Progressive Web App 學習筆記 – 為什麼需要 PWA? – iT …
    為什麼需要 PWA? 很多人認為網頁沒辦法跟原生的 APP 相提並論,因為網站沒辦法像原生 APP 一樣快速、可靠、高互動等等 PWA …

    將您的網站轉換成高品質PWA
    使用 PWA Builder 從現有網站建立高品質的PWA