欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 雷池社区版7.1新版本自定义NGINX配置分析

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

2025/2/24 2:36:09 来源:https://blog.csdn.net/test2231/article/details/143594597  浏览:    关键词:雷池社区版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相关的资料,就不在当前文档专门教程,有需要可以根据上文进行搜索与学习

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词