nginx
ngx_mruby
CentOS6

Nginx をソースからインストールする(ngx_mrubyをインストール)

More than 1 year has passed since last update.


Nginx をソースからインストールする


参考URL

http://keikenchi.com/nginx-ngx-cache-purge

http://tapira.hatenablog.com/entry/2015/12/13/124505

https://github.com/matsumoto-r/ngx_mruby/wiki/Install


導入するにあたって

一般公開しているサービスがDdos攻撃にあうようになったため

自動検知&対応できるようにモジュールを追加したくなったため

yumでインストールしたnginxではなく

ソースからインストールしたものに変更しようと考え今に至る

ngx_mrubyをインストール


現状のnginx環境をバックアップ

sudo mkdir ~/backup

cd ~/backup
sudo cp -r /var/www/html ./
sudo cp -r /etc/nginx ./
sudo cp /etc/init.d/nginx ./nginx.org


作業用ディレクトリを作成

sudo mkdir /usr/local/src/nginx

cd /usr/local/src/nginx


現状のnginxの環境を確認&コピー

nginx -V


PCREライブラリが無いとかエラーが出たのでインストールする

sudo yum install pcre pcre-devel gcc bison -y


とりあえず現行の最新版である 1.11.0 の場合(オプションは適当)

sudo curl -O http://nginx.org/download/nginx-1.11.0.tar.gz

sudo tar zxvf nginx-1.11.0.tar.gz

sudo git clone git://github.com/matsumoto-r/ngx_mruby.git
cd ngx_mruby
sudo git submodule init
sudo git submodule update
sudo ./configure --with-ngx-src-root=/usr/local/src/nginx/nginx-1.11.0
sudo make build_mruby
sudo make generate_gems_config

cd ../nginx-1.11.0

sudo ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx-1.11.0 --sbin-path=/usr/local/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/nginx/ngx_mruby --add-module=/usr/local/src/nginx/ngx_mruby/dependence/ngx_devel_kit
sudo make
sudo make install
sudo ln -s /usr/local/nginx-1.11.0 /usr/local/nginx


nginx のテスト

sudo /usr/local/sbin/nginx -t


既存のnginxを止めてapacheを起動

sudo /etc/init.d/nginx stop

sudo /etc/init.d/httpd start


nginxの設定ファイルを編集

sudo vi /etc/init.d/nginx


下記のように変更

#nginx=${NGINX-/usr/sbin/nginx}

nginx=${NGINX-/usr/local/sbin/nginx}


sysconfigを編集

sudo vi /etc/sysconfig/nginx


下記の一行をファイルの最後に追加

NGINX=/usr/local/sbin/nginx


起動スクリプト等の確認

sudo chkconfig --add nginx

sudo chkconfig nginx on
sudo chkconfig --list nginx
sudo /usr/local/sbin/nginx -t


apacheを止めてnginxを起動

sudo /etc/init.d/httpd stop

sudo /etc/init.d/nginx start
/usr/local/sbin/nginx -V


テスト用のファイルの記述

cd /etc/nginx/conf.d

sudo vim default.conf

location /hello {

mruby_content_handler_code '
Server = Nginx
Server.echo "WORLD"
';

sudo service nginx reload

http://localhost/hello へアクセスしてみる

「WORLD」が表示されれば成功

とりあえず、以上