上节我们说了ApacheWeb服务安全与优化。分别说了进程优化,版本号的隐藏,会话连接的时间,DNS查询。我们只要掌握这些优化点就够了,大家不要一味追求求精,什么都有个度的,你弄的太过了,相应他别的方面也就会不行了,所以我们优化的标准是找一个折衷点,是最好的!接下来我们说下nginxweb服务的安全优化。

Nginx的安全优化原理跟Apache大致一样的,有一些细微的差别,和更改参数的地方不同而已!

在说优化nginx之前我们先了解下他的结构:w_0021.gif

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模块。

 w_0012.gif

一配置文件优化

1.     隐藏nginxheader里版本号信息 server_tokensoff;

wKioL1bpABaDpNmRAAAspVnY1Ck977.pngwKiom1bo_5vzMNaMAAAqT-9qxBE125.png2.     更改nginx的默认用户和组w_0017.gif

nginx默认用户是nobody,编译的时候更改为nginx.(注意:这步在我们编译安装的时候已经做了)

3.     配置Nginxworker的进程个数

这个开始根据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;已经不小了

wKiom1bo_-zgYnzEAACzKpiV3MY754.png

7.设置连接超时时间

keepalive_timeout 60;

8.配置nginx gzip压缩功能w_0039.gif

配置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 文件

wKiom1bpACbAZMwFAAA7rTkPrko080.png

10.配置Nginx expires缓存功能w_0022.gif

缓存expires 优化

expirse是指当客户访问网站的时候,文件在客户端存放多久。这个是服务器决定的,就是通过他实现的

nginx里配置就是放在location

expires  30d;

wKioL1bpANnC710LAAA4n25-bhw363.png

Nginx的优化我们掌握以上就可以了,在生产中,我们可以根据自己的实际需求来配置各个优化点的参数。是不是很简单啊!童鞋们我们一定要相信自己,如果你不相信自己,你就会觉得他很难!相信自己就不难啦!不是嘛!w_0014.gif