0x01 前言

我所搭建的nginx服务器主要用于网站,而网站又是基于wordpress,所以其中所编译的模块可能不适用于你的需求。因为我也是处于学习阶段,如果有错误或不适当的地方,欢迎通过邮件或留言与我取得联系。我也欢迎读者们给我留下你所遇到的问题,我最喜欢解决问题了。

0x02 环境

  • 系统:Centos 7
  • nginx版本:1.9.10
  • nginx路径:/usr/local/nginx/
  • nginx模块:lujit2.1,ngx_lua_waf,ngx_pagespeed(如果你需要此模块,你服务器的网络要能连接上dl.google.com。此模块的安装请查看文章最后。)

–0x02.1 为什么是1.9.10的nginx?

因为我的网站服务器用到ngx_lua_waf这个模块,而ngx_lua_waf需要lujit2.1。如果用高于1.9.10版本的nginx编译会出现错误。所以只能退而使用1.9.10的nginx。

0x03 前期准备

这是我在编译安装nginx、apache2、php7和pagespeed的时候所需要的软件包,我在配置新的网站服务器时都会先安装上。

新安装或新VPS所要做的前期准备(centos7)。

yum install -y pcre-devel openssl-devel libxslt* perl-ExtUtils-Embed at gcc-c++ python subversion gperf make rpm-build git curl bzip2-devel libcurl-devel gd gd-devel t1lib t1lib-devel libmcrypt libmcrypt-devel libtidy libtidy-devel GeoIP-devel libatomic_ops-devel zlib-devel unzip libstdc++*

我发现,我编译的很多软件所需要的基础包都是*-devel,例如编译nginx的时候可能提示缺少pcre,可是你yum install pcre却发现pcre已经安装了!这时候可以试试安装pcre-devel。为什么编译要用devel版本的包?我也不知道,如果你知道,请告诉我。

0x04 准备nginx

下载nginx,如果你没安装wget,请通过yum install wget 安装。有些VPS的centos确实没有wget,请注意。

wget http://nginx.org/download/nginx-1.9.10.tar.gz

解压

tar zxvf nginx-1.9.10.tar.gz

新建nginx模块文件夹

mkdir -p /usr/local/nginx/module

–0x04.1准备ngx_devel_kit模块与lua-nginx-module模块

luajit需要ngx_devel_kit模块与lua-nginx-module模块。

下载ngx_devel_kit

wget https://github.com/simpl/ngx_devel_kit/archive/v0.2.19.tar.gz

解压ngx_devel_kit

tar zxvf v0.2.19.tar.gz

移动至nginx模块文件夹

mv ngx_devel_kit-0.2.19 /usr/local/nginx/module/ngx_devel_kit

下载lua-nginx-module

wget https://github.com/openresty/lua-nginx-module/archive/v0.10.0.tar.gz

解压lua-nginx-module

tar zxvf v0.10.0.tar.gz

移动lua-nginx-module

mv lua-nginx-module-0.10.0 /usr/local/nginx/module/lua-nginx-module

0x05 准备luajit

从github下载luajit,如果你没安装git,请通过yum install git安装。

git clone http://luajit.org/git/luajit-2.0.git

进入luajit文件夹

cd luajit-2.0

checkout 2.1版本

git checkout v2.1

安装

make && sudo make install

0x06 编译安装nginx

设置LUAJIT_LIB变量

export LUAJIT_LIB=/usr/local/lib

设置LUAJIT_INC变量

export LUAJIT_INC=/usr/local/include/luajit-2.1

进入nginx源代码文件夹

cd /root/codex/nginx/nginx-1.9.10

configure nginx

./configure --prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --lock-path=/var/lock/nginx.lock --with-http_gunzip_module --with-pcre --with-pcre-jit --with-http_perl_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-select_module --with-poll_module --with-file-aio --with-http_degradation_module --with-md5-asm --with-sha1-asm --with-libatomic --http-client-body-temp-path=/var/tmp/nginx/client_body --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --add-module=/usr/local/nginx/module/ngx_devel_kit --add-module=/usr/local/nginx/module/lua-nginx-module --with-ld-opt=-Wl,-rpath,$LUAJIT_LIB

编译

make

安装

make install

为nginx新建临时文件夹

mkdir -p /var/tmp/nginx/

0x07 测试与启动

测试

nginx -t

启动

nginx

平滑启动

nginx -s reload

停止

nginx -s quit

开机器启动

/usr/sbin/nginx

0x08 ngx_pagespeed的安装

在你继续前,请确认您能从dl.google.com下载文件。

新建存放pagespeed安装文件的文件夹

mkdir /root/codex/pagespeed

进入上一步新建的文件夹

cd /root/codex/pagespeed

赋值,在我写这篇文章的时候,pagespeed的版本是1.11.33.2。在你安装的时候请重新查询最新版本。

NPS_VERSION=1.11.33.2

从github下载文件

wget https://github.com/pagespeed/ngx_pagespeed/archive/release-${NPS_VERSION}-beta.zip -O release-${NPS_VERSION}-beta.zip

解压

unzip release-${NPS_VERSION}-beta.zip

进入文件夹

cd ngx_pagespeed-release-${NPS_VERSION}-beta/

下载psol

wget https://dl.google.com/dl/page-speed/psol/${NPS_VERSION}.tar.gz

解压

tar -xzvf ${NPS_VERSION}.tar.gz

返回上级目录

cd ..

移动ngx_pagespeed-release-${NPS_VERSION}-beta

mv ngx_pagespeed-release-${NPS_VERSION}-beta /usr/local/nginx/module/lua-nginx-module

–0x08.1 编译安装nginx

进入nginx源码文件夹

cd /root/codex/nginx/nginx-1.9.10

configure nginx

./configure --prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --lock-path=/var/lock/nginx.lock --with-http_gunzip_module --with-pcre --with-pcre-jit --with-http_perl_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-select_module --with-poll_module --with-file-aio --with-http_degradation_module --with-md5-asm --with-sha1-asm --with-libatomic --http-client-body-temp-path=/var/tmp/nginx/client_body --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --add-module=/usr/local/nginx/module/ngx_devel_kit --add-module=/usr/local/nginx/module/lua-nginx-module --with-ld-opt=-Wl,-rpath,$LUAJIT_LIB --add-module=/usr/local/nginx/module/lua-nginx-module/ngx_pagespeed-release-${NPS_VERSION}-beta

编译

make

安装

make install

 


 

#引用/相关链接

#nginx下载:
http://nginx.org/en/download.html

#lujit下载:
http://luajit.org/download.html

#ngx_lua_waf下载:
https://github.com/loveshell/ngx_lua_waf

#ngx_pagespeed下载:
https://developers.google.com/speed/pagespeed/module/build_ngx_pagespeed_from_source

#ngx_lua下载:
https://github.com/openresty/lua-nginx-module#installation

0x09 视频

如果视频不能正常显示,请点击这里转至QQ视频观看。