私はDrupalコミュニティサイトで作業しており、次のことについて質問したいと思います。
Drupalサイトをより安全にする方法は?
サイトに多くの訪問者とユーザーがいて、同時にデータベースとのやり取りが多いときに、サイトをできるだけ速く動作させるにはどうすればよいですか?この状況でデータベースの一貫性を保つにはどうすればよいですか?
Drupalがサーバーの高負荷時に機能するように構成するにはどうすればよいですか?サーバーのハードウェアが高負荷時に機能するように構成するにはどうすればよいですか?
1-キャプチャとスパムフィルタリングを使用します。 Mollomは、開始するのに適した場所です。 Drupal drupalハンドブック、つまり http://drupal.org/writing-secure-code)の強化に関する情報もあります 。
2-まず、Drupalに付属のパフォーマンスモジュールをオンにします。
3-これは大きな問題です。ホワイトハウスが提供するモジュールである Context HTTP Headers について良いことを聞きましたDrupalチーム。比較表は Caching:Moduls Drupal scale を作成します。
ここで大量の質問をしましたが、このテキストボックスのスペースでは完全に答えることはできませんでした。答えは、パフォーマンスチューニングは常にワークロードに固有であり、そのようにカスタマイズする必要があるということです。セキュリティ自体も大きなトピックです。多くの人がこれらの質問をするので、これに答える最良の方法は、いくつかのリソースを指すことです。
Drupalセキュリティメーリングリストにサインアップします。リスト ここ を表示し、脆弱性が発見されたときに電子メールで通知を受けるようにサインアップできます。これを行うには、drupal.orgにログインし、プロファイルで[編集]をクリックし、[マイニュースレター]に移動して、セキュリティのお知らせを確認します。また、開発を行っている場合は、 セキュアコードの書き込み が必須お読みください。また、サーバーのセキュリティの状況にも注意してください。ほとんどのLinuxディストリビューションには、最新のセキュリティ状況について通知するための電子メールリストがあります。それは大規模な議論なので、Drupalには関係ありません。
&3.明らかに、すべてのキャッシュオプションをオンにしますDrupalは、管理ページのパフォーマンスセクションに表示されます。Drupal page Serverチューニングの考慮事項 は非常に優れており、多くの実用的な情報を提供します。また、 [〜#〜] apc [〜#〜] は、Drupal開発者はほぼ即座に、大幅に改善できますPHP実行時間。最後に、データベースを最適化するには、サイトで実行されているクエリを確認し、MySQLを使用することから始めますdescribe
コマンドを使用して、スロースポットで何が起こっているかを確認し、インデックスを追加します。これについての詳細 here 。
トラフィックの多いDrupalサイトの場合は、現在保存されているコンテンツに合わせてMySQLを調整する必要があります。Drupalのバージョンが何であれ、 MySQLレイヤーは設定を計算できます 。
すべてのDrupalテーブルをInnoDBストレージエンジンに変換する必要があります。これにより、データに影響を与えるすべてのSQLステートメントからテーブルロックが排除されます。
InnoDBデータがすでにあり、innodb_file_per_tableが有効になっていない場合は、 各テーブルを独自の物理テーブルスペースにセグメント化してInnoDBをクリーンアップする必要があります 。きちんとしたMySQLチューニングを行うことが不可欠です ハードウェアが限られている場合でも 。 このようなInnoDB最適化を行うための多くのシナリオ があります。
私見、構成するデータの量を知らなければ、my.cnfの適切な設定を計画することはできません。現在のデータセットを定期的に本番環境からステージング環境にロードし、最適化を実行して、本番サーバーのmy.cnfで構成する数値を取得する必要があります。
Drupalは、箱から出して非常に安全である必要があります。アクティブな投稿モジュールに固執し、= drupalコア機能、これについて本当に心配する必要はありませんが、カスタムの何かをコーディングしている場合は、ユーザー入力がプレーンとdb_queryのチェックを通過することを確認してください。
大規模な質問。 Drupalには、CSSやJSの集約、ページキャッシングなど、すぐに使える優れた機能があります。データベースに書き込む代わりに、syslogを使用するようにウォッチドッグを移動します。適切な場所でキャッシングを使用してください。 ブースト 、 ワニス 、 memcached 、 ブロックキャッシュ 。 yslowの推奨事項 を使用してページを最適化します。本当に深刻になっている場合は、データベースサーバーを別のマシンに移動することを検討することをお勧めします。このリストは実際には非常に長くなる可能性がありますが、2ビットのKhalid Bahayeldinは権威です-特に読む このプレゼンテーション クイックウィンのアイデア。
番号2を参照してください。
2&3 Drupalize.meビデオを見ることができます: Drupal Performance&Scalability または 複数のWebサーバーでの高可用性のためのワニスの構成 のような他のLullabots記事