squid把后端302重写成200响应
假如有一个WebServer,请求URLA的时候,会返回一个302 ,Location为URLB,在squid上想要把URLB重写为URLC,并且让用户看到的是squid直接响应的URLC。目前我只知道一个方式,调用squid的“url_rewrite_program”,在perl脚本中:
当用户请求URLA的时候,发起一个http请求去后端探测一下Location,并获得URLB,将URLB修改为URLC,然后再输出。
但是这样会有一个问题,即所有url不管后端有没有302,都会去探测一下,而在探测期间,用户只能等着,假如所有请求中只有10%的url会有302,那么这样的方式就太浪费时间了。
squid中还有一个功能叫“location_rewrite_program”,这个功能只有当后端返回302的时候才会触发调度重写程序,不过用这个功能重写之后,URLC仍然是通过302的方式返回给用户的。
有没有既能减少程序调用,又能把302重写为200响应的方法呢。
页:
[1]