1

CentOS と Apache サーバーを備えた VPS サーバーがあります。

しかし、node.js アプリケーションも実行したいと考えています。私は Sails.js を使用しています この Sails アプリケーションは、指定されたホストのポート 80 をリッスンしようとしています。

ここにエラーがあります(セイルリフトの実行後):

debug: Starting server in /var/www/user/data/nodeprojects/projectname...  
info  - socket.io started
debug: Restricting access to host: projectname.com  
warn  - error raised: Error: listen EADDRINUSE
warn:   
warn: Server doesn't seem to be starting.  
warn: Perhaps something else is already running on port 80 with hostname projectname.com?

何が問題ですか?1 つのポート (80) を持つ 1 つのサーバーで apache サーバーと nodejs サーバーの両方を実行できますか?

4

2 に答える 2

3

No, you cannot.

サーバー プロセスが要求に応答するために TCP ポートを開くと、そのポートが排他的に使用されます。そのため、SailsJS と Apache サーバーの両方を同じポートで実行することはできません。

そうは言っても、特定のリクエストを別のポートで実行されている他のサーバーにプロキシするなど、Apache を使用すると多くの興味深いことができます。

典型的なセットアップでは、Apache をポート 80 に、SailsJS をポート 8000 (またはその他の使用可能なポート) に配置し、Apache が特定の URL への要求を SailsJS に転送し、SailsJS からの応答をブラウザーに転送します。

このアプローチの実装例については、Node.js にプロキシする Mountain Lion で Apache を構成するか、http: //thatextramile.be/blog/2012/01/hosting-a-node-js-site-through-apache を参照してください。

于 2013-07-07T19:26:07.533 に答える