Nginx优化

简介:

优化内核TCP选项

net.ipv4.tcp_max_tw_buckets = 6000

net.ipv4.ip_local_port_range = 1024 65534

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_syncookies = 1 

net.core.somaxconn = 262144

net.core.netdev_max_backlog = 262144

net.ipv4.tcp_max_orphans = 262144

net.ipv4.tcp_max_syn_bcaklog = 262144

net.ipv4.tcp_timestamps = 0

net.ipv4.tcp_synack_retries =  1

net.ipv4.tcp_syn_reries = 1

net.ipv4.tcp_fin_timeout = 1

net.ipv4.tcp_keepalive_time = 30


内核优化详解


net.ipv4.tcp_max_tw_buckets

默认值:180000  设置timewait的值


net.ipv4.ip_local_port_range

默认值:32768-61000  设置允许系统打开的端口范围


net.ipv4.tcp_tw_recycle

默认值:0  该参数用于设置是否启用timewait快速回收


net.ipv4.tcp_tw_reuse

默认值:0  该参数用于设置是否开启重新使用,即允许将TIME-WAIT sockets重新用于新的TCP连接


net.ipv4.tcp_syncookies

默认值:0  该参数用于设置是否开启SYN cookies,如果启用该功能,那么当出现SYN等待队列溢出时,则使用cookies来处理


net.core.somaxconn

默认值:32768  Web应用中listen函数的backlog默认会将内核参数的net.core.somaxconn限制到128,而NGINX定义的NGX_LISTEN_BACKLOG默认值为511,所以有必要调整这个值


net.core.netdev_max_backlog

默认值:300 该参数用于设置被输送到队列数据包的最大数目,在网卡接收数据包的速率比内核处理数据包的速率比内核处理数据包的速度快时,那么会出现排队现象,这个参数就是用于设置该队列的大小


net.ipv4.tcp_max_orphans      

默认值:32768  该参数用于设定系统中最多允许存在多少TCP套接字不被关联到任何一个用户文件句柄上,如果超过这个数

字,没有与用户文件句柄关联的TCP套件字将立即被复位,同时给出警告信息,这个限制只是为了防止简单的DOS攻击,一般在系统内存比较充足的情况下可以增大这个参数 的赋值。


net.ipv4.tcp_max_syn_bcaklog

    默认值:1024   该参数用于记录尚未收到客户端确认信息的连接请求的最大值,对于拥有128M的内存的系统而言,此参数的默认值为1024,,一般在系统内存比较充足的情况下,可以增大这个参数的赋值。


net.ipv4.tcp_timestamps     

默认值:1 该参数用于设置时间戳,这可以避免序列号被重复使用,在高速、高并发的环境中这种情况是存在的,通过时间戳能让这些看做是异常的数据包被内核接收,将该参数的值设置为o,表示关闭该功能


net.ipv4.tcp_synack_retries

默认值:5 用于设置SYN重试的次数,在TCP的3次握手中的第2次握手,内核需要发送一个回应前面一个SYN的ACK的SYN,就是说为了打开对方的连接,内核发出的SYN的次数,减少该参数的值有利于避免DDOS功能


net.ipv4.tcp_syn_reries

默认值:5 用于设置在内核放弃建立连接之前发送SYN包的数量


net.ipv4.tcp_fin_timeout

默认值:60  表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间对端可以出错并永远不关闭连接


net.ipv4.tcp_keepalive_time

默认值:7200  当启用keepalive的时候,该参数用于设置TCP发送keepalive消息的额度



     本文转自812374156 51CTO博客,原文链接:http://blog.51cto.com/xiong51/1953407,如需转载请自行联系原作者



目录
打赏
0
0
0
0
348
分享
相关文章
nginx优化:URI过长或request header过大导致400或414报错
当出现URI过长或请求头过大导致400或414报错时,可以通过以下方式对Nginx进行优化: 1. 调整client_max_body_size参数:该参数用于限制请求体的大小。默认情况下,Nginx的client_max_body_size参数设置为1M。如果请求体超过这个大小,Nginx会返回400错误。您可以根据实际需求适当增加这个值,例如设置为10M或更大。 ``` http { client_max_body_size 10M; } ``` 2. 调整large_client_header_buffers参数:该参数用于调整请求头缓冲区的大
5206 0
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
284 3
nginx相关配置及高并发优化
Nginx的高并发优化是一个综合性的过程,需要根据具体的业务场景和硬件资源量身定制。以上配置只是基础,实际应用中还需根据服务器监控数据进行持续调整和优化。例如,利用工具如ab(Apache Benchmarks)进行压力测试,监控CPU、内存、网络和磁盘I/O等资源使用情况,确保配置的有效性和服务的稳定性。
225 0
Django后端架构开发:Nginx服务优化实践
Django后端架构开发:Nginx服务优化实践
146 2
"揭秘!SpringBoot携手Nginx,性能飙升秘籍大公开:轻松掌握配置优化,让你的应用快如闪电!"
【8月更文挑战第11天】随着微服务架构的发展,SpringBoot成为构建RESTful API的首选,Nginx则作为高性能的反向代理服务器提升应用性能。本文将探讨两者如何协同工作,包括Nginx的负载均衡策略、静态资源缓存及数据压缩配置;同时讨论SpringBoot的线程池优化、缓存策略及性能监控。通过这些方法,帮助开发者显著提高系统的整体性能和可用性。
374 1
Nginx反向代理优化
教你如何做好Nginx反向代理优化
164 5
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽(2)
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽
144 1
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽(1)
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽
332 1
深入探索Nginx高性能Web服务器配置与优化
【5月更文挑战第7天】本文深入探讨了Nginx的配置与优化,重点介绍了基础配置参数如`worker_processes`、`worker_connections`和`keepalive_timeout`,以及优化策略,包括使用epoll事件驱动模型、开启gzip压缩、启用缓存、负载均衡和安全配置。此外,还提到了性能调优工具,如ab、nginx-stats和nmon,以助于提升Nginx的性能和稳定性。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等