HAProxy 負載均衡 & 高可用

您面對的挑戰(IT 的驚悚片日常)

  • ERP 只有一台主機,硬碟壞了全公司開天窗 — 老闆問「怎麼沒備援?」,IT 回答「預算被砍了」
  • 月底結帳 + 業務狂查庫存 + 主管跑報表 = 系統慢到像撥接上網,大家開始用 LINE 問「ERP 是不是掛了?」
  • 系統更新要停機兩小時,只能安排在凌晨三點,IT 工程師的黑眼圈已經比熊貓還深
  • 「昨天主機風扇壞了差點過熱關機」— 這不是故事,是某天你的 Slack 訊息
  • 客戶在你的電商平台下單,頁面轉三秒沒回應就關掉走人,你連挽留的機會都沒有

我們的解決方案

HAProxy 在你的服務前面站崗,把流量聰明地分配到多台後端伺服器。任何一台掛了?HAProxy 在毫秒級內把流量導走,使用者完全無感。搭配 Keepalived 做 HAProxy 本身的高可用,連門神都有替補,真正做到「沒有任何一個零件能讓全公司停擺」。

核心功能

⚖️ 智慧負載分流

支援輪詢、最少連線、來源 IP 綁定等多種演算法。月底報表潮來了?流量自動分散,不再一台扛全部。

💀 自動故障切換

後端伺服器每秒健康檢查,掛了立刻踢出叢集,活過來自動加回。使用者甚至不知道有事發生。

🔒 SSL/TLS 終止

HTTPS 加解密統一在 HAProxy 處理,後端伺服器專心跑業務邏輯,效能提升 30% 不是夢。

🔄 零停機維護

要更新系統?把一台從叢集抽出來更新,完成後放回去,再抽下一台。凌晨三點可以安心睡覺了。

📊 即時監控儀表板

HAProxy Stats 頁面一目瞭然:每台伺服器的連線數、回應時間、健康狀態,不用再猜「到底是哪台有問題」。

🛡️ HAProxy 本身也高可用

搭配 Keepalived + 虛擬 IP,主 HAProxy 掛了備援秒接手。門神也有替補,不存在單點故障。

適用場景

🏢 ERP / 企業應用

iDempiere、Nextcloud、郵件伺服器多節點部署,任一台維護不影響營運。

🛒 電商 & 客戶入口

促銷活動流量暴增?HAProxy 把請求分給多台 Web Server,頁面秒開不卡頓。

🗄️ 資料庫讀寫分離

PostgreSQL 主從架構搭配 HAProxy,寫入走主庫、查詢自動分散到多台唯讀副本。

🌏 跨機房流量調度

多據點部署時,HAProxy 依伺服器健康度與地理位置,智慧導流到最佳節點。

為什麼是 HAProxy?

業界標準
GitHub、Stack Overflow、Reddit 都用它 — 扛得住全球級流量,你的 ERP 肯定沒問題
極致效能
C 語言打造,單機輕鬆處理數十萬併發連線,資源消耗比 Nginx 更低
開源免費
GPLv2 授權,不用付 F5 或 AWS ALB 的帳單,省下來的錢夠請 IT 團隊吃一年便當
設定即程式碼
純文字設定檔,可以 Git 版控、Code Review、自動化部署,不怕誰手滑改錯設定

別等到系統掛了才想到備援

讓我們幫你的關鍵服務加上安全網 — 因為「應該不會那麼倒霉」從來不是合格的 SLA。

立即免費諮詢
🟡

銷售循環

🆕 型號申請單
流程圖 ↗
起草
業務填寫新型號申請內容
DocPrepare
DocAction: PR — 確認申請規格
DocAuto
Wait/Sleep — 系統判斷流程路徑
權限:RD分組主管
Set Variable — 設定審核權限群組
通知主管審核
Email 通知 RD 分組主管
主管審核
Sub Workflow — 主管確認型號申請
DocComplete
IsApproved = Y → 型號申請核准
完成通知
Email 通知申請人核准結果
DocReject
IsApproved = N → DocAction: RJ 駁回
駁回通知
Email 通知申請人駁回原因
📋 詢報價
流程圖 ↗
起草
業務填寫報價品項與條件
DocPrepare
系統檢查必填欄位
業務主管確認
確認報價金額與交期
DocComplete
報價單確認發出
→ 轉銷售訂單
🧫 索樣訂單
流程圖 ↗
起草
業務建立索樣需求
文件準備
DocPrepare — 確認索樣品項與數量
DocAuto
系統判斷文件類型 C_DocType_ID = 1000125
索樣訂單分支
Set Variable — 進入索樣流程
文件完成
DocComplete — 索樣訂單確認
通知審核主管
依 Volume / QtyPost 門檻觸發
業務主管審核
Sub Workflow — 確認索樣條件
CEO 審核
FreightAmt > 80,000 或大量時觸發
→ 安排送樣出貨
📅 預計訂單
流程圖 ↗
起草
業務建立預計訂單(交期表)
DocPrepare
確認預計出貨品項與交期
DocAuto
系統自動處理
DocComplete
交期表確認
→ 轉銷售訂單
📄 銷售訂單
流程圖 ↗
起草
業務建立訂單
DocPrepare
確認庫存與交期
業務主管審核
金額 < 門檻
CEO 審核
金額 ≥ 門檻
Email 通知
通知客戶訂單確認
DocComplete
訂單鎖定
→ 安排出貨
📦 出貨單
流程圖 ↗
起草
倉庫備料出貨
DocPrepare
核對品項與數量
DocAuto
自動扣減庫存
DocComplete
出貨完成
→ 開立發票
🧾 客戶發票
流程圖 ↗
起草
財務建立應收發票
DocPrepare
確認金額與稅率
DocAuto
產生應收帳款
DocComplete
發票確認
→ 客戶收款
💳 收款
流程圖 ↗
起草
輸入銀行入帳金額
DocPrepare
對應客戶與帳戶
DocAuto
自動沖銷應收
DocComplete
收款完成
→ 核銷配對
核銷配對
流程圖 ↗
起草
選擇發票與收款
DocPrepare
計算核銷金額
DocAuto
自動配對沖銷
DocComplete
帳款結清
🔵

採購循環

📝 採購申請
流程圖 ↗
起草
部門填寫採購需求品項與數量
DocPrepare
DocAction: PR — 確認採購規格
DocAuto
DocAction: -- — 系統判斷流程路徑
Please Approve Requisition
Sub Workflow — TotalLines > 100 需主管審核
DocComplete
DocAction: CO — 採購申請核准
Open Requisitions
Report — 輸出未結採購申請明細
通知完成
Wait/Sleep — 通知相關人員申請完成
→ 轉採購訂單
📄 採購訂單
流程圖 ↗
起草
採購人員建立訂單
DocPrepare
確認供應商與單價
採購主管審核
簽核採購條件
DocComplete
訂單確認發送供應商
→ 等待進貨
📥 進貨單
流程圖 ↗
起草
倉庫驗收入庫
DocPrepare
核對品項數量與品質
DocAuto
自動增加庫存
DocComplete
進貨完成
→ 對帳開立發票
🧾 廠商發票
流程圖 ↗
起草
財務登錄廠商發票
DocPrepare
比對進貨單與發票金額
DocAuto
產生應付帳款
DocComplete
發票確認
→ 安排付款
💸 付款
流程圖 ↗
起草
財務建立付款單
DocPrepare
確認付款帳戶與金額
財務主管核准
核准付款
DocAuto
自動沖銷應付
DocComplete
付款完成
→ 核銷配對
🟢

財務循環

📒 日記帳
流程圖 ↗
起草
輸入借貸分錄
DocPrepare
驗證借貸平衡
DocAuto
自動計算
DocComplete
分錄過帳
📚 日記帳批
流程圖 ↗
起草
建立批次分錄
DocPrepare
驗證所有分錄
DocAuto
批次計算與驗證
DocComplete
批次過帳
🏦 銀行對帳單
流程圖 ↗
起草
匯入銀行交易明細
DocPrepare
比對系統紀錄
DocAuto
自動比對已知交易
DocComplete
對帳完成
→ 未配對項目處理
🔄 銀行轉帳
流程圖 ↗
起草
設定轉帳帳戶與金額
DocPrepare
確認轉帳明細
DocAuto
產生雙邊分錄
DocComplete
轉帳完成
🩵

固定資產循環

🏷️ 資產新增
流程圖 ↗
起草
財務登錄新購資產
DocPrepare
填寫資產類別、金額與啟用日
DocAuto
自動建立資產卡
DocComplete
資產入帳
→ 資產改良 / 折舊
🔧 資產改良
流程圖 ↗
起草
填寫改良工程內容與金額
DocPrepare
DocAction: PR — 確認資本化改良內容
DocAuto
DocAction: -- — 系統自動計算
通知主管審核
Wait/Sleep — 等待主管確認
主管審核
Sub Workflow — 主管簽核
DocComplete
DocAction: CO — IsValid = Y 改良完成
完成通知
Wait/Sleep — 通知相關部門
Reject 通知
IsValid = N → 駁回通知
Reject
Wait/Sleep — 單據駁回結案
📉 資產折舊
流程圖 ↗
起草
財務建立月折舊批次
DocPrepare
確認折舊方法與期間
DocAuto
自動計算各資產折舊額
DocComplete
折舊分錄過帳
🔄 資產轉移
流程圖 ↗
起草
申請資產部門間轉移
DocPrepare
確認轉出/轉入部門與資產明細
DocAuto
DocAction = VO → 作廢分支
Receiver Notify
Email 通知接收方審核
Receiver Approved
Sub Workflow — 接收方確認
DocComplete
IsValid = Y → 轉移完成
Rejected
IsValid = N → 駁回 (DocAction: RJ)
📊 資產重估
流程圖 ↗
起草
財務建立重估作業
DocPrepare
填寫重估後公允價值
DocAuto
自動計算重估差額
DocComplete
重估入帳
🗑️ 資產報廢
流程圖 ↗
起草
申請資產報廢或出售
DocPrepare
確認殘值與處分損益
DocAuto
自動沖銷帳面價值
DocComplete
資產除帳
🩷

人資循環

🪪 忘刷卡
流程圖 ↗
起草
員工填寫忘刷卡日期與類型
DocPrepare
DocAction: PR — 確認刷卡記錄缺漏
DocAuto
Wait/Sleep — DocAction = VO → 作廢分支
類型判斷
ForgetType = G → 直接完成;其他 → 主管審核
通知主管審核
ForgetType ≠ G → Email 通知主管
主管審核
Sub Workflow — 主管確認忘刷卡事由
DocComplete
IsValid = Y → 補刷記錄核准
完成通知
Wait/Sleep — 通知員工核准結果
駁回
IsValid = N → DocAction: RJ
🗓️ 請假單
流程圖 ↗
員工申請
填寫假別與日期區間
DocPrepare
系統計算剩餘假數
直屬主管審核
確認可否請假
Email 通知
核准結果通知員工
DocComplete
假單核准生效
加班申請
流程圖 ↗
起草
員工填寫加班日期與時數
DocPrepare
單據準備 — DocAction: PR
DocAuto
Wait/Sleep — DocAction = VO → 作廢分支
WaitOneHour
Wait/Sleep — 等待一小時緩衝
HR_validovertimenote_sp
Process — 驗證加班申請合法性
EmailDirectSupervisor
IsValid = Y → Email 通知直屬主管簽核
HR_OvertimeInvalidNotice
IsValid = N → 通知申請無效
Cancel
IsCancelled = Y → Set Variable 取消
Approved
Sub Workflow — 主管審核加班申請
DocComplete
加班核准,計入薪資計算
📈 薪資調整
流程圖 ↗
HR 起草
填寫調薪員工與金額
DocPrepare
確認調薪生效日
HR主管審核
核准調薪
管理層核准
高階主管確認
DocComplete
調薪生效
💰 薪資彙總
流程圖 ↗
起草
HR 建立當月薪資批次
DocPrepare
彙整出勤、加班、調整
DocAuto
自動計算勞健保與稅
DocComplete
薪資確認
薪資條寄送
Email 通知每位員工
🟣

生產循環

🔬 PLM 需求
流程圖 ↗
研發提案
填寫新品研發需求
DocPrepare
說明規格與目標市場
RD 主管審核
評估技術可行性
DocComplete
需求確認
→ PLM 送樣
🧪 PLM 送樣
流程圖 ↗
起草
研發準備樣品
DocPrepare
填寫樣品規格與批號
QM 確認
品管驗樣通過
DocComplete
送樣完成
→ PLM 專案
🗂️ PLM 專案
流程圖 ↗
起草
規劃量產時程與資源
DocPrepare
確認 BOM 與工藝
管理層審核
核准量產計畫
DocComplete
專案啟動
→ 生產訂單
🏭 生產訂單
流程圖 ↗
起草
生管建立生產工單
Doc_Prepare
單據準備 — 確認 BOM、物料與產能
Doc_Auto
判斷生產類型 (productiontype)
通知代理人
productiontype ≠ V 時 Email 觸發
代理人簽核
Sub Workflow — 生產主管確認
組別判斷
DifferenceQty > 0 → 差異數量處理
通知組別主管
依 PartType (正型/PS/OC…) 分派通知
Doc_Complete
工單確認,正式開工
→ 生產工單執行
⚙️ 生產工單
流程圖 ↗
MRPNodeProcessBulider
Process — 初始化生產流程節點
投料
Wait/Sleep — 等待投料作業完成 → ProductionFeeded
攪拌
Wait/Sleep — 攪拌作業
Notice Sampling Role
Email (M) — 通知取樣人員
取樣
Wait/Sleep — 取樣作業
過濾
Wait/Sleep — 過濾作業
MRP_IPQC_Notice_SP
Process — 發送 IPQC 通知
QC Sample Confirm
Sub Workflow — QC 取樣確認 (依廠別分 CP/一般)
IPQC Valid
Wait/Sleep — IPQC 驗證判斷
IPQC 結果通知
IsIPQCPass=Y → 繼續 / NGSP → 重新取樣 / NGST → 重新攪拌 / N → 重工通知
Notice PP
Email (M) — 通知包裝人員準備過濾裝桶
過濾裝桶
Wait/Sleep — 過濾裝桶作業
調整單簽核
Sub Workflow — 依 PartType (正型/RGB/OC/BM/PS) 分流主管簽核
結果審核
Set Variable — IsConfirmed=Y → 完成通知 / N → Reject Notice
DocComplete
生產工單完工
→ 靜置桶槽投料
🛢️ 靜置桶槽投料
流程圖 ↗
申請新工作站代號
若無可用替用代碼,IT 申請 (EX: D1A)
Workshop 設定
Window — 設定靜置桶槽工作站
Workshop 確認
Window — 確認桶槽投料參數
注料程式重啟
重啟注料控制程式
生管投單至替代工作站
EX: D1A — 將工單指派至靜置桶槽
生產完成
靜置桶槽投料作業完成
還原作業
工作站設定還原至原始狀態
Workshop 還原
Window — 還原桶槽工作站設定
Workshop 結案
Window — 確認還原完成,作業結束
→ 洗桶工單
📋 盤點單
流程圖 ↗
起草
倉管建立盤點單
DocPrepare
DocAction: PR — 確認盤點品項與倉別
DocAuto
DocAction: -- — 系統自動處理
盤點單分支
DocSubTypeInv = PI → 進入主管簽核流程
通知主管
Email 通知主管進行盤點審核
主管簽核
Sub Workflow — 主管確認盤點結果
審核結果
Wait/Sleep — 判斷 IsValid
DocComplete
IsValid = Y → 盤點完成,調整庫存
駁回通知
IsValid = N → Email 通知重新盤點
🪣 洗桶工單
流程圖 ↗
起草
生管建立洗桶工單
DocPrepare
確認洗桶桶槽清單
UpdateWorkshopTank
Process — 更新工場桶槽狀態
通知 QC
Email 品管人員準備檢驗
Mail 生管
Email 生管知悉進度
檢驗
Sub Workflow — QC 執行洗桶檢驗
通知再洗桶
IsValid = N → 重新洗桶
UpdateWorkshopTank
Process — 更新桶槽為已洗淨
通知完成
Email 通知洗桶完成
DocComplete
洗桶工單結案
🔴

品質管理

🚨 CAR 申請
流程圖 ↗
品質問題登錄
描述不良現象與數量
DocPrepare
確認問題範圍
品管主管確認
評估嚴重性
DocComplete
開立 CAR
→ 暫時對策
🩹 暫時對策
流程圖 ↗
起草
擬定立即處置方案
DocPrepare
確認對策有效性
主管確認
批准立即實施
DocComplete
對策執行
→ 根本原因分析
🔍 根本原因
流程圖 ↗
起草
5Why / 魚骨圖分析
DocPrepare
填寫根本原因
品管審核
確認分析正確性
DocComplete
根本原因確定
→ 矯正措施跟進
✔️ 矯正跟進
流程圖 ↗
起草
制訂矯正行動計畫
DocPrepare
DocAction: PR — 確認矯正效果驗證方式
DocAuto
Wait/Sleep — 系統判斷流程路徑
NoticeEditor
Email (M) — 通知編輯人員填寫跟進內容
IsSubmit
Sub Workflow — 確認是否已提交驗證
IsValid / DocReject
IsValid=N → DocAction: RJ 退回
NoticeManager
Email (M) — 通知主管審核跟進結果
Approved
Sub Workflow — 主管確認矯正效果
DocComplete
Approved=Y → DocAction: CO — CAR 案件關閉
DocReject
Approved=N → DocAction: RJ — 退回重新矯正

完整 83 個工作流程 → iDempiere AD_Workflow 流程圖