DevOps

Redis 清除過期key原理

在Redis 基於性能考量,並不會對每一個過期的key做及時刪除,主要透過以下幾種方式來清除過期的key:

Continue Reading

快速建立 Telegram Bot (入門)

這裡記錄如何快速建立一個 Telegram bot 以及透過 bot 發送訊息到群組。

Continue Reading

如何透過 SRI 驗證避免 CDN 劫持

SRI (Subresource Integrity) 是一個透過瀏覽器驗證引用的第三方資源,確保內容沒有被串改。

例如,我們常會引用第三方的 CDN 來源,以加快請求的時間。但由於 CDN 來源分散,難以進行定位,若其中一個來源節點受到劫持,可能會發生隨機的劫持,並且難以重複呈現,用戶刷新頁面後,就無法再重現。

Continue Reading

Redis pub/sub 連線一段時間出現訂閱失敗的處理方式

Redis pub/sub 連線一段時間出現訂閱失敗的處理方式

Redis subscribe 在訂閱一段時間可能失敗的情況有兩種, 1. 啟動沒多久就發生超時, 2. 長期才發生的連結斷開

在實際開發過程,兩種方式情境都可以同時設置,處理方式如下:

Continue Reading

解決 Laravel 每日建立分隔 log 檔案,出現權限 Permission Deny 問題

解決 Laravel 每日建立分隔 log 檔案,出現權限 Permission Deny 問題 如果設定排程執行 php artisan 預設會使用 root 來執行,就會導致產生的 log 檔案會有權限問題。 解決方式,首先關閉 root 產生的排程,開啟排程檔案將執行的程式先註解 crontab -e 接著,用 www-data 身份來設定排程 crontab -u www-data -e 例如,以下設定每三十分鐘執行 30 * * * * php /var/www/html/artisan course:create >> /dev/null 2>&1 以上設定完畢後,先刪掉今天產生的 storage/log/ log 檔案,

Continue Reading

如何選擇 AWS RDS Instance 避免 Too many connections

在 AWS 的 RDS Instance ,不同方案 CPU跟記憶體 都有差別,因此在預設時,都會針對主機規格幫你配置好可負載的人數,避免Instance崩壞,通常可以針對你的網站預估同時在線人數來推估適用的方案。

首先,先說明關於 RDS 針對使用者連線相關的配置參數。

Continue Reading

實戰 Nginx 設定技巧:連線數與效能

實戰 Nginx 設定技巧:連線數與效能

這裡針對實際運行服務,記錄一些設定技巧

首先,從 Nginx 的設定檔 /etc/nginx/nginx.conf

nginx.conf 通常為了可將多站點的設定檔獨立分存,一般都會有以下設定,指定將某個資料夾的設定檔 include 到 nginx.conf 裡。

Continue Reading

GCP 磁碟擴充容量流程 [解決]

查詢磁碟分割

sudo lsblk

>>>輸出
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda      8:0    0  30G  0 disk 
└─sda1   8:1    0  10G  0 part /

分配容量

將剩下的空間都分配給 sda1

(注意,這裡 sda 與 1 之間有空格)

Continue Reading

Linux - CentOS7 安裝 VirtualBox

這裡記錄如何在 CentOS7 安裝 VirtualBox

更新 yum

首先更新系統至最新版本

yum update -y

Continue Reading

Linux - FTP vsftpd 安裝及設定教學

Linux - FTP 教學

在這裡記錄一下 Linux CentOS7 安裝 FTP 以及如何建立使用者,並且限制使用者只能訪問家目錄。

Continue Reading

解決,Nas 透過靜態路由 Gateway 開通不同網段路由

解決,Nas 透過靜態路由 Gateway 開通不同網段路由 目前公司有新添購主機,需要將該台主機可開通連結到多個網段, 這裡先說明一下,在內網 192.168.1.42 已經有設定可連結到多網段。 Nas 網路 192.168.1.49 與該台機器位於同網段,因此,只需要在新添購的 Nas 增加靜態路由, 再透過該路由指定 Gateway 的導向路徑到其他網段 (192.168.77.0) 即可

Continue Reading

CentOS 安裝 Java 與 Maven

CentOS 安裝 Java 與 Maven 流程 安裝JAVA Java環境檢查,若出現 ```-bash: CVT2HUGO: java: command not found``` 表示未安裝 JAVA java -version 下載 JAVA 64x yum install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64 -y java -version 安裝 Maven 確認是否存在 maven

Continue Reading

Linux Mac, Windows 如何掃描區網IP(IP-Scanner)

Linux Mac, Windows 如何掃描區網IP(IP-Scanner)

這裡記錄如何掃描區網的方式,使用的是系統內建的 ping 與 arp 指令:

Continue Reading

如何在 Mac分享 VPN網路作為 Wi-Fi 熱點分享來源

如何在 Mac分享 VPN網路作為 Wi-Fi 熱點分享來源

近期開發產品,需要再非公司的場合應用到固定IP。

由於這次產品使用的場合無法立即取得固定IP網路環境,並且實體網路也沒有的情況下,進行了幾種方式,最終找到可行的方式。

在這裡將流程進行紀錄。

Continue Reading

Docker build go image

Docker build go image

這裡記錄一下簡易的 Go build image 流程

Continue Reading

最完整 如何解決 .git 檔案過大, git clone 產生 Swap Out of memory 問題

最完整 如何解決 .git 檔案過大, git clone 產生 Swap Out of memory 問題

.git 檔案過大,會需要依照當時專案的環境做不同處理,這裡將各種可能的狀況,提供解決方案。

當 .git 檔案過大,伺服器記憶體不足時,會出現以下錯誤:

swap Out of memory, malloc failed (tried to allocate xxxxxxxxxx bytes)

通常會發生這問題,原因都在於這個 git repository 已經使用一定時間,提交次數非常多,導致 .git 檔案過大

例如,.git 檔案就佔據 2Gb

遇到這狀況時,可能遇到一些問題,例如:主機環境是否能變動,commit 資訊是否要保留等

以下針對各種問題,提供對應的解決方法:

Continue Reading

Python 運行 Selenium 入門

Python 運行 Selenium 入門 這裡支援 Python 2.7, 3.4+ 安裝 Driver 下載瀏覽器 driver ,請依照你瀏覽器目前的版本下載對應的 Driver Chrome: https://sites.google.com/a/chromium.org/chromedriver/downloads Edge: https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ Firefox: https://github.com/mozilla/geckodriver/releases Safari: https://webkit.

Continue Reading

Workerman 入門 - 安裝及啟動

Workerman 入門 - 安裝及啟動

Workerma 是一個老牌的 PHP socket 服務架構。

這裡記錄基於 CentOS, PHP7 環境的安裝流程:

Continue Reading

Mac 強制移除本地 mysql 佔用 3306,解決無法 kill 3306 process 問題

在本地預計使用docker 建構 mysql ,卻發現 3306 port 被佔用的情況。

這時,透過 刪除指定進程方式,來移除佔用 3306 port 的 process

先將 3306 process 找出,並且移除

Continue Reading

解決,請求過大導致 The request record is too big

解決,請求過大導致 The request record is too big

Nignx & PHP-FPM 架構中,發送單一請求若header傳輸量過大,就會爆出 request record is too big 的錯誤,

可以檢查是否直接透過http params 方式來夾帶參數

當參數過大,就會導致內容無法送達而爆出錯誤。

Continue Reading