我试图寻找一个这样的解决scheme,但不能find任何文档/提示我的具体设置。 我的设置: 后端服务器:ngnix:virtualenv中运行gunicorn / python / django的2个不同网站(2个顶级域名)后端服务器硬件(VPS)2gb ram,8个CPU 数据库服务器:postgresql – pg_bouncer 后端服务器硬件(VPS)1GB RAM,8个CPU 清漆服务器:只运行清漆 Varnishserver硬件(VPS)1GB内存,8个CPU 我试图build立一个清漆服务器来处理罕见的stream量高峰(20 000个唯一请求/秒)当电视节目提到其中一个网站时,就会发生峰值。 我需要做些什么,使清漆服务器caching我的后端服务器上的两个网站/域? 我的/etc/varnish/default.vcl: backend django_backend { .host = "local.backendserver.com"; .port = "8080"; } 我的/usr/local/nginx/site-avaible/domain1.com upstream gunicorn_domain1 { server unix:/home/<USER>/.virtualenvs/<DOMAIN1>/<APP1>/run/gunicorn.sock fail_timeout=0; } server { listen 80; listen 8080; server_name domain1.com; rewrite ^ http://www.domains.com$request_uri? permanent; } server { listen 80 default_server; […]
我刚刚从git-repository中克隆了最新的清漆2.1。 网站上列出的所有依赖关系都已安装。 我运行以下命令: ./autogen.sh -> works fine ./configure -> works fine too 但 make -> fails 出现以下错误: make[2]: Entering directory `/tmp/Varnish-Cache-2.1/bin/varnishd' if gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include – DVARNISH_STATE_DIR='"/usr/local/var/varnish"' -g -O2 -MT varnishd-instance.o -MD -MP – MF ".deps/varnishd-instance.Tpo" -c -o varnishd-instance.o `test -f 'instance.c' || echo './'`instance.c; \ then mv -f ".deps/varnishd-instance.Tpo" ".deps/varnishd-instance.Po"; […]
我需要一种方式来衡量不同的文件已被访问多less次,什么时候。 我的设置由几台低容量的服务器组成,分布在全球各地,运行在Nginx之后的Varnish(用于SSL支持)。 没有内容实际存储在服务器上,它从中央存储点加载并caching在光油中长达一个小时。 我需要的是衡量每天访问某个文件的次数。 我想这应该是很容易做的访问日志,但我需要一些方法来将日志数据聚合到一个共同的数据库。 我不知道如何最好地解决这个问题。 如果需要,我可以使用PHP或Python编写聚合器,并且已经考虑在Nginx的FIFO文件或pipe道上使用它,但是不知道如何远程工作。
我有一个大的Wordpress网站(600-900一贯的用户在任何时候)和大约6个月前,我们设置清漆。 我们的configuration使用5GBcaching并存储在内存中。 当场地一下子打到1500-2000人时,Varnish开始扔503错误。 我们曾经将caching存储在磁盘上,但将其移到内存看起来减less了503错误。 我们网站上有3个iFrame,我们在每个页面上使用内嵌式广告刷新。 我注意到在varnishlog中,每次用户点击一个页面时,它会计为4次(实际页面+3个包含广告代码的iframe)。 这意味着网站上的1500个用户实际上相当于6000个清漆命中(如果他们没有错过)。 这是否重要,因为除了广告代码,iFrame页面上基本上没有任何内容? 或者可以大量的点击清漆导致性能问题? 如果这可能导致Varnish从太多的请求中崩溃,我可能会考虑告诉它停止cachingiFrame的URL,但是我担心所有的命中我将采取的Apache … 谢谢!
我试图从cache_access.log中了解这个服务器日志行。 每个领域代表什么,特别是为什么列出三个IP,每个代表什么? [HIT – – – -] 1.1.1.0, 1.1.1.2 (1.1.1.3) – – [25/Apr/2014:00:30:02 +0000] "GET /page/content HTTP/1.1" 200 1721 "http://www.url.com/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36"
为了避免为每个子域设置一个备份,我为每个域名指定了一个通用的正则expression式string,如下所示: backend domain1 { .host = "10.10.10.5"; .port = "80"; } backend domain2 { .host = "10.10.10.6"; .port = "80"; } sub vcl_recv { if (req.http.host ~ "^(.*\.)?domain1\.com$") { set req.backend = domain1; } if (req.http.host ~ "^(.*\.)?domain2\.com$") { set req.backend = domain2; } } 然而,当我尝试访问domain2.com时,Varnish将始终在第一个子域(sub1.domain1.com)上显示该网站。 domain1.com下的所有子域均按预期加载。 我是否缺less一些参数?
任何人都可以build议一个VCL confredirect(局域网和局域网内的DNS)以获得多个命名的主机? 即http://x.ourdomain.com =清漆服务器的IP =redirect到LAN主机(即10.0.5.1) http://y.ourdomain.com =清漆服务器的IP =redirect到LAN主机(即10.0.5.5 )等 我已经在清漆5个小时,我的大脑已经死了一小部分。
昨天我在CentOS 6 32位VPS服务器上安装了varnish和memcached作为我的magento商店,当我去www.my-website.com或http://my-website.com工作,但是当我inputfirefox “my-website.com”我有 错误503服务不可用 暂停服务 上师冥想: XID:1512050071 我试图redirect,但没有效果 if (req.url ~ "http://my-website.com") { error 750 "http://www." + req.http.host + "my-website\.com"; } if (req.url ~ "^my-website.com") { error 750 "http://www." + req.http.host + "my-website\.com"; } /////////// 好的,我find了解决办法。 我用后台default.vcl中的服务器ipreplace了localhost
我写了一个帮助程序来debugging清漆安装,并在生产和开发服务器上使用它。 奇怪的是,即使设置几乎相同(硬件除外),我遇到了不同的行为。 该命令是: varnishlog > /var/log/v1.log & curl -I $URL; kill $! 在我们的生产服务器上,它按预期工作: varnishlog作为后台进程启动,并将其输出redirect到/var/log/v1.log – 然后执行curl ,当varnishlog被终止时(尽pipe我没有看到'terminate'消息,直到下一个命令被执行)。 在我们的开发服务器上,命令执行并在crul输出后crul显示“终止”消息。 但是,/ /var/log/v1.log是空的。 这两个服务器uname -srvmo返回Linux 2.6.32-358.18.1.el6.x86_64 #1 SMP Wed Aug 28 17:19:38 UTC 2013 x86_64 GNU/Linux和两个正在运行的CentOS release 6.4 (Final) 。 编辑 :看来varnishlog > /var/log/v1.log不起作用。 varnishlog > /var/log/v1.log 2>&1或varnishlog | tee /var/log/v1.log varnishlog | tee /var/log/v1.log (后者不会将产品输出到控制台)。 其他命令(例如echo 'test' […]
我试图编辑default.vcl文件,以获得真正的客户端IP地址显示在我的WordPress的。 我发现这个在线,我读了很多页面,但没有使这项工作。 我正在使用varnish-4.0.1修订版4354e5e。 我把这个添加到VCL文件中, sub vcl_recv { remove req.http.X-Forwarded-For; if (req.http.cf-connecting-ip) { set req.http.X-Forwarded-For = req.http.cf-connecting-ip; } else { set req.http.X-Forwarded-For = client.ip; } } 但是,此后,清漆服务无法启动。 当我回到默认的VCL文件时,一切又恢复正常了。 任何人都可以请帮我做这个工作? 我也使用Cloudflare btw。