文章目录
- 一、更改Nginx版本号
-
- 1.1隐藏版本号
- [1.2 修改配置文件方式](#1.2 修改配置文件方式)
- 二、修改用户与组
- [三 、缓存时间](#三 、缓存时间)
- 四、日志切割
- 五、连接超时
-
- [5.1 KeepAlive 机制的核心逻辑](#5.1 KeepAlive 机制的核心逻辑)
- [六 更改进程数](#六 更改进程数)
- [七 配置网页压缩](#七 配置网页压缩)
- [八 配置防盗链](#八 配置防盗链)
一、更改Nginx版本号
隐藏 Nginx 版本号的核心目的是降低服务器安全风险、符合合规要求、减少定向攻击概率,是服务器安全防护中 "最小信息暴露" 原则的基础操作,有两种方法隐藏版本号
1.1隐藏版本号
添加server_tokens off;关闭版本号

1.2 修改配置文件方式
把原来版本1.20.2改成1.80.2

#重启服务
systemctl reload nginx 一定要重启
#测试
curl -I http://192.168.10.2

二、修改用户与组
修改/usr/local/nginx/conf/nginx.conf,修改用户为 nginx ,组为nginx。
重启服务,查看nginx进程。
ps aux |grep nginx
三 、缓存时间
当Nginx将网页数据返回给客户端后,可设置缓存的时间,以便在日后进行相同内容的请求时直接返回,加快了访问速度。一般针对静态网页设置,对动态网页不设置缓存时间。
vim /usr/local/nginx/conf/nginx.conf
bash
http {
......
server {
......
location / {
root html;
index index.html index.htm;
}
location ~ \.(gif|jpg|jepg|png|bmp|ico)$ { #加入新的 location,以图片作
为缓存对象
root html;
expires 1d; #指定缓存时间,1天
}
......
}
}
在浏览器中访问192.168.10.2/qq.png,在设置里,找到网络点击,找到Cahce-Control:max-age=86400 表示缓存时间是 86400 秒。也就是缓存一天的时间,一天之内浏览器访问这个页面,都是用缓存中的数据,而不需要向Nginx 服务器重新发出请求,减少了服务器的使用带宽。
#重启服务
systemctl restart nginx

四、日志切割
在 Linux 中进行日志切割主要是为了解决以下核心问题:
- 避免日志文件过大
- 便于日志管理与归档
- 降低服务风险
例:删除30天之前的日志文件
bash
#!/bin/bash
# Filename: fenge.sh
day=$(date -d "-1 day" "+%Y%m%d") #显示
前一天的时间
logs_path="/var/log/nginx"
pid_path="/usr/local/nginx/logs/nginx.pid"
[ -d $logs_path ] || mkdir -p $logs_path #创建
日志文件目录
mv /usr/local/nginx/logs/access.log ${logs_path}/yjs.com-access.log-$day #移动
并重命名日志文件
kill -USR1 $(cat $pid_path) #重建
新日志文件
find $logs_path -mtime +30 -exec rm -rf {} \; #删除
30天之前的日志文件

五、连接超时
5.1 KeepAlive 机制的核心逻辑
功能:KeepAlive 是 HTTP/TCP 层面的一种连接复用机制,核心是让通信双方在完成一次请求 / 响应后,保持 TCP 连接不立即关闭,以便后续请求可直接复用该连接,无需重新建立 TCP 连接(避免重复的三次握手开销)。
bash
#第一个值(65):服务器端的闲置连接超时时间 --- 若连接在 65 秒内无新请求,服务器会主动关闭该连接。
#第二个值(180):实际连接的关闭由服务器的第一个值65(服务器端闲置超时)决定 ------ 即使客户端按 180 秒保留连接,若 65 秒内无新请求,服务器也会主动关闭连接。
keepalive_timeout 65 180;
bash
#客户端向服务端发送一个完整的 request header(请求头) 的超时时间。如果客户端在指定时间内没有发送一个完整的 request header,Nginx 返回 HTTP 408(Request Timed Out)。
client_header_timeout 80;
bash
#指定客户端与服务端建立连接后发送 请求体(request body)的超时时间。如果客户端在指定时间内没有发送任何内容,Nginx 返回 HTTP 408(Request Timed Out)。
client_body_timeout 80;
六 更改进程数
#查看cpu核数
#查看nginx主进程包含几个子进程

七 配置网页压缩
网页压缩的作用:配置网页压缩(通常指 HTTP 压缩,如 Gzip、Brotli)的核心作用是优化网络传输效率与用户体验,具体包括:
- 减少传输数据体积
- 提升网页加载速度
- 降低服务器负载
- 优化用户体验与有助于搜索引擎优化

八 配置防盗链
如果是网站调用服务器的资源,将会被阻止。
本文配置测试看看效果。
1、服务器规划
源主机:
1、ip:192.168.10.101
2、安装nginx
3、域名映射:echo "192.168.10.101 www.benet.com" >> /etc/hosts
盗链主机:
1、ip:192.168.10.102
2、安装nginx
3、域名映射
echo "192.168.10.101 www.benet.com" >> /etc/hosts
echo "192.168.10.102 www.yjs.com" >> /etc/hosts
2、源主机配置
bash
----------------配置防盗链-------------------
vim /usr/local/nginx/conf/nginx.conf
http {
......
server {
......
location ~* \.(jpg|gif|swf)$ {
valid_referers none blocked *.benet.com benet.com; 匹配
if ( $invalid_referer ) {
rewrite ^/ http://www.benet.com/error.png;
}
}
......
}
}
3、盗链主机配置
cd /usr/local/nginx/html
vim index.html
bash
<html>
<body>
<img src="http://www.benet.com/game.jpg"/>
</body>
</html>
3、测试
在盗图网站主机上进行浏览器验证
看是否被阻止
总结
本文系统梳理 Nginx 核心配置实操,从安全防护到性能调优,结合日志切割、防盗链等实战案例,提供可直接落地的生产环境优化方案,实用性强。