NGINX优化

embedded/2024/11/13 5:31:51/

NGINX优化分为两个方面:

一.        nginx应用配置文件的优化:

1.nginx的性能优化:

全局块: 
设置工作进程数: work_processes #设置工作进程数 
设置工作进程连接数:work_rilmit_nofile #设置每个worker进程最大可以打开的文件数http块:
1.开启网页压缩:gzip on
2.页面缓存:expries 缓存时间
3.连接保持超时时间:keepalive_timeout 
6.工作进程静态绑定:worker_cpu_affinity     #不在任何区块 主标签段
7.开启高效文件传输模式:sendfile on;   tcp_nopush on;    tcp_nodelay on;event块:
IO多路复用:use epoll #增加网络并发量能力
连接优化:multi_accept on   #一个进程同时接受多个网络连接    accept_mutex on    #以串行方式接入新连接,防止惊群现象发生
设置工作进程连接数:work_connetions #每个worker进程能够处理的连接数 (每个进程最大并发数)

2.nginx的安全优化:

http块:
隐藏版本号:sever_tokens off  修改源代码nginx.h
防盗链: rewrite 实现地址重写实现防盗链 过程:valid_referers定义信任的跳转链接 再使用if语句判断$invalid_referer 在使用地址重重写
访问控制:deny/allow  server
限制请求数:limit_req_zone limit_req
限制连接数:limit-conn_zone limit_zone全局配置:
设置运行用户/组:user 用户名  

安全优化还有个日志分割

脚本+crontab 分时日月周

二.系统内核优化

1./etc/sysctl.conf   内核参数配置文件

#用于解决系统存在大量TIME WAIT状态连接的问题
net.ipv4.tcp_syncookies=1        表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击
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      修改MSL值,系统默认的TIMEOUT时间
#如果连接数本身就很多,可再优化TCP的可用端口范围,进一步提升服务器的并发能力
net.ipv4.tcp_keepalive_time=1200           #当keepalive启用时,tcp连接保持的探测频率
net.ipv4.ip_local_port_range=1024 65535    #用于向外连接的端口范围。缺省情况下很小,为32768 60999
net.ipv4.tcp_max_syn_backlog=8192          #SYN队列长度,默认为1024,加大队列长度为8192,提升可以等待连接的网络连接数
net.ipv4.tcp_max_tw_buckets=5000           #表示系统同时保持TIME WAIT的最大数量
net.core.somaxconn=65535                   #一个端口能够监听的最大连接数
#如果需要IP路由转发
net.ipv4.ip_forward=1

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

* 	soft 	noproc			65535         打开系统进程数
* 	hard 	noproc			65535
* 	soft 	nofile			65535         进程打开文件数
* 	hard 	nofile			65535

你用过哪些nginx模块?

http_stub_status_module       访问状态统计模块
http_gzip_module              网页压缩模块
http_rewrite_module           URL地址重写模块
http_ssl_module               https安全加密模块
http_auth_basic_module        网页用户认证模块
http_fastcgi_module           fastcgi转发模块
http_image_filter_module      图片处理模块
http_mp4/flv_module           mp4/flv视频格式模块
http_limit_req_module         限制请求数模块
http_limit_conn_module        限制连接数模块
http_proxy_module             代理转发模块
http_upstream_*_module        负载均衡模块
stream                        四层代理转发模块


http://www.ppmy.cn/embedded/45618.html

相关文章

【Linux 网络】网络基础(三)(数据链路层协议:以太网协议、ARP 协议)

一、以太网 两个不同局域网的主机传递数据并不是直接传递的,而是通过路由器 “一跳一跳” 的传递过去。 跨网络传输的本质:由无数个局域网(子网)转发的结果。 所以,要理解数据跨网络转发原理就要先理解一个局域网中数…

mysql多启动

binary安装: 1、redhat rpm 2、mysql rpm 3、mysql glibc source安装: 1、5.1mysql(./configure && make && make install) 2、5.5mysql(cmake && make && make install) 单启动: 1、安装 tar xf xxx.tar…

Vue 3.4.5深度解析:从基础到高级,掌握Composition API与全局API精髓

一、基础函数&特性 1. setup() 函数 作用:setup() 是Vue 3引入的一个新的组件选项,用于定义组件的逻辑。它在组件初始化阶段被调用,替代了Vue 2中的data、methods等选项。特点: 接收props和context作为参数。返回的对象将被…

网络编程TP/IP (尹圣雨)(韩) 第二章 课后习题

1. 什么是协议?在收发数据中定义协议有何意义? 答:协议是对话中使用的通信规则,简言之,协议就是为了完成数据交换而定好的约定。在收发数据中定义协议,能够让计算机之间进行对话,以此来实现信息…

考研数学:有些无穷小不能用等价无穷小的公式?

今天要给大家分享的笔记是:《有些无穷小虽然是无穷小,但却不能用无穷小的相关公式》:

Java高级面试精粹:问题与解答集锦(二)

Java 面试问题及答案 1. 什么是多线程?Java 中如何实现多线程? 答案: 多线程是指一个程序中可以同时执行多个线程(任务)。在Java中,可以通过两种方式来实现多线程:继承Thread类和实现Runnable…

MATLAB禁忌搜索算法求带时间窗的单配送中心车辆调度与路径优化问题(VRPTW):低配版

MATLAB禁忌搜索算法求带时间窗的单配送中心车辆调度与路径优化问题(VRPTW):低配版 MATLAB禁忌搜索算法求带时间窗的单配送中心车辆调度与路径优化问题(VRPTW):低配版

01 一文理解,Prometheus详细介绍

01 一文理解,Prometheus详细介绍 介绍 大家好,我是秋意零。 Prometheus 是一个开源的系统监控和报警工具包,最初由SoundCloud开发,并在2012年作为开源项目发布。Prometheus 目前由Cloud Native Computing Foundation&#xff08…