質問1件 会社のサーバーはApacheを使用しており、バックエンドはPHP、サーバーはLinux C/C++を使用しています。Apacheサーバーについてはよく耳にします。以前インターンをしていた会社のサーバーはJavaを使用していました。nginxリバースプロキシサーバーとtomcatを使用していたことを漠然と覚えています。リクエストは最初にnginxを通過し、次にtomcatを介してリクエストを転送します。Apacheサーバー、tomcat、nginxの理解は少し曖昧です。そこで今日、関連情報を参照して使用シナリオを比較し、 2 Apache、Tomcat、Nginx の用語 1) アパッチ Apache HTTP サーバーは、Linux、Unix、Windows など、広く使用されているほぼすべてのコンピュータ プラットフォームで実行できるモジュール サーバーです。これはアプリケーション サーバーです。 Apache は多くのモジュールをサポートしており、パフォーマンスも安定しています。Apache 自体は静的解析であり、静的 HTML や画像などに適しています。たとえば、以前使用したことがある freemarker も静的ですが、拡張スクリプトやモジュールを通じて動的なページをサポートできます。 Apache は PHP、cgi、perl をサポートできますが、Java を使用する場合は、Apache のバックグラウンドで Tomcat が Java をサポートし、Apache から Tomcat に Java リクエストを転送して処理する必要があります。 デメリット: 構成が比較的複雑で、動的ページをサポートしていません。動的ページの解析をサポートするには、FastCGI や Tomcat などのプラグイン拡張機能が必要です。j2ee で作業している友人は、動的ページでは jsp を使用する必要があるため、動的ページを解析するには Tomcat が必要であることを知っています。Tomcat はサーブレット コンテナーです。もちろん、Apache から独立して、Tomcat をサーバーとして直接使用することもできます。 2) トムキャット Tomcat はアプリケーション (Java) サーバーです。これは単なるサーブレット (JSP もサーブレットに変換されます) コンテナーです。Apache の拡張機能と考えることもできますが、Apache とは独立して実行できます。つまり、Apache がない場合、静的ページと動的ページ (jsp) を解析できるのは Tomcat だけです。 3) エングクス Nginx は、ロシア人によって書かれた非常に軽量な HTTP サーバーです。高性能な HTTP およびリバース プロキシ サーバーであり、IMAP/POP3/SMTP プロキシ サーバーでもあります。 3. 比較 1) ApacheとTomcatの比較 類似点: どちらも Apache 組織によって開発されており、どちらも HTTP サービス機能を備え、どちらもオープンソースで無料です。 違い: a) Apache は HTTP サービスと関連構成 (仮想ホスト、URL 転送など) を提供するために使用され、Tomcat は Java EE の JSP およびサーブレット標準に従って Apache 組織によって開発された JSP サーバーです。 b) ApacheはWebサーバー環境プログラムです。有効にすることでWebサーバーとして使用できますが、ASP、PHP、Freemarkerなどの静的Webページのみをサポートしています。Javaサーバーでjspなどの動的言語を使用する場合は、jspを解析するためのTomcatインタープリターが必要になります。Apacheでは解析できません。この点を覚えておいてください。 c) Apache は HTTP サーバーに重点を置いていますが、Tomcat はサーブレット コンテナーに重点を置いています。JSP をサポートしていますが、静的 Web ページには適していません。言い換えると、Apache は Tomcat よりも静的ファイルの処理に優れています。Tomcat は動的言語 (jsp) の解析により実用的です。Apache を使用して静的ファイルを処理し、Tomcat を使用して動的ファイルを処理できます。 d) ApacheはWebサーバーであり、Tomcatはアプリケーション(Java)サーバーであり、Apacheの拡張機能と見なすことができますが、Apacheとは独立して実行できます。 実際の使用: Apache+Tomcat (Java サーバーの場合) クライアントが静的ページを要求した場合、その要求に応答する必要があるのは Apache サーバーだけです。 クライアントが動的ページを要求すると、Tomcat サーバーはその要求に応答します。JSP はサーバーによって解釈されるため、この統合により Tomcat のサービス オーバーヘッドを削減できます。 Tomcat は Apache の拡張機能であることがわかります。 2) NginxとApacheの比較 1 Nginxの利点 a) 軽量。Web サービスとしては、Apache よりもメモリとリソースをあまり消費しません。 b) 並行性防止、nginx はリクエストを非同期かつ非ブロッキングで処理し、複数の接続 (10,000 レベル) を 1 つのプロセスに対応させることができますが、Apache は同期ブロッキング タイプ、同期マルチプロセス モデルであり、1 つの接続が 1 つのプロセスに対応します。 c) 高度にモジュール化された設計で、モジュールの作成は比較的簡単です。 d) 負荷分散を提供する e) シンプルな構成 f) Nginxの静的処理パフォーマンスはApacheの3倍以上高い e) nginxは静的プロキシとリバースプロキシにのみ適しています リバースプロキシの理解: リバース プロキシとは、プロキシ サーバーを使用してインターネットからの接続要求を受け入れ、その要求を内部ネットワーク上のサーバーに転送して処理することを指します。リバース プロキシ自体は要求を処理しません。 サーバーから取得した結果は、インターネット上の接続を要求したクライアントに返されます。このとき、プロキシサーバーは外部からはWebサーバーのように見えますが、実際には何も処理を行わず、データを転送するだけです。 2 Apacheの利点 a) Apache の書き換えは nginx の書き換えよりも強力です。 b) 動的ページをサポートします。 c) 多くのモジュールをサポートしており、基本的にすべてのアプリケーションをカバーします。 d) 安定したパフォーマンス。 e) ApacheのPHPサポートは比較的シンプルです f) nginx と比較すると、Apache は動的リクエストを処理するのに適しています。 3) NginxとTomcatの比較 Nginxは一般的に静的処理に非常に優れていることはわかっていますが、jspなどの動的言語を解析することはできません。また、jspを解釈するにはTomcatが必要なので、一般的には動的処理にはTomcatを使用し、静的処理にはNginxを使用します。以前インターンシップをした会社のウェブサイトでは、Nginx + Tomcatの組み合わせを使用していました。Nginxはリバースプロキシとして機能します。静的処理をNginxで処理すると、動的リクエストはバックグラウンドでTomcatによって処理されます。これがNginxの動的分離メカニズムです。以前はよくわかりませんでしたが、なぜこのように対応しているのかがようやくわかりました。結局のところ、Nginxの静的処理能力はTomcatよりも強力なので、リクエストが最初にNginxを通過する必要があり、ここでApacheサーバーを使用する必要はありません。 4 まとめ a) 静的処理能力:
b) Nginx の利点: 負荷分散、リバース プロキシ、静的ファイルの処理。これが、Java サーバー Tomcat が最初に Nginx サーバーによって処理される必要がある理由です (リクエストを転送するだけで、他の操作は実行しません。リバース プロキシの説明は上記にあります)。Nginx は並行性が優れており、CPU とメモリの使用量が低くなります。 c) Apache の利点: Tomcat サーバーと比較すると、静的ファイルの処理と高速性の利点があります。 Apache は静的パーサーであり、静的 HTML や画像に適しています。もちろん、強力な読み取りおよび書き込み機能を備えています。書き換えが頻繁に行われる場合は、Apache の方が安定しており、動的な処理に利点があるため、より適しています。前提として、Tomcat は存在しない、つまり Java サーバーではないということです。 d) Tomcat: 動的リクエストを処理する動的解析コンテナであり、JSP と Servlet をコンパイルするためのコンテナです。Nginx には動的分離メカニズムがあります。静的リクエストは Nginx で直接処理され、動的リクエストはバックエンドに転送されて Tomcat で処理されます。 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。 以下もご興味があるかもしれません:
|
>>: MySQLトリガーはPHPプロジェクトで情報のバックアップ、復元、クリアに使用されます。
効果環境が必要ビュー要素UIドラッグアンドドロッププラグインSortable.js必要な構成プロパテ...
Firefox は、多くの拡張機能とプラグインを備えた、よく使用されるブラウザです。IE に比べて多...
[mysqlカーソルの使い方と機能]例:現在、テーブル A、B、C の 3 つのテーブルがあります。...
負荷リクエスト成功リクエストに失敗しました cmdをクリックし、ファイルパスでEnterキーを押しま...
vue2と比較して、vue3にはアプリの概念が追加され、vue3プロジェクトの作成も // メイン....
rpmインストールパッケージをダウンロードするMySQL公式サイト: https://dev.mys...
序文Nginxの組み込みモジュールは、同時リクエスト数の制限とリクエストのソースの制限をサポートして...
Web 上でフォントを使用することは、基本的なスキルであると同時に芸術でもあります。英語のフォントに...
スロークエリログ関連のパラメータMySQL スロー クエリ関連のパラメータの説明: slow_que...
ビジネスシナリオ: 訪問者の訪問状況を記録する必要があるが、繰り返し記録することはできない挿入する前...
目次Jenkinsのインストールインストールポート番号を変更します(デフォルトのポートは8080です...
目次vue - スワイパープラグインを使用してカルーセルを実装するカルーセルのバグを解決するには、w...
プロジェクト要件では、アップロードされたドキュメントの前処理が必要です。ユーザーが doc 形式でド...
エクスポートデフォルト({ URL、 メソッド = 'GET'、 データ = nu...
みなさんこんにちは、Qiufengです。最近、WeChatは新しい機能をリリースしました(WeCha...