1 隐藏版本号*
方法一 :在http
模块中添加行
方法二 :修改版本信息
进入源码安装包
回到安装包根目录,重新编译安装
2 更改用户和组
解释:表示主进程master会由root创建,子进程会由nginx创建,前一个是所有者,后一个是所在组。
3 、设置页面的缓存时间
主要是针对动态页面的设置
设置图片的缓存:
解释:location ~ {...}
表示正则匹配,\.(gif|jpg|png)$
表示以.jpg .gif .png
结尾的文件;expires 1d
表示缓存时间1天。
4 、日志分割*
Apache是自带日志分割的,按天来进行日志收集。如access-2024-07-03.log
。
Nginx不会自动分割,需要人为设置。以下是一种简单的日志分割:
5 、绑定CPU*
在nginx.conf
中worker process 2
表示进程有2个,这个和CPU数挂钩。如果不绑定CPU的话,进程可能会在两个CPU之间来回切换使用,浪费资源。
所以要让进程绑定CPU,避免进程切换。
6 连接超时
Nginx配置文件中,keepalive_timeout
表示请求完成之后的连接保持时间,单位秒,一般60-120秒。其他超时设置如下:新增以下行
客户端发送一个完整的请求头的超时时间,10秒之内没有发送一个完整的请求头,Nginx返回408:request timeout
客户端和服务端建立连接之后,发送请求体的超时时间。客户端在5秒内没有发送任何内容,Nginx同样返回408
7 、配置页面压缩
在nginx.conf
中,gzip on
是启用页面压缩
具体配置:
8 、回收TIME_WAIT*
TIME_WAIT是TCP连接中的一种状态,出现在四次挥手之后。处于等待状态,双方不再发送数据。
TIME_WAIT所占用的系统资源很小,数量较少时,完全可以忽略不计;然而数量很多时,就会有一定影响。所以对有需要的场景,需要在断开连接后,尽快结束TIME_WAIT状态,回收系统资源。
统计当前系统的连接状态。
在系统内核文件中进行设置:
- 防止tcp的半连接队列溢出,可以达到服务端在收到tcp的syn(同步)请求时能快速响应:
2. 允许复用TIME_WAIT状态的连接,新的连接可以直接使用TIME_WAIT状态的端口。可以提高连接的重用率。
3. 可选项,老版本的配置,时间戳戳记也可以进行连接复用,基本不用了
4. 控制TIME_WAIT状态的持续时间,持续65秒。注意:不是立即把TIME_WAIT的连接收回,而是尽可能地把TIME_WAIT的状态进行回收:把没用的、空闲的进行回收
9 、防盗链优化
在location模块中做以下配置: