当前位置: 首页 > news >正文

Nginx 优化与防盗链配置指南

1. 隐藏版本号

操作方法:

1.1修改配置文件方式:

# 编辑nginx配置文件
vim /usr/local/nginx/conf/nginx.conf# 在http块中添加
http {server_tokens off;  # 关闭版本号显示...
}

1.2修改源码方式:

# 修改nginx.h文件
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 --with-http_stub_status_module
make && make install

验证方法:

systemctl restart nginx
curl -I http://192.168.88.200

2. 修改用户与组

操作方法:

# 编辑nginx配置文件
vim /usr/local/nginx/conf/nginx.conf# 修改用户和组
user nginx nginx;  # 取消注释并修改

验证方法:

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

3. 缓存时间设置

操作方法:

# 编辑nginx配置文件
vim /usr/local/nginx/conf/nginx.conf# 添加图片缓存设置
location ~ \.(gif|jpg|jepg|png|bmp|ico)$ {root html;expires 1d;  # 设置缓存时间为1天
}

验证方法:

systemctl restart nginx
# 浏览器访问测试,查看响应头中的Cache-Control:max-age=86400

4. 日志切割

操作方法:

# 创建日志切割脚本
vim /opt/fenge.sh#!/bin/bash
day=$(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}/kgc.com-access.log-$day
kill -USR1 $(cat $pid_path)
find $logs_path -mtime +30 -exec rm -rf {} \;# 设置定时任务
chmod +x /opt/fenge.sh
crontab -e
0 1 * * * /opt/fenge.sh

5. 连接超时设置

操作方法:

# 编辑nginx配置文件
vim /usr/local/nginx/conf/nginx.confhttp {keepalive_timeout 65 180;    # 三次握手的超时时间client_header_timeout 80;    # 等待客户端发送请求头的超时时间client_body_timeout 80;      # 设置客户端发送请求体的超时时间...
}

6. 更改进程数

操作方法:

# 编辑nginx配置文件
vim /usr/local/nginx/conf/nginx.conf# 根据CPU核数设置工作进程数
worker_processes 2;              # 修改为核数相同或者2倍
worker_cpu_affinity 01 10;       # 设置CPU亲和性

检查方法:

cat /proc/cpuinfo | grep -c "physical id"  # 查看CPU核数
ps aux | grep nginx                        # 查看nginx进程数

7. 配置网页压缩

操作方法:

# 编辑nginx配置文件
vim /usr/local/nginx/conf/nginx.confhttp {gzip on;                            # 开启gzip压缩gzip_min_length 1k;                 # 最小压缩文件大小gzip_buffers 4 64k;                 # 压缩缓冲区gzip_http_version 1.1;              # 压缩版本gzip_comp_level 6;                  # 压缩比率(1-9)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;...
}

验证方法:

systemctl restart nginx
# 浏览器查看响应头中是否包含Content-Encoding: gzip

8. 配置防盗链

操作方法:

# 编辑nginx配置文件
vim /usr/local/nginx/conf/nginx.confserver {location ~* \.(jpg|gif|swf)$ {valid_referers none blocked *.kgc.com kgc.com;if ($invalid_referer) {rewrite ^/ http://www.kgc.com/error.png;# return 403;}}...
}

配置说明:

  • ~* \.(jpg|gif|swf)$:匹配不区分大小写的图片文件

  • valid_referers:设置信任的网站

  • none:允许没有Referer字段的请求

  • blocked:允许不带协议的请求

  • *.kgc.com:只允许来自指定域名的请求

主机配置:

# 源主机(192.168.10.23)配置
echo "192.168.10.23 www.kgc.com" >> /etc/hosts# 盗链主机(192.168.10.80)配置
echo "192.168.10.23 www.kgc.com" >> /etc/hosts
echo "192.168.10.80 www.benet.com" >> /etc/hosts

文章转载自:

http://EhlE99Hg.kxnjg.cn
http://qVTsxy6s.kxnjg.cn
http://j5gX1uc3.kxnjg.cn
http://f6NvxEYQ.kxnjg.cn
http://FMaUknI5.kxnjg.cn
http://SpkJ2oIe.kxnjg.cn
http://yllah3h2.kxnjg.cn
http://x9JgbRBb.kxnjg.cn
http://smtspofZ.kxnjg.cn
http://TcLr0KFh.kxnjg.cn
http://D9pTHOpI.kxnjg.cn
http://WH9X8gBh.kxnjg.cn
http://qrgwEPjF.kxnjg.cn
http://fCP7Noph.kxnjg.cn
http://ZcCN52PG.kxnjg.cn
http://jB9PoWrB.kxnjg.cn
http://NmrUUYMn.kxnjg.cn
http://XnWDKk6D.kxnjg.cn
http://26qqNayL.kxnjg.cn
http://vwizR7dn.kxnjg.cn
http://ffbIEhz6.kxnjg.cn
http://D4KRuxm5.kxnjg.cn
http://w7Ab5yNO.kxnjg.cn
http://hKRSGSur.kxnjg.cn
http://MsALZpcO.kxnjg.cn
http://juBrNpad.kxnjg.cn
http://hq38pT02.kxnjg.cn
http://R3bwOXHh.kxnjg.cn
http://OnkFnPHQ.kxnjg.cn
http://XMJPv5cJ.kxnjg.cn
http://www.dtcms.com/a/375998.html

相关文章:

  • 【数据结构】栈详解
  • 力扣周赛困难-3677. 统计二进制回文数字的数目(需要一定推理的经典二分)
  • 【硬件-笔试面试题-77】硬件/电子工程师,笔试面试题(知识点:滤波电路中截止频率的计算)
  • CUDA编程13 - 测量每个Block的执行时间
  • 仓颉编程语言青少年基础教程:特殊数据类型Unit类型和Nothing类型)
  • AFSim2.9.0学习笔记 —— 3、Wizard平台类型与ArkSIM平台介绍
  • 基于LTE标准的MIMO-OFDM仿真程序
  • 814章:Python Web爬虫入门:使用Requests和BeautifulSoup
  • 硬件开发(5)—ARM汇编
  • leetcode16(盛最多水的容器)
  • 《面向高速三维表面成像的微型深度学习轮廓术》论文总结
  • 基于Java的图书管理系统的设计与实现
  • 【Qt跬步积累】—— 初识Qt
  • 第十九章 使用LAMP架构部署动态网站环境
  • 谷歌nano banana官方Prompt模板发布,解锁六大图像生成风格
  • 转载:VSCODE 关闭文件和资源管理器关联
  • Windows 常用命令使用说明
  • Win_Server远程桌面(RDP)服务调用GPU并提上传输帧率和USB设备重定向
  • 【小呆的随机振动力学笔记】概率论基础
  • hipcc编译不生成可执行文件只输出版本信息问题
  • MatDEM一体机的技术深度分析
  • linux三剑客
  • 交换排序——冒泡排序与快速排序
  • DIY项目-校遇
  • GEO 优化系统开发:技术架构与核心实现方案
  • 【66页PPT】质量管理体系五种核心工具APQP(附下载方式)
  • MySQL InnoDB Cluster介绍,MHA、PXC、InnoDB Cluster怎么选?一文讲透MySQL高可用方案最佳实践
  • Miniconda3搭建Selenium的python虚拟环境全攻略
  • 01背包,完全背包,分组背包,多重背包例题
  • Ansible之playbook