node.js と nginx のインストールメモと、apache と nginx から proxy させる方法メモ
node.js のインストール
git からとってきて ./configure してみる
cd /home/sikaku/src git clone git://github.com/ry/node.git cd node ./configureしかし、環境が古くて ./configure が通らない
../src/platform_linux.cc: In static member function `static void node::OS::SetProcessTitle(char*)': ../src/platform_linux.cc:29: error: `PR_SET_NAME' was not declared in this scope Waf: Leaving directory `/home/sikaku/src/node/build' Build failed: -> task failed (err #1): {task: cxx platform_linux.cc -> platform_linux_4.o} gmake: *** [all] Error 1以下を見ると、ほぼ debug 用のようなので、
http://stackoverflow.com/questions/778085/how-to-name-a-thread-in-linux
以下のようなパッチをあててしのぐことにする
[192.168.162.128] diff -ru src/platform_linux.cc src/platform_linux.cc.NEW --- src/platform_linux.cc 2010-10-22 11:09:49.000000000 +0900 +++ src/platform_linux.cc.NEW 2010-10-22 11:09:46.000000000 +0900 @@ -26,7 +26,7 @@ void OS::SetProcessTitle(char *title) { if (process_title) free(process_title); process_title = strdup(title); - prctl(PR_SET_NAME, process_title); +// prctl(PR_SET_NAME, process_title); }openssl が入っていなかったので、yum install しておく
sudo yum install openssl-develようやく make install まで成功
./configure make sudo make install以下のようなコードを書いて、実行してみる
[192.168.162.128] cat http.js var sys = require('sys'), http = require('http'), port = 8000; http.createServer(function(request, response) { response.writeHead(200, { 'Content-Type': 'text/html' }); response.end( request.url + ' - Hello World\n'); }).listen(port); sys.puts('Server listening on port ' + port);起動してみる
node http.js &アクセスしてみる
[192.168.162.128] curl "http://192.168.162.128:8000/test" /test - Hello World
apache から node.js に proxy させる
rewrite で P をフラグをつければいいだけ[192.168.162.128] cat /etc/httpd/conf.d/custom.conf RewriteEngine on RewriteRule /(.*) http://192.168.162.128:8000/$1 [P,L]再起動
sudo //etc/init.d/httpd restartapache にアクセスすると動いた。
[192.168.162.128] curl "http://192.168.162.128/test" /test - Hello World
nginx のインストール
まったく問題なく make install まで成功したcd /home/sikaku/src wget "http://www.nginx.org/download/nginx-0.8.53.tar.gz" tar zxvf nginx-0.8.53.tar.gz cd nginx-0.8.53 ./configure make sudo make installポートを変えて起動してみる
[192.168.162.128] diff -ru /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.NEW --- /usr/local/nginx/conf/nginx.conf 2010-10-22 13:38:25.000000000 +0900 +++ /usr/local/nginx/conf/nginx.conf.NEW 2010-10-22 13:38:33.000000000 +0900 @@ -33,7 +33,7 @@ #gzip on; server { - listen 80; + listen 8001; server_name localhost; #charset koi8-r;アクセスしてみる。
[192.168.162.128] curl "http://192.168.162.128:8001/" <html> <head> <title>Welcome to nginx!</title> </head> <body bgcolor="white" text="black"> <center><h1>Welcome to nginx!</h1></center> </body> </html>
nginx から node.js に proxy させる
以下のように、nginx.conf を書き換えて、nginx を再起動する[192.168.162.128] cat /usr/local/nginx/conf/nginx.conf | perl -nle 'print unless(/\s*#/ || /^\s*$/)' worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 8001; server_name localhost; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~ .*$ { proxy_pass http://192.168.162.128:8000; } } }問題なく動いた
[192.168.162.128] curl "http://192.168.162.128:8001/test" /test - Hello World
No comments:
Post a Comment