Nginx优化与防盗链

目录

一、隐藏版本号

1、修改配置文件方式

2、自定义修改源代码

二、修改用户与组

1、修改配置文件指定用户

2、重启服务,查看服务指定用户

三、 Nginx缓存时间

1、修改配置文件加入特定参数

2、重启服务,访问服务

四、Nginx日志切割

1、编写脚本实现日志分割

2、添加权限,执行脚本

3、设置定时任务

五、KeepAlive连接超时

1、Nginx 配置文件设置

2、重启服务,查看服务端

六、更改进程数

1、查看 CPU 核数

2、修改 Nginx 配置文件

3、重启服务,查看进程

七、配置网页压缩

1、修改 Nginx 配置文件

2、上传图片文件并修改网页

八、配置Nginx防盗链

1、源主机配置

1.1、修改 Nginx 配置文件

1.2、配置网页和文件

1.3、更新 /etc/hosts 文件,添加映射

2、盗链主机配置

2.1、配置网页和文件

2.2、更新 /etc/hosts 文件,添加映射

3、验证结果


一、隐藏版本号

在服务器运维中,有时需要查看 Nginx 服务器的版本信息,或者为了安全性目的隐藏或修改该信息。以下是使用 Fiddler 工具和 curl 命令查看 Nginx 版本信息的步骤,以及修改版本信息的两种方法。

1、修改配置文件方式

vim /usr/local/nginx/conf/nginx.conf

http {
   include       mime.types;
   default_type application/octet-stream;
   server_tokens off;                        //添加,关闭版本号
   ......
}

systemctl restart nginx
curl -I http://172.16.88.22

关闭版本号 

重启服务,查看版本 

[root@localhost sbin]# systemctl restart nginx.service 
[root@localhost sbin]# curl -I 172.16.88.22

2、自定义修改源代码

vim /opt/nginx-1.12.0/src/core/nginx.h
#define NGINX_VERSION "1.1.1"                  //修改版本号
#define NGINX_VER "IIS" NGINX_VERSION            //修改服务器类型
                                    
cd /opt/nginx-1.12.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --withhttp_stub_status_module

make编译

//重启服务
systemctl restart nginx
//测试
curl -I http://172.16.88.22

修改版本号和版本名称 

安装模块和make编译后,重启服务查看版本号 

二、修改用户与组

1、修改配置文件指定用户

vim /usr/local/nginx/conf/nginx.conf

user nginx nginx;                //取消注释,修改用户为 nginx ,组为 
nginx

systemctl restart nginx
ps aux | grep nginx
//主进程由root创建,子进程由nginx创建//

 指定用户

2、重启服务,查看服务指定用户

三、 Nginx缓存时间

当Nginx将网页数据返回给客户端后,可设置缓存的时间,以方便在日后进行相同内容的请求时直接返回,避 免重复请求,加快了访问速度 一般针对静态网页设置,对动态网页不设置缓存时间

1、修改配置文件加入特定参数

vim /usr/local/nginx/conf/nginx.conf
http {
......
 server {
 ...... 
 location / {
 root html;
 index index.html index.htm;
 }
 
 location ~ \.(gif|jpg|jepg|png|bmp|ico)$ { //加入新的 location,以图片作
为缓存对象
 root html;
 expires 1d;        //指定缓存时间,1天
 }
......
 }
}

//重启服务
systemctl restart nginx

//测试访问
http://www.kgc.com/wangsicong.jpg

2、重启服务,访问服务

systemctl restart ngin

访问成功 

四、Nginx日志切割

1、编写脚本实现日志分割

vim /opt/fenge.sh

#!/bin/bash
// Filename: fenge.sh

// 获取前一天的日期
day=$(date -d "-1 day" "+%Y%m%d")

// 定义日志文件路径和 Nginx PID 文件路径
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}/kgc.com-access.log-$day

// 向 Nginx 主进程发送 USR1 信号,重新打开日志文件
kill -USR1 $(cat $pid_path)

// 删除30天之前的日志文件
find $logs_path -mtime +30 -exec rm -rf {} \;

2、添加权限,执行脚本

[root@localhost opt]# chmod +x /opt/fenge.sh
[root@localhost opt]# 
[root@localhost opt]# sh fenge.sh

查看日志文件是否被正确切割

3、设置定时任务

使用 crontab 编辑器设置一个定时任务,每天凌晨 1 点自动运行 fenge.sh 脚本

crontab -e

在打开的编辑器中添加以下内容,然后保存

0 1 * * * /opt/fenge.sh

五、KeepAlive连接超时

HTTP 协议中的 KeepAlive 模式允许 Web 服务器在处理完一个请求后保持 TCP 连接的打开状态。这样,服务器可以复用同一连接处理来自同一客户端的其他请求,从而减少建立新连接的开销。KeepAlive 的超时时间设置对于性能优化和资源管理非常重要。

1、Nginx 配置文件设置

  • keepalive_timeout 65 ;         #设置 KeepAlive 超时时间
  • client_header_timeout 80;         #设置客户端请求头超时时间
  • client_body_timeout 80;             #设置客户端请求体超时时间

2、重启服务,查看服务端

[root@localhost opt]# systemctl restart nginx.service 

六、更改进程数

在高并发场景下,为了保证快速响应并避免请求阻塞,建议根据服务器的 CPU 核数调整 Nginx 进程数。这样可以充分利用服务器的硬件资源,提升并发处理能力。

1、查看 CPU 核数

首先,确定服务器的 CPU 核数,以便设置合适的 Nginx 进程数。

cat /proc/cpuinfo | grep -c "physical id"  # 查看物理 CPU 的数量

查看 Nginx 主进程中包含的子进程数

ps aux | grep nginx  # 查看 Nginx 主进程和子进程

2、修改 Nginx 配置文件

根据 CPU 核数调整 Nginx 的 worker_processesworker_cpu_affinity 参数

worker_processes:

  • 该值通常设置为与 CPU 核数相同或其2倍,以最大限度地利用多核 CPU 的并行处理能力。
  • 例如,如果服务器有 4 个 CPU 核,worker_processes 可以设置为 48

worker_cpu_affinity:

  • 这个参数用于将每个 Nginx 进程绑定到特定的 CPU 核,以提高缓存命中率和性能。

worker_connections:

  •  指定每个 worker 进程所能处理的最大连接数。这个值越高,Nginx 能够同时处理的并发连接数就越多。

3、重启服务,查看进程

[root@localhost opt]# systemctl restart nginx.service 
[root@localhost opt]# 
[root@localhost opt]# ps aux|grep nginx

变为两个进程 

七、配置网页压缩

Gzip 压缩可以减少网页的大小,加快页面加载速度。通过以下配置,可以在 Nginx 中启用 Gzip 压缩功能,并指定压缩的文件类型和压缩级别。

  • 可在配置文件中加入相应的压缩功能参数对压缩性能进行优化

1、修改 Nginx 配置文件

2、上传图片文件并修改网页

上传图片

访问网页 

八、配置Nginx防盗链

防盗链功能用于防止其他网站未经授权直接引用你的网站上的资源(如图片)。通过以下配置,可以设置防盗链策略,并对不合法的请求进行处理。

172.16.88.22   //源主机

172.16.88.33    //盗链主机

1、源主机配置

1.1、修改 Nginx 配置文件

location ~* \.(gif|swf|ico|png)$:

  • 这是一个正则表达式,用于匹配以 .jpg.gif.swf 结尾的文件,且不区分大小写。
  • valid_referers:
    • none: 允许没有 HTTP Referer 的请求访问资源。
    • blocked: 允许没有 HTTP 协议头的请求访问资源。
    • *.kgc.com: 允许来自 *.kgc.com 域名的请求访问资源。

if ($invalid_referer):

  • 如果请求的 Referer 不在 valid_referers 列表中,则 $invalid_referer 变量为 true,执行后续的重写或返回 403 错误。

1.2、配置网页和文件

[root@localhost html]# vim index.html

编辑以下内容 

1.3、更新 /etc/hosts 文件,添加映射

echo "172.16.88.22 www.kgc.com" >> /etc/hosts
echo "172.16.88.33 www.benet.com" >> /etc/hosts

2、盗链主机配置

2.1、配置网页和文件

2.2、更新 /etc/hosts 文件,添加映射

echo "172.16.88.22 www.kgc.com" >> /etc/hosts
echo "172.16.88.33 www.benet.com" >> /etc/hosts

3、验证结果

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值