nginx优化与防盗链

nginx优化: 

1隐藏版本号:

方法一

修改配置文件方式
vim /usr/local/nginx/conf/nginx.conf
http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens off;        

 vim /usr/local/nginx/conf/nginx.conf

 

 systemctl restart nginx刷新

 版本号被隐藏

 

 方法二

修改源码文件,重新编译安装

vim /opt/nginx-1.22.0/src/core/nginx.h

修改

define NGINX_VERSION "1.1.1"                     修改版本号

define NGINX_VER “burun/” NGINX_VERSTON     修改服务器类型

cd /opt/nginx-1.22.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
make && make install

vim /usr/local/nginx/conf/nginx.conf
http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens on;
    ......
}

systemctl restart nginx
curl -I http://192.168.233.61

 2nginx 日志分割

Nginx与apache的不同之处,就是Nginx本身没有设计日志分割工具,所以需要运维人员进行脚本编写来实现日志分割
NGINX不自带日志分割系统,可以通过脚本实现

vim nginx1.22.0

 

 nginx的页面压缩

可节约带宽,提升用户的访问速度

vim /usr/local/nginx/conf/nginx.conf
 

常用配置

1、gzip_min_length 1k :最小压缩文件的大小,不在进行压缩

 2、gzip_buffers 4 64k;  :压缩缓冲区,大小为4个64K缓冲区,Nginx 会使用 4 个 64KB 大小的缓冲区来存储压缩后的数据。

 3、gzip_http_version 1.1;   :压缩版本,可以不写,默认为1.1

4、gzip_comp_level 6;         #压缩比率(压缩等级为1-9,6是中等等级,也是常用等级)Gzip 压缩级别的范围是 1 到 9,其中 1 表示压缩速度最快,但压缩比最低,9 表示压缩速度最慢,但压缩比最高。默认值为 1。

5、 gzip_vary on;              #支持前端缓存服务器支持压缩页面

6、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;

  gzip_types  :压缩的类型,哪些文档启用压缩功能

4、图片缓存

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

 

 修改文件后刷新

 缓存设置成功

 限

 连接超时

HTTP有一个KeepAlive模式,它告诉web服务器在处理完一个请求后保持这个TCP连接的打开状态,若接收到来自客户端的其它请求,服务端会利用这个未被关闭的连接,而不需要再建立一个连接,KeepAlive 在一段时间内保持打开状态,它们会在这段时间内占用资源。占用过多就会影响性能。

keepalive_timeout 65 :指定TCP链接最多可以保持65秒

设置为0就是禁用了keepalive功能,只要请求完成立刻关闭tcp连接6

 client_header_timeout 80;  :请求头

客户端向服务端发送请求,会有一个request_heard 的超时时间,如果客户端在80s内,没有发送一个而完整的请求头,nginx会返回一个408 request time out

client_body_timeout 80: 客户端没有向服务端在60s 内发送一个完整请求体 nginx 408 request time out

6、nginx 

在高并发场景,需要启动更多的Nginx进程以保证快速响应,以处理用户的请求,避免造成阻塞

1查看cpu的核心数,根据核心数来设置工作进程数

cat /proc/cpuinfo |grep processor|wc -l

 2、在nginx.conf文件中

vim /usr/local/nginx/conf/nginx.conf
worker_processes  2;                #修改为核数相同或者2倍
worker_cpu_affinity 01 10;    
 

 修改为核数相同或者2倍,文件数最多只能为1024个,需要改最大文件数为65535个

worker_cpu_affinity 01 10;

设置worker进程绑定到指定cup的命令,为了可以减少CPU切换带来的开销,确保work进程在一个独立的CPU核心上运行,

worker_cpu_affinity 是一个用于设置 worker 进程绑定到指定 CPU 的指令

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

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

相关文章

Python入门自学进阶-Web框架——38、redis、rabbitmq、git

缓存数据库redis: NoSQL(Not only SQL)泛指非关系型的数据库。为了解决大规模数据集合多重数据类的挑战。 NoSQL数据库的四大分类: 键值(Key-Value)存储数据库列存储数据库文档型数据库图形(…

【Linux 网络】网络层协议之IP协议

IP协议 IP协议所处的位置网络层要解决的问题IP协议格式分片与组装网段划分特殊的IP地址IP地址的数量限制私网IP地址和公网IP地址路由 IP协议所处的位置 IP指网际互连协议,Internet Protocol的缩写,是TCP/IP体系中的网络层协议。 网络层要解决的问题 网络…

Docker搭建zookeeper

问题背景 前言 本文参考自:docker-compose快速搭建Zookeeper集群还有一种更加详细更加全面的部署方式:Docker之docker-compose一键部署Zookeeper集群,但笔者还未验证,先记录下来 搭建 安装docker-ce 此处不赘述 安装docker-co…

javaweb监听和渲染技术

jsp入门使用 <% page import"java.io.PrintWriter" %> <%-- Created by IntelliJ IDEA.--%> <%-- User: 韩顺平--%> <%-- jsp的模板如何定制&#xff0c;一会再说明--%> <%-- To change this template use File | Settings | File T…

使用gpt对对话数据进行扩增,对话数据扩增,数据增强

我们知道一个问题可以使用很多方式问&#xff0c;但都可以使用完全一样的回答&#xff0c;基于这个思路&#xff0c;我们可以很快的扩增我们的数据集。思路就是使用chatgpt或者gpt4生成类似问题&#xff0c;如下&#xff1a; 然后我们可以工程化这个过程&#xff0c;从而快速扩…

Python入门

Python 是一种解释型语言&#xff0c;这意味着它的执行方式与编译型语言如 C 或 Java 有所不同。但这并不意味着 Python 没有编译过程。事实上&#xff0c;Python 先将源代码编译为字节码&#xff0c;然后解释或执行这些字节码。以下是 Python 的编译和执行过程的详细步骤&…

RabbitMQ-SpringBoot2

1.依赖引用 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> 2.配置文件 spring: rabbitmq: host: 192.168.2.17 port: 5672 usernam…

一键去除网页BOM属性【解决乱码,头部空白,验证码不显示问题】

几个常出现的问题&#xff1a; 1.网站打开空白 2.页面头部出现多余的空白 3.网站出现乱码&#xff0c;如“锘&#xfffd;” 4.后台登录验证码不显示 解决方案&#xff1a; 1.选用专业的编辑器&#xff0c;例如notepad&#xff0c;sublime&#xff0c;editplus这样不会自…

【JAVA】数组

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f4c0; 收录专栏&#xff1a;浅谈Java &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; 数组 1. 数组的基本概念1.1 为什么要使用…

elementUI点击当前行更改当前行状态(数据更新DOM不更新问题解决)

<template slot-scope"{row,$index}" slot"menu"><el-button v-if"row.editable" type"text" size"small" click"changeStatus(row,$index)">编辑</el-button><el-button v-else type"…

用服务器搭建网站需要做什么

网站建设是一个广义的术语&#xff0c;涵盖了许多不同的技能和学科中所使用的生产和维护的网站。不同领域的网页设计&#xff0c;网页图形设计&#xff0c;界面设计&#xff0c;创作&#xff0c;其中包括标准化的代码和专有软件&#xff0c;用户体验设计和搜索引擎优化。许多人…

Spring Boot整合ES的两种方式

使用Spring Data Elasticsearch Starter 在Spring Boot中整合Elasticsearch的方式之一是使用Elasticsearch的官方Spring Data Elasticsearch Starter。该Starter提供了对Elasticsearch的高级集成&#xff0c;简化了配置和管理Elasticsearch客户端。 下面是使用Spring Data E…

82 | Python可视化篇 —— Plotly数据可视化

文章目录 什么是 Plotly安装 Plotly创建散点图创建线图创建条形图创建饼图创建热力图3D图(3D Plot)直方图(Histogram)3D表面图(3D Surface Plot)箱线图(Box Plot)散点地图(Scatter Map)量级地图(Choropleth Map)在网页中嵌入 Plotly 图表总结什么是 Plotly Plotly…

网关 GateWay 的使用详解、路由、过滤器、跨域配置

一、网关的基本概念 SpringCloudGateway网关是所有微服务的统一入口。 1.1 它的主要作用是&#xff1a; 反向代理&#xff08;请求的转发&#xff09; 路由和负载均衡 身份认证和权限控制 对请求限流 1.2 相比于Zuul的优势&#xff1a; SpringCloudGateway基于Spring5中…

javascript:js介绍初体验和变量以及数据类型的使用。

目录 一.介绍 1概念 2作用 3组成 二.js初体验 1.js的书写位置 a.行间引入 b.内部引入 c.外部引入​编辑 2.js的注释 3.js的结束符 4.输入输出语句 输出语法 输入语法 三.变量及数据类型 ​ 1.字面量 2.变量 ​编辑 变量的使用 ​编辑 let和var的区别…

clang-format格式化代码

1. clang-format简介 Clang-Format可用于格式化&#xff08;排版&#xff09;多种不同语言的代码。其自带的排版格式主要有&#xff1a;LLVM, Google, Chromium, Mozilla, WebKit等; 利用style参数配置风格。通过编写 .clang-format 文件&#xff0c;可以实现代码风格的配置。…

在 Linux 上以 All-in-One 模式安装 KubeSphere

官方文档&#xff1a;https://www.kubesphere.io/zh/docs/v3.3/quick-start/all-in-one-on-linux/ 操作系统 最低配置 Ubuntu&#xff1a; 16.04,18.04, 20.04, 22.04 2 核 CPU&#xff0c;4 GB 内存&#xff0c;40 GB 磁盘空间Debian Buste&#xff1a;Stretch 2 核 CPU&am…

Mac使用brew安装软件报错

在使用brew安装软件时报错Failed to upgrade Homebrew Portable Ruby! brew install --cask --appdir/Applications docker> Downloading https://ghcr.io/v2/homebrew/portable-ruby/portable-ruby/blobs/sha256:0cb1cc7af109437fe0e020c9f3b7b95c3c709b140bde9f991ad2c143…

网络安全学习笔记——XFF攻击流程

手工注入 手动报错注入&#xff0c;填写格式如&#xff1a;X-Forwarded-For: and updatexml(1,concat(0x7e,(select database()),0x7e),1) or 11 库名 1 and updatexml(1,concat(0x7e,database(),0x7e),1), 表名 1 and updatexml(1,concat(0x7e,(select table_name from…

【严重】Smartbi商业智能BI软件权限绕过漏洞

漏洞描述 Smartbi 是一款商业智能应用&#xff0c;提供了数据集成、分析、可视化等功能&#xff0c;帮助用户理解和使用他们的数据进行决策。 在 Smartbi 受影响版本中存在权限绕过问题&#xff0c;未授权的攻击者可以通过 RMI 的方式调用 getPassword 接口获取管理员 token …