0

Ubuntu でZPanel (管理された LAMP スタックのインストール) を実行する専用の VPS があります。これにより、ドメインと PHP Web サイトをサーバーに簡単に追加し、それぞれを異なる ftp ログイン + mysql ユーザーにサンドボックス化できます。これは非常に素晴らしいことです。

今日、いくつかの NodeJS アプリをいじり始めました。私はこれらのアプリの速度に非常に感銘を受けたので、サーバーに追加しようと思いました。いつものように zpanel 内で新しいホスティング アカウントを作成し、SSH ターミナル内でアプリを起動しました。予想どおり、NodeJS アプリはスムーズに動作し、既存の PHP サイトと同じように、別の FTP ログインを介してコードを更新できます。すばらしい!

ここまではすべて問題ありませんでしたが、次はトリッキーな部分です。NodeJS と Apache を同じサーバー上で並行して実行することです...

問題は、NodeJS アプリがポート 8080 (ユーザー定義) で実行され、Apache がポート 80 (デフォルト) で実行されることです。

http://domain.com/:8080 <-- URL にポートが含まれていると、明らかにユーザーがかなり混乱します。

新しい nodejs アプリと PHP Web サイトをhttp://newdomain.com/からアクセスできるようにし、既存の PHP Web サイトをhttp://domain1.com/http://domain2.comからアクセスできるようにするための最適なソリューションは何でしょうか。/またはポートを使用する代わりにhttp://domain3.com/ ?

これらは私がこれまでに思いついたオプションです:

  1. Node アプリを実行するドメインごとに、Apache で「sites-available」ファイルを作成します (ZPanel はデフォルトではこのファイルを作成しません)。これが最も簡単なオプションだと思いますが、Apache が各リクエストで追加のプロセスを生成し、Node もその処理を行っているため、Apache から Node へのプロキシは速度とパフォーマンスのボトルネックであると読みました。

  2. すべての Apache Web サイトをポート 8080 で実行するように変更し、Node をポート 80 で実行するようにします。次に、アクセスするドメインに応じて、クライアントを正しい URL + ポートにリダイレクトするノード (ポート 80 - デフォルトの http ポート) でプロキシを実行します。(サーバーに接続されているすべてのドメインに対してノード アプリをグローバルに実行することは可能ですか?) これは最も時間のかかるオプションのように思えますが、パフォーマンスが大幅に向上するわけではなく、現在のホスティング アーキテクチャは引き続き良好に動作しますか?

  3. 私が考えていない他のオプションはありますか?

覚えておいてください: 私はすべての Web サイト (ノードまたは PHP) を異なるドメインで実行しています。私はまだこれほど洗練されたソリューションに出くわしたことがないので、非常に興味深い質問になると思いました。他の何人かがこのようなワークフローに興味を持っていると確信しているためです (特に git が統合されている場合)。

この質問でさらに説明が必要かどうか尋ねてください。必要に応じて編集します。

前もって感謝します。

4

2 に答える 2

0

Apacheを介してNodeサーバーを確実にプロキシします。Apache はおそらく Node よりも高速に静的ファイルを提供できるだけでなく、ボトルネックにもなりません。ただし、その逆は当てはまりません。(ただし、Nginxは間違いなく私の好みのオプションです。)

Apache Benchmark で試してみてください。

$ ab -c 1000 -n 5000 http://127.0.0.1/

私の個人番号は次のとおりです。

  • 静的 Nginx ファイルで 22,281 リクエスト/秒
  • ノードの 5,514 リクエスト/秒
  • Nginx 経由のノードで 4,729 リクエスト/秒

もっと高いものを探しているなら、Haskell の Warp は約 12,000/秒になります。:)

于 2013-11-21T00:37:48.790 に答える