关于NGINX变量的一些测试结果

作为NGINX变量,不像正规语言那么正式。

但处理自定义和内部变量时,这些操作,也是少不了的。

geo $dollar {
        default "$";
    }
    server {
        listen 8080;
        location /test {
            set $foo chengang;
            set $first "hello ";
            echo "${first}world";
            echo "foo: $foo";
            echo "this is a dollar sign:$dollar";
            }
        location /bad {
            set $bar "nginx";
            echo $bar;
        }
        location /foo {
            set $a hello;
            echo "$foot = [$foot]";
            echo_exec /bar;
        }
        location /bar {
            set $foot 32;
            echo "foot = [$foot]";
            echo "a = [$a]";
        }
    }

server {
        listen 8080;
        location /test {
            echo "uri =  $uri";
            echo "request_uri = $request_uri";
            echo "name: $arg_name";
            echo "class: $arg_class";
            set $orig_args $args;
            set $args "a=3&b=4";
            echo "original args: $orig_args";
            echo "args: $args";
        }
    }

server {
        listen 8080;
        location /test {
            set $args "foo=1&bar=2";
            proxy_pass http://127.0.0.1:8081/args;
        }
    }
    server {
        listen 8081;
        location /args {
            echo "args: $args";
        }
    }

时间: 2025-01-21 07:03:07

关于NGINX变量的一些测试结果的相关文章

Nginx 变量漫谈(四)

在设置了"取处理程序"的情况下,Nginx 变量也可以选择将其值容器用作缓存,这样在多次读取变量的时候,就只需要调用"取处理程序"计算一次.我们下面就来看一个这样的例子:     map $args $foo {        default     0;        debug       1;    }     server {        listen 8080;         location /test {            set $orig_

Nginx 变量漫谈(二)

关于 Nginx 变量的另一个常见误区是认为变量容器的生命期,是与 location 配置块绑定的.其实不然.我们来看一个涉及"内部跳转"的例子:     server {        listen 8080;         location /foo {            set $a hello;            echo_exec /bar;        }         location /bar {            echo "a = [$a

Nginx 变量漫谈(七)

 在 (一) 中我们提到过,Nginx 变量的值只有一种类型,那就是字符串,但是变量也有可能压根就不存在有意义的值.没有值的变量也有两种特殊的值:一种是"不合法"(invalid),另一种是"没找到"(not found).       举例说来,当 Nginx 用户变量 $foo 创建了却未被赋值时,$foo 的值便是"不合法":而如果当前请求的 URL 参数串中并没有提及 XXX 这个参数,则 $arg_XXX 内建变量的值便是"没

Nginx 变量漫谈(三)

也有一些内建变量是支持改写的,其中一个例子是 $args. 这个变量在读取时返回当前请求的 URL 参数串(即请求 URL 中问号后面的部分,如果有的话 ),而在赋值时可以直接修改参数串.我们来看一个例子:     location /test {        set $orig_args $args;        set $args "a=3&b=4";         echo "original args: $orig_args";        

Nginx 变量漫谈(八)

与 $arg_XXX 类似,我们在 (二) 中提到过的内建变量 $cookie_XXX 变量也会在名为 XXX 的 cookie 不存在时返回特殊值"没找到":     location /test {        content_by_lua '            if ngx.var.cookie_user == nil then                ngx.say("cookie user: missing")            else 

Nginx 变量漫谈(一)

Nginx 的配置文件使用的就是一门微型的编程语言,许多真实世界里的 Nginx 配置文件其实就是一个一个的小程序.当然,是不是"图灵完全的"暂且不论,至少据我观察,它在设计上受 Perl 和 Bourne Shell 这两种语言的影响很大.在这一点上,相比 Apache 和 Lighttpd 等其他 Web 服务器的配置记法,不能不说算是 Nginx 的一大特色了.既然是编程语言,一般也就少不了"变量"这种东西(当然,Haskell 这样奇怪的函数式语言除外了).

nginx变量机制

初识变量 前面曾讲过nginx配置文件的解析过程,也就是nginx如何在启动的过程中对用户设定的配置文件进行解析,并将配置文件中的各个配置项与配置值转换为对应的nginx内部变量值,从而能让nginx按照用户预想的情况去运行. 如果只是一些比较简单并且确定的功能配置需求,那么nginx用户能够很方便的做出相应的设定,比如用户想要设置工作进程数为2个,那么配置文件中这样写即可:worker_processes 2;:与此同理,nginx也很容易做到按用户的配置要求去执行,比如这里nginx也就只需

一直想测试的NGINX变量输出,最于有办法了。

参考URL: http://blog.ailms.me/2013/08/04/nginx-server_name-and-host-difference.html   要是可能在正则测试及REWRITE就更完美啦. 我要在这方面更进一步看看..   下面访问 http://ailms.me/no-such.html?a=1&b=2  

Nginx + LibreSSL - 尝鲜测试

tl;dr: 用上 LibreSSL 已经第二个夜晚了 ... 依然运行良好 7月11日,LibreSSL团队发布 LibreSSL 的可移植版本,这是第一个可在 OpenBSD, Linux, OSX, Solaris 和 FreeBSD 上运行的版本. [1,2,5,8] 本文会介绍一些 Nginx 与 Libressl 一起使用实践经验. ** 本文所用软件的版本** nginx 1.6.0 libressl 2.0.0 在reddit-discussion [11]中有描述一些使用最新开