RSS Email Twitter GitHub Dribbble LinkedIn Facebook Instagram YouTube Pinterest Reddit icon menu

Cody's 探索日誌

東摸西摸,十分好奇

PV: / UV:

Wordpress - Nginx 反向代理緩存

Wordpress 的頁面不會時常更新,希望透過緩存的方式減少不必要的損耗,並同時加速頁面載入速度 雖然 Wordpress 有眾多的緩存插件可以使用,但用起來的效果感覺都沒有很好,所以決定用 Nginx 來實現緩存 環境 Ubuntu - 20.04 LTS Nginx - 1.18.0 (Ubuntu) nginx-cache-purge - 0.1.8 Lua - 5.2.4 實現 Nginx 緩存 一個最基本的 Wordpress 的反向代理設定 1 2 3 4 5 6 7 8 9 10 11 http { server { listen 80; server_name domain.com; location / { proxy_hide_header X-Frame-Options; proxy_pass http://192.168.0.100; } } } 設定緩存路徑及緩存鍵名 proxy_cache_path <path> [levels=levels] keys_zone=name:size [inactive=time] [max_size=size] [use_temp_path=on|off]; <path>: 設定代理緩存位置的相關設定為 /var/run/proxy_cache levels: 設定目錄結構,例如 1:2,總共用了兩層目錄,第一層目錄單個 16 進制命名,第二層為兩個 16 進制命名

[網路] UDP 丟包追查

前言 UDP 若發生丟包,往往會認為封包遺失在路上,然而需要因環境架構來進行判斷 若發生問題的在一個大量的高速 UDP 的環境,則狀況可能會更加複雜,但往往事實出乎意料 知識 接收 網卡接收封包存入 Ring Buffer 然後透過 Kernel 存入 Socket Buffer 然後 Application 再從 Socket Buffer 取出封包 傳出 APP 將封包透過系統調用執行 sendTo 經歷 UDP封裝、IP封裝後進入 Socket Buffer,然後經由 Traffic Control 的 Qdisc(Classless Queuing Disciplines),而 Qdisc 會有一套傳輸的規則,符合規則才從 Ring Buffer 透過網卡送出 發生原因 傳送方 UDP 傳送速率太快受到 Qdisc 規則限制 TX Ring Buffer 太小 Socket Buffer 太小 接收方 RX Ring Buffer 太小 Socket Buffer 太小 App 處理太慢 檢查流程 確認網路協議統計 UDP 是否出現丟包 buffer errors 是否不為 0

MySQL/MariaDB - 時序查詢補零

最近協助改善查詢 DB 中的時序資料性能上的問題 由於現階段補零的動作交由前端處理,但是性能低落,導致前端圖表顯示較慢 測試資料 以下為範例資料表 test 為每 15 分鐘一筆,若此 15 分鐘無資料則不會寫進 DB Table seq - Primary Key created_at - INDEX seq value created_at 1 100 2021-12-20 10:00:00 2 500 2021-12-20 11:15:00 3 100 2021-12-20 12:45:00 … … … 50 300 2021-12-20 22:30:00 解決方法 問題 前端透過 for loop 依序對缺失的時間軸補 0 ,效能低下,花費了約 3.24 秒左右的時間 前言 久久查詢一次 前端效能未知 查詢範圍固定 解決思路 補 0 透過 DB 處理 優化前端補 0 方法 這裡我選擇由 DB 進行補 0

vscode 支援 ipynb 介面

最近開發有用到 python,但是已經用習慣 vscode,後來發現原來 vscode 已經支援 ipynb 進行開發 Env vscode: 1.59.1 python: 3.9.6 64-bit Install vscode 要安裝以下套件,可以透過 command 進行安裝 1 2 code --install-extension ms-toolsai.jupyter code --install-extension ms-python.python 如果想要將 ipynb 轉換成 python script 進行匯出,則需要再安裝 jupyter 透過以下指令 1 pip3 install notebook Conclusion 所以如果不轉換檔案,就可以不安裝 jupyter,並且 vscode 是可以正常運行的 Ref VS Code的Python擴充套件現支援原生編輯Jupyter Notebooks

保持 SSH 連線

在公司工作的時候,需要連至客戶的伺服器時,有時候放置太久就斷線了 根據網路上的資料,可以設定 ~/.ssh/config,讓 SSH Session 連線可以保持 SSH Config ~/.ssh/config : 用戶設定檔 /etc/ssh/ssh_config : 系統設定檔 以下設定的意思是,任何主機的連線,每 60秒 發送一個 KeepAlive,使其保持連線 Host * ServerAliveInterval 60 雖然前輩說用 top 讓連線之間保持傳輸即可,但有時候還是會忘記用,結果就段開了 還要請客戶協助重新登入是真的挺麻煩的 Ref Keeping SSH session alive

ByPass - Chrome Https Error

在聽 Will 保哥在疫情期間中有介紹 SSL/TLS 的一些觀,過程中有提到一個 Chrome 小技巧 ByPass Https Error 在內部網頁服務的使用過程中,可能會遇到各種憑證問題導致無法正常瀏覽網頁 要確認網頁是安全的才可以繼續瀏覽 但是如果頁面有繼續瀏覽的選項可以點擊,但也不是太麻煩 但就怕沒有繼續按鈕可以使用,這個時候我都會開啟 Safari 去信任憑證,然後透過 Safari 瀏覽 鍵盤要注意是小寫 根據影片中述說,在 Chrome 的憑證或不安全的頁面中輸入 thisisunsafe 就可以順利繼續瀏覽 Chrome Flags 這個在開發一些網頁服務的時候蠻方便的,不然偶爾就要一直重新按繼續瀏覽,真的是非常麻煩 透過在 chrome 瀏覽器網址中輸入 chrome://flags/#allow-insecure-localhost,並將此設定開啟 Ref 深入理解 TLS/SSL 安全加密協定 Chrome: Bypass “Your connection is not private” Message

TrunNAS Jail Upgrade

TrunNAS 系統升級之後,可能揮遭遇 Jail 版本的問題導致無法更新 Upgrade Jail Fetch 取得最新的 Jail 版本 1 2 3 4 5 6 7 8 $ iocage fetch [0] 11.2-RELEASE (EOL) [1] 11.3-RELEASE (EOL) [2] 11.4-RELEASE [3] 12.0-RELEASE (EOL) [4] 12.1-RELEASE [5] 12.2-RELEASE 停止 Jail 停止 Jail 準備進行更新 1 $ iocage stop <Jail Name> 升級 1 $ iocage upgrade -r 12.2-RELEASE <Jail Name> 進入 Jail 更新完畢後可以進入 Jail 進行確認 1 $ iocage console <Jail Name> Ref ixsystems - Jails

Proxmox 透過 Prometheus 呈現在 Grafana

自己有架設 Proxmox 來當測試用的虛擬機伺服器,有想做的實驗或架設開源軟體的時候方便使用 因為沒有什麼重要的系統運行在上面,所以本來也沒有打算監控 Proxmox,但是 Grafana 實在太絢麗了 我很享受 Grafana 圖表的呈現方式,但是我的 Grafana 擺在那邊沒有資訊來呈現,感覺就挺怪的 所以就打算把 Proxmox 的系統資訊拿來呈現,也順便做一下(假)監控 Install Prometheus 我這邊直接將 prometheus 安裝在 proxmox 裡面,這邊只求方便,但是建議還是安裝在單獨的機器上 這邊基本上是照著 Monitoring proxmox with prometheus and grafana 這篇文章進行安裝 Create User 在 Proxmox 建立 prometheus 使用者 1 2 sudo groupadd --system prometheus sudo useradd -s /sbin/nologin --system -g prometheus prometheus Create Dir 建立 Prometheus 會使用到的目錄 1 2 sudo mkdir /var/lib/prometheus for i in rules rules.d files_sd; do sudo mkdir -p /etc/prometheus/${i}; done Download & Install 建立一個臨時目錄用來下載檔案,並進入目錄中