11条nginx优化方法助力你的运维生涯

11条nginx优化方法助力你的运维生涯插图

隐藏nginx header里版本号信息

1.查看版本号

11条nginx优化方法助力你的运维生涯插图(1)

2.隐藏版本号

在nginx配置文件的http标签内加入“server_tokens off; ”参数,也可以放大server标签和location标签中,如下:

11条nginx优化方法助力你的运维生涯插图(2)

再此查看如下,浏览器访问错误页面也就没有版本号了

11条nginx优化方法助力你的运维生涯插图(3)

更改源码隐藏软件名称及版本号

在nginx编译安装之前,先更改,之后再编译安装

1.更改版本号

修改nginx-1.3.4/src/core/nginx.h

11条nginx优化方法助力你的运维生涯插图(4)

修改后查看header结果:

11条nginx优化方法助力你的运维生涯插图(5)

2.改nginx-1.6.12/src/http/ngx_http_header_filter_module.c

需要修改的字符串

11条nginx优化方法助力你的运维生涯插图(6)

修改后的字符串

11条nginx优化方法助力你的运维生涯插图(7)

3.修改ngx_http_special_response.c

11条nginx优化方法助力你的运维生涯插图(8)11条nginx优化方法助力你的运维生涯插图(9)

修改为:

11条nginx优化方法助力你的运维生涯插图(10)11条nginx优化方法助力你的运维生涯插图(11)

更改掉nginx默认用户及用户组(worker进程服务用户优化)

1.查看默认配置如下:

默认情况下,nginx服务启动,使用的用户和组默认都是nobody,

11条nginx优化方法助力你的运维生涯插图(12)11条nginx优化方法助力你的运维生涯插图(13)

将web用户改为特殊的用户名如:nginx或更特殊点的dabaojian,但是这个用户必须是系统存在的。

2.建立nginx用户

11条nginx优化方法助力你的运维生涯插图(14)11条nginx优化方法助力你的运维生涯插图(15)

3.配置文件nginx.conf中修改(也可以编译安装时指定默认)

在配置文件最外层上面

11条nginx优化方法助力你的运维生涯插图(16)11条nginx优化方法助力你的运维生涯插图(17)

4.让woker进程使用普通用户运行
为master服务降权:使用非root跑nginx master

11条nginx优化方法助力你的运维生涯插图(18)11条nginx优化方法助力你的运维生涯插图(19)

注意:不能用80特权端口 ,前端nginx反向代理转端口

11条nginx优化方法助力你的运维生涯插图(20)11条nginx优化方法助力你的运维生涯插图(21)

配置nginx worker进程个数

nginx由master和worker进程组成,master进程相当于管理员,worker进程为用户提供服务

一般设置为cpu核数或则核数x2,用top按1查看

修改nginx.conf配置文件第一行

11条nginx优化方法助力你的运维生涯插图(22)11条nginx优化方法助力你的运维生涯插图(23)

根据cpu核数进行nginx进程优化

把几个进程分配在一个cup上,cup亲和力

1.不同cpu设置如下

四核cpu配置:

11条nginx优化方法助力你的运维生涯插图(24)11条nginx优化方法助力你的运维生涯插图(25)

八核cpu服务器参数配置:

11条nginx优化方法助力你的运维生涯插图(26)11条nginx优化方法助力你的运维生涯插图(27)

2.官方文档说明

11条nginx优化方法助力你的运维生涯插图(28)11条nginx优化方法助力你的运维生涯插图(29)

nginx事件处理模型优化

nginx的连接处理机制在不同的操作系统上采用不用的IO模型,在linux下,nginx使用epoll的IO多路复用模型,在freebsd使用kqueue的IO多路复用模型,在solaris使用/dev/pool方式的IO多路复用模型,在windows使用的icop等等。

根据系统类型不同选择不同的事务处理模型,选择有“use [ kqueue | rtsig |epool |dev/pool |select |pllo ];”我们使用的是Centos6.5的linux,因此将nginx的事件处理模型调整为epool模型。

具体参数如下在优化4下边挨着:

11条nginx优化方法助力你的运维生涯插图(30)11条nginx优化方法助力你的运维生涯插图(31)

调整nginx worker单个进程允许的客户端最大连接数

这个值根据服务器性能和程序的内存来指定(一个进程启动使用的内存根据程序确定)

11条nginx优化方法助力你的运维生涯插图(32)11条nginx优化方法助力你的运维生涯插图(33)

这个参数是单个进程的最大链接数,实际最大链接数是worker技能书乘以这个数。

Max_client=worker_processes*worker_connections

配置nginx worker进程最大打开文件数

11条nginx优化方法助力你的运维生涯插图(34)11条nginx优化方法助力你的运维生涯插图(35)

相当于系统ulimit -HSn,应该是总的。

理念:配置参数不是越大越好,最好设为服务器承受的极限点。

开启高效的文件传输模

在http字段设置

11条nginx优化方法助力你的运维生涯插图(36)11条nginx优化方法助力你的运维生涯插图(37)

tcp_nopush参数可以允许把http response header和文件的开始放在一个文件里发布,积极的作用是减少网络报文段的数量。

设置连接超时时间

保护服务器资源,硬件CPU mem,连接数。

建立连接也是要消耗资源的,我们一般断掉那些连上的链接,但是不做事的

php网站建议短连接,PHP程序建立连接消耗的资源和时间要少。

JAVA网站建议长连接,JAVA程序建立连接消耗的资源和时间要多。

在http字段设置

11条nginx优化方法助力你的运维生涯插图(38)11条nginx优化方法助力你的运维生涯插图(39)

上传文件大小限制(动态应用)

11条nginx优化方法助力你的运维生涯插图(40)

原文来自——微信公众号(马哥Linux教育)

本文链接:http://www.yunweipai.com/11467.html

(完)