上节我们说了Apache的Web服务安全与优化。分别说了进程优化,版本号的隐藏,会话连接的时间,DNS查询。我们只要掌握这些优化点就够了,大家不要一味追求求精,什么都有个度的,你弄的太过了,相应他别的方面也就会不行了,所以我们优化的标准是找一个折衷点,是最好的!接下来我们说下nginx的web服务的安全优化。
Nginx的安全优化原理跟Apache大致一样的,有一些细微的差别,和更改参数的地方不同而已!
Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是Nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。
Nginx的模块从结构上分为核心模块、基础模块和第三方模块:
核心模块:HTTP模块、EVENT模块和MAIL模块
基础模块:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块,
第三方模块:HTTP Upstream Request Hash模块、Notice模块和HTTP Access Key模块。
一配置文件优化
1. 隐藏nginx的header里版本号信息 server_tokensoff;
nginx默认用户是nobody,编译的时候更改为nginx.(注意:这步在我们编译安装的时候已经做了)
3. 配置Nginx的worker的进程个数
这个开始根据CPU个数来做参考,随后根据业务设定。
worker_processes 5;修改此
4. 根据cpu核数进行优化nginx进程
worker_cpu_affinity0001 0010 0100 1000; 这个是四核cpu优化
5. nginx事件处理模型优化
events {
worker_connections 1024;
use epoll;
}
6. 调整nginx单个进程允许连接最大客户数
worker_connections 20480;已经不小了
7.设置连接超时时间
keepalive_timeout 60;
配置nginx gzip压缩功能###优化重点###
http {
server_tokens off;
gzip on;
gzip_min_length 1k;
gzip_http_version 1.1;
gzip_buffers 4 32k;
gzip_comp_level 9;
gzip_types application/javascript text/css text/xml;
gzip_vary on;
注意:gzip_types对应的文件类型在安装目录下的mime.type 文件
缓存expires 优化
expirse是指当客户访问网站的时候,文件在客户端存放多久。这个是服务器决定的,就是通过他实现的
在nginx里配置就是放在location里
expires 30d;
Nginx的优化我们掌握以上就可以了,在生产中,我们可以根据自己的实际需求来配置各个优化点的参数。是不是很简单啊!童鞋们我们一定要相信自己,如果你不相信自己,你就会觉得他很难!相信自己就不难啦!不是嘛!