我想设置ACL(python脚本或任何现成的与Centos兼容的scipt)和限制所有IP地址的访问频率。 例如爬虫,机器人(除谷歌和僵尸机器人)。 识别出IP地址后,脚本应自动将这些IP地址添加到IPTABLES中,以便它们不能访问站点。 我有以下应用程序添加到我的Centos操作系统 Apache 2.x MySQL 5.2 漆 内存caching APC 我想脚本应该满足我们的要求,即: 阻止抓取工具/ Google&bit之外的用户打太多服务器。 不要阻止白名单列出的IP地址/ IP地区。 确保它可以用于商业目的。 它不会进一步影响性能。 请告知什么是最好的解决scheme。
我想import std; 并做一些std.syslog 。 但是,当我重新启动清漆时,VCC编译器将失败: $ sudo service varnish restart * Stopping HTTP accelerator varnishd [ OK ] * Starting HTTP accelerator varnishd [fail] SMA.s0: max size 2048 MB. Message from VCC-compiler: Could not load module std /usr/lib/varnish/vmods/libvmod_std.so /usr/lib/varnish/vmods/libvmod_std.so: cannot open shared object file: No such file or directory ('input' Line 15 Pos 8) import […]
寻找理想的设置,包括nginx作为我们的顶层负载均衡器,负载分布在多个Varnish实例中。 什么是分配这个负载的最佳方式? 一种方法是简单地在实例之间均匀分配,另一种方式是根据请求URL模式分配负载。 有这个最好的做法吗? 另外 – 我们需要手动(从后端)清除caching中的特定项目。 要做到这一点,最简单的方法是向我们的每个Varnish实例发出一个小的HTTP“PURGE”请求。
我正在使用Nginx,FastCGI,APC,Memcache和Varnish来运行MediaWiki安装。 我有一些问题,最近的更改显示为来自127.0.0.1的匿名用户。 我怀疑问题是,Varnish没有正确地将用户IP传递给Nginx,但是我在vcl_recv中有这个function: # Set client IP 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 = client.ip; } 任何人都可以告诉我什么,我可能需要validation,可能会导致这个问题? 因为我不知所措
我试图找出如何强制WWW在清漆只有一个领域。 我看到这个答案,以消除WWW,但我不知道如何翻译它来强制它。 编辑:澄清,我的nginxconfiguration工作正常。 直到我添加清漆之后,才发生这种情况。 我find了罪魁祸首,回答了我自己的问题。
我有一个13.04 Ubuntu服务器与两个关联的IP地址。 比方说,例如,IP是123.456.789.111和123.456.789.222 ,服务器有两个域,比如example1.com和example2.com 。 我目前有Apache的服务example2.com,我有example1.com由Varnish> Nginx服务 。 除了example1.com实际上是由Apache服务的,尽pipe所有的设置显示它应该由nginx服务。 在DNS example1.com指向123.456.789.111和example2.com指向123.456.789.222 。 在 /etc/apache2/ports.conf 我已经设置为: NameVirtualHost 123.456.789.222:80 Listen 80 所以指向这个域的任何域都应该被Apache服务,这就是发生了什么事情。 在 /etc/default/varnish 我已经设置为: DAEMON_OPTS="-a 123.456.789.111:80 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,256m" 因此,指向该域的任何网站都应该被Varnish拾起。 然后在: /etc/varnish/default.vcl 我已经设置为: backend default { .host = "127.0.0.1"; .port = "8080"; } 从varnish到nginx的所有内容, /etc/nginx/sites-available/example1.com root /var/www/example1.com/public/ […]
下面是我经过大量阅读和引用后构build的default.vcl,varnishconfiguration文件: backend default { .host = "127.0.0.1"; .port = "8080"; } acl purge { "localhost"; } # Called when a request is received sub vcl_recv { if (req.request == "BAN") { if(!client.ip ~ purge) { error 405 "Not allowed."; } ban("req.url ~ "+req.url+" && req.http.host == "+req.http.host); error 200 "Banned."; } if (req.request != "GET" […]
我想设置Varnish作为Apache的反向代理caching。 如何设置Varnish以使Varnish能够提供所有静态数据(jpeg,jpg,png,gif,ico,js,css,txt,pdf,gz,zip,lzma,bz2,tgz,tbz,webp,html,htm)和一个dynamic的页面应该交给Apache) 到目前为止,我所看到的唯一build议是将所有静态内容放在不同的位置(如子域)与dynamic内容的一些变化。 这似乎很奇怪,甚至是荒谬的。 无论如何,这不是一个真正的select。 会有这样的帮助吗? if (req.url ~ “\.(jpeg|jpg|png|gif|ico|webp|js|css|txt|pdf|gz|zip|lzma|bz2|tgz|tbz|html|htm)$”) { return (lookup); } else { return (pass); }
好吧,这就是我想要完成的一切。 返回地面我有多个IIS Web服务器,每个都运行多个Web站点,每个站点都有自己的IP地址。 每个IIS“网站”通过编程和主机头来运行数百个网站。 我想插入一个反向代理服务器,我有每个Web服务器。 这是我想要反向代理服务器接受给定IP地址(1.2.3.4)上的所有stream量,并将stream量传递给IIS站点(1.2.3.104) – 这可以在nginx或varnish中完成。 反向代理将有大约10个定义的监听IP地址(1.2.3.4 – 1.2.3.14),每个转发stream量到自己相应的IIS站点(1.2.3.104 – 1.2.3.114)。 它不是一个负载平衡,我们具体是路由IP到具体的IP。 我认为这是可能的nginx或清漆。 现在有趣的部分我想创build一个新的备份 IIS服务器,这将有网站,在这个例子中有IP地址1.2.3.204 – 1.2.3.214)。 我想手动故障转移到这个备份服务器的stream量。 我最终将configuration所有的IIS服务器使用这个备份服务器,我将用它来在我的Web服务器上运行更新,这就是为什么我只想用它作为手动故障切换服务器。 我知道我看到某处有一个“命令行”来故障转移到备份服务器,但是我找不到它是什么产品,但我认为它是nginx。 我不需要caching任何东西,因为我们在IIS中caching对象,这就是为什么我需要专门发送从1.2.3.4到1.2.3.104和1.2.3.5到1.2.3.105等的stream量
我是新的与清漆工作。 我安装了它,我认为我configuration正确。 为了testing这是我做了什么: 我创build了一个只有string“testing”的testing页面。 我去了页面,它有这些标题: Accept-Ranges:bytes Age:0 Cache-Control:max-age=120 Connection:keep-alive Content-Length:6 Content-Type:text/html; charset=UTF-8 Date:Tue, 12 May 2015 19:35:34 GMT Expires:Tue, 12 May 2015 19:37:34 GMT Server:Apache/2.2.15 (CentOS) Via:1.1 varnish-v4 X-Powered-By:PHP/5.3.3 X-Varnish:32829 我将文件中的文本更改为“test2”我去了页面,它显示“test2”。 我相信它应该显示“testing”,如果它正确caching。 我没有设置cookies或任何东西,只是。 我的vcl很简单: vcl 4.0; # Default backend definition. Set this to point to your content server. backend default { .host = "127.0.0.1"; .port […]