Articles of varnish

我可以在我的Varnish服务器上使用iptables将HTTPSstream量转发到特定的服务器吗?

我们使用Varnish作为我们的前端Webcaching和负载均衡器,所以我们在我们的开发环境中有一个Linux服务器,在一对Windows 2008 IIS Web服务器上运行Varnish,其中包含一些基本的caching和负载均衡规则。 我们有一个通用的DNS规则,指向这个Varnish框的* .development,所以我们可以浏览http://www.mysite.com.development,http ://www.othersite.com.development等。问题是由于Varnish无法处理HTTPSstream量,因此无法访问https://www.mysite.com.development/ 对于开发/testing,我们不需要任何加速或负载平衡 – 我所需要的就是告诉这个盒子作为一个哑代理,并将端口443上的任何传入请求转发到特定的IIS服务器。 我怀疑iptables可能会提供一个解决scheme,但是我写了一个iptables规则已经很久了。 一些最初的黑客已经让我尽可能的 iptables -F iptables -A INPUT -p tcp -m tcp –sport 443 -j ACCEPT iptables -A OUTPUT -p tcp -m tcp –dport 443 -j ACCEPT iptables -t nat -A PREROUTING -p tcp –dport 443 -j DNAT –to 10.0.0.241:443 iptables -t nat -A POSTROUTING -p […]

设置一个共享的Varnish服务器

经过设置和configurationVarnish Cache来处理单个站点的caching,我正在研究扩展服务以涵盖跨多个Web服务器运行的多个站点,每个站点依次使用NameVirtualHost运行多个虚拟主机。 这是我想要做的一个粗略的图表。 任何人都可以build议如何做到这一点,以及如何确保Varnish路由请求到正确的后端,因为我有问题试图让Varnish根据传入的URL处理多个后端,但我认为我把VCL设置错了,领先以各种激动人心的问题。 请注意,我不想使用Varnish在服务器之间进行负载平衡 。 这可能会晚一些,否则我可能会将一个负载均衡器粘贴在一个varnish实例集群的前面。 解决了 这是我最终使用的VCL。 这有点长,也很费力,如果有人有对优化方法的build议,我会很感激。 # Varnish – Shared caching cluster # backend live { .host = "sharedserver1.example.com"; .port = "80"; } backend staging { .host = "sharedserver2.example.com"; .port = "80"; } acl purge { "localhost"; "127.0.0.1"; } sub vcl_recv { # If it's NOT a dev site or something […]

nginx + php-fpm + varnish + ssl

我有一个社交网站,因此我们想要一直运行ssl。 这是否破坏了使用任何types的caching系统甚至静态内容的目的,因为一切都将ssl? 即使它是ssl,nginx是否仍然可以caching? 现在我有在Apache前面的nginx,但它所做的是通过端口80发送dynamic请求到Apache 编辑:基本上我想要做的是find最好的方式来采取大量的请求,因为我们正在获得大量的stream量,并希望确保我们保持性能。

使用php5-fpm,Nginx,APC,Mysql进行内存调整

我用php5-fpm,Nginx,APC和Varnish使用magento。 当有清漆时,加载时间非常好。 但在清漆小姐,该网站需要toomuch时间加载。 我已经通过htop看到,CPU承受了大量的负载,Ram和swap已经满了。 我有一个512MB RAM的core2duo。 我认为应该有一些内存问题。 请告诉我如何configurationphp5-fpm,nginx,APC,Mysql的不同参数。

caching:在多个网站环境中的Nginx上varnish vs fastcgi_cache

我有一个VPS与几个网站的设置。 一些网站是WP网站,其中一些是其他dynamic网站。 我有兴趣添加一种反向代理/caching层。 不过,我不想caching所有的网站… 我看到很多人推荐使用清漆。 我在Varnish中发现的问题是需要80端口并caching所有内容。 当我正在寻找解决scheme或避免caching某些网站的方法时,我发现fastcgi_cache。 显然,你可以直接通过Nginxcaching到文件中,然后静态地提供服务。 我也看到了一些可以从Nginxcaching到memcached的地方,但是我现在还不知道。 无论如何,这里是我的select:1.使用Varnish,并以某种方式调整configuration文件传递基于域名的请求。 2.在Nginx上使用fastcgi_cache。 3.使用三明治。 让Nginx监听端口80,为静态文件提供服务,并将所有php文件发送到另一个端口上的Varnish,并将所有未caching的用户传递给另一个Nginx实例。 你觉得我应该怎么做? 谢谢。

(仅)用于DDoS缓解(重复)

我的VPS遭受(D)DoS与欺骗IP进行SYN洪水的困扰。 我现在正在寻找如何能够防御(至less一点)的方法。 它运行一个DirectAdmin apache2networking服务器。 主要用于服务PHP和MySQL。 我们正在使用CloudFlare,这是说,他们能够缓解(D)在一定程度上的DoS,现在攻击者知道我们的真实IP地址,所以CloudFlare没有一点帮助。 我在网上做了一些search,发现了启用SYN cookies来防御它。 我检查了我的设置,似乎一直启用。 我也读过关于Varnish能够防御SYN泛滥和Slowloris攻击的报道,现在我对使用它非常感兴趣。 问题是CloudFlare已经从我们这里caching了很多,我不希望在光油上花费太多的资源。 仅仅为了更好地处理请求而设置清漆是否可行和明智? 有没有更好的方法,我已经错过了? 在此先感谢,马丁

httpd虚拟主机configuration(含光油) – 1个服务器/多个域

我一直在阅读有关这个​​主题的多个问题,但我似乎无法得到它的工作… 我有一台运行CentOS的服务器,HTTPD在默认的httpd root下运行1个网站: Listen 8080 DocumentRoot "/var/www/html" <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory>` 我也运行Varnish:Varnish正在侦听端口80,并将请求转发到正在侦听端口8080的httpd 现在我想在这台服务器上运行第二个域,所以我在/ etc / httpd / conf /下面添加了一个.conf文件,内容如下: <VirtualHost *:8080> ServerAdmin root@localhost DocumentRoot /var/www/vhosts/domainx.be ServerName domainx.be ErrorLog logs/domainx-error_log CustomLog logs/domainx-access_log common </VirtualHost> 当我应用以上时,所有stream量(包括根域的stream量)都被路由到domainx。 当我将vhost的端口改为80时,domainx会被转发到根主机。 这是我第一次没有像安装Webmin的Plesk这样做,所以我不知道从哪里去这里….

增量子域名暴力强制?

目前正在寻找坐落在AWS ELB后面的小型清漆/ nginxnetworking服务器组。 最近主域的监控把大量命中到不存在的子域地址。 在进一步检查清漆日志时,它揭示了一些IP运行的python代理,试图通过没有单词列表来增量地强行加载子域。 Atm它没有超过4个字符,即。 aaaa.primarydomain.com和。 目前在fau9.primarydomain.com 404的速度和服务造成了一个小的麻烦,所以在设置了一定的门槛和阻断之后,以及联系滥用的部门进行检测。 到目前为止,大约有10个IP都是通过btcentralplus.com进来的,后来被封锁了。 它似乎来自一个业余的僵尸networking,对IP的调查揭示了与英国家庭和小型商业networking的一致性。 更重要的是动机,对于这样的攻击我感到目瞪口呆。 对于初学者来说,没有什么可以通过这个获得,即使有明显的迹象,试图增加域名列表的力量似乎超越了愚蠢? 这不是绝对的威慑。 我们提出的唯一build议是脚本 – 小孩失败,一个奇怪的蠕虫试图上帝知道什么或某种假的stream量生成? btcentralplus是唯一的常见variables,似乎在处理滥用投诉方面毫无用处。 如果他们试图在Web服务器日志中抽出反向DNS条目,例如可能会公开的? 但即使如此,似乎离奇。

在Docker中清理4.1 segfault

我正在尝试使用Docker(1.9.1)的Varnish 4.1。 我使用musl-libc在Alpine Linux 3.2中构build了一个docker镜像,以减less镜像大小。 Dockerfile: FROM alpine:3.2 ​ RUN echo 'http://dl-4.alpinelinux.org/alpine/v3.3/main' >> /etc/apk/repositories && \ apk update && apk upgrade -U -a && \ apk add –update varnish \ && rm -rf /var/cache/apk/* Add Comment 当我尝试在容器内部运行时,有时会出现段错误,但有时候我不会: # varnishd -F -W epoll -f /etc/varnish/default.vcl child (4081) Started Pushing vcls failed: CLI communication error (hdr) Stopping […]

Gzip与反向代理caching

我在Ruby on Rails上运行了大多数静态站点,它使用Varnish反向代理caching来保存命中Rails后端。 问题是,用户可以login到网站,当他们这样做,我们使用ESI(边缘包括)来显示用户特定的页面部分。 使用ESI意味着我们必须在Rails后端禁用Gzip压缩(使用Nginx + passenger),否则varnish不能parsing从后端返回的数据以运行ESI处理。 我的问题是,使用反向代理caching的好处是否超过了gzip所有内容的好处? 还是应该尝试摆脱ESI完整,并有两全其美?