使用Nginx来让Varnish支持HTTP/2

越来越多的公司开始使用HTTP/2来提高他们网站的性能以及用户体验. 开启HTTP/2的方法很简单,但是如何开启在HTTP/2与SSL 当你使用Varnish? 正如我们所了解的,Varnish 4.*不支持SSL, 我们需要找到一个方法来让这些组件协同工作. HTTP/2 正如你所设想的, 互联网进步我们终于有了新版本的HTTP协议, 它主要的有点是: -流与复用: 一个HTTP/2连接可以包含多个同时打开的流。请求的多路是由具有用它自己的流相关联的每个HTTP请求/响应交换实现的。流基本上是相互独立的,因此阻塞或失速请求或响应不会阻止上其他流的进展。 -报头压缩: 在HTTP / 1.1中 Continue Reading

WordPress Multi User(WPMU) 404页面跳转BUG修复

在不接受注册的WordPress Multi User(WPMU)中在wp-config.php设置NOBLOGREDIRECT开启访问不存在的BLOG地址的时候进行跳转. #跳转到主BLOG define( ‘NOBLOGREDIRECT’, ‘%siteurl%’ ); #跳转到指定URL define( ‘NOBLOGREDIRECT’, ‘http://www.example.com’ );   当开启NOBLOGREDIRECT之后WPMU会出现所有站点的BLOG的404页面条船出错(跳转到NOBLOGREDIRECT置顶的地址) 根据官方给出的文档,修复的方法是,在WPM Continue Reading

Varnish4 按照域名选择后端服务器

在varnish使用中会涉及代理多个后端域名(或网站)的情况,可通过判断请求的URL来设置对应backend即可解决问题。 以varnish官方文档中例子说明(https://www.varnish-cache.org/docs/trunk/reference/vcl.html#examples): #后端服务器www backend www { .host = “www.example.com”; .port = “80”; } #后端服务器images backend images { .host = “images.example.com”; .port = “80”; } sub vc Continue Reading

Nginx让带www的域名跳转到根域名上和让不带www的根域名跳转到带www的域名上

在Nginx下有许多让带www域名跳转到不带www的根域名上或者让不带www跳转到www的域名上的方法 下面说一下我正在用的方法,希望对各位能有所帮助.   重定向非www域名到www上 单域名 server { server_name example.com; return 301 $scheme://www.example.com$request_uri; } 全部域名 server { server_name “~^(?!www\.).*” ; return 301 $scheme://www.$host$request_uri; }   重定向www域名到根域名上 Continue Reading

使用Munin来监控Nginx

前言: Munin是一款很高效的监控工具,拥有大量的插件. 对于Nginx来言,监控需要一点点的设置. 这一篇小轿车的目的就是手把手的来教你使用Munin来监控nginx请求数和状态. 本文中所有的操作都在Centos 7.1下完成, 理论上其他的发行版本也可以套用(或许需要一点点的修改)   正文: 首先,确定你的Nginx有http_stub_status_module模块. 执行nginx -V [root@jp02 ~]# nginx -V nginx version: nginx/1.11.3 built by gcc 4.8.5 20150623 (Red Hat 4.8 Continue Reading

Nginx报错sched_setaffinity() failed

最近升级了VPS, 在启动Nginx之后发现nginx_error.log不为空出现sched_setaffinity() 的错误: 2016/08/14 15:47:39 [alert] 9443#0: sched_setaffinity() failed (22: Invalid argument) Google之后发现,是worker_cpu_affinity指令设置错误导致的问题. worker_cpu_affinity命令是设置Nginx进程与CPU进行绑定的.可以充分的利用多核/线程的性能 双核机器根据互联网上的说明设置如下, worker_processes 2; worker_ Continue Reading

WP-Rocket + Vanrish 4 使用的自定义PURGE规则 (一)

最近把Blog的前端放到了阿里云香港B,为了更好的缓存和试验新的架构选用了很出名的Varnish来替换掉Nginx作为前端缓存服务器使用. 因为使用的是自定义的一个VCL文件,导致PURGE规则和Blog正在使用的缓存插件WP-Rocket不兼容,使用WP-Rocket插件内部自带的Varnish模块不能清理文章,清理缓存只对首页有效. 在查看了Varnish的日志之后发现,WP-Rocket发送的全局清理的参数类似于 http://example.com/*. 或者 http://example.com/page/.* 但是我的Varnish并没有配置支持Ban方法和支持正则表达式.为了能够 Continue Reading