Help us understand the problem. What is going on with this article?

CentOSにNodeJS+nginxの環境を構築する

More than 5 years have passed since last update.

CentOS6.3にnode+nginxの環境を用意しようと思ったのでその見聞録です。

  1. まずはnodeのインストール
$ sudo yum install nodejs

これだけでおkです。
 
2. 次にnpmのインストール

$ sudo curl https://npmjs.org/install.sh | sh

 
3. ここでちゃんとインストールされているか確認する

$ type node
node is /usr/bin/node

$ type npm
npm is /usr/bin/npm

これでちゃんと入っている事が確認できますね。
 
4. nginxのインストールためのリポジトリの準備

$ sudo /etc/yum.repos.d/nginx.conf

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1

 
5. インストール

$ sudo yum install nginx

 
6. nginxのconfigファイルのへの変更

$ sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/hoge.polidog.jp.conf
$ sudo vim /etc/nginx/conf.d/hoge.polidog.jp.conf

upstream backend_node {
    ip_hash;
    server 127.0.0.1:3000;
}

server {
    listen       80;
    server_name  hoge.polidog.jp;
    root /path/to/hoge  

    #charset koi8-r;
    charset utf-8;
    access_log /var/log/nginx/access_hoge.poidog.jp.log main;
    error_log /var/log/nginx/errror_hoge.polidog.jp.log;

    location / {
        if (-f $request_filename) {
            break;
        }


        if ( !-f $request_filename ) {
            proxy_pass http://backend_node;
            break;
        }
    }

}

これでやっとnginxの設定ができました。
 
7. nginx再起動

$ sudo /etc/init.d/nginx restart

ただこれだと問題がありまして。。。リダイレクトがうまく行かないと。。。
proxy_set_headerとかproxy_redirectをoffにすれば解決するので、ということで、以下のようにnginxの設定を書き換えます。

$ sudo vim /etc/nginx/nginx.conf

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  /var/log/nginx/access.log  main;

    sendfile        on;

    keepalive_timeout  65;

    gzip    on;

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_redirect off;

    include /etc/nginx/conf.d/*.conf;


}

これでリダイレクト自体も問題ないかと思います。
さてさて、次はいよいよ、nodejsのデーモン化していこうと思います。
 
8. nodejsのデーモン化
nodejsのデーモン化するツールですが、node-demonとかforeverとかあるいっぽいのでとりあえずforeverを入れましょう

$ sudo npm install -g forever
$ cd /path/to/hoge
$ sudo forever start app.js

 
9. nodeが無事起動出来たらnginxを再起動

$ sudo /etc/init.d/nginx restart

これで無事nginx経由でnodejsが実行できますよー

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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした