Linux---Nginx优化与防盗链

文章目录

一、更改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、测试

在盗图网站主机上进行浏览器验证

http://www.yjs.com

看是否被阻止

总结

本文系统梳理 Nginx 核心配置实操,从安全防护到性能调优,结合日志切割、防盗链等实战案例,提供可直接落地的生产环境优化方案,实用性强。

相关推荐
adjusttraining2 天前
毁掉孩子视力不是电视和手机,两个隐藏很深因素,很多家长并不知
深度学习·其他
小屋主人3 天前
【实用软件】UninstallTool:一个小巧、安全、快速、强大的卸载软件
经验分享·其他·软件·软件卸载
草莓熊Lotso3 天前
《算法闯关指南:动态规划算法--斐波拉契数列模型》--01.第N个泰波拉契数,02.三步问题
开发语言·c++·经验分享·笔记·其他·算法·动态规划
Wins_calculator4 天前
学了半年不知道怎么样了感觉距离理想还很遥远
其他
白鳯7 天前
《梅雨前后》唯美怀旧的江户风情挽歌
程序人生·其他·读书·感悟·梅雨前后·永井荷风
罗光记7 天前
低空基础设施新突破!优刻得 ×IDEA联合发布 OpenSILAS一体机
数据库·经验分享·其他·百度·facebook
D-海漠10 天前
S7-1200 作为 OPC UA 服务器,UA Expert 作为 OPC UA 客户端
其他
DeepNoMind11 天前
团队架构的月之暗面
其他
原创资讯11 天前
致同研究:授予知识产权许可的披露示例
其他