centos 使用yum安裝nginx後如何添加模塊

nginx安裝Nginx_concat_module模塊和lua-nginx-module模塊html

1、準備安裝包:nginx

Nginx_concat_module模塊:git

# svn checkout http://code.taobao.org/svn/nginx_concat_module/trunk/ $NGINX_CONCAT_MODULEgithub

# mv trunk nginx_concat_modulevim

lua-nginx-module模塊:dom

wget wget http://luajit.org/download/LuaJIT-2.1.0-beta2.tar.gzide

wgetsvn

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

wget https://github.com/openresty/lua-nginx-module/archive/v0.10.2.tar.gzlua

同版本nginx源碼編譯包:(官網下載)

#nginx -v  #查看版本

具體軟件包以下:

#ls

 LuaJIT-2.1.0-beta2.tar.gz    v0.2.19.tar.gz   v0.10.2.tar.gz

  nginx-1.10.3.tar.gz     nginx_concat_module  

2、編譯部署

查看目前yum安裝nginx的模塊狀況

# nginx -V

nginx version: nginx/1.10.3

built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)

built with OpenSSL 1.0.1e-fips 11 Feb 2013

TLS SNI support enabled

configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --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-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-file-aio --with-threads --with-ipv6 --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_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-mail --with-mail_ssl_module --with-stream --with-stream_ssl_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'

一、Nginx_concat_module模塊

編譯過程以下:

# tar -zxf /root/nginx-1.10.3.tar.gz -C /usr/local/

# cp -r /root/nginx_concat_module /usr/local/

#cd /usr/local/nginx-1.10.3

# ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --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-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-file-aio --with-threads --with-ipv6 --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_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-mail --with-mail_ssl_module --with-stream --with-stream_ssl_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' --add-module=/usr/local/nginx_concat_module

#make

#make install

檢查是否編譯成功:

# pwd

/usr/local/nginx-1.10.3

# ./objs/nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

# ./objs/nginx -V

nginx version: nginx/1.10.3

built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)

built with OpenSSL 1.0.1e-fips 11 Feb 2013

TLS SNI support enabled

configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --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-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-file-aio --with-threads --with-ipv6 --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_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-mail --with-mail_ssl_module --with-stream --with-stream_ssl_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' --add-module=/usr/local/nginx_concat_module

使用新nginx

備份 

# cp /usr/sbin/nginx /usr/sbin/nginx-bak

替換 

# cp ./objs/nginx /usr/sbin/nginx

二、lua-nginx-module模塊

解壓包狀況:

# ls

 LuaJIT-2.1.0-beta2.tar.gz  nginx-1.10.3.tar.gz   v0.10.2.tar.gz  v0.2.19.tar.gz

# ls /usr/local/

bin  games    lib    libexec             lua-nginx-module-0.10.2  nginx_concat_module   sbin   src

etc  include  lib64  LuaJIT-2.1.0-beta2  nginx-1.10.3             ngx_devel_kit-0.2.19  share

編譯過程:

1)、下載安裝LuaJIT 2.1(2.0或者2.1都是支持的,官方推薦2.1):http://luajit.org/download.html

# wget http://luajit.org/download/LuaJIT-2.1.0-beta2.tar.gz

# tar -zxf LuaJIT-2.1.0-beta2.tar.gz -C /usr/local/

#cd /usr/local/LuaJIT-2.1.0-beta2/

#make PREFIX=/usr/local/luajit

#make install PREFIX=/usr/local/luajit

#ln -sf luajit-2.1.0-beta2 /usr/local/luajit/bin/luajit

配置環境變量

# vim /etc/profile.d/ngxlua.sh

# chmod +x /etc/profile.d/ngxlua.sh

# source /etc/profile.d/ngxlua.sh

注意:必定要配置環境變量,否則編譯下面兩個模塊會提示以下錯誤:

./configure: error: ngx_http_lua_module requires the Lua library.

2)、下載ngx_devel_kit(NDK)模塊 :https://github.com/simpl/ngx_devel_kit/tags,不須要安裝

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

# tar -zxf v0.2.19.tar.gz -C /usr/local/

3)、下載最新的lua-nginx-module 模塊 :https://github.com/openresty/lua-nginx-module/tags,不須要安裝

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

# tar -zxf v0.10.2.tar.gz -C /usr/local/

4)、nginx -V查看已經編譯的配置

nginx -V

nginx version: nginx/1.10.3

built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)

built with OpenSSL 1.0.1e-fips 11 Feb 2013

TLS SNI support enabled

configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --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-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-file-aio --with-threads --with-ipv6 --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_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-mail --with-mail_ssl_module --with-stream --with-stream_ssl_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' --add-module=/usr/local/nginx_concat_module

5)、本次編譯狀況以下:

#./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --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-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-file-aio --with-threads --with-ipv6 --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_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-mail --with-mail_ssl_module --with-stream --with-stream_ssl_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' --add-module=/usr/local/nginx_concat_module --add-module=/usr/local/ngx_devel_kit-0.2.19 --add-module=/usr/local/lua-nginx-module-0.10.2

# make -j2

# make install

6)、查看是否編譯成功

 

# ./objs/nginx -t

./objs/nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory

解決以下:

# echo "/usr/local/luajit/lib" > /etc/ld.so.conf.d/usr_local_lib.conf

# ldconfig

在/etc/nginx/nginx.conf中加入以下代碼:

 

location /hello_lua {

      default_type 'text/plain';

      content_by_lua 'ngx.say("hello, lua")';

}

重啓nginx:

# systemctl restart nginx

訪問10.211.55.3/hello_lua會出現」hello, lua」表示安裝成功

hello, lua

七、使用新nginx

備份

# cp /usr/sbin/nginx /usr/sbin/nginx-bak

替換

# cp ./objs/nginx /usr/sbin/nginx

# systemctl restart nginx

相關文章
相關標籤/搜索