Nginx优化与防盗链

Nginx 服务优化

  1. 隐藏版本号
  2. 修改用户与组
  3. 配置网页缓存时间
  4. 日志切割
  5. 配置Nginx实现连接超时
  6. 更改Nginx运行的进程数
  7. 配置网页压缩
  8. 配置防盗链

隐藏版本号 

        配置Nginx隐藏版本号

                隐藏Nginx版本号,避免安全漏洞泄露

                Nginx隐藏版本号的方法

                        修改配置文件法

                        修改源码法

修改配置文件法
修改配置文件法
安装部署Nginx
[root@bogon ~]# vi /usr/local/nginx/conf/nginx.conf
34 行
server_tokens off;
[root@bogon ~]# nginx -t  查看配置文件是否有错
....
[root@bogon ~]# nginx -s reload   重载
[root@bogon ~]# curl -I 192.168.16.129
HTTP/1.1 200 OK
Server: nginx    版本号已被隐藏
Date: Thu, 18 Jul 2024 00:56:29 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Thu, 18 Jul 2024 00:36:15 GMT
Connection: keep-alive
ETag: "6698637f-264"
Accept-Ranges: bytes

[root@bogon ~]# 

修改源码法
[root@bogon ~]# vi nginx-1.12.0/src/core/nginx.h
13行 14行  

配置网页缓存时间

[root@bogon ~]# vi /usr/local/nginx/conf/nginx.conf
45行
expires 1d;
[root@bogon ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@bogon ~]# nginx -s reload
[root@bogon ~]# 

日志切割

[root@bogon ~]# ls /usr/local/nginx/logs/  查看日志文件
access.log  error.log  nginx.pid
[root@bogon ~]#vi /opt/fenge.sh 
#!/bin/bash
# Filename: fenge.sh
d=$(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}/access.log-$d
# 重建新日志文件
kill -USR1 $(cat $pid_path)
# 删除 30 天之前的日志文件
find $logs_path -mtime +30 |xargs rm -rf
[root@bogon ~]# chmod +x /opt/fenge.sh 
[root@bogon ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@bogon ~]# /opt/fenge.sh 
[root@bogon ~]# ls /var/log/nginx/
access.log-20240717
[root@bogon ~]# 

配置Nginx实现连接超时

  • 为了避免同一个客户长时间占用连接,造成资源浪费,可设置相应的连接超时参数,实现控制连接访问时间。可以修改配置文件 nginx.conf,设置 keepalive_timeout超时时间。
  • 超时参数
  1. keepalive_timeout 设置连接保持超时时间
  2. Client_header_timeout 指定等待客户端发送请求头的超市时间
  3. Client_body_timeout 设置请求体超时时间

更改Nginx运行的进程数 

修改 Nginx 的配置文件的 worker_processes 参数

  • 一般设为CPU的个数或者核数
  • 在高并发的情况下可设置为CPU 个数或者核数的 2倍

增加进程数,可减少了系统的开销,提升了服务的速度

使用ps aux 查看运行进程数的变化情况

配置网页压缩 

  1. Nginx 的 ngx_http_gzip_module 压缩模块提供了对文件内容压缩的功能
  2. 允许 Nginx 服务器将输出内容发送到客户端之前进行压缩,以节约网站的带宽,提升用户的访问体验,默认 Nginx 已经安装该模块。
  3. 可在配置文件中加入相应的压缩功能参数对压缩性能进行优化即
[root@bogon ~]# vi /usr/local/nginx/conf/nginx.conf
[root@bogon ~]# 
33 行
    gzip  on;
    gzip_buffers 4 64k;
    gzip_http_version 1.1;
    gzip_comp_level 2;
    gzip_min_length 1k;
    gzip_vary on;
    gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss;
[root@bogon ~]# nginx -t
    
gzip on:开启 gzip 压缩输出;
gzip_min_length 1k:用于设置允许压缩的页面最小字节数;
gzip_buffers 4 16k:表示申请 4 个单位为 16k 的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储 gzip 压缩结果;
gzip_http_version 1.0:用于设置识别 http 协议版本,默认是 1.1,目前大部分浏览器已经支持 gzip 解压,但处理较慢,也比较消耗服务器 CPU 资源;
gzip_comp_level 2:用来指定 gzip 压缩比,1 压缩比最小,处理速度最快;9 压缩 比最大,传输速度快,但处理速度最慢,使用默认即可;
gzip_types text/plain:压缩类型,是对哪些网页文档启用压缩功能;
gzip_vary on:选项可以让前端的缓存服务器缓存经过 gzip 压缩的页面。
[root@bogon ~]# nginx -s reload
[root@bogon ~]# vi /usr/local/nginx/html/index.html
[root@bogon ~]# curl -I -H"Accept-Encoding: gzip, deflate" "http://127.0.0.1/index.html"

 配置防盗链

IP 地址

域名

用途

最小化192.168.16.129

www.kgc01.com

源主机

最小化192.168.16.130

www.kgc02.com

盗链主机

桌面版CentOS-7-x86_64

验证

最小化192.168.16.129
[root@bogon ~]# ls /usr/local/nginx/html/
50x.html  error.png  index.html  logo_jpg.jpg
[root@bogon ~]# vi /usr/local/nginx/conf/nginx.conf
43         server_name  www.kgc01.com;
[root@bogon ~]# nginx -t 
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@bogon ~]# nginx -s reload
[root@bogon ~]# vi /etc/hosts
192.168.16.129 www.kgc01.com 
192.168.16.130 www.kgc02.com

防盗
[root@bogon ~]# vi /usr/local/nginx/conf/nginx.conf
49行
location ~* \.(gif|jpg|jpeg)$ {
    valid_referers *.kgc01.com;
    if ($invalid_referer) {
        rewrite ^/ http://www.kgc01.com/error.png;
    }
}
[root@bogon ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@bogon ~]# nginx -s reload
[root@bogon ~]# 
最小化192.168.16.130
[root@bogon ~]# vi /usr/local/nginx/conf/nginx.conf
          37         server_name  www.kgc02.com;
[root@bogon ~]# nginx -t 
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@bogon ~]# nginx -s reload
[root@bogon ~]# vi /etc/hosts
192.168.16.129 www.kgc01.com 
192.168.16.130 www.kgc02.com

 
 cat > /usr/local/nginx/html/index.html << EOF
<html><body><h1>hello</h1>
<img src="http://www.kgc01.com/logo_jpg.jpg"/>
</body></html>
EOF
到桌面版Centos7.9 上的浏览器访问
http://www.kgc02.com/
盗图成功
桌面版Centos7.9
[root@bogon ~]# vi /etc/hosts
192.168.16.129 www.kgc01.com 
192.168.16.130 www.kgc02.com

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值