nginx1.9.9にngx_mrubyを組み込む
以下の環境に組み込みました。
そもそも ngx_mruby
とは?
ngx_mruby is A Fast and Memory-Efficient TCP Load Balancing and Web Server Extension Mechanism Using Scripting Language mruby for nginx.
とりあえずやりたいのは後者、nginxの制御にmrubyを使うところ。
手順
(1) ruby2.2.3を導入 - ruby-buildをつかいます。
cd /usr/local/src git clone https://github.com/sstephenson/ruby-build.git cd ruby-build # 途中怒られるから入れとく yum install -y readline-devel ./install.sh ruby-build 2.2.3 /usr/local/ruby2.2 export PATH=/usr/local/ruby2.2/bin:$PATH [root@v7885 nginx-1.9.9]# ruby -v ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
※ ちなみに、最初面倒くさくて yum install ruby
で 1.8.xを入れたのですが、腐ってたのでやめました
(2) ngx_mruby導入 ref: Install · matsumoto-r/ngx_mruby Wiki · GitHub
$ cd /usr/local/src $ git clone git://github.com/matsumoto-r/ngx_mruby.git $ cd ngx_mruby $ ./configure --with-ngx-src-root=/usr/local/src/nginx-1.9.9 $ make build_mruby $ make generate_gems_config $ cd /usr/local/src/nginx-1.9.9 $ ./configure --user=nginx --group=nginx --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --with-http_ssl_module --with-mail --with-http_stub_status_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --without-http_userid_module --add-module=/usr/local/src/ngx_mruby --add-module=/usr/local/src/ngx_mruby/dependence/ngx_devel_kit $ make $ make install
(3) nginx.confにmrubyのコードを書いてみる
# Locationディレクティブ内に適当に mruby_content_handler_code ' Nginx::rputs "Hello world!" ';
(4) nginx reload & 確認
nginx -s reload
https://hogefuga.inf/へアクセスし、
と表示されれば、よさそう!