我通过proxy_pass反向代理请求到后端IIS站点,经常出现请求方因超时主动断开的问题。经分析,后端IIS站点上业务逻辑执行非常快,毫秒级。在Nginx端记录proxy_pass前的时间,发现该时间与到达后端IIS的时间经常相差好几秒,想了解下有没有办法可以取到proxy_pass发出到达后端的时间,以便分析是proxy_pass到达IIS耗时太长还是IIS请求有积压导致在实际业务逻辑处理前消耗了大量时间。
补充下,我是采用的proxy_pass到一个动态Upstream,在里面使用了balancer_by_lua_block,最后通过 local ok, err = balancer.set_current_peer(targethost, targetport)的方式到达后端服务器,我在set_current_peer前后加了时间记录,然后log出来,发现两个时间一致,是方法本身没开销,还是异步调用,并不表明请求到达后端了?
ok, err = balancer.set_current_peer(host, port),这个方法是不是并不连后端,只是将host和port放到upstream,真正反向还是proxy_pass在执行,我理解的对吗?
powerdesigner2000 ok, err = balancer.set_current_peer(host, port),这个方法是不是并不连后端,只是将host和port放到upstream,真正反向还是proxy_pass在执行,我理解的对吗?
是这样的,所以记录这个前后的时间没有意义。 这里的问题还是应该要看upstream_response_time是多少。