Articles of varnish

重复caching页面:清漆

最近我们在我们的服务器上configuration了Varnish,它已经成功安装了,但是我们注意到,如果我们在多个浏览器中打开任何页面,Varnish向Apache发送请求无关紧要。 如果我们在每个浏览器上刷新两次,它会创build相同页面的重复副本。 究竟应该发生什么: 如果任何页面被Varnishcaching,则当我们在浏览器中打开同一页面时,后续请求应该从Varnish本身提供,或者我们从不同的IP地址打开该页面。 以下是我的default.vcl文件 backend default { .host = "127.0.0.1"; .port = "80"; } sub vcl_recv { if( req.url ~ "^/search/.*$") { }else { set req.url = regsub(req.url, "\?.*", ""); } if (req.restarts == 0) { if (req.http.x-forwarded-for) { set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip; } else { set req.http.X-Forwarded-For = […]

清除3.0.2到Apache2有时会返回错误503

嘿家伙,我希望你能帮我在这里。 我有一个NgingxparsingHTTP和https清漆caching(3.0.2)。 从清漆发送到apache2。 现在我有一段时间一直在跟踪一些奇怪的503错误。 但我似乎找不到银弹。 目前我通过varnish通过这种方式logging503错误: sudo varnishlog -c -m TxStatus:503 >> /home/rj/varnishlog503.log 然后引用apache访问日志来查看是否处理了503个请求。 今天,我从防火墙的健康检查失败: 20 SessionOpen c 127.0.0.1 34319 :8081 20 ReqStart c 127.0.0.1 34319 607335635 20 RxRequest c HEAD 20 RxURL c /health-check 20 RxProtocol c HTTP/1.0 20 RxHeader c X-Real-IP: 192.168.3.254 20 RxHeader c Host: 192.168.3.189 20 RxHeader c X-Forwarded-For: 192.168.3.254 20 […]

Snort能够高效地demux和logging大的HTTP POST请求吗?

我试图debugging一些失败的HTTP POST请求包含大file upload(〜500 MB)。 最终用户正在接收奇怪的HTTP响应,这些响应没有logging在varnish的varnishncsa工具,varnish的varnish日志工具或任何内部web服务器日志中。 由于我不能重复的问题(这可能是一个ISP的代理的结果)我试图find一些选项logging整个请求(由URL标识),并稍后在开发或登台服务器上重播。 看起来Snort可能是解决这个问题的最好方法,因为它允许我们在传入的数据包被解释(错误)之前logging下来,但是我担心它可能会引入显着的延迟,内存开销或其他不可预见的问题有这么大的要求 我们需要做的所有匹配都将基于URL,因此只有第一个kb左右的数据实际上需要过滤,但是我们需要剩余的请求才能重播。 我在snort文档中查看readme.stream5,这使得这看起来可能和合理,但是文档和现实世界之间的差距可能相当大。 Snort是否适合这个任务? 有什么优化,我可以适用于避免过多的内存,磁盘或处理器的开销? 如果你不相信Snort很适合这个任务,你会build议什么? 服务器安装全球分布在运行最近的Linux设置的无头盒子上,所以任何解决scheme都必须是脚本化的,自动化的,并且能够通过某种方式向我报告它已经捕获了请求。

清漆随机和零星的503错误

编辑1 :我尝试了在我的preprod环境build议没有成功的设置。 由于我可以在另一个环境中重现这个问题,我试图寻找相似之处。 我禁用了logrotate清漆没有积极的结果。 唯一的共同点是cron.hourly。 哪个是空的 这是我在/ var / log / cron中的 Feb 3 14:01:01 SPRX0032 CROND[32006]: (root) CMD (run-parts /etc/cron.hourly) Feb 3 14:01:01 SPRX0032 run-parts(/etc/cron.hourly)[32006]: starting 0anacron Feb 3 14:01:01 SPRX0032 run-parts(/etc/cron.hourly)[32020]: finished 0anacron 在同一时刻,我的探针: 03-02-14_14:01:01 – – – /!\ WARNING /!\|HTTP code 503| website1 SERVER IS DOWN booh! /!\ WARNING /!\ 03-02-14_14:01:01 – […]

清漆+ Nginx + WordPress:使用清漆get的redirect循环

我有两个使用Wordpress和Nginx的网站,并试图把Varnish放在前面,但是当把Nginx的监听端口改为8080时,所有网站都进入redirect循环。 在启用的网站,我有所有不同的主机分开的文件,因此: server { server_name xpto.xyz.com; root /usr/share/nginx/www/xpto.xyz.com; include global/common.conf; include global/wordpress.conf; } 在common.conf中,我已经configuration了要听的端口。 在光油方面,我有以下清漆文件: DAEMON_OPTS="-a :80 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,256m" 而在default.vcl中有: backend default { .host = "127.0.0.1"; .port = "8080"; } # Drop any cookies sent to WordPress. sub vcl_recv { if (!(req.url ~ "wp-(login|admin)")) { […]

清漆4工作configuration(优化)为WordPress(default.vcl)

我已经成功地在我的nginx 1.6.2上设置了清漆4,它正在工作,但根据testing http://www.isvarnishworking.com/ 表明 Varnish看起来是在那个url上响应的,但是Cache-Control头的“max-age”值是小于1的,这意味着Varnish永远不会在这个url上从caching中提供内容。 最大年龄值看起来是:0 这可能是故意的,但是如果你想让Varnishcaching这个URL,你将不得不修复应用程序发送给Varnish的最大年龄值。 这意味着它不工作,但不是预期的,searchconfiguration文件,但由于清漆版本4的巨大变化那些configuration文件不起作用。 请帮帮我吧。 谢谢

NVA:在清漆之前或之后重写?

我正在计划一个NVA服务器系统(Nginx-Varnish-Apache),请求按照这个顺序进行路由。 Apache将服务WordPress CMS或类似的。 我想知道在哪里应用额外的重写规则(如添加自定义重写手动configuration)。 应该重写在Nginx端还是Apache端? 哪个更容易实现,哪个更好? 还是应该重写在光油? 正如我所看到的,所有重写都可以在Apache中完成,因为Varnish将按原样提供这些重写的请求,从而在提供页面之前降低处理(?)的需求。 我是对的,还是在请求页面清除(从Apache获取页面)之前重写呢? 这要求服务器实际检查并对每个请求进行重写。 但是这样所有的重写将是“即时的”,而不需要在Varnish清除caching。 例1: 我有一个WordPress的多站点与子域安装(子站点去foo.domain.com , bar.domain.com , baz.domain.com等)。 多站点根站点应该驻留在www.domain.com ,但实际的内容可以在domain.com (不需要www )。 WordPress本身处理子网站的子域映射(数据库表切换),但是无www到www重写应该手动完成。 在哪里重写呢? 例2: 我在后台有一个特定的模板,有时可能会被重写,有时候不会。 让我们说它的www.domain.com/offer/12345/?available=0 ,有时我们可能要重写URLredirect到一个模板www.domain.com/offers有关不可用的数据。 这个重写会来来去去,取决于网站是否有不可用的报价情况的内容。 在Varnish之前或之后,这种重写会更好吗? (我知道这个redirect应该在网站的内部逻辑中完成以实现自动化,但是为了这个例子,我们假设它应该被服务器自己重写)。

configuration清漆用IP地址写apache错误日志

我正在运行Varnish的Web服务器上安装fail2ban。 许多“监狱”需要访问Apache / PHP错误日志。 我遇到的一个问题是,日志文件中的IP地址的所有引用都是127.0.0.1。 我通过运行以下命令解决了有关access.log的这个问题: varnishncsa -a -w /var/log/varnish/access.log -D -P /var/run/varnishncsa.pid 是否有可能做类似的日志中出现:/var/log/apache/*_error.log? 谢谢

Nginx Varnish 4.0 SSL WordPressconfiguration将mydomain.tldredirect到https://127.0.0.1

我有以下的堆栈: (redirecthttp为https =>)https nginx – > varnish – > nginx http – > php5-fpm 当我打开my.url.com时,我立即redirect到https://127.0.0.1 没有清漆,nginx,ssl,php5-fpm(php 5.5)工作得很好… 我认为它与我的清漆configuration有关,因为几乎相同的堆栈运行不同的CMS(TYPO3 Neos)和不同的清漆configuration就好了…(对于nginx的设置几乎是相同的,只是一些轻微的适应,如静态重写) 我很感激你的想法和反馈! 我的nginxconfiguration: # redirect non-www – http and other domains to www – https server { listen 80; ## listen for ipv4; this line is default and implied server_name domain.com some.other.tld; return 301 https://www.domain.com$request_uri; } # […]

当Nginx是后端服务器时,Varnish一直在收到MISS

我遇到了一个非常奇怪的情况,Varnish直接打到应用程序服务器(Play服务器),但不能与Nginx一起作为Web服务器。 工作:清漆:6081 =>播放:9000 非工作:清漆:6081 => Nginx:80(播放上游的反向代理)=>播放:9000 Nginx的configuration很简单 location / { <% if env !~ /prod/ -%> ssi on; #turn on ssi proxy_set_header Accept-Encoding ""; # turn on the gzip in the request head request to Play, so the gz can be handled on Nginx <% end -%> proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For […]