我正在写一个url_rewrite_program重写网址“req_url” 至 “http://localhost:8080/cgi-bin/some-cgi?url=req_url”。
cgi将在req_url获取资源,进行一些处理并将结果返回给Squid,然后Squid将结果返回给原始请求者。为了避免重写循环,我通过执行以下操作禁用localhost发出的请求的url重写:
acl localhost src 127.0.0.1/32
acl myip src my-proxy-ip #repalced with my ip of my proxy
url_rewrite_access拒绝localhost
url_rewrite_access deny myip
现在,运行Squid的机器可以在req_url上获取资源而没有任何问题,因为我禁用了localhost的重写。但是任何其他机器都无法在req_url获取资源。它挂了。
似乎我的重写程序有一些问题。基本上,它假定Squid(版本3.1)给出的输入具有以下形式:
“req_url [SP] ip ...”// SP表示空格
并返回
“http://localhost:8080/cgi-bin/some-cgi?url=req_url[newline]”
我想知道这个程序的问题是什么。顺便说一句,cgi运行完美。