[깊이] nginx 와 lua 의 개발 (28)

5170 단어
nginx 튜 토리 얼 세트 가 져 오기, 왈 리 블 로 그 를 방문 하 십시오.
lua 는 간결 하고 가 벼 우 며 확장 가능 한 스 크 립 트 언어 입 니 다.nginx + lua 는 Nginx 의 병발 처리 epoll 장점 과 lua 의 경 량 을 충분히 결합 하여 간단 한 기능 절 고 병발 장면 을 개발 합 니 다.
1. lua 설치
centos 7 버 전 위 에 lua, 버 전 5.1.4 가 있 습 니 다.lua 가 설치 되 지 않 았 습 니 다.
yum install lua

2. LuaJIT 설치
LuaJIT 환경 을 설치 하여 자체 lua 해상도 기 확장 모듈 보다 많 고 효율 적 입 니 다.
cd /opt/download
wget http://luajit.org/download/LuaJIT-2.0.2.tar.gz
tar -zxvf LuaJIT-2.0.2.tar.gz
cd LuaJIT-2.0.2
make install  PREFIX=/usr/local/LuaJIT
export LUAJIT_LIB=/usr/local/LuaJIT/lib
export LUAJIT_INC=/usr/local/LuaJIT/include/luajit-2.0

lua 라 이브 러 리 를 불 러 와 ld. so. conf 파일 에 추가 합 니 다.
echo "/usr/local/LuaJIT/lib" >> /etc/ld.so.conf
ldconfig

3. ngx 다운로드devel_kit 와 lua - nginx - module
cd /opt/download
wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz
tar -zxvf v0.3.0.tar.gz

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

4. nginx 컴 파일 모듈
장 ngxdevel_kit 모듈 과 lua - nginx - module 모듈 을 nginx 에 컴 파일 합 니 다.
cd /opt/download/nginx-1.14.2
nginx -V

출력--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-compat --with-file-aio --with-threads --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_realip_module --with-stream_ssl_module --with-stream_ssl_preread_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=/opt/download/echo-nginx-module-0.61 --with-http_geoip_module
ngx 추가devel_kit 모듈 과 lua - nginx - module 모듈 을 컴 파일 매개 변수 에 추가 합 니 다.--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-compat --with-file-aio --with-threads --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_realip_module --with-stream_ssl_module --with-stream_ssl_preread_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=/opt/download/echo-nginx-module-0.61 --with-http_geoip_module --add-module=/opt/download/lua-nginx-module-0.10.9rc7 --add-module=/opt/download/ngx_devel_kit-0.3.0
./configure     
make && make install

5. nginx lua 모듈 명령 호출
nginx 의 플러그 모듈 화 로드 실행, 총 11 단계
매개 변수
묘사 하 다.
set_by_luaset_by_lua_file
nginx 변 수 를 설정 하면 복잡 한 논 리 를 실현 할 수 있 습 니 다.
access_by_luaaccess_by_lua_file
접근 단계 처리 요청, 접근 제어 에 사용
content_by_luacontent_by_lua_file
내용 처리 용기, 요청 처리 및 출력 응답 소개
6. nginx 에서 lua api 호출
api
묘사 하 다.
ngx.var
nginx 변수
ngx.req.get_headers
요청 헤더 가 져 오기
ngx.req.get_uri_args
url 요청 파라미터 가 져 오기
ngx.redirect
방향 을 바꾸다
ngx.print
출력 응답 콘 텐 츠
ngx.say
ngx. print 를 통 해 마지막 으로 줄 바 꿈 자 를 출력 합 니 다.
ngx.header
출력 응답 헤드
...
7. 그 레이스 케 일 발표
일정한 관계 에 따라 부분 적 인 코드 를 온라인 으로 나 누 어 코드 의 발표 가 원활 하 게 온라인 으로 넘 어 갈 수 있 도록 합 니 다.
미 완성 대기

좋은 웹페이지 즐겨찾기