安装指南参见
https://github.com/openresty/echo-nginx-module#installation
配置
server {listen 8081;server_name localhost;location /test {set $foo hello;echo "foo: $foo";}location /test1 {set $first "hello ";echo "${first}world";}location /foo {echo "foo = [$foo]";}location /bar {set $foo 32; echo "bar = [$foo]";}}
完整的nginx.conf如下:
curl -v 'http://localhost:8081/test1'
curl -v 'http://localhost:8081/foo'
curl -v 'http://localhost:8081/bar'
特殊说明
上面仅是最基本的用法,还有很多高级的用法有待后续深入探索时再补充上来。
下面是做得补充。
server {listen 8082;server_name localhost;location /foo {set $a hello;echo_exec /bar;}location /foo1 {set $a hello;rewrite ^ /bar;}location /bar {echo "a = [$a]";}}
更新nginx.conf之后,执行下面的命令检查
curl -v 'http://localhost:8082/foo'
curl -v 'http://localhost:8082/foo1'
下面是更进一步的例子
因为对内建变量 $args 的修改会直接导致当前请求的 URL 参数串发生变化,因此内建变量 $arg_XXX 自然也会随之变化。
location /test3 {set $orig_a $arg_a;set $args "a=5";echo "original a: $orig_a";echo "a: $arg_a";}
curl 'http://localhost:8082/test3?a=3'
server {listen 8083;server_name localhost;location /test {set $args "foo=1&bar=2";proxy_pass http://127.0.0.1:8084/args;}}server {listen 8084;server_name localhost;location /args {echo "args: $args";}}
curl -v 'http://localhost:8083/test?blah=7'
父子请求之间的变量共享
location /main {echo_location /foo2;echo_location /bar2;}location /foo2 {echo foo2;}location /bar2 {echo bar2;}
curl 'http://localhost:8082/main'
location /main3 {set $var main;echo_location /foo3;echo_location /bar3;echo "main: $var";}location /foo3 {set $var foo;echo "foo: $var";}location /bar3 {set $var bar;echo "bar: $var";}
参考文献
[1].https://github.com/openresty/echo-nginx-module
[2].http://blog.sina.com.cn/s/blog_6d579ff40100wi7p.html
毕业之际给学校搭建了基于ATS的正向代理缓存服务器,专门用来处理优酷土豆等在线视频流量。通过改写一个浏览器做成在线视频专用浏览器,内置了ATS的代理设置。 用php配合memcacheq和小脚本实现了简单的异步预热功能,在实际运用中安全性请自行考虑完善。 工作方式:PHP页面提交URL——>memcacheq<——shell脚...
好久不写shell脚本,有些生疏。总结下shell的语法,以便后续参考,快速捡起来。 shell 脚本执行的3种方式: 1). ./xx.sh (xx.sh 需要有执行权限) 2). source xx.sh 3). bash xx.sh 变量定义 var=2 //注意:=左右没有空格 变量引用的2种方式 $符号就是变量解引用...
作者:荒原之梦 原文链接:http://zhaokaifeng.com/?p=538 前言: “Ping”属于ICMP协议(即“Internet控制报文协议”),而ICMP协议是TCP/IP协议的一个子协议,工作在网际层。ICMP协议主要用于传输网络是否连通、主机是否可达以及路由是否可用等控制信息。Ping可以回显TTL生存...
前言:俗话说的好,懒是第一生产力,懒是提高生产效率的必要条件。而现今windows是大部分人的第一生产工具,批处理+定时任务这对黄金搭档就是提升生产效率的第一工具。大家在生产过程中经常会遇到各种周期性的重复的工作,比如我现在每天都会更换最新的jar包并重启tomcat,linux服务器我们可以用shell+crontab,而windo...
Linux 登陆服务器敲命令太多,某时候确实不便,所以就用shell写了一个 我的blog地址: http://www.cnblogs.com/caoguo 一.说明 支持秘密和密钥两种格式用户名和密码都是写文件的,明文保存二.配置 密码文件配置:序号:IP:端口:用户:密码:说明 1:192.168.88.128:22:...