socket.io を動かすために、nginx_tcp_proxy_moduleを追加してnginxをビルドし直す。あとそれをubuntuのデーモンスクリプトで起動する設定
nginxをプロキシに使ってnode.jsを動かしている。
socket.io がつながらなくて困っていた。
nginx_tcp_proxy_module というのを作ってくれた素敵な人がいて、
それを使うといける。かっこよすぎ。
ubuntuのapt-getから入るnginxは、0.7.65となっているけど、
最新安定板は1.0越えてるーとおもった。
nginx -V をすると、apt-getでコンパイルしたときのconfigureオプションが見れるので、自分でビルドし直すときに参考にできる。
/usr/sbin/nginx -V nginx version: nginx/0.7.65 TLS SNI support enabled configure arguments: --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/body --http-proxy-temp-path=/var/lib/nginx/proxy --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --with-debug --with-http_stub_status_module --with-http_flv_module --with-http_ssl_module --with-http_dav_module --with-http_gzip_static_module --with-http_realip_module --with-mail --with-mail_ssl_module --with-ipv6 --add-module=/build/buildd/nginx-0.7.65/modules/nginx-upstream-fair
nginxのソースを落として、nginx_tcp_proxy_moduleのパッチを当ててビルドする。
wget http://nginx.org/download/nginx-1.0.5.tar.gz git clone https://github.com/yaoweibin/nginx_tcp_proxy_module.git tar zxvf nginx-1.0.5.tar.gz cd nginx-1.0.5 patch -p1 < ../nginx_tcp_proxy_module/tcp.patch ./configure \ --prefix=/usr/local \ --sbin-path=/usr/local/sbin/nginx \ --conf-path=/usr/local/etc/nginx/nginx.conf \ --add-module=../nginx_tcp_proxy_module/ make sudo make install
拡張モジュールなにも入れなかった。デフォルトでもgzipは使えるみたい?
実行userとか、pidのパスとかログのパスとかは、configureで指定しなくても設定ファイルで指定できるっぽい。
nginx.conf
/etc/nginx のやつを見ながら書き換え
user www-data; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include 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 logs/access.log main; access_log /var/log/nginx/access.log; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; gzip on; gzip_disable "MSIE [1-6]\.(?!.*SV1)"; include conf.d/*.conf; include sites-enabled/*; }
/etc/nginx の設定を持ってくる。
cp -r /etc/nginx/conf.d /usr/local/etc/nginx/ cp -r /etc/nginx/sites-availables /usr/local/etc/nginx/ cp -r /etc/nginx/sites-enabled /usr/local/etc/nginx/
/etc/init.d/nginx を使って、start/restart してほしかった。
ソースを見たら、/etc/default/nginx で拡張できるようになっていた。
/etc/default/nginx を新しく作る
DAEMON=/usr/local/sbin/nginx DAEMON_OPTS='-c /usr/local/etc/nginx/nginx.conf'
/etc/init.d/nginx start で、自分でビルドした方のnginxが起動した。えへへ