来源:https://ketzacoatl.github.io/posts/2017-03-04-lua-and-openresty-part-4-using-envvars.html
os.getenv("ABC")
worker_processes 1;
env DB_HOST;
env DB_USER;
env DB_PASS;
env DB_NAME;
error_log error.log;
events {
worker_connections 1024;
}
http {
server {
listen 8000;
charset utf-8;
charset_types application/json;
default_type application/json;
location / {
content_by_lua '
local cjson = require "cjson"
local pgmoon = require("pgmoon")
local pg = pgmoon.new({
host = os.getenv("DB_HOST"),
port = "5432",
user = os.getenv("DB_USER"),
password = os.getenv("DB_PASS"),
database = os.getenv("DB_NAME")
})
assert(pg:connect())
local encode_json = require("pgmoon.json").encode_json
local get, post, files = require "resty.reqargs"()
assert(pg:query("INSERT INTO posts (data) VALUES(" .. encode_json(post) .. ");"))
pg:keepalive()
pg = nil
ngx.status = ngx.HTTP_OK
ngx.say(cjson.encode({status = "saved", msg=post}))
return ngx.exit(ngx.HTTP_OK)
';
}
}
}