愚人节即将到来.我想玩这个恶作剧,我们使用http代理修改图像来通过代理.我被告知有ISA/Squid的脚本/附加组件可以做到这一点,但我自己找不到多少.
理想情况下,我们希望将另一个图像叠加在通过代理发出的每个.gif/.jpeg/.png之上.唯一的问题是我不知道该怎么做!
如果我有我的选择,我宁愿用ISA而不是鱿鱼,但乞丐不能选择.如果你能想到另一种方式,我也会对此持开放态度!
我已经将squid3代理安装到ubuntu服务器中,一切正常但是当我检查日志文件时,Squid会记录url但是如果url有(?)他的日志记录只是之前的内容?标记并跳过它之后的内容.
Exp,如果我尝试访问此网址:http://www.youtube.com/results? search_query = bmw
鱿鱼会将其记录为:http://www.youtube.com/results?
我在这里问我如何配置squid3来记录完整的URL?
谢谢,优素福
我想实现以下目标:
请求主持人:
http://example.com.proxy.myserver.com
应该改写成
并通过nginx proxypass传递给squid服务器.
server {
listen 80;
server_name ~^(?<subdub>.*)\.proxy\.myserver\.com$;
location / {
rewrite ^ $scheme://$subdub break;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $scheme://$subdub;
proxy_set_header Request-URI $scheme://$subdub;
proxy_pass http://localhost:3128;
proxy_redirect off;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,nginx会立即将此请求重定向到http://example.com
任何想法如何让这个工作?
我正在开发一个简单的HTTPS代理(用Python编写),它接收POST/GET请求/响应,应用一些转换,最后将结果转发给收件人.我需要以"流"方式处理分块编码的请求/响应,这意味着只要接收到一个块,代理就会转换它并将其转发给接收者.
在决定支持分块编码请求之前,我一直在使用mitmproxy http://mitmproxy.org/并且它工作得很好.不幸的是,我注意到在让我处理响应/请求之前它一直等到收到整个主体.
如何实现支持分块编码请求/响应的代理?你有没有人做过这样的事情?
谢谢
编辑:更多信息我的使用案例
我需要处理POST请求和GET响应.
在POST请求中,我收到一个JSON对象,我必须加密它的一些值.
在GET响应中,我收到一个JSON对象,我必须解密它的一些值.
到目前为止,以下代码完美地运行:
def handle_request(self, r):
if(r.method=='POST'):
// encryption of r.get_form_urlencoded()
def handle_response(self, r):
if(r.request.method=='GET'):
// decryption of r.content
Run Code Online (Sandbox Code Playgroud)
如何用单个块做同样的事情?
编辑:更新
在评估了不同的解决方案之后,我决定选择Squid(代理)+ ICAP(内容改编).
我已经成功配置了Squid,性能非常好.不幸的是,我找不到合适的ICAP服务器(如果可能的话,用Python)来进行内容改编(修改).我认为这一个https://github.com/netom/pyicap可以完成这项工作,但看起来它没有读取myPOST请求的正文.
你们知道我可以和Squid一起使用的Python ICAP服务器吗?
谢谢
我们使用Squid缓存从我们的Web服务器卸载流量,即.它被设置为反向代理,在它们到达我们的Web服务器之前响应入站请求.
当我们对同一个不在缓存中的请求的并发请求进行blitzed时,Squid会将所有请求代理到我们的Web("origin")服务器.对我们来说,这种行为并不理想:我们的原始服务器陷入困境,试图同时满足N个相同的请求.
相反,我们希望第一个请求代理到源服务器,其余的请求在Squid层排队,然后当源服务器响应第一个请求时,Squid都会完成所有请求.
有谁知道如何配置Squid这样做?
我们已经多次阅读了文档,并通过网络搜索了主题,但无法弄清楚如何去做.
我们也使用Akamai,有趣的是,这是它的默认行为.(但是,Akamai拥有如此多的节点,即使启用了Akamai的超级节点功能,我们仍会在某些流量峰值情况下看到大量并发请求.)
对于某些其他缓存,此行为显然是可配置的,例如.Ehcache文档提供了选项"并发缓存未命中:缓存未命中将导致缓存过滤器上游的过滤器链被处理.为了避免线程请求相同的密钥执行无用的重复工作,这些线程阻塞第一个线程. "
有些人将此行为称为"阻塞缓存",因为后续并发请求会阻止第一个请求,直到它完成或超时.
看看我的菜鸟问题!
奥利弗
我想设置一个代理(使用Squid),每天在Amazon EC2实例上需要大约5000个请求.微型与小型实例之间的速度是否存在显着差异?
请求适用于HTML,不适用于任何媒体,如图片或视频.
我正在尝试使用http.get发出一个简单的请求.但我需要通过Squid代理提出这个请求.这是我的代码:
var http = require('http');
var username = 'username';
var password = 'password';
var host = "proxy_host";
var auth = 'Basic ' + new Buffer(username + ':' + password).toString('base64');
var options = {
host: host,
port: 3128,
path: "http://www.google.com",
authorization: auth,
headers: {
Host: 'www.google.com'
}
};
var req = http.request(options, function(res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
});
req.end();
Run Code Online (Sandbox Code Playgroud)
根据设置代理的操作团队,我的用户名和密码是正确的.问题是我不断获得407 - 授权所需的状态.
我提出请求的方式有问题吗?或者是否需要配置Squid代理?
提前致谢.
我有HttpClient 4.2.2的问题和使用用户名/密码的代理.HttpClient以这种方式工作:
这是非常奇怪的行为,是否可以为每个请求添加有关代理的信息?我试图为每个请求添加硬编码的"代理授权"标头,它工作正常,为什么HttpClient不能这样做?
Java代码
DefaultHttpClient httpClient = new DefaultHttpClient();
httpClient.getParams().setParameter(PROTOCOL_VERSION, HTTP_1_1);
...
String proxyServer = getProxyServer();
int proxyPort = getProxyPort();
List<String> authpref = new ArrayList<String>();
authpref.add(AuthPolicy.BASIC);
httpClient.getParams().setParameter(AuthPNames.PROXY_AUTH_PREF, authpref);
String proxyUser = getProxyUser();
String proxyPassword = getProxyPassword();
CredentialsProvider credsProvider = httpClient.getCredentialsProvider();
credsProvider.setCredentials(new AuthScope(proxyServer, proxyPort), new UsernamePasswordCredentials(proxyUser, proxyPassword));
httpClient.setCredentialsProvider(credsProvider);
HttpHost proxy = new HttpHost(proxyServer, proxyPort, (proxyServer.indexOf("https") != 0) ? "http" : "https");
httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
...
HttpPut put = new HttpPut(url);
/*** hardcoded header ***/
//put.addHeader("Proxy-Authorization", "Basic eHRlbmR4LmRuZXByOnF3ZXJ0eQ==");
/*** …Run Code Online (Sandbox Code Playgroud) 我们如何能够让squid缓存Web内容(让我们从firefox说)用于SSL连接,我的意思是https URL?
我已经看到了两种安装软件包的方法,例如CentOS上的squid:
1.yum -y install squid
2.yum install squid
谁能告诉我他们之间有什么区别?另外,我正在使用CentOS v.6.6
squid ×10
proxy ×4
amazon-ec2 ×1
apache ×1
architecture ×1
caching ×1
cdn ×1
centos ×1
centos6 ×1
connection ×1
high-traffic ×1
httpclient ×1
https ×1
isaserver ×1
isenabled ×1
java ×1
linux ×1
logging ×1
nginx ×1
node.js ×1
proxypass ×1
rewrite ×1
ssl ×1
ubuntu ×1
yum ×1