0

ここ数年、私はサーバーに Apache httpd サーバーを使用していました。

私が理解しているように-Nginxを使用する最大の利点は、ApacheがHTTPリクエストごとに異なるスレッドを開くことです.サーバーのメモリとハードウェア。

ここまでは順調ですね。

大量の HTTP トラフィックが予想される新しい Web サービスを構築しているので、Nginx を使用することにしました。

優れた Java プログラマーとして、私は PHP よりも Java が好きですが、私の場合は Java を使用する際に概念上の問題があります。

すべての投稿で、Java を使用する方法は、アプリケーションを Nginx + Tomcat (または他の JavaServer) + Java でラップすることであることがわかりました。つまり、正しく理解できれば、Tomcat がJava Web サービスを使用するために、リクエストごとに新しいスレッドを開きます。

質問:

  1. 私はそれを正しく理解しましたか?
  2. PHP で Nginx を使用すると、リクエストごとに新しいプロセスが開かれますが、新しいスレッドは開かれませんか?
4

2 に答える 2

1
  1. あなたはそれを正しく理解しています。この場合、nginx はリバース プロキシとして機能し、Tomcat はアプリケーション サーバーとして機能します。ほとんどの場合、ボトルネックはアプリケーション レベル、つまりアプリケーション自体のアプリケーション サーバーに現れました。
  2. PHP はスレッドではなくプロセスを使用してリクエストを実行します。各リクエストには処理するための php-cgi プロセスが必要です。このリクエストが終了したときにのみ、プロセスは他のリクエストを処理するために解放されます。php-fpm の場合、通常、プールなどの多くの子プロセスが事前にフォークされます。実際の QPS とマシンの統計に従って、このプールのサイズを計算する必要があります。
于 2013-07-19T08:31:55.890 に答える