首页 > 系统相关 >nginx第三方模块echo和变量

nginx第三方模块echo和变量

时间:2024-08-29 09:06:38浏览次数:12  
标签:http -- module echo nginx 模块 root

第三方模块:echo

  第三模块是对nginx 的功能扩展,第三方模块需要在编译安装nginx 的时候使用参数--
add-module=PATH指定路径添加,有的模块是由公司的开发人员针对业务需求定制
开发的,有的模块是开源爱好者开发好之后上传到github进行开源的模块,nginx支持
第三方模块,需要重新编译源码才能支持
  开源的echo模块,实现输出变量等信息:https://github.com/openresty/echo-nginx-module

编译安装版本:nginx1.14

 

1、准备:

[[email protected] ~]# yum install git –y
[[email protected] src]# cd /usr/local/src
获取echo包:
[[email protected] src]# git clone https://github.com/openresty/echo-nginx-module.git
创建nginx用户:
[[email protected] src]# useradd –r –s /sbin/nologin nginx
安装依赖:
[[email protected] src]# yum install gcc pcre-devel openssl-devel zlib-devel perl-ExtUtils-Embed

2、编译安装:

[[email protected] src]# cd nginx-1.14.0/
./configure \
--prefix=/apps/nginx14 \
--user=nginx --group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_perl_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module \
--add-module=/usr/local/src/echo-nginx-module-master        #指定echo包路径

3、测试:

3.1、echo输出字符串:

[[email protected] conf.d]# vi /apps/nginx4/conf/conf.d/test.conf
server {
        server_name www.magedu.org;
        root /data/site14/;

        location /echo {                  #echo目录不用创建
        echo -n "hello,";
        echo "world";
        default_type text/html;
        }
}
web:http://www.magedu.org/echo

3.2、自定义变量echo输出: 

[[email protected] conf.d]# vi /apps/nginx4/conf/conf.d/test.conf
server {
        server_name www.magedu.org;
        root /data/site14/;

        location /echo {
        set $opt "HELLO,";
        echo -n  $opt;
        echo "world";
        default_type text/html;
        }
}

3.3、echo输出内置变量:

  nginx的变量可以在配置文件中引用,作为功能判断或者日志等场景使用,
变量可以分为内置变量和自定义变量,内置变量是由nginx模块自带,通过
变量可以获取到众多的与客户端访问相关的值 

常见内置变量:

$http_cookie; #客户端的cookie信息
$cookie_name; #表示key为 name 的cookie值
$limit_rate; #如果nginx服务器使用limit_rate配置了显示网络速率,则会显示,如果没有设置,则显示0 

$request_body_file; #做反向代理时发给后端服务器的本地资源的名称
$request_method; #请求资源的方式,GET/PUT/DELETE等


$request_uri; #包含请求参数的原始URI,不包含主机名如:main/index.do?id=090&partner=search。 
$document_uri; #保存了当前请求中不包含指令的URI,注意是不包含请求的指令,如http://www.magedu.net/main/index.do?id=090&partner=search
会被定义为/main/index.do
$args; #变量中存放了URL中的指令http://www.magedu.net/main/index.do?id=090&partner=search以上:id=090&partner=search 即为 $args

$document_root; #保存了针对当前资源的请求的系统根目录,如/apps/nginx/html
$request_filename; #当前请求的资源文件的路径名称,由root或alias指令与URI请求生成的文件绝对路径,如/apps/nginx/html/main/index.html

$scheme; #请求的协议,如ftp,https,http等 
$server_protocol; #请求资源的协议版本,如HTTP/.0,HTTP/.,HTTP/.0等 


$server_name; #请求的服务器的主机名 
$server_port; #请求的服务器的端口
$server_addr; #保存了服务器的IP地址
$remote_port; #客户端请求Nginx服务器时客户端随机打开的端口
$remote_user; #已经经过Auth Basic Module验证的用户名
$remote_addr; #存放了客户端的地址,注意是客户端的公网IP

$host; #存放了请求的host名称
$http_user_agent; #客户端浏览器的详细信息

[[email protected] conf.d]# vi /apps/nginx4/conf/conf.d/test.conf
server {
        server_name www.magedu.org;
        root /data/site14/;

        location /echo {
        #set $opt "hello,";
        echo hello;
        echo world;

        echo 'host:' $host;
        echo 'remote_addr:' $remote_addr
        echo 'args:' $args;
        echo 'document_root' $document_root;
        echo 'http_user_agent' $http_user_agent;
        echo ;
        default_type text/html;
        }
}

 

标签:http,--,module,echo,nginx,模块,root
From: https://www.cnblogs.com/cnblogsfc/p/14499138.html

相关文章

  • nginx输出nginx的基本状态信息
    输出nginx的基本状态信息模块:ngx_http_stub_status_module输出信息示例:Activeconnections:291server   accepts  handled  requests#下面三个数分别对应accepts,handled,requests      166309481663094831070465Reading:6Writing:179Wait......
  • nginx 压缩gzip
    ngx_http_gzip_modulengx_http_gzip_module用gzip方法压缩响应数据,节约带宽gzipon|off;启用或禁用gzip压缩Default: gzipoff;Context: http,server,location,ifinlocationgzip_comp_levellevel;消耗CPU 压缩比由低到高:1到9,默认:1 gzip_di......
  • nginx favicon.ico
    favicon.ico文件是浏览器收藏网址时显示的图标,当使用浏览器访问页面时,浏览器会自己主动发起请求获取页面的favicon.ico文件,但是当浏览器请求的favicon.ico文件不存在时,服务器会记录404日志,而且浏览器也会显示404报错(F12查看浏览器请求情况) 解决方案:1、不加favicon.ico......
  • nginx之ssl认证(https访问)
    ngx_http_ssl_modulengx_http_ssl_module模块:sslon|off;为指定虚拟机启用HTTPSprotocol,建议用listen指令代替ssl_certificatefile; 当前虚拟主机使用PEM格式的证书文件ssl_certificate_keyfile;......
  • nginx
    一、I/O模型二、nginx概述官网:http://nginx.org 2.1、nginx介绍nginx:engineX,是由1994年毕业于俄罗斯国立莫斯科鲍曼科技大学的同学为俄罗斯rambler.ru公司开发的,开发工作最早从2002年开始,第一次公开发布时间是2004年10月4日,版本号是0.1.0nginx......
  • Nginx 的编译并打包成二.txt
    Nginx的编译并打包成二进制文件是一个涉及源代码编译和静态链接的过程。‌下面是一个简单的步骤说明,‌帮助你从源代码编译Nginx并生成一个可独立运行的二进制文件。‌安装依赖首先,‌确保你的系统上安装了编译Nginx所需的依赖项。‌对于大多数Linux发行版,‌你可能需要安......
  • JavaScript 模块化开发:ES6 模块与 CommonJS 的对比与应用
    ​​您好,我是程序员小羊!前言随着前端项目规模的增长,代码组织和管理变得越来越复杂。模块化开发成为解决这一问题的有效手段,能够帮助开发者将代码进行分割、复用和维护。JavaScript在发展过程中出现了多种模块化规范,其中最为广泛使用的有ES6模块(也称为ESModules)......
  • 内核模块踩内存问题定位利器- hardware breakpoint
    内核由于共享内存地址空间,如果没有合适的工具,很多踩内存的问题即使复现,也无法快速定位;在新的内核版本中引入了一个新工具hardwarebreakpoint,其能够监视对指定的地址的特定类型(读/写)的数据访问,有利于该类问题的定位;以下是一个使用该工具的例子(来自内核代码linux-3.10/sampl......
  • python3安装编译_tkinter模块丢失
    1.make的时候报缺少_tkinter模块,上一步./configure已经checking发现_tkintermissing  2.安装tk、tcl相关的包,包括python3-tk仍然没有解决问题。讲相关库移到/usr/lib也没解决问题。 3.查看./configure的命令行参数,在环境变量中有两个参数:TCLTK_CFLAGSC......
  • 利用api方式部署流式接口到nginx服务器,api无法流式输出,但localhost和ip可以的问题
    需要在nginx代理中,配置:proxy_cacheoff;#关闭缓存proxy_bufferingoff;#关闭代理缓冲chunked_transfer_encodingon;#开启分块传输编码tcp_nopushon;#开启TCPNOPUSH选项,禁止Nagle算法tcp_nodelayon;#开启TCPNODELAY选项,禁止延迟ACK算法keepalive_t......