git mv Ingress ingress
This commit is contained in:
parent
34b949c134
commit
3da4e74e5a
2185 changed files with 754743 additions and 0 deletions
111
controllers/nginx-third-party/lua/vendor/lua-resty-dns-cache/README.md
vendored
Normal file
111
controllers/nginx-third-party/lua/vendor/lua-resty-dns-cache/README.md
vendored
Normal file
|
|
@ -0,0 +1,111 @@
|
|||
#lua-resty-dns-cache
|
||||
|
||||
A wrapper for [lua-resty-dns](https://github.com/openresty/lua-resty-dns) to cache responses based on record TTLs.
|
||||
|
||||
Uses [lua-resty-lrucache](https://github.com/openresty/lua-resty-lrucache) and [ngx.shared.DICT](https://github.com/openresty/lua-nginx-module#ngxshareddict) to provide a 2 level cache.
|
||||
|
||||
Can repopulate cache in the background while returning stale answers.
|
||||
|
||||
#Overview
|
||||
|
||||
```lua
|
||||
lua_shared_dict dns_cache 1m;
|
||||
|
||||
init_by_lua '
|
||||
require("resty.dns.cache").init_cache(200)
|
||||
';
|
||||
|
||||
server {
|
||||
|
||||
listen 80;
|
||||
server_name dns_cache;
|
||||
|
||||
location / {
|
||||
content_by_lua '
|
||||
local DNS_Cache = require("resty.dns.cache")
|
||||
local dns = DNS_Cache.new({
|
||||
dict = "dns_cache",
|
||||
negative_ttl = 30,
|
||||
max_stale = 300,
|
||||
resolver = {
|
||||
nameservers = {"123.123.123.123"}
|
||||
}
|
||||
})
|
||||
|
||||
local host = ngx.req.get_uri_args()["host"] or "www.google.com"
|
||||
|
||||
local answer, err, stale = dns:query(host)
|
||||
if err then
|
||||
if stale then
|
||||
ngx.header["Warning"] = "110: Response is stale"
|
||||
answer = stale
|
||||
ngx.log(ngx.ERR, err)
|
||||
else
|
||||
ngx.status = 500
|
||||
ngx.say(err)
|
||||
return ngx.exit(ngx.status)
|
||||
end
|
||||
end
|
||||
|
||||
local cjson = require "cjson"
|
||||
ngx.say(cjson.encode(answer))
|
||||
';
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#Methods
|
||||
### init_cache
|
||||
`syntax: ok, err = dns_cache.init_cache(max_items?)`
|
||||
|
||||
Creates a global lrucache object for caching responses.
|
||||
|
||||
Accepts an optional `max_items` argument, defaults to 200 entries.
|
||||
|
||||
Calling this repeatedly will reset the LRU cache
|
||||
|
||||
### initted
|
||||
`syntax: ok = dns_cache.initted()`
|
||||
|
||||
Returns `true` if LRU Cache has been initialised
|
||||
|
||||
### new
|
||||
`syntax: ok, err = dns_cache.new(opts)`
|
||||
|
||||
Returns a new DNS cache instance. Returns `nil` and a string on error
|
||||
|
||||
Accepts a table of options, if no shared dictionary is provided only lrucache is used.
|
||||
|
||||
* `dict` - Name of the [ngx.shared.DICT](https://github.com/openresty/lua-nginx-module#ngxshareddict) to use for cache.
|
||||
* `resolver` - Table of options passed to [lua-resty-dns](https://github.com/openresty/lua-resty-dns#new). Defaults to using Google DNS.
|
||||
* `normalise_ttl` - Boolean. Reduces TTL in cached answers to account for cached time. Defaults to `true`.
|
||||
* `negative_ttl` - Time in seconds to cache negative / error responses. `nil` or `false` disables caching negative responses. Defaults to `false`
|
||||
* `minimise_ttl` - Boolean. Set cache TTL based on the shortest DNS TTL in all responses rather than the first response. Defaults to `false`
|
||||
* `max_stale` - Number of seconds past expiry to return stale content rather than querying. Stale hits will trigger a non-blocking background query to repopulate cache.
|
||||
|
||||
|
||||
### query
|
||||
`syntax: answers, err, stale = c:query(name, opts?)`
|
||||
|
||||
Passes through to lua-resty-dns' [query](https://github.com/openresty/lua-resty-dns#query) method.
|
||||
|
||||
Returns an extra `stale` variable containing stale data if a resolver cannot be contacted.
|
||||
|
||||
### tcp_query
|
||||
`syntax: answers, err, stale = c:tcp_query(name, opts?)`
|
||||
|
||||
Passes through to lua-resty-dns' [tcp_query](https://github.com/openresty/lua-resty-dns#tcp_query) method.
|
||||
|
||||
Returns an extra `stale` variable containing stale data if a resolver cannot be contacted.
|
||||
|
||||
### set_timeout
|
||||
`syntax: c:set_timeout(time)`
|
||||
|
||||
Passes through to lua-resty-dns' [set_timeout](https://github.com/openresty/lua-resty-dns#set_timeout) method.
|
||||
|
||||
## Constants
|
||||
lua-resty-dns' [constants](https://github.com/openresty/lua-resty-dns#constants) are accessible on the `resty.dns.cache` object too.
|
||||
|
||||
## TODO
|
||||
* Cap'n'proto serialisation
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue