처음 OpenResty : 핫로드
lua_code_cache off로 핫로드
OpenResty에서 lua 코드가 포함된 파일을 변경한 경우
nginx -p $(pwd) -s reload
를 실행하여 nginx를 다시 시작해야 했습니다.개발 단계에서 캐주얼하게 사용하는 경우 매번 다시 시작하는 것은 번거롭고 파일을 변경 한 후 서버를 다시 시작하지 않고 응용 프로그램의 코드를 반영하는 것이 바람직합니다. 이러한 기능을 "핫 로드"등이라고합니다.
OpenResty의 Lua로 작성된 앱이 포함된 모듈은 일단 로드되면 캐시되고 재사용됩니다. 반대로
lua_code_cache off
를 location 지시문에 지정하면 캐시가 무효화되고 요청 당 Lua 모듈이로드됩니다. 이렇게하면 파일 변경 후 요청에 즉시 반영되는 것과 동일한 효과가 있습니다. 가자.현재 구성 및 기본 시간 동작
OpenResty 설치에 대한 자세한 내용은 처음 OpenResty : Hello World 등을 참조하십시오.
이번에도 Windows PC의 VirtualBox 게스트에 CentOS 7이 NAT NIC로 설치되어 있다고 가정합니다.
용도
호스트 IP
호스트 포트
게스트 IP
게스트 포트
ssh
0.0.0.0
20022
10.0.2.15
22
HTTP
0.0.0.0
20080
10.0.2.15
80
DEV
0.0.0.0
28080
10.0.2.15
8080
../restyroot
├── conf
├── logs
└── lua
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
server {
listen 8080;
location / {
default_type text/html;
content_by_lua_file ./lua/hotload.lua;
}
}
}
ngx.say("<p><span style="color:red">RELOADED?</span></p>");
nginx -p $(pwd) -c conf/nginx.conf
에서 nginx를 시작하고 호스트 Windows의 브라우저에서 localhost:28080
로 액세스하려고합니다.빨간색 문자로 표시되었습니다. 그런 다음
lua/hotload.lua
안의 색상을 blue로 변경합니다.$ sed -i -e "s/red/blue/g" lua/hotload.lua
이대로 다시 브라우저에서 액세스해 보면. . .
F5나 Shift+F5로 캐시 클리어의 Reload를 해도, 물론 적문자로부터 변경되지 않습니다!
lua_code_cache off로 설정
location 지시문을 다음으로 변경합니다.
location / {
default_type text/html;
lua_code_cache off; <===== 追加
content_by_lua_file ./lua/hotload.lua;
}
nginx 를 reload 하면 아래와 같이 alert 가 나오지만 문제없이 재기동되고 있습니다.
$ nginx -p $(pwd) -s reload
nginx: [alert] lua_code_cache is off; this will hurt performance in /home/restymgr/restyroot/conf/nginx.conf:11
설명한 대로 요청마다 파일을 읽으려고 하므로 성능이 크게 저하됩니다. 그 경고입니다.
우선,
localhost:28080
에 액세스 해 봅시다. reload 하고 있으므로 설정에 관계없이 파랑 문자로 표시되고 있다고 생각합니다.그런 다음
lua/hotload.lua
의 color 설정을 green으로 변경하고,$ sed -i -e "s/blue/green/g" lua/hotload.lua
브라우저로 접속하면
녹색 문자로 바뀌었습니다!
요약
퍼포먼스는 해치게 됩니다만, 번잡한 nginx 재기동 없이 스크립트 파일의 변경이 즉반영되는 형태가 됩니다.
프로덕션 환경에서는 사용할 수 없지만 OpenResty에서도 자주 코드를 변경하는 개발 단계에서는 필수 매개 변수로 간주됩니다.
이 설정으로 여러분의 OpenResty에서의 웹 어플리케이션 개발이 쾌적해지면 다행입니다.
Reference
이 문제에 관하여(처음 OpenResty : 핫로드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nobuh/items/240e77e25a11bbb7efdd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)