雷池社区版7.1新版本自定义NGINX配置分析

简单介绍雷池,是一款简单好用, 效果突出的 Web 应用防火墙(WAF),可以保护 Web 服务不受黑客攻击。

雷池通过阻断流向 Web 服务的恶意 HTTP 流量来保护 Web 服务。雷池作为反向代理接入网络,通过在 Web 服务前部署雷池,可在 Web 服务和互联网之间设置一道屏障。

雷池社区版最近发布了7.1版本

image.png

有一个重大功能:站点详情新增 “自定义 NGINX 配置”,支持在站点配置的 location 块中添加自定义的指令 而且当前功能所有人都可以使用,属于社区版也可以用的功能 在社区内引起了大家的肯定

问题就来了该如何使用当前功能 首先连理解,什么是location块 ?

○ location块是 Nginx 配置文件中的一个重要部分,用于定义基于请求的 URI(统一资源标识符)来匹配请求,并为匹配到的请求应用特定的配置。例如,当客户端请求http://example.com/api/users时,Nginx 会根据location块的配置来决定如何处理这个请求,包括但不限于返回静态文件、反向代理到后端服务器或者执行其他特定的操作。

在location块中都支持哪些指令呢?

NGINX Location 相关指令教程

在 NGINX 的 location 块中,可以添加许多指令来控制请求的处理方式。以下是主要的 location 块指令的完整列表及其用途。

基本指令

  1. proxy_pass:用于将请求转发到后端服务器,常见于反向代理场景。

    location /api/ {
       proxy_pass http://backend_server;
    }
    
  2. rootalias:用于指定静态资源目录。

    • root:基于请求路径的根路径指定目录。
    • alias:直接将请求路径映射到指定目录。

      location /images/ {
      root /var/www;
      }
         
      location /static/ {
      alias /var/www/static/;
      }
      
  3. try_files:在多个路径中查找文件,常用于处理文件存在检查。

    location / {
       try_files $uri $uri/ /index.html;
    }
    
  4. rewrite:用于重写 URL,常用于重定向。

    location /old-path/ {
       rewrite ^/old-path/(.*)$ /new-path/$1 permanent;
    }
    
  5. return:直接返回指定的状态码或内容。

    location /not-found {
       return 404 "Page not found";
    }
    

缓存与头部控制

  1. expires:设置响应缓存的过期时间,适用于静态资源。

    location ~* \.(jpg|jpeg|png|gif|css|js)$ {
       expires 30d;
    }
    
  2. add_header:向响应添加自定义 HTTP 头部。

    location / {
       add_header X-Frame-Options "DENY";
    }
    

日志控制

  1. access_log:指定该 location 的访问日志位置。

    location /admin/ {
       access_log /var/log/nginx/admin_access.log;
    }
    
  2. error_log:指定该 location 的错误日志位置和级别。

    location /admin/ {
       error_log /var/log/nginx/admin_error.log warn;
    }
    

连接和请求限制

  1. limit_conn:限制同一 IP 地址的并发连接数。

    limit_conn_zone $binary_remote_addr zone=addr:10m;
        
    location /download/ {
        limit_conn addr 1;
    }
    
  2. limit_req:限制请求的频率。

    limit_req_zone $binary_remote_addr zone=req_zone:10m rate=5r/s;
        
    location /api/ {
        limit_req zone=req_zone burst=10 nodelay;
    }
    

安全与权限控制

  1. auth_basic:为指定路径添加基本认证。

    location /secure/ {
        auth_basic "Restricted Area";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
    
  2. denyallow:设置 IP 地址的访问权限控制。

    location /admin/ {
        allow 192.168.1.0/24;
        deny all;
    }
    

缓存优化

  1. proxy_cache:配置反向代理的缓存。

    location / {
        proxy_cache my_cache;
        proxy_cache_key $scheme$proxy_host$request_uri;
    }
    
  2. proxy_cache_valid:定义缓存的有效时间。

    location / {
        proxy_cache_valid 200 10m;
    }
    

压缩

  1. gzip:启用 GZIP 压缩,减少传输数据量。

    location / {
        gzip on;
        gzip_types text/plain text/css application/json application/javascript;
    }
    

反向代理优化

  1. proxy_set_header:向后端服务器传递特定的请求头。

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
    
  2. proxy_buffering:启用或禁用缓冲响应。

    location / {
        proxy_buffering on;
    }
    
  3. proxy_read_timeout:设置从后端服务器读取响应的超时时间。

    location / {
        proxy_read_timeout 60s;
    }
    

其他指令

  1. internal:将 location 块设置为内部使用,不允许外部访问。

    location /internal/ {
        internal;
        proxy_pass http://internal_server;
    }
    
  2. index:指定访问目录时的默认文件。

    location / {
        index index.html index.htm;
    }
    
  3. autoindex:启用目录列表显示,适用于文件目录浏览。

    location /files/ {
        autoindex on;
    }
    
  4. stub_status:显示 NGINX 的当前状态,适用于监控。

    location /nginx_status {
        stub_status on;
    }
    

由于都是nginx相关的资料,就不在当前文档专门教程,有需要可以根据上文进行搜索与学习

注意的是,配置可能会改坏,谨慎在业务环境进行测试

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于 AIGC 的糖尿病健康管理平台

项目介绍 Healthoney为一款以大语言模型为核心,通过分析用户的各项信息为用户生成定制化的饮食运动计划,提高糖尿病患者生活质量的智能健康管理平台。通过集成体重趋势预测、健康数据分析、食物热量查询、饮食计划个性化定制等功能,帮助用户…

qt QTableWidgetItem详解

1、概述 QTableWidgetItem 是 Qt 框架中的一个类,专门用于在 QTableWidget(一个基于项的表格视图)中表示单个单元格的内容。QTableWidget 继承自 QAbstractItemView,而 QTableWidgetItem 则作为表格中的一个单元格项,…

常见 HTTP 状态码分类和解释及服务端向前端返回响应时的最完整格式

目前的开发项目,准备明年的国产化,用了十年的自研系统借这个机会全部重写,订立更严格的规范,这里把返回格式及对应状态码记录一下。 常见 HTTP 状态码及解释 HTTP 状态码用于表示客户端请求的响应状态,它们分为五类&a…

卖模版还能赚到钱吗?

说到赚钱,我想大部分人都会感兴趣。但如果告诉大家现阶段卖模板也能赚钱,可能还是有人不信。我要说说我的观察了。 本文可在公众号「德育处主任」免费阅读 我是一只临期程序猿,我最早接触到“模板能卖钱”这个概念是在模板王里。模板王平台上…

基于ssm的个人健康管理系统

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

DB-GPT系列(三):底层大模型设置(开源模型、在线模型)

前面两篇文章分别对 DB-GPT 的总体情况进行了介绍,同时涵盖了镜像一键部署与源码部署这两种部署方式。 DB-GPT系列(一):DB-GPT能帮你做什么? DB-GPT系列(二):DB-GPT部署&#xff0…

易思智能物流无人值守系统 ExportReport SQL注入漏洞复现

0x01 产品简介 易思无人值守智能物流系统‌是一款集成了人工智能、机器人技术和物联网技术的创新产品。它能够自主完成货物存储、检索、分拣、装载以及配送等物流作业,帮助企业实现无人值守的智能物流运营,提高效率、降低成本,为现代物流行业带来新的发展机遇。该系统旨在为…

stm32 ADC实例解析(3)-多通道采集互相干扰的问题

文章目录 一、问题现象:二、原因分析:1、测量值不准问题分析:2、采样干扰问题分析 三、解决办法:1、硬件:(1)、电源供电(2)、引脚电容(3)、减少采…

ASP.NET Core 路由规则,自定义特性路由 ,IActionConstraint 路由约束 总结 mvc

资料 资料 路由服务 路由服务是在 Program.cs 中使用 builder.Services.AddRouting()注册的, 只是默认在 builder 之前已经注册过了,无需我们再次注册。 AddRouting()方法必须在 UseRouting()方法之前运行,它是路由的基础服务。 MapContro…

在数据库设计中,如何避免全表扫描?

2024年10月NJSD技术盛典暨第十届NJSD软件开发者大会、第八届IAS互联网架构大会在南京召开。百度文心快码总经理臧志分享了《AI原生研发新范式的实践与思考》,探讨了大模型赋能下的研发变革及如何在公司和行业中落地,AI原生研发新范式的内涵和推动经验。 …

Maven的安装配置

文章目录 一、MVN 的下载二、配置maven2.1、更改maven/conf/settings.xml配置2.2、配置环境变量一、MVN 的下载 还是那句话,要去就去官网或者github,别的地方不要去下载。我们下载binaries/ 目录下的 cd /opt/server wget https://downloads.apache.org/maven/maven-3/3.9.6/…

ReactPress系列—NestJS 服务端开发流程简介

ReactPress Github项目地址:https://github.com/fecommunity/reactpress 欢迎提出宝贵的建议,感谢Star。 NestJS 服务端开发流程简介 NestJS 是一个用于构建高效、可靠和可扩展的服务器端应用程序的框架。它使用 TypeScript(但也支持纯 Java…

Redis数据库测试和缓存穿透、雪崩、击穿

Redis数据库测试实验 实验要求 1.新建一张user表,在表内插入10000条数据。 2.①通过jdbc查询这10000条数据,记录查询时间。 ②通过redis查询这10000条数据,记录查询时间。 3.①再次查询这一万条数据,要求根据年龄进行排序&#…

JavaCV 图像边缘检测 之 Canny 算法

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

Java Agent使用

文章目录 基本使用premain使用场景 agentmain 关于tools.jar https://docs.oracle.com/en/java/javase/20/docs/specs/jvmti.html com.sun的API,如果使用其他厂商的JVM,可能没有这个API了,比如Eclipse的J9 https://www.ibm.com/docs/en/sdk…

解决客服打字慢的快捷回复软件

客服每天都要打字回复咨询,打字慢必然影响回复效率,聊天宝就是一款解决客服打字慢的快捷回复软件 前言 总所周知,客服每天都要打字回复咨询,打字慢必然影响回复效率,所以解决打字速度慢的问题,就是很多客服…

【2024最新版Kotlin教程】Kotlin第一行代码系列第六课-嵌套类,数据类,密封类

【2024最新版Kotlin教程】Kotlin第一行代码系列第六课-嵌套类,数据类,密封类 数据类在之前的课程已经讲了,嵌套类和密封类可以不学,很少用到的。 但为了系统的完整性还是说一下 一、嵌套类: 选学:按我经…

uniapp 开发公众号 h5 页面 错误 “redirect_uri 参数错误“

公众号 h5 支付 调错避坑 1. 一直显示以下错误 ”redirect_uri 失效了“不用管直接 打包上传服务器 2. 直接在”微信开发者工具“ 进行调试( 使用线上地址访问 )就能看到真实 接口 错误,在进行调试

闪存学习_2:Flash-Aware Computing from Jihong Kim

闪存学习_2:Flash-Aware Computing from Jihong Kim【1】 一、三个闪存可靠性问题二、内存的分类三、NAND 闪存和 NOR 闪存四、HDD和SSD比较Reference 一、三个闪存可靠性问题 耐性(即寿命):最多能经受编程和擦除的次数。数据保留…

代码随想录算法训练营Day55 | 图论理论基础、深度优先搜索理论基础、卡玛网 98.所有可达路径、797. 所有可能的路径、广度优先搜索理论基础

目录 图论理论基础 深度优先搜索理论基础 卡玛网 98.所有可达路径 广度优先搜索理论基础 图论理论基础 图论理论基础 | 代码随想录 图的基本概念 图的种类 大体分为有向图和无向图。 图中的边有方向的是有向图: 图中的边没有方向的是无向图: 图…