nginx-2-配置

准备配置文件

  • 解压后去除多余内容
worker_processes  1;
events {worker_connections  1024;
}
http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {listen       80;server_name  localhost;location / {root   html;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}
}
  • 进一步去除,添加注解,nginx的最小配置项
# 表示只启动几个工作进程,具体值为多少,一般根据CPU核数来定,如果CPU为八核,那么此处值就填8。
worker_processes  1;# 定义与服务器事件处理模型相关的参数和指令
events {# 连接数量,每个进程可以处理多少连接。一般就保持默认,1024。worker_connections  1024;
}http {# nginx能够识别出的文件类型,指定一个文件,这个文件中存储了nginx能够识别出的文件类型,默认为nginx.conf同一目录下的mime.types文件include       mime.types;# 文件类型没有在include指定的文件中,会以default_type指定的类型返回数据。default_type  application/octet-stream;# sendfile        on;keepalive_timeout  65;# 该部分就是针对网站代码的配置,如果我们需要配置多个网站,可以复制配置多个serverserver {# 指定访问该网站的端口号,默认为80。listen       80;# 配置域名server_name  localhost;# 匹配以什么开头的URI,默认为/,表示匹配所有请求。如配置了/user,那么请求ip:端口/user/xx就会匹配到该路由。location / {# 指定项目的目录。可以填写绝对路径,也可以填写相对路径。填写相对路径是,默认根路径为/usr/share/nginx。root   html;# 指定了当请求是一个目录时,Nginx应该返回哪个文件作为默认文件。index  index.html index.htm;}}
}

防盗链(网站优化)

  • 自定义service
server {# 指定访问该网站的端口号,默认为80。listen       9999;# 配置域名server_name  localhost;# 匹配以什么开头的URI,默认为/,表示匹配所有请求。如配置了/user,那么请求ip:端口/user/xx就会匹配到该路由。location / {# 指定项目的目录。可以填写绝对路径,也可以填写相对路径。填写相对路径是,默认根路径为/usr/share/nginx。root   opt/test/;}# 拦截三种类型访问location ~* .*\.(gif|jpg|png)$ {# 指定项目的目录。可以填写绝对路径,也可以填写相对路径。填写相对路径是,默认根路径为/usr/share/nginx。root   opt/test/img/;# 放行白名单(防盗链)valid_referers none blocked taobao.com;if($valid_referers){# return 403;# 重写rewrite ^/ http://10.10.100.146:9999/error.webgbreak;}}
}

gzip压缩

  • 作用模块
    - http
    - service
  • 文档
    模块静态压缩官方文档
    模块配置官方文档
  • 核心配置
# 开启gzip压缩
gzip  on
# 压缩类型(js、css\text\json等)文本压缩的效果最好
gzip_type application/type

brotli压缩

优缺

  • 优: 比gzip性能提升10~18%
  • 缺: 普及率低
  • 缺: 仅支持https

集成模块

  • 下载源码
# 1.切换nginx编译路径的上级路径
cd /opt/
# 2.执行命令
sudo git clone https://github.com/google/ngx_brotli.git
# 3.切换ngx_brotli路径
cd ngx_brotli/
# 4.下载算法
sudo git submodule update --init
# 5.切换nginx源码路径下
cd /opt/nginx-1.26.2/
# 安装brotli
sudo apt-get install libbrotli-dev
# 6. 配置
sudo ./configure --prefix=/home/nginx --with-http_ssl_module --add-module=/opt/ngx_brotli
# 7.编译
sudo make
# 8.替换执行文件
sudo mv ./objs/nginx  /home/nginx/sbin/nginx
# 9查看/home/nginx/sbin/nginx -V
  • 修改配置文件
http{# 开启gzip压缩gzip  on# 压缩类型(js、css\text\json等)文本压缩的效果最好gzip_type application/javascrpt# 开启brotli压缩(service 需要配饰ssl)brotli  on# 压缩类型(js、css\text\json等)文本压缩的效果最好brotli_type application/javascrpt}

反向代理域名备案访问

server {listen       80;server_name  www.xxx.com;location / {# 代理转发指定proxy_pass http://192.168.50.12/;}
}

ssl

http(超文本传输协议)转https(超文本传输完全协议)

server {# 监听端口 开启ssl模式listen       443 ssl;# 访问名称 - 域名server_name  www.xx.com;# pem文件位置ssl_certificate      /xxxx/cert.pem;# key文件位置ssl_certificate_key  /xxxx/cert.key;# ssl证书缓存ssl_session_cache    shared:SSL:1m;# 操作时间ssl_session_timeout  5m;# 加密算法ssl_ciphers  HIGH:!aNULL:!MD5;# 服务端的首选算法是否开启ssl_prefer_server_ciphers  on;location / {root   html;index  index.html index.htm;}
}

限流

1>请求限流,漏洞算法

http {# 开辟空间 $binary_remote_addr主机名称; zone空间名; rate限速;limit_req_zone $binary_remote_addr zone=ip_limit:10m rate=1r/s;# 省略其他代码service{# 省略其他代码location /{# burst爆发limit_req zone=ip_limit burst=2;}}
}

2>链接限流,令牌桶算法

http {# 开辟空间 $binary_remote_addr主机名称; zone空间名; rate限速;limit_conn_zone $binary_remote_addr zone=conn_limit:10m;#  省略其他代码service{#  省略其他代码location /{# 限制连接limit_conn conn_limit 1;}}
}

合并请求(优化)

  • 下载三方模块包
git clone https//github.com/alibaba/nginx-http-concat.git
# 加速镜像
git clone https//gitclone.com/github.com/alibaba/nginx-http-concat.git
  • 加载模块
#  配置
sudo ./configure --prefix=/home/nginx --with-http_ssl_module --add-module=/opt/nginx-http-concat
# 编译
sudo make
# 替换执行文件
sudo mv ./objs/nginx  /home/nginx/sbin/nginx
  • 配置参数(http、serrvice、location )

server {# 开启合并请求concat on;# 定义最大能接受文件数量concat_max_files 20;# 如果开启返回400 未开启合并两个文件concat_unique on;# 定义那些文件可以合并concat_type application/javascript;# 文件之间分割concat_delimiter '\n';# 文件不存在权限提示concat_ignore_file_error on;# 监听端口 开启ssl模式listen       443 ssl;# 访问名称 - 域名server_name  www.xx.com;# pem文件位置ssl_certificate      /xxxx/cert.pem;# key文件位置ssl_certificate_key  /xxxx/cert.key;# ssl证书缓存ssl_session_cache    shared:SSL:1m;# 操作时间ssl_session_timeout  5m;# 加密算法ssl_ciphers  HIGH:!aNULL:!MD5;# 服务端的首选算法是否开启ssl_prefer_server_ciphers  on;location / {root   html;index  index.html index.htm;}
}

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

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

相关文章

自由学习记录

约束的泛型通配符? Java中的泛型 xiaomi和byd都继承了car&#xff0c;但是只是这两个类是car的子类而已&#xff0c;而arraylist<xiaomi> ,arraylist<byd> 两个没有半毛钱继承关系 所以传入的参数整体&#xff0c;是car的list变形&#xff0c;里面的确都能存car…

SDK4(note下)

以下代码涉及到了很多消息的处理&#xff0c;有些部分注释掉了&#xff0c;主要看代码 #include <windows.h> #include<tchar.h> #include <stdio.h> #include <strsafe.h> #include <string> #define IDM_OPEN 102 /*鼠标消息 * 键盘消息 * On…

数据湖数据仓库数据集市数据清理以及DataOps

一提到大数据我们就知道是海量数据&#xff0c;但是我们并不了解需要从哪些维度去考虑这些数据的存储。比如 数据湖、数据仓库、数据集市&#xff0c;以及数据自动化应用DataOps有哪些实现方式和实际应用&#xff0c;这篇文章将浅显的做一次介绍。 数据湖 数据湖是一种以自然…

SimpleFoc以及SVPWM学习补充记录

SimpleFoc SimpleFOC移植STM32&#xff08;一&#xff09;—— 简介 FOC控制的过程是这样的&#xff1a; 对电机三相电流进行采样得到 Ia,Ib,Ic。将 Ia,Ib,Ic 经过Clark变换得到 I_alpha I_beta。将 I_alpha I_beta 经过Park变换得到 Id,Iq。计算 Id,Iq 和其设定值 Id_ref 和…

网络知识点之—EVPN

EVPN&#xff08;Ethernet Virtual Private Network&#xff09;是下一代全业务承载的VPN解决方案。EVPN统一了各种VPN业务的控制面&#xff0c;利用BGP扩展协议来传递二层或三层的可达性信息&#xff0c;实现了转发面和控制面的分离。 EVPN解决传统L2VPN的无法实现负载分担、…

《神经网络》—— 长短期记忆网络(Long Short-Term Memory,LSTM)

文章目录 一、LSTM的简单介绍二、 LSTM的核心组件三、 LSTM的优势四、 应用场景 一、LSTM的简单介绍 传统RNN循环神经网络的局限&#xff1a; 示例&#xff1a;当出现“我的职业是程序员。。。。。。我最擅长的是电脑”。当需要预测最后的词“电脑”。当前的信息建议下一个词可…

[Python] 使用Python自定义生成二维码

文章目录 目录 安装 qrcode 库生成简单的二维码代码讲解 生成自定义样式的二维码代码讲解 生成带有链接的二维码代码讲解 Demo代码实现代码讲解 总结 收录专栏: [Python] 二维码是现在非常常用的一种信息存储和传递方式&#xff0c;我们可以通过扫描二维码来快速获取文本、链接…

如何在测试中模拟请求和响应?

在日常开发中&#xff0c;除了在服务器端进行单元测试之外&#xff0c;还经常需要做集成测试&#xff0c;为了能更好地做一些边界测试&#xff0c;我们常常需要mock一些HTTP请求或者响应&#xff0c;今天我们就来聊聊几种常见的方式。 服务器端设置 在开发中&#xff0c;我们…

车辆路径规划问题(VRP)优化方案

车辆路径规划问题&#xff08;VRP&#xff09;优化方案 车辆路径规划问题&#xff08;Vehicle Routing Problem, VRP&#xff09;是物流领域中一个经典的组合优化问题&#xff0c;目标是在满足客户需求的情况下&#xff0c;找到一组车辆的最优配送路径&#xff0c;以最小化总的…

C/C++复习(一)

1.sizeof 关于sizeof我们是经常使用的&#xff0c;所以使用方法就不需要提及了&#xff0c;这里我们需要注意的是&#xff0c;sizeof 后面如果是表达式可以不用括号&#xff0c;并且sizeof实际上不参与运算&#xff0c;返回的是内容的类型大小&#xff08;size_t类型&#xff0…

CDN绕过学习

1.什么是CDN&#xff1f; CDN就是分布在各个地区的服务器&#xff0c;这些服务器储存着数据的副本。 哪些服务器比较接近你&#xff0c;当你发起请求时&#xff0c;提前就会快速为你提供服务。 总结来说就是&#xff1a; 其实就是用来加速访问的&#xff0c;以及缓解压力&a…

提示工程、微调和 RAG

自众多大型语言模型&#xff08;LLM&#xff09;和高级对话模型发布以来&#xff0c;人们已经运用了各种技术来从这些 AI 系统中提取所需的输出。其中一些方法会改变模型的行为来更好地贴近我们的期望&#xff0c;而另一些方法则侧重于增强我们查询 LLM 的方式&#xff0c;以提…

1. Keepalived概念和作用

1.keepalived概念 (1)解决单点故障(组件免费) (2)可以实现高可用HA机制 (3)基于VRR协议(虚拟路由沉余协议) 2.keepalived双机主备原理

一入递归深似海,算法之美无止境

最近在刷leetcode hot100,在写二叉树中最大路径和的时候,看到了一个佬对递归的理解,深受启发,感觉自己对于递归的题又行了!!! 这里给大家分享一下(建立大家先去尝试一下这道题再来看 124. 二叉树中的最大路径和 二叉树中的 路径 被定义为一条节点序列&#xff0c;序列中每…

什么是PLM系统?PLM系统对制造业起到哪些作用?三品PLM系统对汽车制造业意义

在当今竞争激烈的制造业环境中&#xff0c;企业面临着来自市场、技术、客户需求等多方面的挑战。为了应对这些挑战&#xff0c;许多制造企业纷纷引入产品生命周期管理PLM系统&#xff0c;以实现更高效、更灵活的产品全生命周期管理。PLM系统以其独特的优势&#xff0c;在优化产…

智能猫砂盆怎么选购?cewey、鸟语花香、霍曼全方位测评性能大PK

智能猫砂盆怎么选购&#xff1f;cewey、鸟语花香、霍曼全方位测评性能大PK 现在的生活节奏越来越快&#xff0c;我们经常会外出不在家&#xff0c;这时候猫咪的粑粑就不能及时清理&#xff0c;会出现猫咪嫌猫砂盆脏乱拉&#xff0c;家里空气也会充满臭味。针对这个问题&#x…

Unity3d动画插件DoTween使用指南

1、DoTween是什么&#xff1f; DoTween是一款对象动画类插件&#xff0c;它是一款针对Unity 3D编辑器的、快速高效的、安全的、面向对象的补间动画引擎&#xff0c;并且对C#语言开发做出了很多的优化。另外&#xff0c;它使得开发者无需通过Unity内置的Animator或Coroutines即可…

【Chrome浏览器插件--资源嗅探猫抓】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、资源嗅探插件---猫抓二、使用步骤总结 一、资源嗅探插件—猫抓 猫抓是一个浏览器插件&#xff0c;可以检测当前网页中的一些资源文件&#xff0c;可设置嗅探的…

用KLineChart绘制股票行情K线图

用KLineChart绘制股票行情K线图 先看效果集成过程集成到系统 先看效果 用klinechart开源代码集成到系统中&#xff0c;展示的K线图效果。 集成过程 KlineChart源码地址&#xff1a; https://github.com/klinecharts/KLineChart KlineChart提供了多种行情分析指标 集成到…

OJ在线评测系统 微服务高级 Gateway网关接口路由和聚合文档 引入knife4j库集中查看管理并且调试网关项目

Gateway微服务网关接口路由 各个服务之间已经能相互调用了 为什么需要网关 因为我们的不同服务是放在不同的端口上面的 如果前端调用服务 需要不同的端口 8101 8102 8103 8104 我们最好提供一个唯一的 给前端去调用的路径 我们学习技术的时候必须要去思考 1.为什么要用&am…