总结:Nginx有哪些优化

应用程序方面的优化

nginx应用程序配置文件优化


1、启用epoll开发模型,使用的是IO多路复用技术,支持异步非阻塞处理请求
2、调整worker_processes的数量,设置工作进程数,一般与cpu核数相同,或者是auto,自动识别;
3、添加worker_cpu_affinity ,将工作进程与cpu静态绑核
4、修改worker_rlimit_nofile和worker_connection参数,设置单个worker可接受的并发数量
5、开启gzip网页压缩;
6、使用expires,设置客户端页面缓存时间
7、调整keepalive_timeout和keepalive_request设置长连接超时间和单个长连接可接受的最大请求数量

nginx应用程序的配置文件安全优化:


1、隐藏版本号,开启server_tokens
2、修改进程运行的用户和组,一般在程序配置的时候指定nginx,或者是可以修改配置文件中的user
3、添加防盗链,使用rewrite模块,重写URL
4、修改limit_conn和limit_req的模块参数,限制单个ip的最大访问数量和访问频率

nginx的日志分割                

编写日志分割脚本 + crontab 周期性做日志管理

系统内核优化:

/etc/sysctl.conf  内核参数配置文件
net.ipv4.tcp_tw_reuse = 1                    
##开启重用,允许将TIME-WAIT sockets重新用于新的TCP连接

net.ipv4.tcp_tw_recycle = 1                  
##开启TCP连接中TIME-WAIT sockets的快速回收

net.ipv4.tcp_fin_timeout = 30                
##修改系统默认的 TIMEOUT 时间(MSL值),原本是60s

net.ipv4.tcp_max_tw_buckets = 5000           
##系统同时保持TIME-WAIT的最大数量

net.ipv4.ip_local_port_range = 1024 65535    
##外向连接的端口范围

net.ipv4.tcp_max_syn_backlog = 8192          
##系统能接受的tcp半连接的最大队列数

net.core.somaxconn = 10000                   
##每一个端口最大的 Listen 监听队列的长度

net.ipv4.tcp_keepalive_time = 1200           
##发送keepalive探测包消息的频率

net.ipv4.tcp_syncookies = 1                  
##开启SYN Cookies,当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击

/etc/security/limits.conf   内核限制文件

*     soft     noproc            65535      打开的进程数
*     hard     noproc            65535
*     soft     nofile            65535      打开的文件数
*     hard     nofile            65535
*     soft     memlock         unlimited     不做内存锁定
*     hard     memlock         unlimited

 

你可能感兴趣的:(nginx,网络,运维)