0x00 Nginx 임베디드 Lua 스크립트에는 다음 기능이 있습니다.
20k 동시 연결
Lua 스크립트는 Nignx에서 실행 가능 11가지 레벨이 Ngnix 기능을 확장하는 역할을 합니다
Lua는 매우 빠릅니다(등록 지침)
0x01 응용 시나리오
웹 서버 측에서 요청 필터링 수행(예: WAF, Anti CC 등)
0x02 간단한 구성 프로세스
테스트 환경 Ubuntu Server 14.04.2 LTS
다운로드해야 하는 여러 모듈(설치 순서 및 내보내기 경로 문제에 주의)
Nginx 1.7.4
LuaJIT-2.0.4(Just-In-Time 컴파일러
Lua용)
ngx_devel_kit( Nginx 개발 키트)
echo-nginx-module( 더보기 쉘 스타일 기능을 Nginx 구성 파일에 적용)
lua-nginx-module(Embed Lua의 강력한 기능을 Nginx로)
0x03 luaJIT의 lib 및 inc가 환경 변수에 구성되지 않았기 때문에 lua.h를 찾을 수 없다는 등의 문제가 발생할 수 있습니다
다음과 같이 구성해야 합니다(실제 로컬 경로):
export LUAJIT_LIB=/usr/lib/lua
export LUAJIT_INC=/usr/local/include/ luajit-2.0
cp /usr/local/include/luajit-
있는 경우 서비스를 시작할 수 없는 상황에서 서비스를 볼 수 있습니다 tail /var/log/syslog 오류 보기
nginx를 시작할 수 없는 경우 tail /var/cache/nginx/error.log를 볼 수 있습니다
nginx bin 파일이 생성된 경우 nginx -V를 사용하여 구성 파일이 올바른지 확인할 수 있습니다.
다음 모듈이 없습니다:
PCRE
sudo apt-get install libpcre3 libpcre3-dev
zlib
sudo apt-get install zlib1g- dev
openssl
sudo apt -get install libssl-dev
ps: 특히 최신 버전을 다운로드하지 않도록 주의하세요. Nginx 버전에서는 위의 모듈 인터페이스를 지원하지 않을 수 있습니다. 저는 Nginx 1.7.4
그 중 0x02의 설치 단계에 설치 지침이 있습니다. 따라서 여기에서는 자세한 내용을 다루지 않겠습니다.
0x04 설치 후
nginx.conf 파일 수정(기본 경로/etc/nginx/nginx.conf):
Lua 코드 추가
nginx 구성 다시 로드
sudo /etc/nginx/ sbin/nginx -s reload
효과:
2. lua 파일 추가:
lua_package_path, lua_code_cache 두 개를 추가합니다. Lua 캐시를 유지하고 디버깅을 용이하게 하려면 실제 프로젝트에서 열어야 합니다.)
전체 lua 파일의 디렉터리(lua 폴더의 파일은 다음과 같습니다. 다음에 새로 생성됨):
/etc/nginx/lua/hello.lua
/etc/nginx/lua/hello_redis.lua
/etc/nginx/lua/redis.lua
nginx.conf 파일 추가:
hello.lua 파일 내용:
ngx.header.content_type = " text/plain";
ngx.say("say hello from hello.lua");
추가된 모든 위치 코드:
그런 다음 nginx를 다시 로드하여 효과를 확인하세요.
3. redis 사용(새로 추가된 세 번째 redis):
전제 Ubuntu에 설치하려면 시스템에 이미 redis-server가 있다는 것입니다. sudo apt-get install redis-server
hello_redis.lua 内容:
local redis = "redis" 필요
> '6379')
cache:set_timeout(60000)
괜찮다면
end
res, err = 캐시:set( "hello", "nginx_inline_lua의 redis") 괜찮다면 ngx.say("hello 설정 실패: ", err)
return
end
ngx.say("set result: ", res)
local res, err = 캐시:get("hello")
return
end
if res == ngx.null then ngx.say("hello notfound.") return
end
ngx.say("hello: ", res) local ok, err = 캐시:close()
end
效果:
0x05 现재为止,简单的一个재Nginx 中内嵌Lua并且Redis의 过程已经完成了, 配置时候可能有很多细small问题,但是不要放弃,坚持下去,信你就会成功。
http:/ /wiki.nginx.org/HttpLuaModule
http://openresty.org/ (最先完成Nginx内嵌Lua의 중국어)
http://tengine.taobao.org/转载请注메이메이징处(个人论坛):http://www.byteway.net/thread-index-fid-4-tid-316.htm以上就介绍了Nginx는 内嵌lua脚本,结合Redis使用,包括了方face的内容,希望对PHP教程有兴趣的朋友有所帮助.