Nginx+Lua+Redis 实现Nginx301跳转配置管理
http {
# 引入Lua模块
lua_package_path "/usr/local/openresty/nginx/lua/?.lua;;";
lua_package_cpath "/usr/local/openresty/nginx/lua/?.so;;";
server {
listen 80;
server_name www.oldsite.com;
# 使用Lua进行301重定向
location / {
# 调用Lua脚本处理重定向
content_by_lua_file /path/to/your/lua/script.lua;
}
}
}
Lua脚本 (script.lua
):
local redis = require "resty.redis"
local red = redis:new()
red:set_timeout(1000) -- 1 秒超时
local ok, err = red:connect("127.0.0.1", 6379)
if not ok then
ngx.say("failed to connect: ", err)
return
end
-- 从Redis获取重定向URL
local res, err = red:get("www.oldsite.com")
if not res then
ngx.say("failed to get: ", err)
return
end
if res == ngx.null then
ngx.say("oldsite.com not found.")
return
end
-- 执行301重定向
ngx.status = 301
ngx.header["Location"] = res
ngx.say("Moved Permanently")
确保Redis服务运行并且Lua模块(如ngx_http_lua_module
)已经安装到Nginx中。以上配置和Lua脚本演示了如何从Redis获取旧域名对应的新域名,并执行301重定向。
评论已关闭