server {
listen 80;
listen 443 ssl;
#ssl on;
ssl_certificate /home/kapu/work/ca.crt;
ssl_certificate_key /home/kapu/work/ca.key;
#set_real_ip_from 127.0.0.1;
#real_ip_header X-My-IP;
location / {
#default_type text/html;
#set $src_addr $remote_addr;
#echo "from: $addr";
set $target '';
access_by_lua '
local mysql = require "resty.mysql"
local db,err = mysql:new()
if not db then
ngx.say("failed to instantiate mysql:",err)
end
db:set_timeout(1000)
local ok,err,errno,sqlstate = db:connect{
host = "127.0.0.1",
port = 3306,
database = "powerdns",
user = "root",
password = "root",
max_packet_size = 1024 * 1024
}
if not ok then
ngx.say("failed to connect:", err, ": ",errorno," ", sqlstat)
return
end
local user_ip = ngx.var.remote_addr
local res,err,errno,sqlstate =
db:query("select ip from jf_records where from_ip=\'"..user_ip.."\' and domain=\'"..ngx.var.Host.."\' and state=1 limit 1")
if not res then
ngx.say("bad result: ", err, ": ", errno, ": ", sqlstate, ".")
return
end
for i, row in ipairs(res) do
for ip, value in pairs(row) do
ngx.var.target=value
return
end
end
--如果没有匹配到地址应该转到其他的代理匹配
';
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host ngx.var.Host;
proxy_pass http://$target;