Nginx 컴 파일 설치 lua - nginx - module

8049 단어
lua-nginx-module 모듈 은 루 아의 강력 한 기능 을 NGINX 서버 에 삽입 할 수 있다.
Nginx 원본 다운로드
Nginx 가 설치 되 어 있 으 면 현재 설치 버 전의 컴 파일 파 라미 터 를 확인 해 야 합 니 다.
$ /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.12.2
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) 
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-pcre

그 중에서 configure arguments 이 매개 변 수 는 매우 중요 하 다. 우리 가 뒤에서 Lua 모듈 을 설치 할 때 이 를 바탕 으로 새로운 매개 변 수 를 추가 해 야 한다.
Nginx 가 설치 되 어 있 지 않 으 면 위 에서 무시 할 수 있 습 니 다.
Nginx 다운로드 페이지:http://nginx.org/en/download.html
여기 서 우 리 는 nginx/1.12.2 을 예 로 들 었 다.원본 코드 가 져 오기:
$ cd /opt/
$ wget http://nginx.org/download/nginx-1.12.2.tar.gz
$ tar -zxvf nginx-1.12.2.tar.gz

lua - nginx - module 설치
LuaJIT 를 먼저 설치 하고 ngx 에 의존 해 야 합 니 다.devel_kit。
LuaJIT 설치
LuaJIT 홈 페이지:http://luajit.org/ 。
우 리 는 최신 안정 판 을 설치 합 니 다 (2018 - 12 - 23 까지).
$ wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz
$ tar -zxvf  LuaJIT-2.0.5.tar.gz
$ cd LuaJIT-2.0.5
$ make install PREFIX=/usr/local/LuaJIT

마지막 줄 출력 을 설치 하면 알림:
==== Successfully installed LuaJIT 2.0.5 to /usr/local/LuaJIT ====
/etc/profile 파일 끝 에 환경 변 수 를 추가 합 니 다.
export LUAJIT_LIB=/usr/local/LuaJIT/lib
export LUAJIT_INC=/usr/local/LuaJIT/include/luajit-2.0

그리고:
$ source /etc/profile

설치 ngxdevel_kit
항목 주소:https://github.com/simplresty/ngx_devel_kit
다운로드 및 압축 해제, 설치 필요 없 음:
$ cd /opt/
$ wget https://github.com/simplresty/ngx_devel_kit/archive/v0.3.0.tar.gz
$ tar zxvf v0.3.0.tar.gz

$ ls | grep ngx_devel_kit
ngx_devel_kit-0.3.0

lua - nginx - module 설치
항목 주소:https://github.com/openresty/lua-nginx-module
다운로드 및 압축 해제, 설치 필요 없 음:
$ cd /opt/
$ wget https://github.com/openresty/lua-nginx-module/archive/v0.10.13.tar.gz
$ tar zxvf v0.10.13.tar.gz

$ ls | grep lua-nginx
lua-nginx-module-0.10.13

Nginx 컴 파일
pcre 의존 라 이브 러 리 설치 필요
$ yum install readline-devel pcre-devel openssl-devel 

Nginx 컴 파일 매개 변수 설정:
$ cd /opt/nginx-1.12.2/
$ ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-pcre --with-ld-opt=-Wl,-rpath,/usr/local/LuaJIT/lib --add-module=/opt/ngx_devel_kit-0.3.0 --add-module=/opt/lua-nginx-module-0.10.13

Nginx 가 설치 되 어 있 기 때문에 이 인 자 는 Nginx - V 의 출력 에서 가 져 왔 고 새로운 인 자 를 추가 하 였 습 니 다.
--with-ld-opt=-Wl,-rpath,/usr/local/LuaJIT/lib --add-module=/opt/ngx_devel_kit-0.3.0 --add-module=/opt/lua-nginx-module-0.10.13

위의 ./configure 를 실행 한 후 컴 파일 설치:
$ make -j2
$ make install
make install 이후 기 존 에 설치 한 Nginx 를 덮어 씁 니 다.
테스트 lua - nginx - module/usr/local/nginx/conf/nginx.confserver 코드 블록 에 다음 과 같은 코드 를 추가 합 니 다.
location /hello { 
    default_type 'text/plain';
    return 200 'hello echo!';
}

location /hello_lua { 
    default_type 'text/plain'; 
    content_by_lua 'ngx.say("hello, lua!")'; 
}

메모: 재 컴 파일 Nginx 바 이 너 리, Nginx 재 부팅 을 중지 해 야 합 니 다.일반 설정 업데이트 reload 하면 됩 니 다.
$ kill -QUIT `cat /usr/local/nginx/logs/nginx.pid` && /usr/local/nginx/sbin/nginx

지원 service nginx restart 하면 이렇게 다시 시작 할 수 있 습 니 다.
$ service nginx restart && /usr/local/nginx/sbin/nginx -s reload

그리고 curl 테스트:
$ curl http://127.0.0.1/hello
hello echo!

$ curl http://127.0.0.1/hello_lua
hello, lua!

도 난 방지 판 성명: 본 고 는 오리지널 글 로 공중 번호 (fhyblog) 와 블 로그 원 에 발표 되 었 으 며, 전 재 는 작가 의 동의 가 필요 하 다.
컴 파일 동적 모듈lua-nginx-module 동적 모듈 로 불 러 오 는 것 을 지원 합 니 다. 자세 한 내용 은 다음 과 같 습 니 다.https://github.com/openresty/lua-nginx-module#building-as-a-dynamic-module 。Nginx 버 전이 필요 합 니 다 >=1.9.11.
$ cd /opt/nginx-1.12.2/
$ ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-pcre --with-ld-opt=-Wl,-rpath,/usr/local/LuaJIT/lib --add-dynamic-module=/opt/ngx_devel_kit-0.3.0 --add-dynamic-module=/opt/lua-nginx-module-0.10.13

$ make -j2
$ make install

정적 컴 파일 에 비해 인자 --add-module--add-dynamic-module 로 바 뀌 었 습 니 다.
컴 파일 에 성공 하면 모듈 을 nginx/modules/ 디 렉 터 리 에 설치 합 니 다.보기:
$ ls /usr/local/nginx/modules/
ndk_http_module.so  ngx_http_lua_module.so

다음 에 우 리 는 nginx.conf 설정 에 다음 과 같은 두 줄 을 추가 하여 동적 호출 모듈 을 실현 해 야 한다.
load_module /usr/local/nginx/modules/ndk_http_module.so; 
load_module /usr/local/nginx/modules/ngx_http_lua_module.so;

주의: load_module 명령 은 http{} 에 넣 으 면 안 됩 니 다.
worker_processes  1;

load_module xxx;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {

}

다음은 위의 테스트 lua - nginx - module 소절 에 따라 테스트 할 수 있 습 니 다.유일 하 게 다른 것 은 사용 하지 않 아 도 된다 kill -QUIT 는 것 이다.
Nginx 컴 파일 동적 모듈 에 대하 여
NGINX 는 1.9.11 버 전부터 새로운 모듈 로드 방식 을 도입 했다. 동적 로드.이 는 모듈 이 설정 파일 에 따라 NGINX 가 실 행 될 때 동적 으로 불 러 올 수 있 음 을 의미한다.마찬가지 로 설정 파일 을 수정 한 후 Reload NGINX 를 통 해 모듈 을 마 운 트 해제 할 수도 있다.이제 nginx 파일 을 교체 하지 않 아 도 제3자 확장 을 추가 할 수 있 습 니 다.
같은 기계 라면 컴 파일 된 so 파일 을 다른 기계 로 직접 복사 하여 직접 수정 nginx -s reload 하면 해당 모듈 을 불 러 올 수 있 습 니 다. 그러면 컴 파일 시간 과 발생 할 수 있 는 문 제 를 절약 할 수 있 습 니 다.
메모: 모든 모듈 이 동적 모듈 로 변환 되 는 것 은 아 닙 니 다.현재 공식 적 으로 몇 개의 모듈 만 동적 로드 를 지원 하고 제3자 모듈 은 업그레이드 지원 이 있어 야 모듈 로 컴 파일 할 수 있 습 니 다.
$ ./configure --help | grep dynamic
  --with-http_xslt_module=dynamic    enable dynamic ngx_http_xslt_module
  --with-http_image_filter_module=dynamic
                                     enable dynamic ngx_http_image_filter_module
  --with-http_geoip_module=dynamic   enable dynamic ngx_http_geoip_module
  --with-http_perl_module=dynamic    enable dynamic ngx_http_perl_module
  --with-mail=dynamic                enable dynamic POP3/IMAP4/SMTP proxy module
  --with-stream=dynamic              enable dynamic TCP/UDP proxy module
  --with-stream_geoip_module=dynamic enable dynamic ngx_stream_geoip_module
  --add-dynamic-module=PATH          enable dynamic external module
  --with-compat                      dynamic modules compatibility

모듈 API 는 정적 모듈 과 동적 모듈 에 대해 일치 하지만 config 파일 과 컴 파일 방법 은 약간 다르다.자세 한 내용 은:https://gist.github.com/undirectlookable/2a39cc85b16e2218f162#file-nginx_static_to_dynamic_modules-zh-cn-md
레 퍼 런 스
1. Nginx 컴 파일 설치 Lua 모듈 에서 만난 큰 구덩이 - 유신 견 의 블 로그 - CSDN 블 로그https://blog.csdn.net/qq_38974634 / article / details / 81625075 2, Nginx 설치 lua - nginx - module 모듈 - 위 챗 - 빅 데이터 종사자 - 블 로그 원https://www.cnblogs.com/felixzh/p/8709201.html 3. nginx 시작, 재 부팅, 프로필 재 불 러 오기 및 부 드 러 운 업그레이드 - 여치 의 블 로그 - CSDN 블 로그https://blog.csdn.net/gnail_oug / article / details / 52754491 4, NGINX - 정적 모듈 을 동적 모듈 로 변환https://gist.github.com/undirectlookable/2a39cc85b16e2218f162 5、How to Compile Dynamic Modules for NGINX Plus https://www.nginx.com/blog/compiling-dynamic-modules-nginx-plus/ 6, Nginx 첨가 nginxlua_모듈 모듈 | 먼지 막 이 망https://www.58jb.com/html/182.html 7. NGINX 로 딩 동적 모듈 (NGINX 1.9.11 로 딩 동적 모듈 지원 추가 시작) - Tinywan - 블 로그 가든https://www.cnblogs.com/tinywan/p/6965467.html

좋은 웹페이지 즐겨찾기