0

Linux仮想マシンのApache上で実行されるphpアプリケーション[主にREST]があります。このアプリケーションは多くのデータ クエリを実行するため、パフォーマンスの問題が発生し始めています。

これに対処する 1 つの方法は、NodeJs Async Patterns を使用することです。また、websocket を実装する予定です。しかし、問題はphpのコードサイズが非常に大きいことです。Node.js で書き直すには数か月かかります。

書き直しを完了するための妥協点はありますか。Node でブラウザーとの対話を処理し、php cli でデータベースとの対話を処理できる場所。ノードはApache環境に近似してphp cliを呼び出すことができますか?

私は、REST API、HTTP 基本認証と PHP セッションの両方、GET 要求の追加フィルター用の $_GET と変数に Slim PHP フレームワークを使用しています。私はスリムの内部の仕組みについてあまり知りません。しかし、HTTPリクエストとレスポンスのApache-PHP実装に依存していると思います。

メッセージ本文 [post, put] を php cli に送信する方法。これは 99% のケースで JSON です (ファイルのアップロードもありますが、現時点では無視できます)。私はphp cliでjson出力をSTDOUTに入れ、そこから解析することができます。

本当の問題は、コードベースの多くを変更せずに php Apache SAPI への依存を削除する方法と、それを Node.js に統合する方法です。この場合に役立つツール lib はありますか。

もう 1 つの副次的な質問ですが、NGinx はここで何らかの形で私を助けることができますか?

**注 - ノードに関する私の知識は、いくつかの楽しいスクリプトとカスタム linting、テンプレートのコンパイル、ブラウザ側コードのスクリプトのテストに限られています。

4

1 に答える 1

2

まず、nginx を Apache の前に置くことができます。これにより、どちらか一方に選択的にルーティングすることで、アクションをノードにゆっくりと移行できます。

または、ノードを前に置き、node-http-proxyを Express (たとえば) で使用して、選択的に Apache にプロキシすることもできます。私は自分で試したことはありませんが、うまくいくはずです。

ノードからphp関数を呼び出すためにdnodeを使用することもできます。zeromqもオプションです。

于 2013-10-15T19:16:35.587 に答える