Articles of 清漆

架构问题:将SSLjoin混合

目前我们有一个最高级别的configuration,如下所示: [stream量] – >清漆(caching) – > HaProxy(负载平衡) – > Apache(内容和服务) 很明显,有多个Apache服务器,通常它们提供两种types的服务…一组服务器提供更传统types的Web内容(大部分可导航页面),另一组服务端点他们又连接到数据库和其他后端function)。 服务请求在Varnish中被过滤掉(具体的域等在VCL中被识别,并直接传递给HAProxy – 不需要caching任何这些调用)。 “内容”请求会被Varnishcaching。 需要添加SSL支持。 最初由于需要添加安全的服务请求(和响应),尽pipe我预计最终还需要在内容服务器中也有HTTPS调用。 目前我有stunnel玩弄,而它的工作,我使用有效的模型只是使用stunnel解密传入的请求,然后通过HAProxy作为正常*:80stream量(所以不使用mod_ssl等,在Apache )。 所以有效的东西现在看起来像: [stream量] – >清漆(caching) – > HaProxy(负载平衡) – > Apache(内容和服务)———–> STunnel ————- —————- ^ 所以它的工作原理,但我的胆量告诉我这不是一个真正的长期解决scheme。 一种可能性就是完全分离stream量): [stream量] – >清漆(caching) – > HaProxy(负载平衡) – > Apache(内容和服务) [stream量] – >英镑(或别的东西?)————————> Apache(SSL内容和服务) Apache服务器可能会被共享(SSLstream量将被不同地处理),但是将stream量路由到内容/服务服务器的系统将是不同的。 翻来覆去地看到了一些意见/选项(包括nginx等等),但是第一个问题是整个架构是否有意义(将传入的stream量转移到不同的子系统)还是存在一个更统一的模型应该看(而且可能更简单)。 如果体系结构是有意义的,那么后续是为这个兽人的SSL支持方面使用什么。

如何使清漆在几个端口上听

我有两个不同的端口上的两个服务的多个虚拟机。 我想通过http:// virtual_url_1:80和http:// virtual_url1:8080等URL访问这些服务,以此类推。 我使用清漆将stream量从硬件节点中继到虚拟节点。 我可以区分virtual_url_1和virtual_url_2,例如: if (req.http.host == "virtual_url_1") { set req.backend = virtual_node_1; remove req.http.X-Forwarded-For; set req.http.X-Forwarded-For = client.ip; if (req.request == "POST") { return(pipe); } return (lookup); } 对于端口的区别,我已经看到,在/ etc / default / varnish上,varnish可以在不同的端口上监听 DAEMON_OPTS="-a 0.0.0.0:80,0.0.0.0:8080 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s file,/var/lib/varnish/$INSTANCE/varnish_storage.bin,1G" 但是现在,一旦被拦截,问题是将来自端口80的stream量转发到后端80,将来自端口8080的stream量转发到后端8080。 有一个req.http.hostvariables,我正在寻找一个req.port像一个来执行此目的。 任何人都可以提供一些build议吗? 这甚至有可能吗? […]

清漆代理从domain.comredirect到domain.com:8080

在lighttpd 8080端口上作为caching之前,我在端口80上得到了清漆。 有时当我访问http://domain.com/页面时,我被redirect到http://domain.com:8080 。 如何防止这一点?

按CTRL + F5或CTRL + R时清除光油中的内容

我想设置Varnish来清除caching中的内容,并在按CTRL + R或CTLR + F5时直接从后端获取。 我使用这些规则,但只有按CTRL + F5时才从后端获取内容。 当我按F5只有我从caching中获取数据。 acl CTRLF5 { "127.0.0.1"; } sub vcl_hit { if (client.ip ~ CTRLF5) { if (req.http.pragma ~ "no-cache" || req.http.Cache-Control ~ "no-cache") { set obj.ttl = 0s; return(pass); } else { return(deliver); } } else { return(deliver); } }

清漆caching的作用

现在我使用nginx和APC一起用于phpcaching和mysqlcaching的memcache。 我想知道什么清漆caching可以在我现有的环境中做,因为我想实现清漆,任何想法?

重写条件目标通过:清漆1.1

我有一个使用清漆的Drupal网站。 我正尝试redirect以/node开头的URL,当他们通过Varnish查看站点时。 我已经在.htaccess文件中尝试了以下,但它有500个错误。 RewriteCond%{HTTP:Via} = 1.1 varnish RewriteRule ^ node / [R = 301,NC,L] 我一直没能find任何使用谷歌有关如何定位标题的“通过”部分。 干杯,保罗

清漆反向代理,apache后端,转发IP不一致工作

这是我的vclconfiguration文件部分相关的IP转发: sub vcl_recv { remove req.http.X-Forwarded-For; set req.http.X-Forwarded-For = client.ip; …. (other configuration) } sub vcl_pipe { set req.http.connection = "close"; if (req.http.X-Forwarded-For) { set req.http.X-Forwarded-For = req.http.X-Forwarded-For; } else { set req.http.X-Forwarded-For = regsub(client.ip, ":.*", ""); } } sub vcl_pass { set req.http.connection = "close"; if (req.http.X-Forwarded-For) { set req.http.X-Forwarded-For = req.http.X-Forwarded-For; } else […]

SSL与虚拟主机

我已经“inheritance”了一个我不太明白的服务器设置。 该服务器是一个具有多个虚拟主机的ubuntu盒子。 我检查了每个虚拟主机的configuration,根本没有提到ssl。 但是,当我在浏览器中访问每个站点并以https://前缀时,它们似乎都可以工作。 我已经创build了自己的虚拟主机,并尝试使用https访问它,但它不起作用。 因此,我的问题是这些虚拟主机被configuration为使用SSL的可能性在哪里? 我所见过的所有例子都有一些带有ssl指令的虚拟主机。 注 – 清漆也用于此设置。 它位于端口80上,并将http请求转发给apache,它在81上侦听。 提前致谢,

清漆前的HAProxy没有设置X-FORWARDED-FOR

直到最后几天,我们有以下架构:HAProxy – > 2后端服务器 现在我们有:HAProxy – > Varnish – > 2后端服务器 之前,HAProxy每次都正确设置“X-FORWARDED-FOR”标题。 但是,现在只是有时会设置标题。 有时我的意思是:我向PHP脚本发出一个请求,打印$ _SERVER的内容(包含讨论中的头文件)。 无论我多less次提出请求,HAProxy都不会设置标题。 但是,如果我向我的脚本发出请求,然后很快(请求结束前)我刷新(所以基本上我做了2个同时请求),头正在设置。 有人绊倒了这个非常奇怪的问题,可以指出我的方向吗? 注意:将清漆放在HAProxy的前面不是一个选项。

caching清漆中的所有文件

我想让我的清漆服务器caching所有文件。 在后端有lighttpd仅托pipe静态文件,并且在文件更改的情况下,在URL中有一个md5 。 /gfx/Bird.b6e0bc2d6cbb7dfe1a52bc45dd2b05c4.swf )。 但是我的命中率很差(大约0.18) 我的configuration: sub vcl_recv { set req.backend=default; ### passing health to backend if (req.url ~ "^/health.html$") { return (pass); } remove req.http.If-None-Match; remove req.http.cookie; remove req.http.authenticate; if (req.request == "GET") { return (lookup); } } sub vcl_fetch { ### do not cache wrong codes if (beresp.status == 404 || beresp.status […]