首页 > 系统相关 >Nginx优化与防盗链

Nginx优化与防盗链

时间:2024-06-18 17:30:19浏览次数:17  
标签:index www nginx 优化 Nginx html com root 防盗链

Nginx服务优化

隐藏版本号

为了防止攻击者不能通过nginx针对特定版本进行攻击

方法1:修改配置文件方式

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens off;

访问网址,只显示 Nginx,版本号已经隐藏

[root@localhost ~]# curl -i http://192.168.10.101
HTTP/1.1 200 OK
Server: nginx
…………

方法2:设置版本信息

nginx-1.12.0/src/core/nginx.h包含了版本信息,可以随意修改

[root@localhost ~]# vim nginx-1.12.0/src/core/nginx.h
#define nginx_version      1012000
#define NGINX_VERSION      "10.12.0"
#define NGINX_VER          "iis/" NGINX_VERSION

修改完成后,需要重新编译安装

[root@localhost ~]# cd nginx-1.12.0
[root@www nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make && make install


[root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ 


[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens on;

访问网址,查看版本信息 

[root@localhost ~]# nginx -s stop && nginx

[root@localhost ~]# curl -i 127.0.0.1
HTTP/1.1 200 OK
Server: iis/10.12.0
Date: Thu, 09 Jun 2022 07:57:08 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 12
Last-Modified: Thu, 09 Jun 2022 07:46:09 GMT
Connection: keep-alive
ETag: "62a1a541-c"
Accept-Ranges: bytes

www.kgc.com

设置网页缓存时间

修改 Nginx 的配置文件,在新 location 段加入 expires 参数,指定缓存的时间

 location / {
            root   html;
            index  index.html index.htm index.php;
        }

        location ~ \.(gif|jpg|jepg|png|bmp|ico)$ {
            root html;
            expires 1d;
        }

重启 Nginx 服务后,利用浏览器可以看到响应报文中图片文件含有 Expires 参数

 日志切割

编写脚本/opt/fenge.sh

[root@www ~]# vim /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}/test.com-access.log-$d 
kill -USR1 $(cat $pid_path) 
find $logs_path -mtime +30 |xargs rm -rf 

执行/opt/fenge.sh,测试日志文件是否被切割

[root@www ~]# chmod +x /opt/fenge.sh 
[root@www ~]# /opt/fenge.sh 
[root@www ~]# ls /var/log/nginx 
[root@www ~]# ls /usr/local/nginx/logs/access.log

设置 crontab 任务,定期执行脚本自动进行日志分割

[root@www ~]# crontab -e 
30 1 * * *   /opt/fenge.sh

网页压缩

[root@www ~]# vim /usr/local/nginx/conf/nginx.conf
http {
//去掉gzip  on;前面的注释,增加其他的参数
    gzip  on;
    gzip_buffers 4 64k;
    gzip_comp_level 2;
    gzip_types text/plain text/javascript application/x-javascript text/css text/xml image/jpeg image/gif image/png;
[root@www ~]# systemctl restart nginx

使用浏览器访问网址验证,http://192.168.10.101/,如果响应头中有Content-Encoding参数则是成功

防盗链

实验环境

修改两台主机和客户端hosts文件

192.168.10.101 www.benet.com
192.168.10.102 www.accp.com

把图片 logo.jpg 放到源主机(benet.com)的工作目录下

[root@www ~]#  vim /usr/local/nginx/html/index.html
<html>
<body>
<p>原图网站</p>
<img src="http://www.benet.com/logo.jpg"/>
</body>
</html>

在盗链主机(accp.com)的工作目录编写盗链页面index.html,盗取源主机(benet.com)的图片

[root@accp~]# yum -y install httpd
[root@accp~]# systemctl stop firewalld
[root@accp~]# systemctl start httpd
[root@accp~]#  vim /var/www/html/index.html
<html>
<body>
<p>盗图网站</p>
<img src="http://www.benet.com/logo.jpg"/>
</body>
</html>

访问盗链的网页 http://www.accp.com/index.html 查看是否盗链成功

配置 Nginx 防盗链

[root@www ~]# vim /usr/local/nginx/conf/nginx.conf
        location / {
            root   html;
            index  index.html index.htm;
        }
        location ~* \.(gif|jpg|jpeg)$ {
            valid_referers *.benet.com benet.com;
            if ($invalid_referer) {
                rewrite ^/ http://www.benet.com/error.png;
            }
        }
注意:
去掉页面缓存相关配置

测试

重新访问 http://www.accp.com/,无法看到盗图

标签:index,www,nginx,优化,Nginx,html,com,root,防盗链
From: https://blog.csdn.net/anbesrt/article/details/139776609

相关文章

  • Nginx下载大文件超时配置和请求超时配置等
    https://blog.csdn.net/weixin_42949219/article/details/139354348 Nginx下载大文件超时配置和请求超时配置等location/download{......proxy_bufferingoff; proxy_connect_timeout180s; proxy_send_timeout180s; proxy_read_timeout180s; proxy_se......
  • OB_MYSQL UPDATE 优化案例
    在工单系统上看到有一条SQL问题还没解决,直接联系这位同学看看是否需要帮忙。 慢SQL:UPDATEASETCORPORATION_NAME=(SELECTDISTINCTCORPORATION_NAMEFROM(SELECTCONTRACT_NO,COOP_SERVICE_TYPE,CORPORATION_NA......
  • window7/10/11 系统清理 注册表优化 系统优化
    推荐使用Windows优化大师工具     支持所有系统 xp/win7/win10/win11免费下载地址:https://pan.quark.cn/s/c07f185139d0开始                                                      优化启动速度清理......
  • 数据治理的力量:优化数据提取,提升业务洞察力
    数据治理的力量:优化数据提取,提升业务洞察力在数字化时代,数据是企业决策和运营的核心驱动力。然而,如何有效管理和利用这些数据,使之转化为有价值的业务洞察,是企业面临的一大挑战。数据治理正是解决这一问题的关键所在,它不仅能够优化数据提取过程,还能显著提升企业的业务洞察力。......
  • 3、k8s-服务的部署(nginx)
    说明:pod是kubernetes的最小单元-而容器时运行在pod中的、服务是运行在容器中的、所以:pod>容器>服务  --(这是一个包含的关系) 1、创建部署nginx:kubectlcreatedeploymentnginx--image=nginx:1.14-alpine#kubectlcreatedeployment是一个Kubernetes命令,用于创建一个......
  • 5、k8s-资源管理-yaml语言--使用yaml语言创建nginx服务
    YAML语言是一个类似XML、JSON的标记性语言、他强调以数据为中心、而不是以标识语言为重点、因而YANL本身定义比较简单:对比如下XML语言:<html><age>15</age><address>hainan</address></html>YAML语言:heima:age:15address:hainanyaml语言没有过多的......
  • 快手信息流推广怎么做?快手广告素材的优化方法是什么?
    快手作为一款备受欢迎的短视频平台,为广告主提供了一个广阔的信息流广告投放平台。为了在快手上投放效果更佳的广告,需要深入了解快手用户的特点和行为习惯,并采取一系列优化思路来提高广告的点击率和转化率。本文将详细介绍快手信息流推广的策略和方法,并结合具体例子进行说明。......
  • 每日一题——Python实现PAT甲级1132 Cut Integer(举一反三+思想解读+逐步优化)五千字好
    一个认为一切根源都是“自己不够强”的INTJ个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数Python-3.12.0文档解读目录 我的写法正确性和功能性时间复杂度空间复杂度其他点评总结我要更强优化后的时间复杂度和空间复杂度进一......
  • Nginx如何反向代理后端服务?
    Nginx(Engine-X)是一款高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。它由俄罗斯的程序员IgorSysoev于2004年开发,并在BSD许可下发布。Nginx不仅以其高性能和低资源消耗而闻名,还因其灵活的配置和扩展能力受到广大开发者的欢迎。本文将详细介绍Nginx如何反向......
  • Adam优化算法
    Adam优化算法Adam(AdaptiveMomentEstimation)是一种用于训练深度学习模型的优化算法,由DiederikP.Kingma和JimmyBa在2014年提出。Adam结合了动量和自适应学习率的方法,具有高效、稳定和适应性强的特点,被广泛应用于各种深度学习任务中。Adam优化算法的基本思想Adam的核心思......