lapis 설정 및 환경
5112 단어 openrestyluawebframeworksnginx
Lapis
서로 다른 환경 에 따라 서로 다른 설정 을 불 러 와 서버 를 실행 하도록 설계 되 었 다.예 를 들 어 개발 환경의 설정 을 로 컬 데이터베이스 URL
로 설정 할 수 있 으 며 코드 캐 시 와 단일 worker
를 사용 하지 않 습 니 다.그 다음 에 생산 환경의 설정 은 원 격 데이터 베이스 URL
로 설정 할 수 있 습 니 다. 코드 캐 시 와 8 개 worker
를 사용 합 니 다.서버 를 시작 할 때
lapis
명령 행 도 구 는 두 번 째 인 자 를 받 습 니 다.$ lapis server [environment]
기본적으로 환경 은
development
이다.환경 이름 은 불 러 오 는 설정 에 만 영향 을 줍 니 다.설정 이 없 으 면 절대 효과 가 없 으 니 만 듭 시다.설정 만 들 기
설정 에 의존 하 는 코드 를 실행 할 때마다
Lapis
모듈 을 불 러 오 려 고 시도 합 니 다.config
모듈 은 우리 가 환경의 특정한 변 수 를 정의 하 는 곳 이다.그것 은 표준 config
파일 이기 때문에 만 듭 시다.Lua/MoonScript
모듈 을 찾 지 못 하면 오류 가 발생 하지 않 습 니 다. 이 때 는 기본 설정 을 사용 합 니 다.local config = require("lapis.config")
config("development", {
port = 8080
})
config("production", {
port = 80,
num_workers = 4,
code_cache = "on"
})
저 희 는
config
에서 제공 하 는 설정 도 우 미 를 사용 하여 설정 을 만 듭 니 다.위의 예 에서 우 리 는 두 개의 설정 을 정의 하고 모든 설정 에 포트 를 설정 합 니 다.설정 은 간단 한 시계 일 뿐 입 니 다.위의 특수 빌 더 문법 으로 설정 표를 구축 합 니 다.
우 리 는 환경 이름 을 전달 하 는 배열 표를 통 해 여러 환경 을 설정 할 수 있 습 니 다.
config({"development", "production"}, {
session_name = "my_app_session"
})
설정 파일 은 조합 에 포 함 된 표 에 접근 하 는 데 좋 은 문법 을 가지 고 있 습 니 다.
lapis.config
과 MoonScript
모두 자신의 변형 이 있 습 니 다. 문법 에 관 한 더 많은 세부 사항 은 해당 하 는 지침 을 보십시오.[lua 설정 문법] ()설정 과
Lua
컴 파일 Nginx
시 설정 의 값 을 사용 합 니 다.삽 입 된 Nginx 설정 변 수 는 대소 문 자 를 구분 하지 않 습 니 다.설정 을 검사 하기 전에 nginx.conf
환경 이 값 이 있 는 지 확인 하기 때문에 모든 대문자 로 작 성 됩 니 다.예 를 들 어 여기에
shell
설정 블록 이 있 습 니 다.events {
worker_connections ${{WORKER_CONNECTIONS}};
}
컴 파일 할 때 환경 변수
Lapis Nginx
를 먼저 검사 합 니 다.값 이 없 으 면 현재 환경의 설정 LAPIS_WORKER_CONNECTIONS
을 검사 합 니 다.프로그램 접근 설정
이 설정 도 응용 프로그램 에서 사용 할 수 있 습 니 다.설정 표 에 아래 와 같이 접근 할 수 있 습 니 다:
local config = require("lapis.config").get()
print(config.port)
현재 환경의 이름 은
worker_connections
에 저 장 됩 니 다.print(config._name) -- development, production, etc...
기본 설정
모든 설정 은 기본 값 이 있 습 니 다. 다음은 표 에 있 는 문법 입 니 다.
default_config = {
port = "8080",
secret = "please-change-me",
session_name = "lapis_session",
num_workers = "1",
logging = {
queries = true,
requests = true
}
}
사용 가능 한 설정
대부분의 설정 키 는 마음대로 사용 되 지만 일부 이름 은 설정
_name
과 지원 라 이브 러 리 에 남아 있 습 니 다.여 기 는 그들의 목록 입 니 다.Lapis
port
- number
포트, Nginx
에서 기본 정의nginx.conf
num_workers
- number
시 작 된 Nginx
수 는 work
에서 기본 으로 정의 합 니 다.nginx.conf
session_name
- 세 션 을 저장 할 string
이름cookie
(secret
- string
사용 하 는 비밀 키 로 세 션 서명 encode_with_secret
에 도 사 용 됩 니 다.cookie
(measure_performance
- 성능 시간 과 조회 추적 사용bool
logging
- 콘 솔 이나 로그 파일 에 기록 할 이벤트 설정설정 로그
table
설정 키 는 기본 적 인 상황 에서 실 행 된 각종 로그 기록 을 사용 하지 않 습 니 다.logging
설정 의 기본 값 은:{
queries = true,
requests = true
}
모든 로 그 는
Lapis
에서 제공 하 는 logging
함수 로 OpenResty
의 print
로 그 를 기록 합 니 다.기본 Nginx
로그 기록 위 치 는 notice
으로 설정 되 어 있 으 며, 기본 notice
설정 에서 지정 되 어 있 습 니 다.그것 은 stderr
명령 을 사용 하여 설정 할 수 있다.성능 측정
Lapis Nginx
설정 값 이 error_log
로 설정 되면 measure_performance
각종 작업 의 시간 과 수 를 수집 할 수 있 습 니 다.이 데 이 터 는
true
에 저장 되 어 있다.아래 필드 에서 표 에 수 집 됩 니 다:Lapis
- 보 기 를 보 여 주 는 데 걸 리 는 시간 (초 단위)ngx.ctx.performance
- 레이아웃 을 보 여 주 는 데 걸 리 는 시간 (초 단위)view_time
- 조 회 를 수행 하 는 데 걸 리 는 시간 (초 단위)layout_time
- 실 행 된 조회 수db_time
- 수행 db_count
요청 에 걸 리 는 시간 (초 단위)http_time
- 보 낸 HTTP
요청 수요청 에 해당 하 는 동작 을 수행 하지 않 으 면 필드 는
http_count
입 니 다.이 필드 들 은 요청 과정 에서 작성 되 기 때문에 요청 이 끝 날 때 만 접근 하여 모든 데 이 터 를 사용 할 수 있 도록 하 는 것 이 좋 습 니 다.HTTP
조 수 는 처리 요청 의 마지막 단계 에서 실행 할 수 있 도록 함 수 를 등록 할 수 있 습 니 다.이 예제 에서 성능 데 이 터 는 요청 이 끝 날 때마다 로그 에 인쇄 됩 니 다.
local lapis = require("lapis")
local after_dispatch = require("lapis.nginx.context").after_dispatch
local to_json = require("lapis.util").to_json
local config = require("lapis.config")
config("development", {
measure_performance = true
})
local app = lapis.Application()
app:before_filter(function(self)
after_dispatch(function()
print(to_json(ngx.ctx.performance))
end)
end)
-- ...
return app
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Openresty 및 Google BigQuery를 사용한 마이크로서비스 사용량 로깅Descartes Labs에서는 플랫폼 구축에 마이크로서비스 아키텍처를 사용해 왔습니다. Descartes Labs의 마이크로서비스 로깅, 특히 사용 로깅의 주요 요구 사항은 전체 위성 이미지 모음에 대한 API 액...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.