iprepd-nginx
iprepd OpenResty 模块
$ opm get ajvb/iprepd-nginx
iprepd-nginx 模块
iprepd-nginx
是一个用于集成 iprepd 的 OpenResty 模块。
您可以使用此仓库中的示例配置作为独立代理,或者使用 opm 安装并自行集成。
注意: 如果 nginx 在负载均衡器后面,请确保使用类似于 ngx_http_realip_module 的东西。
安装
使用 opm 安装
opm get ajvb/iprepd-nginx
示例
注意: 查看此仓库中的 /etc
以获取工作示例。
init_by_lua_block {
client = require("resty.iprepd").new({
url = os.getenv("IPREPD_URL") or "http://127.0.0.1:8080",
api_key = os.getenv("IPREPD_API_KEY"),
cache_ttl = os.getenv("IPREPD_CACHE_TTL") or 30,
threshold = tonumber(os.getenv("IPREPD_REPUTATION_THRESHOLD")),
timeout = tonumber(os.getenv("IPREPD_TIMEOUT")) or 10,
})
}
server {
listen 80;
root /dev/null;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/openresty/nginx/html/;
}
location = /health {
return 200;
access_log off;
}
set_by_lua_block $backend { return os.getenv("backend") }
# Default location, will enforce authentication there
location / {
proxy_set_header "X-Forwarded-Port" $server_port;
proxy_set_header "X-Forwarded-For" $proxy_add_x_forwarded_for;
proxy_set_header "X-Real-IP" $remote_addr;
proxy_set_header "Host" $host;
access_by_lua_block {
client:check(ngx.var.remote_addr)
}
proxy_pass $backend;
}
}
本地运行
在此仓库中创建一个 .env
文件,其中包含必要的环境变量(以下有文档)。
然后运行
$ make build
$ make run_dev
然后你就可以通过 curl http://localhost:80
访问这个代理了。
环境变量
注意
环境变量中的引号对 nginx 很重要。如果您在 Docker 中使用 --env-file
,请不要使用引号。
# required
backend=http://<> # URL to proxy to
IPREPD_URL=http://<> # iprepd url
IPREPD_API_KEY="api-key" # iprepd api key
IPREPD_REPUTATION_THRESHOLD=50 # iprepd reputation threshold to block on
#
# optional
#
IPREPD_TIMEOUT=10 # iprepd client timeout in milliseconds (default 10ms)
IPREPD_CACHE_TTL=60 # iprepd response cache ttl in seconds (default 30s)
作者
AJ Bahnken (ajvb)
许可证
mozilla2
依赖项
版本
-
ajvb/iprepd-nginx 0.1.5iprepd OpenResty 模块 2018-10-22 17:00:35
-
ajvb/iprepd-nginx 0.1.4iprepd OpenResty 模块 2018-10-22 16:44:43
-
ajvb/iprepd-nginx 0.1.3iprepd OpenResty 模块 2018-10-19 21:26:41
-
ajvb/iprepd-nginx 0.1.2iprepd OpenResty 模块 2018-10-19 20:53:40
-
ajvb/iprepd-nginx 0.1.1iprepd OpenResty 模块 2018-10-19 20:28:13
-
iprepd OpenResty 模块 2018-10-19 20:04:42