多くの企業にとって、Nginx + Apache + PHPは非常に典型的で普及しているバンドルであり、Timewebも例外ではありません。ただし、それがどのように実装されているかを正確に把握することは、興味深く、やりがいのあることです。
もちろん、このようなバンドルの使用は、クライアントのニーズによって決まります。 NginxとApacheはどちらも特別な役割を果たし、それぞれが特定の問題を解決します。Apache
の主な設定はApache自体の構成ファイルで行われ、クライアントサイトの設定は.htaccessファイルを介して行われます。..。 .htaccessは、クライアントがWebサーバーのルールと動作を個別に構成できる構成ファイルです。この設定は彼のサイトに固有のものになります。たとえば、Apache機能のおかげで、ユーザーは同じPHPバージョン内の操作モードをmod_phpからmod_cgiに変更できます。リダイレクト、SEO最適化、便利なURL、PHPのいくつかの制限をカスタマイズできます。
Nginxは、トラフィックをApacheにリダイレクトするためのプロキシサーバーとして、および静的コンテンツを提供するためのWebサーバーとして使用されます。また、Nginxについては、アクセス権を分離するなど、ユーザーのデータを保護できるセキュリティモジュールを開発しました。
一部のユーザーがクライアントのサイトにアクセスするとします。まず、ユーザーは静的コンテンツを提供するNginxにアクセスします。それは即座に起こります。次に、PHPのロードに関しては、NginxはリクエストをApacheにリダイレクトします。そして、ApacheはPHPとともに、すでに動的コンテンツを生成しています。
TimewebのApache&Nginxバンドルの機能
私たちの仮想ホスティングは、ApacheとNginxの2つの主要なスキームである共有と専用を実装しています。
共有
スキームこのスキームは、ほとんどのユーザーに使用されます。シンプルさとリソース集約度が特徴です。共有スキームは使用するリソースが少ないため、料金も安くなります。このスキームによれば、1つのNginxがサーバー上で実行されており、すべてのユーザー要求と複数のApacheインスタンスを処理できます。
共有スキームは長い間改善されてきました。徐々に欠点を修正しました。便利なことに、ソースコードを変更せずに実行できます。
共有
スキーマ専用スキーマ
専用はより多くのリソースを必要とするため、その料金は顧客にとってより高価です。専用スキームでは、クライアントごとに個別のApacheが発生します。ここのリソースはクライアント用に予約されており、排他的に割り当てられています。仕組み:サーバーにはいくつかのPHPバージョンがあります。バージョン5.3、5.4、5.6、7.1、7.2、7.3、7.4をサポートしています。したがって、PHPのバージョンごとに、独自のApacheが開始されます。
専用スキーム
安全地帯。Nginxでのゾーンの構成
以前は、Nginxに多くの共有メモリゾーン(ゾーン)を使用していました。ドメインごとに1つのサーバーブロックです。サイトごとに個別のゾーンが作成されるため、この構成には多くのリソースが必要です。ただし、Nginx設定では、ほとんどのサイトが同じタイプであるため、マッピングを設定できるngx_http_map_moduleのmapディレクティブを使用することで、1つのゾーンに配置できます。たとえば、サイトへのパス、PHPバージョン、ユーザーなどの変数を指定する必要があるゾーンテンプレートがあります。したがって、Nginx構成の再読み取り、つまりリロードが高速化されました。
この構成により、RAMリソースが大幅に節約され、Nginxの動作が高速化されました。
リロードは機能しません!
共有スキームでは、サイト設定を変更するときにApacheを再起動(リロード)する必要がなくなりました。以前は、1つのクライアントがドメインを追加したりPHPバージョンを変更したりする場合、必須のApacheリロードが必要でした。これにより、応答が遅れ、サイトのパフォーマンスに悪影響がありました。
動的構成を作成することで、リロードを排除しました。mpm-itk(Apacheモジュール)のおかげで、各プロセスは別々のユーザーから実行され、セキュリティが向上します。このメソッドを使用すると、ユーザーとそのdocument_rootに関するデータをNginxからApache2に転送できます。したがって、Apacheにはサイト構成が含まれず、動的に受信され、リロードは不要になります。
共有スキーマ構成
Dockerはどうですか?
多くの企業がコンテナベースのシステムに移行しています。 Timewebは現在、そのような移行の可能性を検討しています。もちろん、すべてのソリューションには長所と短所があります。
否定できない利点に加えて、コンテナシステムはユーザーに提供するリソースが少なくなります。 Timewebでは、説明されているホスティング操作スキームのおかげで、ユーザーにはメモリ制限がありません。コンテナよりも多くのリソースを受け取ります。さらに、ユーザーはより多くのApacheモジュールをロードできます。
Timewebは約500,000のWebサイトに電力を供給します。私たちは大きな責任を負い、複雑なアーキテクチャに即座に不必要な変更を加えることはありません。 ApacheとNginxのバンドルは信頼性が高く、実績があります。次に、独自の構成を通じて最大のパフォーマンスを達成するよう努めます。
多数のサイトで高品質で高速な作業を行うには、ApacheとNginxのテンプレートと動的構成を使用する必要があります。これにより、多数の同様のサーバーを簡単かつ迅速に管理できます。