![専用のWebサーバーを使用すると、どのような利点がありますか? [閉鎖]](https://linux33.com/image/93080/%E5%B0%82%E7%94%A8%E3%81%AEWeb%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E5%88%A9%E7%82%B9%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
具体的には、専用のWebサーバー(lighttpdやnginxなど)を使用してWebサーバー(Swift / Pythonなど)の指示に従ってプログラムを実行すると、どのような利点がありますか?
具体的には、単にWebフレームワーク(Perfect / Flaskなど)を実行して組み込みルーティングを使用するのとどのように比較されますか?
答え1
これは標準の「Webセキュリティアーキテクチャ」の質問です。
一般的な3階層アプリケーションには
- Webレイヤー
- アプリケーション層
- データベース(または他のバックエンド)層。
別の仕事を手伝うというアイデアです。
したがって、「Web層」は、すべての着信トラフィックの初期終点です。ここでSSL操作をすでに完了している可能性があります。この時点で、SQLインジェクション攻撃やパススルー攻撃などの着信トラフィックをスキャンできるWebアプリケーションファイアウォールなどを注入できます。
ここで終了すると、apache、nginx、またはlighttpdなどのフロントエンドサービスが悪意のあるトラフィック処理、誤った要求履歴にのみ専念し、より「安全」であるという利点があります。誰かがWebサーバーを攻撃する新しい方法(間違ったTCPビットセットでデータを断片化しますか?)を考案すると、親Webサーバーがパッチされると確信できます。ネットワークフレームワークはそれほど重要ではありません。
「クリーン」トラフィックのみがアプリケーション層に転送されます(この通信はHTTPかもしれませんが、より信頼できる送信元から送信されます)。あなたのアプリケーションはバックエンドと通信できます。
理想的には、これらの層はネットワークルーティングルールを使用して別のサーバーに存在する必要がありますが、外部要求サービスは「アプリケーションサーバー」にまったく到達できません。トラフィックがアプリケーションサーバーに到達する唯一の方法は、下位TCP層でもフロントエンドWebサーバーを介することです。しかし、これがなければ、いくつかのセキュリティ上の利点を得ることができます。
2番目の利点は、フロントエンドサービスがHAプロキシになり、複数のバックエンドアプリケーションサーバーに負荷を分散できることです。
3番目の利点は、フロントエンドWebサーバーから静的ファイル(画像、CSS、JavaScriptなど)を提供でき、大量のアプリケーション固有のコンテンツのみがアプリケーションに配信されることです。キャッシュレイヤーなどを追加できます。これにはパフォーマンス上の利点があります。
したがって、ビジネスの観点からは、これらを別々に維持する必要がある多くの理由があります。ただし、より多くの構成および設定操作が必要です。
どこまで行きたいかは個人的な好みです。