首页 > 系统相关 >Nginx基础 - 13模块与变量

Nginx基础 - 13模块与变量

时间:2023-03-12 10:44:26浏览次数:45  
标签:13 http 请求 module Nginx 模块 ngx

 

 

一、Nginx常用模块

Nginx模块分为 Nginx 官方模块 以及 Nginx第三方模块
Nginx编译选项 模块作用
ngx_http_core_module 包含一些核心的http参数配置,对应Nginx的配置区块部分
ngx_http_log_module 访问日志模块,以指定格式记录访问日志信息
ngx_http_stub_status_module 状态统计模块, 状态页
ngx_http_auth_basic_module Web认证模块,使用basic机制进行用户认证
ngx_http_access_module 四层基于IP的访问控制模块,用来控制网站用户对Nginx的访问;可以通过匹配客户端源IP地址进行限制
ngx_http_gzip_module 文件的压缩功能,对Nginx返回的数据压缩
ngx_http_upstream_module 负载均衡模块,提供服务器分组转发、权重分配、状态监测、调度算法等高级功能
ngx_http_rewrite_module 重定向模块,解析和处理rewrite请求
ngx_http_referer_module 防盗链功能,基于访问安全考虑
ngx_http_proxy_module proxy代理模块,将客户端的请求以http协议转发至指定服务器进行处理
ngx_http_ssl_module ssl模块,用于加密的http连接,如https
   
ngx_http_fastcgi_module 将客户端对php的请求以fastcgi协议转发至指定服务器处理
ngx_http_uwsgi_module 将客户端对Python的请求以uwsgi协议转发至指定服务器处理
ngx_http_flv_module 为flv伪流媒体服务端提供支持
ngx_http_gzip_static_module 静态压缩模块
ngx_http_limit_conn_module 限制用户并发连接数及请求数模块
ngx_http_limit_req_module 限制 Nginx request processing rate 根据定义的key
ngx_http_headers_module 可以实现对头部报文添加指定的key与值
ngx_stream_proxy_module tcp负载,将客户端的请求以tcp协议转发至指定服务器处理
ngx_stream_upstream_module 后端服务器分组转发、权重分配、状态监测、调度算法等高级功能
ngx_http_sub_module  
ngx_http_random_index_module  
 

二、 Nginx内置变量

http核心模块的内置变量: http请求变量、 Nginx内置变量、 自定义变量  
$uri:             当前请求的uri, 不带参数
$request_uri:     请求的uri, 带完整参数
$request:         Request请求行, GET等方法、http协议

$host:            http请求报文中host首部, 如果没有则以处理请求的虚拟主机的主机名代替
$hostname:        nginx服务运行在主机的主机名
$remote_addr:     客户端IP
$remote_port:     客户端端口
$remote_user:     使用用户认证时,客户端用户输入的用户名
$request_filename:用户请求中的URI 经过本地root或 alias转换后映射的本地文件路径
$request_method:  请求方法, GET / POST / PUT
$scheme: 在请求中使用scheme, 如 http://xxx.com 中的http
$http_user_agent:       http头部信息, 客户端访问设备

$server_addr:     服务器地址
$server_name:     服务器名称
$server_port:     服务器端口
$server_protocol: 服务器向客户端发送响应时的协议,如 http/1.1 http/1.0

$http_HEADER:      匹配请求报文中 指定的HEADER
$http_host:       匹配请求报文中的 host 首部
$document_root:   当前请求映射到的root配置
$time_local:      Nginx服务器的时间

$status:                response返回状态码
$body_bytes_sent:       从服务端响应给客户端body信息大小
$http_referer:          http上一级页面, 防盗链、用户行为
$http_x_forwarded_for:  http请求携带的http信息

  

 

    if ($http_user_agent ~ "Wget|ApacheBench") {
        set $block_user_agent 1;
    }

    if ($block_user_agent = 1) {
        return 403;
    }

  

[root@my-node51 ~]# curl http://192.168.6.10:8300/request_path/code/index.html
d1-1
[root@my-node51 ~]# wget http://192.168.6.10:8300/request_path/code/index.html --2023-03-12 08:48:13-- http://192.168.6.10:8300/request_path/code/index.html 正在连接 192.168.6.10:8300... 已连接。 已发出 HTTP 请求,正在等待回应... 403 Forbidden 2023-03-12 08:48:13 错误 403:Forbidden。

  

    set $ip '0';
    if ($http_x_forward_for ~ 192.168.6.51) {
        set $ip 1;
    }
    if ($remote_addr ~ 192.168.6.51) {
        set $ip 1;
    }

    location /hello {
        if ($ip = "0") {
            return 403;
        }
        default_type application/json;
        return 200 '{"status": "success"}';
    }

  

 

     

标签:13,http,请求,module,Nginx,模块,ngx
From: https://www.cnblogs.com/kingdomer/p/15701595.html

相关文章

  • Nginx配置实例-动静分离实例:搭建静态资源服务器
    什么是动静分离Nginx动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解......
  • Nginx
    ​ 1分类1.1通用分布式文件系统​和传统的本地文件系统(如ext3、NTFS等)相对应。典型代表:lustre、MooseFS1.1.1优点​标准文件系统操作方式,对开发者门槛较低1.1.......
  • Docker安装Nginx入门示例
    测试环境:Ubuntu20.04Dockerversion23.0.1Nginx容器版本:1.23.31.拉取镜像拉取命令:dockerpullnginx:1.23.3查看镜像:yyj@yyj:~$dockerimagesREPOSITORYTA......
  • ES6的模块化
    一、模块化的概念:在进行项目分析或者编码时,先把项目进行拆分,拆分成很多的类,对象,很多的函数等等。能够提高代码的复用性。这些被拆分出来的类型,对象,函数就是模块。就像......
  • 【教学典型案例】28.生产环境nginx限制上传大小
    目录​​一:背景介绍​​​​二:Nginx限制上传大小​​​​1、Nginx官方文档说明​​​​2、设置参数​​​​1)、在server模块中设置​​​​2)、在http模块中设置​​​​三:问......
  • Nginx基础 - 08路径Rewrite
     一、Rewrite基本描述rewrite主要实现url地址重写,以及重定向。 使用场景URL访问跳转:支持开发设计,页面跳转,兼容性支持SEO优化:依赖于url路径,以便......
  • 13、Label和Label Selector
    标签选择器Label和LabelSelector:标签和标签选择器LabelLabel资源对象的源数据:任何资源类型的任一资源对象,包括pod(pod用的最多)定义在metadata.labels:key:valu......
  • Nginx基础 - 07代理缓存
     缓存是用来减少后端压力,将压力尽可能的往前推, 提高网站的并发延时。一、缓存常见类型服务端缓存:redis/memcached代理缓存,获取服务端内容进行缓存:Nginx_proxy  ......
  • vue&element项目实战 之api模块化与公共字典
    4.api模块化配置步骤一:编写字典api即dic.jsimportrequestfrom'@/utils/request'//查询字典列表exportconstgetDicList=(param)=>request({url:'/sys-dic......
  • vue&element项目实战 之element使用&用户&字典模块实现
    5.用户模块<template><div><span>更新时间:<el-date-pickerv-model="time"type="daterange"range-separator="至"......