lucky lucy 2022-09-21 22:05 采纳率: 0%
浏览 83
已结题

nginx配置中,如何先处理和记录url中带的信息后在进行rewrite 302跳转到新url?

一般的Nginx的location配置里经过流程 acsess, content, log就足够了。我有个这样的需求,就是匹配到location后,先对url里带的请求参数进行处理和记录,然后在进行一个302跳转到新的url。代码如下:

location = /land {
content_by_lua_file content.lua;
log_by_lua_file log.lua;
rewrite ^ http://www.baidu.com;
}

我原本以为他们会按顺序执行,先处理老的url里的信息,再跳转到新url,但是实践证明它只会执行rewrite语句,最重要的content部分不执行,log部分能执行,但是content不执行,log就没啥用了,因为这里log的作用是把content里记录的信息发送到redis数据库里。

我的疑问是这种需求302跳转是不是根本不可能实现。如果能实现,大概要怎么改写结构呢?

我目前有个想法,如下:

location = /land {
rewrite_by_lua_file rewrite.lua;
log_by_lua_file log.lua;
}

将content.lua中的内容放到rewrite.lua里去,并且用类似seturi()函数跳转到新地址,也就是不在location里配置rewrite语句了,就是可能跳转到新地址后,log部分又不会执行了。这个不确定。

大概怎么改写思路呢,反正代码内容没问题,就是结构部分不知道怎么调整能实现我的需求。

  • 写回答

1条回答 默认 最新

  • nssnail 2022-09-21 23:22
    关注

    用set_by_lua_file试试?

    评论

报告相同问题?

问题事件

  • 系统已结题 9月29日
  • 创建了问题 9月21日

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型