在CentOS 6.9 x86_64的nginx 1.12.2上开启echo-nginx-module模块实录

2024-03-18 15:08

本文主要是介绍在CentOS 6.9 x86_64的nginx 1.12.2上开启echo-nginx-module模块实录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

echo-nginx-module是一个第三方模块,在nginx源码中没有,但是OpenResty中有,它为nginx.conf带来了echo,sleep,time等多个类似bash的强大命令。
目前最新版本是v0.61

安装指南参见
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如下:
https://github.com/taoyunxing/github_test/blob/master/nginx.conf

下载源码
cd /usr/local/src
git clone https://github.com/openresty/echo-nginx-module.git

cd nginx-1.12.2
./configure --with-http_ssl_module \
--with-pcre=/usr/local/src/pcre-8.41 \
--with-zlib=/usr/local/src/zlib-1.2.11 \
--with-openssl=/usr/local/src/openssl-1.1.0g \
--with-http_stub_status_module \
--add-module=/usr/local/src/ngx_cache_purge \
--add-module=/usr/local/src/ngx_req_status \
--add-module=/usr/local/src/echo-nginx-module
make
make install

这个例子也给出了OpenResty中的模块如何编译进社区最新版nginx中去的方法。我起初看到OpenResty中的模块目录比较怪异,以为还需要自己调整目录结构再整合到nginx中,其实是没有必要的。

安装完成之后,检查nginx.conf的完整性并重启nginx
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx

测试请求
curl -v 'http://localhost:8081/test'


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";}

curl -v 'http://localhost:8082/main3'


参考文献
[1].https://github.com/openresty/echo-nginx-module
[2].http://blog.sina.com.cn/s/blog_6d579ff40100wi7p.html


这篇关于在CentOS 6.9 x86_64的nginx 1.12.2上开启echo-nginx-module模块实录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/822733

相关文章

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

Nginx 重写与重定向配置方法

《Nginx重写与重定向配置方法》Nginx重写与重定向区别:重写修改路径(客户端无感知),重定向跳转新URL(客户端感知),try_files检查文件/目录存在性,return301直接返回永久重... 目录一.try_files指令二.return指令三.rewrite指令区分重写与重定向重写: 请求

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

华为鸿蒙HarmonyOS 5.1官宣7月开启升级! 首批支持名单公布

《华为鸿蒙HarmonyOS5.1官宣7月开启升级!首批支持名单公布》在刚刚结束的华为Pura80系列及全场景新品发布会上,除了众多新品的发布,还有一个消息也点燃了所有鸿蒙用户的期待,那就是Ha... 在今日的华为 Pura 80 系列及全场景新品发布会上,华为宣布鸿蒙 HarmonyOS 5.1 将于 7

Windows的CMD窗口如何查看并杀死nginx进程

《Windows的CMD窗口如何查看并杀死nginx进程》:本文主要介绍Windows的CMD窗口如何查看并杀死nginx进程问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows的CMD窗口查看并杀死nginx进程开启nginx查看nginx进程停止nginx服务

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa