使用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

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

在Nginx下有许多让带www域名跳转到不带www的根域名上或者让不带www跳转到www的域名上的方法 下面说一下我正在用的方法,希望对各位能有所帮助.   重定向非www域名到www上 单域名 全部域名   重定向www域名到根域名上 单域名 全部域名   我们创建单独的 Server{} 块是Nginx官方推荐的最佳方法来实现跳转. 虽然WordPress下也有插件能在PHP级别上做到跳转,但是出于性能考虑,总是让Nginx来做Nginx可以做到的事.

使用Munin来监控Nginx

前言: Munin是一款很高效的监控工具,拥有大量的插件. 对于Nginx来言,监控需要一点点的设置. 这一篇小轿车的目的就是手把手的来教你使用Munin来监控nginx请求数和状态. 本文中所有的操作都在Centos 7.1下完成, 理论上其他的发行版本也可以套用(或许需要一点点的修改)   正文: 首先,确定你的Nginx有http_stub_status_module模块. 执行nginx -V 如果你在输出中没有找到–with-http_stub_status_module那你或许需要重新编译你的Nginx,或者安装Epel源中的版本   现在,增加ng Continue Reading

Nginx报错sched_setaffinity() failed

最近升级了VPS, 在启动Nginx之后发现nginx_error.log不为空出现sched_setaffinity() 的错误: Google之后发现,是worker_cpu_affinity指令设置错误导致的问题. worker_cpu_affinity命令是设置Nginx进程与CPU进行绑定的.可以充分的利用多核/线程的性能 双核机器根据互联网上的说明设置如下,   根据测试,worker_cpu_affinity设置为01 10会出现报错. 正确设置   修改nginx.conf之后重启nginx就没有报错了.

Nginx全局变量释义

$args 此变量与请求行中的参数相等 $content_length 等于请求行的“Content_Length”的值。 $content_type 等同与请求头部的”Content_Type”的值 $document_root 等同于当前请求的root指令指定的值 $document_uri 与$uri一样 $host 与请求头部中“Host”行指定的值或是request到达的server的名字(没有Host行)一样 $limit_rate 允许限制的连接速率 $request_method 等同于request的method,通常是“GET”或“POST” $remote_addr 客户 Continue Reading

Nginx+iptables屏蔽访问Web页面过于频繁的IP(防DDOS,恶意访问,采集器)

通过分析nginx的日志来过滤出访问过于频繁的IP地址,然后添加到nginx的blockip.conf,并重启nginx 脚本如下: 也可以通过分析nginx日志过滤出频繁访问IP,直接用iptables屏蔽这个IP,就用不着重启nginx了,并且屏蔽效果更好。 单个IP的命令是 封IP段的命令是 封整个段的命令是 封几个段的命令是 刚才不小心搞的自己都连不上了-_-!!! 以后用这种只封80端口就行了,不会出问题! 解封 清空