总结:Nginx有哪些优化

2023-12-13 16:57:17

应用程序方面的优化

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

?

文章来源:https://blog.csdn.net/liu_xueyin/article/details/134907808
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。