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 去执行,最后会返回。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM