Nginx 컴 파일 설치 Lua
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.conf
에 server
코드 블록 에 다음 과 같은 코드 를 추가 합 니 다.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 Plushttps://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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.