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的时候所需要的软件包,我在配置新的网站服务器时都会先安装上。
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 视频