だから私はPostfix + saslauthd + Courier-IMAPをLinode1080VPSにデプロイしています。私たちは小さな会社で、約30のアカウントを持っています(私は便宜上+ Maildirsのために物理的な* nixユーザーを使用します、後述)が、カスタムスクリプトでCourierの共有フォルダー(複数のアカウント用)機能を多用していますI Rubyで書いた。 Spamassassinを介してメールをフィルタリングし、いくつかのルールを使用してYAMLファイルを読み取り、いくつかのチェックを実行して、複雑な構造のどこにメールをファイルするかを確認します。 Maildirとphyiscalユーザーは、これに必要な柔軟性を与えてくれます。
メールが受信され、ホームディレクトリのユーザーの.forwardファイルで定義されているスクリプトに渡されます。
全体として、そのスクリプトは完了するのに約2秒かかります。現在、メールの量は比較的多くありませんが(1時間あたり約30〜50通のメールと推定)、これを高速化する方法を探しています。また、メールの負荷が高くなる(またはスパムストームが発生する)場合も確認します')、私たちのサーバーはメモリなどから突然打ち出されることはありません。私の質問は次のとおりです。
前もって感謝します。
追伸:メール(まあ、/ home)は、noatimeでマウントされた別のXFSパーティションに保存されます。
スクリプトに渡される前に(メールを受信するたびにアプリを起動するのではなく)spamassassinデーモンを介してメールをフィルタリングする方法は何ですか?私が今しているようにそれをするのは悪い習慣だと思います。
Perlで書かれている amavisd-new を見てください。それはあなたが探していることを行い、ネットワークレベルで統合し(あなたが望むなら)、アンチウイルススキャンも提供します。主要なLinuxディストリビューションのほとんどは、ビルド済みのパッケージとして提供しています。あなたが心配しなければならない唯一のことは、いくつかのディストリビューションが時折バグがある古いバージョンを使用するということです。これらのバグのほとんどは、amavisをくさびまたは終了させます。したがって、たとえば、公式サイトにあるものより3バージョン古い場合は、その1つのパッケージを手動で管理することを真剣に検討します。
postfixが同時にスクリプトに渡すメールの数を制限する方法はありますか?スクリプトの10個のインスタンスを同時に実行することになりたくありません。
あなたはレート制限について話している。サーバーの「小さい」サイズを考えると、スキャン側ではなく、後置レートリミッター自体を1分あたり3〜6通の電子メールのようなものに設定します。すべての配信を受け入れようとすると、スパムストームによってキューが詰まるだけで、とにかくバックログが発生します。
スクリプトをデーモンにするにはどうすればよいですか?それは物事を速くしますか?
トン!この点についてはお役に立てませんが、スクリプトを事前に起動しておくと、かなりのオーバーヘッドが削減されます。