从源代码安装 Nginx (安装 ngx_mruby)
从源代码安装Nginx。
请参考这个网址。
以下是一种汉语的表达方式:
http://keikenchi.com/nginx-ngx-cache-purge → keikenchi.com 网站上有关于 Nginx ngx_cache_purge 的内容
http://tapira.hatenablog.com/entry/2015/12/13/124505 → tapira.hatenablog.com 网站提供了关于 Nginx ngx_cache_purge 的信息
https://github.com/matsumoto-r/ngx_mruby/wiki/Install → 在 matsumoto-r 的 Github 仓库上,有关于 ngx_mruby 安装的说明
引入时
由于一般公开服务遭受到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」,则表示成功。
暂且就这样。