Linux

Postfix 的最佳設置和優化 VPS 上的自定義傳遞腳本

  • May 18, 2009

所以我在 Linode 1080 VPS 上部署了 Postfix + saslauthd + Courier-IMAP。我們是一家小公司,我們有大約 30 個帳戶(為了方便起見,我使用物理 *nix 使用者 + Maildirs,見下文),但我們通過自定義腳本廣泛使用 Courier 的共享文件夾(用於多個帳戶)功能用紅寶石寫的。它通過 Spamassassin 過濾電子郵件,讀取包含一些規則的 YAML 文件,然後執行多項檢查以查看在我們複雜的結構中將電子郵件歸檔到何處。Maildirs 和物理使用者為我提供了所需的靈活性。

收到郵件,然後將其傳遞給我的腳本,該腳本在其主目錄中使用者的 .forward 文件中定義。

總而言之,該腳本大約需要 2 秒才能完成。現在,我們沒有相對較高的電子郵件量(我估計每小時大約 30-50 封電子郵件),但我正在尋找加快速度的方法,同時確保我們的電子郵件負載是否變得更高(或者我們會遇到“垃圾郵件風暴”) ‘),我們的伺服器不會突然記憶體不足等。我的問題是:

  1. 在將電子郵件傳遞給我的腳本之前,通過spamassassin守護程序過濾電子郵件的方法是什麼(而不是每次收到郵件時都啟動應用程序)?猜猜以我現在的方式做這件事是不好的做法。
  2. 有沒有辦法限制後綴同時傳遞給我的腳本的電子郵件數量?我不想讓我的腳本同時執行 10 個實例。
  3. 我怎麼能把我的腳本變成一個守護程序?這會讓事情變得更快嗎?

提前致謝。

PS:電子郵件(嗯,/home)儲存在一個單獨的 XFS 分區上,該分區使用 noatime 掛載。

在將電子郵件傳遞給我的腳本之前,通過 spamassassin 守護程序過濾電子郵件的方法是什麼(而不是每次收到郵件時都啟動應用程序)?猜猜以我現在的方式做這件事是不好的做法。

查看amavisd-new,它是用 perl 編寫的。它將滿足您的需求,在網路級別集成(如果您願意的話)並提供防病毒掃描。大多數主要的 linux 發行版都將它作為預建構的包提供。您唯一需要擔心的是,某些發行版會使用偶爾出現錯誤的陳舊版本。大多數這些錯誤會導致 amavis 楔入或終止;因此,如果它比官方網站上的版本舊 3 個版本,我會認真考慮手動管理那個包。

有沒有辦法限制後綴同時傳遞給我的腳本的電子郵件數量?我不想讓我的腳本同時執行 10 個實例。

你說的是速率限制。鑑於伺服器的“小”尺寸,我會將後綴速率限制器本身設置為每分鐘 3-6 封電子郵件,而不是在掃描端設置它。如果您嘗試接受所有內容的傳遞,垃圾郵件風暴只會阻塞您的隊列,無論如何您最終都會積壓。

我怎麼能把我的腳本變成一個守護程序?這會讓事情變得更快嗎?

噸!在這方面我無法幫助您,但是預先啟動您的腳本會減少大量成本。

引用自:https://serverfault.com/questions/9545