nginx + lua 的 跳转命令

1. ngx.redirect(uri, status?)    301/302外部重定向

redirect  为外部重定向,有两种形式:

rewrite ^ /foo? redirect;  # nginx config   在 rewrite 阶段重定向
等价于
return ngx.redirect('/foo');  -- Lua code

rewrite ^ /foo? permanent;  # nginx config
等价于
return ngx.redirect('/foo', ngx.HTTP_MOVED_PERMANENTLY)  -- Lua code

 

301  Moved Permanently

永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替。

302  Found

临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI。

    

 

    

    

   

 

2.  ngx.exec()      内部重定向

  exec 会直接跳转到另一个 location 做处理,但是不会 返回 调用 它的地方。

 

 

3.  子请求   

  res = ngx.location.capture( location,args )  返回一个包含四个元素的Lua表   res.status   res.header     res.body    res.truncated

  ngx.location.capture 是非阻塞的,ngx.location.capture可以用来完成http请求,当调用使用此命令,当前请求会跳转到location 去执行,最后会返回。

posted @   马克图  阅读(5079)  评论(0)    收藏  举报
编辑推荐:
· 微服务架构学习与思考:微服务拆分的原则
· 记一次 .NET某云HIS系统 CPU爆高分析
· 如果单表数据量大,只能考虑分库分表吗?
· 一文彻底搞懂 MCP:AI 大模型的标准化工具箱
· 电商平台中订单未支付过期如何实现自动关单?
阅读排行:
· 精选 4 款免费且实用的数据库管理工具,程序员必备!
· Cursor:一个让程序员“失业”的AI代码搭子
· 博客园2025新款「AI繁忙」系列T恤上架
· .NET 阻止Windows关机以及阻止失败的一些原因
· 航天二院校园招聘面试记录:二八三厂
点击右上角即可分享
微信分享提示