Nginx 优化与防盗链

前言

本文系统梳理了 Nginx 常见的性能优化方法与防盗链配置步骤,涵盖隐藏版本号、调整用户与组、设置缓存时间、日志切割、超时设置、进程调优、网页压缩以及防盗链策略等多个方面,适用于生产环境中的 Nginx 服务调优与安全加固。

一、隐藏版本号

1.1 方法一

第一步 vi /usr/local/nginx/conf/nginx.conf——————————编辑nginx配置文件
在配置文件中加入 server_tokens off;
在这里插入图片描述
第二步 打开浏览器,搜索ip或域名之后,打开开发工具(按F12)
可以看到nginx的版本没有显示了
在这里插入图片描述

1.2 方法二

第一步 编辑 vim /opt/nginx-1.20.2/src/core/nginx.h
在文件中修改nginx版本与服务器名称
(注意:这里的修改版本只是修改外表,实际还是原本的版本)
#define NGINX_VERSION “3208” ————————想修改的版本号
#define NGINX_VER “IIs” NGINX_VERSION ————————修改服务器类型
在这里插入图片描述
第二步 进行编译安装
在原版本下的目录中输入
./configure
–prefix=/usr/local/nginx \
–user=nginx
–group=nginx
–with-http_stub_status_module
在这里插入图片描述 输入make
在这里插入图片描述

第三步 替换为新编译的版本文件
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old —————备份旧版本

cp objs/nginx /usr/local/nginx/sbin/nginx ————————替换为新编译的版本文件
(换完之后就完成了)
可以先输入nginx -t ————————查看nginx配置是否有问题

重启nginx服务 ——————systemctl restart nginx

没问题再输入nginx -V ————————查看当前nginx的版本
在这里插入图片描述
第四步 进入浏览器中的网页,打开开发工具
可以看到nginx的版本变为自己随意更改的
在这里插入图片描述

二、缓存时间

2.1

概念:缓存时间讲的是当Nginx将网页数据返回给客户端后,可以保存的时间,在缓存时间内时,可以省略三次握手这一请求连接的过程,避免重复请求,节省时间。

2.2 更改缓存时间

在这里插入图片描述
第一步 编辑nginx配置文件(在编辑配置文件之前一定要做备份)
找到图片显示的部分,编辑缓存时间(这里改为10天)
在这里插入图片描述

第二步 重启服务
(保存退出之后,一定要重启服务,并查看nginx配置文件是否有问题)
systemctl restart nginx ———————————重启服务
nginx -t ——————————查看nginx配置是否有问题

第三步 打开浏览器开发工具进行检验
在这里插入图片描述

三、日志切割

第一步 创建日志文件 mkdir /opt/log.fg.sh
在这里插入图片描述
第二步 编辑日志文件 vim /opt/log.fg.sh
写下脚本
#!/bin/bash
day=$ (date -d “-1 day” “+%Y%m%d”) —————查看前一天的时间(包括年月日)
logs_path=“/var/log/nginx” ————————定义logs_path变量
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) ———————— 给这个PID进程发送信号
find $logs_path -mtime +30 -exec rm -rf {} ; ——————删除30天之前的所有日志文件
在这里插入图片描述
第三步 给与脚本文件执行权限并启动脚本文件
chmod +x /opt/log.fg.sh ——————给与脚本文件执行权限
在这里插入图片描述
sh /opt/log.fg.sh ————————执行脚本文件
在这里插入图片描述
第四步 给定任务(每小时执行一次脚本文件)
crontab -e ——————编辑任务
在这里插入图片描述
这里表示每月每周的每天的每个小时的0分钟(也就是每个小时)
crontab -l ——————查看任务列表
在这里插入图片描述

四、连接超时

4.1 作用与概念

HTTP有一个KeepAlive模式,它告诉web服务器在处理完一个请求后保持这个TCP连接的打开状态。若接收到来自同一客户端的其它请求,服务端会利用这个未被关闭的连接,而不需要再建立一个连接。
KeepAlive 在一段时间内保持打开状态,它们会在这段时间内占用资源。占用过多就会影响性能。

4.2 连接超时操作

第一步 编辑nginx配置文件
在http中加上
keepalive_timeout 65 180; ———————————三次握手的超时时间
(其中第一个值为每个TCP连接最多可以保持多长时间,服务器将会在这个时间
后关闭连接。)
(第二个值为Nginx 自身对长连接的最大保留时间)
client_header_timeout 80; ————————等待客户端发送请求头的超时时间会送408 错误
client_body_timeout 80;——————————设置客户端发送请求体的超时时间
在这里插入图片描述
第二步 编辑完成之后要重启服务并且查看配置文件是否有问题
在这里插入图片描述

五、更改进程数

5.1 更改进程数的意义

当访问、请求的人数达到一定数量时,一个进程明显不够满足需求,并且会导致服务器回应速度变慢,若要解决此问题则要增加进程数,提高回复速度,避免堵塞。

5.2 更改进程数的操作

第一步 在操作之前可以先看看自己的cpu内核数和进程数
cat /proc/cpuinfo | grep -c “physical id” ——————查看cpu内核数量
在这里插入图片描述
ps aux | grep nginx ——————查看nginx进程
在这里插入图片描述
第二步 修改进程数(建议修改为内核数或内核数的两倍)

vim /usr/local/nginx/conf/nginx.conf
在这里插入图片描述
(进程数配为4时0001 0010 0100 1000 也可以写为 01 10 100 1000)

第三步 重启服务
在这里插入图片描述
第四步 查看nginx进程数
ps aux | grep nginx
可以看到有两个子进程(工作进程)
在这里插入图片描述

六、配置网页压缩

作用:允许Nginx服务器将输出内容在发送客户端之前进行压缩,以节约网站带宽,提升用户的访问体验,默认已经安装,可在配置文件中加入相应的压缩功能参数对压缩性能进行优化
第一步 修改nginx配置文件(在文件中加入)
gzip on; ——————取消注释,开启gzip压缩功能
gzip_min_length 1k; ————————最小压缩文件大小
gzip_buffers 4 64k; ——————————压缩缓冲区,大小为4个64k缓冲区(一般是4 16)
gzip_http_version 1.1; ————————压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
gzip_comp_level 6; ——————————压缩比率 1:压缩比最小,速度最快;9:压缩比最大,传输速度最快,但处理也最慢,也比较的消耗CPU资源
gzip_vary on; ————————————支持前端缓存服务器存储压缩页面
gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json;————————压缩类型,表示哪些网页文档启用压缩功能
在这里插入图片描述
第二步 重启服务
在这里插入图片描述
第三步 打开浏览器中的开发工具
在这里插入图片描述

七、配置防盗链

采用对比方法进行验证,防盗链的配置作用

7.1 正规网站配置

第一步 将要被盗取的图片与错误图片放入 /usr/local/nginx/html目录下
在这里插入图片描述
第二步 编辑脚本文件index.html,将图片添加进脚本文件
在这里插入图片描述
第三步 进行映射
vim /etc/hosts
在映射文件中加入盗窃的ip和域名以及正规的ip和域名
在这里插入图片描述
(xjy34为正规,xjy43为非正规)

第四步 配置防盗链
在nginx配置文件中加入
location ~* .(jpg|gif|swf|png)$ {
valid_referers none blocked *.xjy34.com xjy34.com;
if ( $invalid_referer ) {
rewrite ^/ http://www.xjy34.com/abc.png;
}
在这里插入图片描述
(注意格式)

7.2 配置不正规网站

第一步 编辑非正规机的脚本文件————vim /usr/local/nginx/html/index.html

vim index.html
< html>
< body>
< img src=“http://www.xjy34.com/4.jpg”/> ————————偷取xjy34的图片
< /body>
< /html>
在这里插入图片描述

第二步 进行映射
vim /etc/hosts
在这里插入图片描述
第三步 在虚拟机的火狐软件中输入 www.xjy43.com 看是否有图片
在这里插入图片描述
在这里插入图片描述
(这是出来的错误图片)
如果将防盗配置去掉
在这里插入图片描述
在浏览器输入 www.xjy43.com则会偷到图片
在这里插入图片描述

总结

本文系统梳理了 Nginx 常见的性能优化方法与防盗链配置步骤,涵盖隐藏版本号、调整用户与组、设置缓存时间、日志切割、超时设置、进程调优、网页压缩以及防盗链策略等多个方面,适用于生产环境中的 Nginx 服务调优与安全加固,希望本文能对您有所帮助,谢谢观看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值