Nginx服务性能和安全优化

news2024/11/8 21:54:02

目录

一、配置Nginx隐藏版本相关信息

1.隐藏版本号

2.修改版本号及相关信息

​编辑​编辑

二、修改Nginx运行时的属主和属组

三、配置Nginx网页缓存时间

四、配置Nginx站点日志分割

五、设置Nginx长连接及超时时间

六、配置Nginx网页压缩

七、配置Nginx防盗链

1.模拟盗链

2.配置防盗链并测试


一、配置Nginx隐藏版本相关信息

1.隐藏版本号

修改 nginx.conf 文件,在http块中添加字段后,重载服务

img

获取报文信息并查看(浏览器查看或使用命令)

img

2.修改版本号及相关信息

如果做了上一步在nginx.conf 中添加了 server_tokens off 需要注释掉!!

修改源码信息(修改完需要重新编译安装)

img

(修改的只是显示的信息,并不是真正修改版本和信息)

img

重新编译安装

​
cd /opt/ngnginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
​
make && make install
​
systemctl restart nginx.service


​

获取报文信息并查看

img

二、修改Nginx运行时的属主和属组

修改 nginx.conf 文件

img

查看nginx运行用户发生改变(默认为nobody)

img

三、配置Nginx网页缓存时间

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

一般针对静态网页设置,对动态网页不设置缓存时间。

修改 nginx.conf 文件 ,在http块 或server块 或location块中添加 expires 参数

 # ~ 代表使用正则表达式,后面匹配的是以|分割的字符结尾的文件
location ~ \.(gif|jpg|jpeg|png|mp4|mp3|txt)$ {       
            root   html;
            expires 1d;    #代表缓存时间为1天
}

img

img

添加图片,访问测试

img编辑

查看报文信息,86400代表1天,设置生效

img

四、配置Nginx站点日志分割

编写脚本(因为放在后一天凌晨执行,所以获取前一天的日期)

img

执行并测试

img

加入计划任务

img

五、设置Nginx长连接及超时时间

keepalive_timeout

指定KeepAlive的超时时间(timeout)。指定每个tcp连接最多可以保持多长时间,服务器将会在这个时间后关闭连接。

Nginx的默认值是65秒,有些浏览器最多只保持60秒,所以可以设定为 60秒。若将它设置为0,就禁止了keepalive连接。 ​ 第二个参数(可选的)指定了在响应头keepalive_timeout 中的time值。这个头能够让一些浏览器主动关闭连接,这样服务器就不必去关闭连接了。没有这个参数,Nginx不会发送Keep-Alive响应头。

client_header_timeout 客户端向服务端发送一个完整的 request header的超时时间。如果客户端在指定时间内没有发送一个完整的 reqpuest header,Nginx 返回HTTP 408(RequestTimed out ) 。

client_body_timeout 指定客户端与服务端建立连接后发送request body的超时时间。如果客户端在指定时间内没有发送任何内容,Nginx返回 HTT 408(Request Timed out) 。

修改 nginx.conf 文件

img

检查语法并重启服务

img编辑

访问并查看请求报文(保持连接,且浏览器超时时间为50s)

img

六、配置Nginx网页压缩

Nginx的ngx http gzip module压缩模块提供对文件内容压缩的功能。 允许Nginx服务器将输出内容在发送客户端之前进行压缩,以节约网站带宽,提升用户的访问体验,默认已经安装,可在配置文件中加入相应的压缩功能参数对压缩性能进行优化。

gzip on;取消注释,开启gzip压缩功能
gzip_min_length 1k;最小压缩文件大小 1k
gzip_buffers 4 64k;压缩缓冲区,大小为4个64k缓冲区
gzip_http_version 1.1;压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
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;压缩类型,表示哪些网页文档启用压缩功能

img

检查语法并重启服务

img

准备页面并访问测试

七、配置Nginx防盗链

1.模拟盗链

192.168.116.10为www.abc.com; 192.168.116.20为www.def.com;

www.def.com模拟盗取www.abc.com的网页图片;

使用windows主机访问两个网站。

配置域名解析(为了方便这里修改/etc/hosts文件)

img

img编辑

img编辑

在www.def.com的首页添加图片

在www.abc.com的首页盗取此站点图片

2.配置防盗链并测试

修改 nginx.conf 文件,如果有缓存配置,需要在缓存配置之前加上

location ~* .(gif|jpg|jpeg|png|swf)$ { ... }

~代表使用正则表达式 ,*代表不区分大小写(location选项中不能包含防盗链图片的格式)

vaild_referers ...

代表设置受信任的网站,匹配到的将不会做防盗链。

none

允许没有http_refer的请求访问资源(根据Referer的定义,它的作用是指示一个请求是从哪里链接过来的,如果直接在浏览器的地址栏中输入一个资源的URL地址,那么这种请求是不会包含Referer字段的),如http://www.def.com/error.webp。 blocked

允许不是http://开头的,不带协议的请求访问资源。

$invalid_referer

就是vaild_referers指定的站点范围取反,即非信任站点

if判断当地址满足$invalid_referer的范围,则指定条件中的语句,

即 rewrite ^/ http://www.def.com/error.webp; 重写访问的url为指定url。

img

img

在www.def.com下上传防盗链的图片

img

再次访问测试www.abc.com,变成了指定的防盗链图片

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/683642.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人工智能-A*启发式搜索算法解决八数码问题 Python实现

一.问题描述 八数码问题也称为九宫问题。在 33 的棋盘,摆有八个棋子,每个棋子上标有 1 至 8 的某一数字,不同棋子上标的数字不相同。棋盘上还有一个空格(以数字 0 来表示),与空 格相邻的棋子可以移到空格中…

操作系统——Linux 进程间通信

一:实验题目 Linux 进程间通信 二:实验目的 Linux 系统的进程通信机构(IPC)允许在任意进程间大批量地交换数据,通过本实验,理解 熟悉 Linux 支持的消息通信机制。 三:实验内容(…

企业级微服务架构实战项目--xx优选-小程序安装篇4

一 搭建微信小程序前端环境 1.1 申请小程序测试号 申请地址:微信公众平台 使用微信扫描二维码进行申请,申请成功之后,进入界面,获取小程序ID和秘钥 。 AppID(小程序ID) wx62bfe844fea3eba8 AppSecret(小程序密钥) …

JavaScript ES9新特性

文章目录 Object spread syntax(对象扩展语法)Promise.prototype.finally()Asynchronous Iteration(异步迭代):Rest/Spread Properties(剩余和扩展属性):RegExp named capture group…

Apikit 自学日记:导入、导出文档

一、导入API文档 功能入口:API管理应用 / 选中某个项目 / API文档菜单 / 点击“ API”按钮旁的下拉按钮 / 选中“导入API” Eolink提供一键导入已有API文档的功能,支持多种产品格式。常用于新项目创建后,需要对旧项目或旧软件内数据进行迁移…

认识设计组件帮助测试,以提高产品用户体验

一、控制元素 1、活动指示器——应与背景想协调,用于持续时间不明的进程,单一元素不显示,大于1个显示 2、加载控件——同一个专区页面,加载样式统一 3、页码控制器——原点最好控制在5点内,左右滑动,点击原…

OpenCL编程指南-5.5图像读、写函数

读图像 OpenCL GPU设备有专用硬件来读、写图像。OpenCL C图像读、写函数允许开发人员充分利用这个专用硬件。OpenCL 中的图像支持是可选的。要了解一个设备是否支持图像,可以使用clGetDeviceInfo API查询CL_DEVICE_IMAGE_SUPPORT属性。 需要说明的是&#xff0…

c4d+AI+PS设计广告展示架/销售柜台/展示盒子的建议

1、首先做出我标识出来的样子,这里称作A面。(可用软件:PS、AI、cdr等) 2、制作用于展示盒A面PNG图片(PS来掏空空白处用于描边)。 操作:按需求缩小图片,载入选区,新建图层…

three.js标准网格材质(MeshStandardMaterial)光照、粗糙度、金属度、法线属性介绍

如上图,在前面的章节中我们通过设置物体的纹理和材质实现了一个3d的立体门框的效果 完整代码如下: import * as THREE from "three"; // 导入轨道控制器 import { OrbitControls } from "three/examples/jsm/controls/OrbitControls&quo…

新媒体运营工作总结

新媒体运营工作总结篇1 一、大力提升新媒体平台的关注度。在当前掩盖全校60%的同学的基础上,进一步提高掩盖率,争取在未来一年中到达90%以上。为了增强平台与受众的互动与交流,吸引同学们的关注,可以展开更多同学们喜闻乐见的线上…

macOS FreeBSD 如何刷新 DNS 缓存

macOS FreeBSD 如何刷新 DNS 缓存 全文:如何刷新 DNS 缓存 (macOS, Linux, Windows) Unix Linux Windows 如何刷新 DNS 缓存 (macOS, FreeBSD, RHEL, CentOS, Debian, Ubuntu, Windows) 请访问原文链接:https://sysin.org/blog/how-to-flush-dns-cach…

(动态规划) 5. 最长回文子串 ——【Leetcode每日一题】

❓ 5. 最长回文子串 难度:中等 给你一个字符串 s,找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。 示例 1: 输入:s “babad” 输出:“bab” 解释&#xff1a…

Pytest+Webdriver+Alluer的UI自动化测试框架

作为web自动化的入门学习,搭建框架练习下 一、熟悉项目的测试框架的整体目录 二、 PIP安装完所需框架 1、编写main.py import pytestif __name__ __main__:#pytest.main() # 遍历相同目录下的所以test开头的用例#生成测试报告 #一次执行所有接口测试用例&…

【消费战略方法论】3W消费战略作业方法

3W消费战略 以消费者为核心导向的 品牌战略 品牌本质上属于消费者,消费者是品牌战略的核心。所有品牌工作都应把握一个标准,即是否围绕着消费者,是否对消费者有价值。一切的品牌战略、策略、创意、营销等工作都应该是为了“消费者”而设…

【Java|多线程与高并发】定时器(Timer)详解

文章目录 1. 前言2. 定时器的基本使用3. 实现定时器4. 优化上述的定时器代码5. 总结 1. 前言 在Java中,定时器Timer类是用于执行定时任务的工具类。它允许你安排一个任务在未来的某个时间点执行,或者以固定的时间间隔重复执行。 在服务器开发中,客户端向…

原型模式(Prototype)

定义 原型是一种创建型设计模式,使你能够复制已有对象,而又无需使代码依赖它们所属的类。 别名 克隆(Clone)。 前言 1. 问题 如果你有一个对象,并希望生成与其完全相同的一个复制品,你该如何实现呢&a…

基于工业智能网关的设备运维管理平台有何功能?

工业物联网平台作为监控工业设备和工业环境的智能应用,整合边缘和云端的数据优势,在制造业领域得到越来越丰富的应用。 在工业制造生产过程中,常常分为人、机、料、法、环等五大要素,其中机器设备的安全稳定运行时保证工厂生产效…

58同城AI Lab在WeNet中开源GPU热词增强功能

01 前言 端到端语音识别系统在足够多数据上训练后,往往能达到不错的识别效果,然而在实际应用场景中,对于不常见的专有名词,例如人名、产品名、小区名等,往往容易识别错误,此类问题需要快速修复&#xff0c…

DNS是什么?DNS的工作流程

79. DNS是什么? DNS(Domain Name System)是一种用于将域名解析为相应IP地址的分布式命名系统,了解DNS对于理解域名解析原理和优化网络请求非常重要。本篇文章将介绍DNS的概念、工作原理以及在前端开发中的应用,帮助前…

正则表达式-捕获组,命名捕获组,非捕获组

正则表达式的作用 测试目标字符串是否符合规则 返回true/false按照规则从目标字符串提取内容 返回匹配的数组 在线测试工具 regex101: build, test, and debug regexRegular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, …