Nginx优化与防盗链

服务优化

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

        方法

                修改配配置文件 /usr/local/nginx/conf/nginx.conf

                        在34行添加如图信息

server_tokens off;

                修改源代码

 

深入优化

        修改用户和组、

        配置网页缓存

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

vi /usr/local/nginx/conf/nginx.conf
expires 1d;

         日志分割

                打开文件

vi /opt/fenge.sh

                编写脚本

#!/bin/bash
# Filename: fenge.sh
#-d "-1 day"  获取昨天的日志
d=$(date -d "-1 day" "+%Y%m%d")
#路径
logs_path="/var/log/nginx"
#存放nginxid号,用来发送日志
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

                给执行权限

 chmod +x /opt/fenge.sh
crontab -e
0 0 * * * /opt/fenge.sh

         连接超时

                为避免同一客户端长时间占用连接,造成资源浪费,可设置超时相应的连接超时参数,实现控制连接访问时间

                超时参数

                        Keepalive——timeout

                                设置连接保持超时时间

                        Client_header_timeout

                                指定等待客户端发送请求头的超时时间

                        Client_body_timeout

                                设置请求体读超时时间

         更改Nginx运行进程数

                修改配置文件的woker_processes参数

                        一般设为CPU的个数或者核数

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

                好处

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

        配置网页压缩

                作用:Nginx 的 ngx_http_gzip_module 压缩模块提供了对文件内容压缩的功能,允许 Nginx 服务器将输出内容发送到客户端之前进行压缩,以节约网站的带宽,提升用户的访问体验

                打开配置文件 vi /usr/local/nginx/conf/nginx.conf

                在33行的注释取消

                为其添加配置 

    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;


# 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 压缩的页面。

         编辑文件内容vi /usr/local/nginx/html/index.html (整大点)

curl -I -H"Accept-Encoding: gzip, deflate" "http://127.0.0.1/index.html"

 

        配置防盗链

                        1.第一台机器

 

                        2.第二台机器,部署上nginx后 

 

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

                                3.新打开一台桌面版Linux 

                        防盗
                                在第一台机器 

                                在43行添加配置 

location ~* \.(gif|jpg|jpeg)$ {
    valid_referers *.kgc01.com;
    if ($invalid_referer) {
        rewrite ^/ http://www.kgc01.com/error.png;
    }
}

# ~* \.(jpg|gif|swf)$:这段正则表达式表示匹配不区分大小写,以.jpg 或.gif 或.swf 结尾的 文件;
# Valid_referers:设置信任的网站,可以正常使用图片;
# If 语句:如果链接的来源域名不在 valid_referers 所列出的列表中,$invalid_referer 为 1,则执行后面的操作,即进行重写或返回 403 页面。
# valid_referers的值一共有四种 none、blocked、server_names、string
# none:直接访问url,而不使用任何网站或链接的跳转,$http_referer变量的值是空的。
# blocked:请求标头中存在“ Referer”字段,但其值已被防火墙或代理服务器删除;这些值是不以“ http://”或“ https://”开头的字符串
# server_names: 写域名,设置允许的域名

                

相关推荐

  1. Nginx优化防盗

    2024-07-18 11:54:03       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 11:54:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 11:54:03       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 11:54:03       58 阅读
  4. Python语言-面向对象

    2024-07-18 11:54:03       69 阅读

热门阅读

  1. Docker 容器中的 Docker Compose 简介

    2024-07-18 11:54:03       23 阅读
  2. Spring boot 2.0 升级到 3.3.1 的相关问题 (三)

    2024-07-18 11:54:03       22 阅读
  3. NLP篇10 NLP总结

    2024-07-18 11:54:03       18 阅读
  4. 自然语言处理NLP--文本相似度面试题

    2024-07-18 11:54:03       16 阅读
  5. vue中获取剪切板中的内容

    2024-07-18 11:54:03       22 阅读
  6. 面向过程编程和面向对象编程

    2024-07-18 11:54:03       19 阅读
  7. 【Vue】 @/ 和 ./ 区别

    2024-07-18 11:54:03       20 阅读
  8. 特朗普主题meme币受消息面和选情影响大幅波动

    2024-07-18 11:54:03       19 阅读
  9. Git【撤销远程提交记录】

    2024-07-18 11:54:03       22 阅读