同じサーバー上のApacheとNode.jsについて質問する

同じサーバー上のApacheとNode.jsについて質問する

私は Node を使いたいのですが、それは Swift であり、クライアント側で使用しているのと同じ言語を使用し、定義上非ブロッキングだからです。しかし、ファイル処理 (ファイルの保存、編集、名前の変更、ダウンロード、アップロードなど) 用のプログラムを書くために雇った人は、Apache を使いたいと言っています。そのため、次のことを行う必要があります。

  1. Node を使用するよう説得する (彼はこの点ではほとんど譲歩していない)

  2. ノードまたは

  3. Apache と Node を同じサーバーにインストールする必要があります。

最も好ましい状況はどれですか? また、それをどのように実装すればよいですか?

ベストアンサー1

素晴らしい質問ですね!

Apache で実行される PHP で実装された Web サイトや無料の Web アプリは数多くあり、多くの人が使用しているため、非常に簡単にマッシュアップできます。また、静的コンテンツを提供する方法としては、考える必要もありません。Node は、V8 のパワーと、組み込みの依存関係のないフラット スタックを備えた、高速で強力、かつエレガントな魅力的なツールです。

私は Apache の使いやすさと柔軟性、そして Node.JS の素早さと優雅さも求めています。なぜ両方を手に入れられないのでしょうか?

幸いなことにプロキシパスApache のディレクティブを使用すると、httpd.conf特定の URL のすべてのリクエストを Node.JS アプリケーションにパイプするのはそれほど難しくありません。

ProxyPass /node http://localhost:8000

また、次の行がコメント アウトされていないことを確認して、適切なプロキシとサブモジュールを取得して http リクエストを再ルーティングしてください。

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

次に、ポート 8000 で Node アプリを実行します。

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello Apache!\n');
}).listen(8000, '127.0.0.1');

次に、URL のパスを使用してすべての Node.JS ロジックにアクセスし/node/、Web サイトの残りの部分を Apache に任せて、既存の PHP ページをホストします。

ここに画像の説明を入力してください

残っているのは、ホスティング会社にこの構成で実行させてもらうよう説得することだけです。

おすすめ記事