Question:
如題
Answer:
或許你可以用 nginx 的 include 指令來加載核心的 nginx 配置,比如
=== TEST 1: App
--- config
include ../../../conf/app-core.conf;
--- request
GET /t
--- response_body
hello world
--- no_error_log
[error]
假設你的項目目錄結構是這樣的:
t/
└── a.t
conf/
└── app-core.conf
nginx.conf 的 boiler-plate 由 Test::Nginx 來自動生成是必要的,否則我們無法實現這里列舉的 Test::Nginx 的各種高級測試模式,具體可以看這里。
Question:
瀏覽器請求 json 數據格式
http://127.0.0.1:8866/?a={%22b%22:%22%E4%B8%AD%22,%22a%22:%22zh_cn%22}
openresty access 日志為:
{\x22b\x22:\x22aaa\x22}
配置文件
location /a.gif {
internal;
log_escape_non_ascii off;
set_unescape_uri $u_jsona $arg_a;
log_subrequest on;
access_log /source/428/web/access.log accessjson;
}
自動轉換的為 json中的 "" 請問有解決方法嗎?
Answer:
兩種做法:
Question:
如題
Answer:
是的,nginx 核心里的 timer 過期時間使用的是絕對時間戳。建議在改系統時間時使用 ntp 這樣可以逐步校正時間的工具,以避免系統時鐘直接往后跳或者太快向前蹦。
Question:
Lua 初學者有一個關于內存使用的問題, 有的 language 在傳遞變量到 function 的時候是傳遞這塊 memory 的 reference,有 的 language 是 copy 一份 memory 的 reference,有的 language 是 copy 了一份 memory,我想知道 lua 在傳遞變量的時候是如何實現的
Answer:
Lua 里面的變量都是值的引用(或者說是值的別名),而并不是值的容器。所以 Lua 里的賦值和參數傳遞全部都是引用傳遞。
Question:
如題
Answer:
你需要使用不同的 location {} 或者 server {} 進行隔離。如果不能這么做的話,你只能自己用 Lua 實現一個錯誤日志模塊了,這倒也挺簡單,只是需要注意復用文件名柄并及時刷緩沖(最好不要帶緩沖)就好。
http://nginx.org/en/docs/ngx_core_module.html#error_log
不同的 location 使用不同的 error log path 即可。也就是上面說的 locatin 和server 隔離。