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

社区广播:运维派(Yunweipai.com)是国内最早成立的IT运维社区,欢迎大家投稿,让运维人不再孤寂的成长!

隐藏nginx header里版本号信息

1.查看版本号

2.隐藏版本号

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

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

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

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

1.更改版本号

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

修改后查看header结果:

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

需要修改的字符串

修改后的字符串

3.修改ngx_http_special_response.c

修改为:

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

1.查看默认配置如下:

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

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

2.建立nginx用户

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

在配置文件最外层上面

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

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

配置nginx worker进程个数

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

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

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

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

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

1.不同cpu设置如下

四核cpu配置:

八核cpu服务器参数配置:

2.官方文档说明

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下边挨着:

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

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

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

Max_client=worker_processes*worker_connections

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

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

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

开启高效的文件传输模

在http字段设置

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

设置连接超时时间

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

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

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

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

在http字段设置

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

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

网友评论comments

发表评论

电子邮件地址不会被公开。 必填项已用*标注

暂无评论

Copyright © 2012-2017 YUNWEIPAI.COM - 运维派 - 粤ICP备14090526号-3
扫二维码
扫二维码
返回顶部