亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

lapis的配置及環(huán)境

sarva / 1670人閱讀

摘要:配置及環(huán)境被設(shè)計于依據(jù)不同環(huán)境載入不同的配置來運行服務(wù)器。環(huán)境名稱僅影響加載的配置。例如,這里有一個的配置塊編譯時,首先檢查環(huán)境變量。默認日志記錄位置設(shè)置為,在默認的配置中指定。

配置及環(huán)境

Lapis 被設(shè)計于依據(jù)不同環(huán)境載入不同的配置來運行服務(wù)器。例如,可能您開發(fā)環(huán)境的配置設(shè)置為本地數(shù)據(jù)庫的URL,禁用代碼緩存和單個worker。然后,您生產(chǎn)環(huán)境的配置可能設(shè)定為遠程數(shù)據(jù)庫的 URL,啟用代碼緩存和8個worker。

當啟動服務(wù)器時,lapis 命令行工具接受第二個參數(shù):

$ lapis server [environment] 

默認情況下,環(huán)境是development。環(huán)境名稱僅影響加載的配置。如果你沒有任何配置,這絕對沒有效果,所以讓我們創(chuàng)建一些。

創(chuàng)建配置

每當 Lapis 執(zhí)行依賴于配置的代碼時,它會嘗試加載 config 模塊。 config 模塊是我們定義環(huán)境特定的變量的地方。它是一個標準的 Lua/MoonScript 文件,所以讓我們創(chuàng)建它。

如果未找到 config 模塊,則不會拋出錯誤,此時則會使用默認的配置。

local config = require("lapis.config")

config("development", {
  port = 8080
})

config("production", {
  port = 80,
  num_workers = 4,
  code_cache = "on"
})

我們使用 lapis.config 中提供的配置助手來創(chuàng)建我們的配置。在上面的例子中,我們定義了兩個配置,并為每個配置設(shè)置端口。

配置只是一個簡單的表。使用上面的特殊構(gòu)建器語法構(gòu)建配置表。

我們可以通過傳遞環(huán)境名稱的數(shù)組表 來一次 配置多個環(huán)境:

config({"development", "production"}, {
  session_name = "my_app_session"
})

配置文件對于訪問組合嵌套的表有著不錯的語法。 MoonScriptLua 都有自己的變體,有關(guān)語法的更多細節(jié),請查看相應(yīng)的指南。[lua配置語法]()

配置和Nginx

編譯 nginx.conf 時使用配置中的值。插入的Nginx配置變量不區(qū)分大小寫。它們通常以所有大寫形式編寫,因為在檢查配置之前會先檢查 shell 的環(huán)境是否有值。

例如,這里有一個 Lapis Nginx 的配置塊:

events {
  worker_connections ${{WORKER_CONNECTIONS}};
}

編譯時,首先檢查環(huán)境變量 LAPIS_WORKER_CONNECTIONS。如果它沒有值,那么將檢查當前環(huán)境的配置的 worker_connections

在應(yīng)用程序中訪問配置

該配置也可在應(yīng)用程序中使用。我們可以像下面這樣來訪問配置表:

local config = require("lapis.config").get()
print(config.port) 

當前環(huán)境的名稱存儲在 _name 中。

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
  }
}
可用配置

雖然大多數(shù)配置鍵是隨意使用的,但是有一些名稱是被保留用于配置 Lapis 和支持庫。這里是他們的列表:

portnumber) - Nginx 的端口,在nginx.conf 中默認定義

num_workersnumber) - Nginx 啟動的work數(shù),在 nginx.conf 中默認定義

session_namestring) - 將存儲會話的 cookie 的名稱

secretstring) - encode_with_secret使用的秘密密鑰,也用于簽署會話
cookie

measure_performancebool) - 用于啟用性能時間和查詢跟蹤

loggingtable) - 配置要記錄到控制臺或日志文件的事件

配置日志

logging 配置鍵可用于禁用 Lapis 默認情況下執(zhí)行的各種日志記錄。logging配置的默認值為:

{
  queries = true,
  requests = true
}

所有日志都使用 OpenResty 提供的 print 函數(shù) 對 Nginxnotice 日志進行記錄。默認 notice 日志記錄位置設(shè)置為 stderr ,在默認的 Lapis Nginx 配置中指定。它可以使用 error_log 指令進行配置。

性能測量

如果 measure_performance 配置值設(shè)置為 true, Lapis 可以收集各種操作的計時和計數(shù)。

這些數(shù)據(jù)存儲在 ngx.ctx.performance 中。在以下字段將被收集到表中:

view_time - 呈現(xiàn)視圖所用的時間(以秒為單位)

layout_time - 呈現(xiàn)布局所用的時間(以秒為單位)

db_time - 執(zhí)行查詢所花費的時間(以秒為單位)

db_count - 執(zhí)行的查詢數(shù)

http_time - 執(zhí)行 HTTP 請求所花費的時間(以秒為單位)

http_count - 發(fā)送的 HTTP 請求數(shù)

如果在請求中未執(zhí)行相應(yīng)的操作,則字段將為 nil。這些字段在請求過程中填寫,因此最好只在請求結(jié)束時訪問它們,以確保所有數(shù)據(jù)可用。 after_dispatch 助手可以用來注冊一個函數(shù),以便在請求處理的最后階段運行。

在此示例中,性能數(shù)據(jù)在每個請求結(jié)束時打印到日志中:

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/39494.html

相關(guān)文章

  • lapis入門

    摘要:入門是為和編寫的框架。使用來安裝創(chuàng)建一個應(yīng)用命令行工具附帶了一個命令行工具,可幫助您創(chuàng)建新項目和啟動服務(wù)器。在生產(chǎn)環(huán)境中,應(yīng)當啟用緩存以獲得最佳性能。指令指定一個代碼塊,它將處理與其他不匹配的任何請求。將忽略常規(guī)的二進制文件。 lapis入門 Lapis 是為 Lua 和 MoonScript 編寫的 Web 框架。 Lapis 很有趣,因為它建立在Nginx 發(fā)行的 OpenRest...

    endless_road 評論0 收藏0
  • 創(chuàng)建Lapis應(yīng)用程序

    摘要:使用創(chuàng)建應(yīng)用程序生成一個新項目如果您尚未閱讀,請閱讀入門指南,了解有關(guān)創(chuàng)建新項目骨架的信息以及,配置和命令的詳細信息。是包含應(yīng)用程序的常規(guī)模塊。 使用Lua創(chuàng)建Lapis應(yīng)用程序 生成一個新項目 如果您尚未閱讀,請閱讀入門指南,了解有關(guān)創(chuàng)建新項目骨架的信息以及OpenResty,Nginx配置和lapis命令的詳細信息。 您可以在當前目錄中通過運行以下命令啟動一個新的Lua項目: la...

    jzzlee 評論0 收藏0
  • lapis請求處理

    摘要:處理函數(shù)的返回值用于渲染輸出。例如,如果不滿足某些條件,我們可以取消操作并重定向到另一個頁面是處理一個常規(guī)動作的返回值,所以同樣的事情你可以返回一個動作,可以傳遞給請求對象每個操作在調(diào)用時會請求對象作為其第一個參數(shù)傳遞。 lapis請求處理 每個被Lapis處理的HTTP請求在被Nginx處理后都遵循相同的基本流程。第一步是路由。路由是 url 必須匹配的模式。當你定義一個路由時,你也...

    Olivia 評論0 收藏0
  • lapis配置之 lua語法

    摘要:配置語法配置示例的配置模塊提供了對遞歸合并的支持。例如,我們可以定義一個基本配置,然后覆蓋更多具體的配置聲明中的一些值這將產(chǎn)生以下兩個配置結(jié)果默認值省略您可以在相同的配置名稱上調(diào)用函數(shù)多次,每次將傳入的表合并到配置中。 Lua 配置語法 配置示例 Lapis 的配置模塊提供了對遞歸合并 table 的支持。 例如,我們可以定義一個基本配置,然后覆蓋更多具體的配置聲明中的一些值: --...

    BaronZhang 評論0 收藏0
  • lapis異常處理

    摘要:的異常處理錯誤的種類區(qū)分兩種錯誤可恢復(fù)和不可恢復(fù)錯誤。捕獲可恢復(fù)的錯誤幫助程序用于包裝一個操作,以便它可以捕獲錯誤并運行錯誤處理程序。相反,使用協(xié)同程序創(chuàng)建一個異常處理系統(tǒng)。 lapis的異常處理 錯誤的種類 Lapis 區(qū)分兩種錯誤:可恢復(fù)和不可恢復(fù)錯誤。 Lua 的運行時在執(zhí)行期間拋出的錯誤或調(diào)用錯誤被認為是不可恢復(fù)的。 (這也包括 Lua 內(nèi)置函數(shù) assert ) 因為不可恢復(fù)...

    cucumber 評論0 收藏0

發(fā)表評論

0條評論

sarva

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<