nginx参数优化杂记

简介:
1.隐藏nginx软件版本号信息
5b9eb163e8a6fd561a29fa55c56c3abd31cef043
暴露了软件版本号,恶意用户可能根据版本漏洞进行攻击,隐藏版本号可以加强Web服务的安全性。

vim /usr/local/nginx/nginx.conf
http
{
server_tokens off; ###添加这一行
......
}
作用:控制http response header内的web版本信息的显示,以及错误信息中web服务版本信息的显示。
重新加载nginx服务 /usr/local/sbin/nginx -s reload
b1d2ed955c3b4b7cbdb64621edd5c6a8f54ddc3e


参数性能优化:
1.进程数优化
worker_processes 1;
指定nginx服务开启时,开启的进程数。nginx有一个master进程,多个worker进程,最开始设置可以等于CPU的核数(官方建议);当高流量高并发场合时可以考虑修改为CPU核数*2。(不设置参数,默认为1)
查看CPU核数:
grep processor /proc/cpuinfo | wc -l
74c6d48cc249f525649e87c639fad4c4b773fc7f
1.1 绑定不同的Nginx进程到不同的CPU上,默认情况下,nginx的多个进程可能跑在某一个CPU或CPU的某一个核上,导致nginx进程使用硬件资源不均衡。
worker_processes 1;
worker_cpu_affinity 0001 0010 0100 1000;
worker_rlimit_nofile 65535;
配置nginx进程和CPU亲和数的参数。可以把不同的进程分给不同的CPU处理。
(默认情况下,进程配置也是相对平均的)

2.事件处理优化
linux下nginx使用epoll的I/O多路复用模型,配置在event下
66835bb1d01999bb9c0099e5d236c56a361b2254
worker_connections,nginx单个进程允许的客户端最大连接数。默认1024,根据具体的服务器性能和程序内存使用量设定。
worker_rlimit_nofile 进程最大打开文件数,无此默认配置。
3.域名散列表配置

49cd442658e70c1ee8bbc7ea036090121e535e3c
尽可能使用确切域名(如nginx.org 和www.nginx.org),降低通配查找时间。每个端口最多关联3个表。

3.高效文件传输模式
1b12e734a7192a9a340bead13ab16292cdb42903
sendfile on;
默认开启该参数,sendfile作用于两个函数之间的文件拷贝,工作在内核上比read和write高效很多,因为read和write是应用层操作。
tcp_nopush on;
这个选项只在sendfile开启时生效,作用:减少网络报文段的数量。(默认不开启)


4.连接超时优化
连接超时作用:
1.将无用连接设置为尽快超时,可以保护服务器系统资源(CPU,内存,磁盘)。
2.当连接很多时,及时断掉已经建立好但又长时间不进行操作的连接。
PHP程序相对于Java程序连接消耗资源和时间较少。
7bb7a765a72d06efdd6f01402437aace7276bc9f
keepalive_timeout 65;
超时连接设置,超过此时间,服务器会关闭该连接。
tcp_nodelay on;
访问量过大情况下开启后可防止网络及I/O阻塞,提升nginx工作效率。参数作用:默认情况下当数据发送时,内核不会马上发送,会等待更多字节组成一个数据包,这样可以提高I/O性能。但是不适用于每次只发送很少字节的业务场景。

client_header_timeout 15;
设置读取客户端请求头数据的超时时间。15为经验值参考。超时用户还没有发送完整的header数据,服务器返回408错误,防止客户端利用http协议进行攻击。

client_body_timeout 60;
客户端请求主体的超时时间,默认值60
send_timeout 25;
指定响应客户端的超时时间,这个超时时间仅限于两个超时活动之间,超时时间内客户端没有接受任何数据,连接将被关闭。

最后,参数的调整要根据业务量业务类型业务需求以及自身的服务器性能综合评定修改
目录
相关文章
|
9天前
|
缓存 前端开发 Java
"揭秘!SpringBoot携手Nginx,性能飙升秘籍大公开:轻松掌握配置优化,让你的应用快如闪电!"
【8月更文挑战第11天】随着微服务架构的发展,SpringBoot成为构建RESTful API的首选,Nginx则作为高性能的反向代理服务器提升应用性能。本文将探讨两者如何协同工作,包括Nginx的负载均衡策略、静态资源缓存及数据压缩配置;同时讨论SpringBoot的线程池优化、缓存策略及性能监控。通过这些方法,帮助开发者显著提高系统的整体性能和可用性。
20 1
|
12天前
|
应用服务中间件 调度 nginx
优化nginx参数(基本通用参数)
优化nginx参数(基本通用参数)
|
18天前
|
缓存 负载均衡 Java
SpringBoot 与 Nginx 配置优化:性能拉满的关键学习方法
【8月更文挑战第1天】在现代Web开发领域,SpringBoot以其快速启动、简化配置的特性成为众多开发者的首选框架,而Nginx则以其高性能的HTTP和反向代理服务器功能著称。将两者结合,并通过精细的配置优化,可以显著提升Web应用的性能与稳定性。以下是为您学生定制的SpringBoot与Nginx配置优化的学习方法与研究路径。
36 1
|
7天前
|
应用服务中间件 nginx
Nginx——根据ur中的参数进行转发
Nginx——根据ur中的参数进行转发
12 0
|
12天前
|
网络协议 应用服务中间件 测试技术
nginx参数调优能提升多少性能
nginx参数调优能提升多少性能
|
1月前
|
缓存 负载均衡 应用服务中间件
Nginx反向代理优化
教你如何做好Nginx反向代理优化
|
2月前
|
监控 前端开发 应用服务中间件
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽(2)
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽
50 1
|
2月前
|
负载均衡 前端开发 应用服务中间件
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽(1)
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽
84 1
|
3月前
|
缓存 负载均衡 安全
深入探索Nginx高性能Web服务器配置与优化
【5月更文挑战第7天】本文深入探讨了Nginx的配置与优化,重点介绍了基础配置参数如`worker_processes`、`worker_connections`和`keepalive_timeout`,以及优化策略,包括使用epoll事件驱动模型、开启gzip压缩、启用缓存、负载均衡和安全配置。此外,还提到了性能调优工具,如ab、nginx-stats和nmon,以助于提升Nginx的性能和稳定性。
|
3月前
|
应用服务中间件 nginx
Nginx的referer参数的用法和原理
总结:referer参数可以用于Nginx配置,以限制或允许特定来源网站的访问,提高安全性或控制流量。它通过valid_referers指令来定义合法的Referer来源,并根据配置对请求进行处理。但需要注意,Referer字段内容可以被伪造,因此不应作为唯一的安全措施。
281 0