lapis 설정 및 환경

배치 및 환경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.configMoonScript 모두 자신의 변형 이 있 습 니 다. 문법 에 관 한 더 많은 세부 사항 은 해당 하 는 지침 을 보십시오.[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 함수 로 OpenRestyprint 로 그 를 기록 합 니 다.기본 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

좋은 웹페이지 즐겨찾기