总结: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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!