10
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Apache2 と node を連携する。

AWSLinux, CentOS が対象。(Ubuntuは設定の方法が違います。)

設定ファイルを作成する。

/etc/httpd/conf.d/node.conf
Alias /node /var/www/node

<Location /node/>
  ProxyPass http://localhost:3000/
  ProxyPassReverse http://localhost:3000/
  Order deny,allow
  Deny from all
  Allow from all
</Location>

node を起動する。

$ node app.js

作成したらnodeサーバを再起動。

$ service httpd restart

これで サイトのURL/node/ で nodeサーバーが呼ばれるようになる。


でも、実際はあまりよろしくない?

Apache と node 使ったサービスを一つのサーバーに無理やり押し込めるにはありだけど、
イベントループ方式の node と、スレッド方式の Apache ではあまり相性が良くない。
上の方式だと、来たら直接 node のビルトインサーバーに転送するだけなので、まあ良いけど、
できれば Docker などを使って、単体で起動しておいた方がいいかも。

nodeを永続的に実行する forever。

上記の方法で node を起動した場合、nodeサーバはフォアグラウンドで実行される。
nohup を使うと、正しく動かなかったりするので、forever を使ったりする。
foreverのインストールは、一旦ルートになって、以下のコマンドを実行する。

$ npm install -g forever

次にデーモンとしてスクリプトをバックグラウンドで実行する。

$ forever start app.js

foreverの詳しい使い方はヘルプを参照。

$ forever --help
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
10
Help us understand the problem. What are the problem?