我想通过nginx的ctx来记录数据到变量中如果与上游服务器创建连接失败返回502则ctx会被置空最后无法将ctx中的数据记录到变量中怎么将ctx第一次记的数据记录到变量中
您可以在nginx配置文件中使用try_files指令,将请求转发给一个自定义的错误处理页面,在该页面中可以将ctx中的数据记录到变量中,然后再返回502错误。
例如:
location / {
set $mydata "";
...
proxy_pass http://backend;
proxy_connect_timeout 5s;
proxy_set_header Host $host;
...
error_page 502 /error502;
}
location /error502 {
internal;
set $mydata $ctx_mydata;
return 502;
}
在上述配置中,如果与后端服务器连接失败,将会返回502错误,并将请求转发给/error502页面,该页面使用set指令将ctx中的数据记录到变量$mydata中,然后返回502错误。在其他地方可以使用$mydata变量来引用这个数据。
原文地址: https://www.cveoy.top/t/topic/bWlE 著作权归作者所有。请勿转载和采集!