在上篇文章中,我们有用到变量去控制该域名是否允许访问,在配置过程中,其实变量的值一直是我们想象的,无法确认具体步骤的变量值,因此我希望能在每个步骤中将变量的值打印出来,这是nginx 的echo模块粉墨登场。

1.nginx 的echo模块的介绍
     echo模块式国人编写的nginx的第三方模块,下载官方nginx后需要再下载echo模块,并且配合nginx编译安装,安装此模块后可以在nginx的url访问中可以通过echo命令输出字符到用户的浏览器中,可用于检测nginx的可访问性,检测nginx的配置的正确性(这是当前我需要用的nginx的主要功能),可用于打印你希望了解的http代理相关http参数,总之在调试配置nginx环节,echo命令非常有用。
详情见:http://www.oschina.net/question/12_45735

2.nginx的echo安装
     安装第三方模块的时候不能使用rpm以及yum方式安装nginx,如果以前用以上方式安装过nginx的话,请先卸载掉。
     2.1 我们下载nginx的源码包(http://nginx.org/download/nginx-1.2.7.tar.gz)以及echo模块的源码包(https://github.com/agentzh/echo-nginx-module/tags)选择最新版本
   2.2 分别加压nginx源码包以及echo模块源码包,例如此处我解压的路径为:nginx的路径:/opt/nginx-source ;echo模块的路径:/opt/nginx-echo-source
   2.3 命令cd进入nginx源码路径,此处:cd /opt/nginx-source ;
    2.4 配置nginx编译文件,执行编译配置命令:./configure --prefix=/opt/nginx --add-module=/opt/nginx-echo-source
配置时屏幕会输出日志,检查配置过程中是否有error,如果有请自行修复,一般是缺少类库,缺少啥类库,就下载安装什么类库
   2.5 编译nginx,在nginx源码目录中执行命令: make
   2.6 编译安装nginx,在nginx 源码目录中执行命令:make install
 
3.nginx的echo使用测试
    配置nginx的配置文件
 server {
        listen       8083;
        server_name  _;
        access_log      /var/log/nginx/cn-camm.server.access.log main;

set $tag "0";

if ( $host !~ ^appbuilder.vicp.cc$ ){
                         set $tag "$tag,1";
                }

if ( $host !~ ^localhost$ ){
                        set $tag "$tag,2";
                }
        if ( $tag ~ ^0,1,2$ ){
                        return 403;
                }

location / {

echo "can act?";
                if ($host != '192.168.1.250' ) {
                        echo "not equal 250";
                #       return 403;
                }

echo "asdfasdf";

#               proxy_pass      http://cncamm;
#                proxy_set_header Host $host:8083;
        }

}

配置时注意
1.echo命令只能放在url请求中,如果放在url请求外,会报错 如果报[emerg]: "echo" directive is not allowed here in  ,请检查echo放置的位置
2.一次url请求,echo 只能打印一行,如果有逻辑判断,且判断成功,则echo会执行判断成功里边的echo,否则执行最后一句echo(此处不一定正确,在测试中发现是此现象)
3.如果echo后边有配置return 或者配置 proxy_pass,则echo的输出会被覆盖,即浏览器无法看到echo的内容
4.echo的内容不是写在nginx的配置文件中,而是输出到浏览器中,所以echo的打印字符的查看请在浏览器中查看

http://www.360doc.com/content/13/0322/11/4672379_273186975.shtml

nginx echo 输出 检查配置正确性相关推荐

  1. Nginx压缩输出配置

    Nginx压缩输出配置 Gzip(GNU-ZIP) 一种压缩技术,经过gzip压缩后,页面大小可以变为原来的30%甚至更小,这样,用户浏览页面的时候,速度会快得多. Gzip的压缩页面,需要浏览器和服 ...

  2. nginx日志输出配置json格式

    nginx日志输出配置json格式 nginx服务器日志相关指令主要有两条:一条是log_format,用来设置日志格式:另外一条是access_log,用来指定日志文件的存放路径.格式和缓存大小. ...

  3. Nginx的部署与配置

    Nginx 简介 Nginx是一款自由的.开源的.高性能的HTTP服务器和 反向代理 服务器:同时也是一个IMAP.POP3.SMTP代理服务器:Nginx可以作为一个HTTP服务器进行网站的发布处理 ...

  4. Nginx 防攻击安全配置

    网站安全配置(Nginx)防止网站被攻击(包括使用了CDN加速之后的配置方法) 网站被攻击是一个永恒不变的话题,网站攻击的方式也是一个永恒不变的老套路.找几百个电脑(肉鸡),控制这些电脑同时访问你的网 ...

  5. 企业常用的Nginx网站服务相关配置

    目录 一,内容概述 Nginx Apache 二,Apache三种工作模式 三,Linux的I/O 四,编译安装Nginx服务 五,认识 Nginx 服务的主配置文件 nginx.conf 六,访问状 ...

  6. 企业常用的Nginx网站服务相关配置——极其详细

    文章目录 一.Nginx概述 二.编译安装Nginx编译安装 1.关闭防火墙,将安装 ngnix 所需的软件包上传到 /opt 目录下 2.安装依赖包 3.创建运行用户.组 4.编译安装Nginx 5 ...

  7. 入门学习Nginx代理服务器?就看这篇Nginx进阶学习最佳配置实践指南

    前置基础知识学习 1.Nginx基础安装与配置详细 https://blog.weiyigeek.top/2019/9-1-121.html 2.Nginx进阶学习之最佳配置实践指南 https:// ...

  8. Nginx防盗链,Nginx访问控制, Nginx解析php相关配置, Nginx代理

    2019独角兽企业重金招聘Python工程师标准>>> Nginx防盗链 Nginx防盗链配置需要与不记录日志和过期时间结合在一起,因为都用到了location. 打开配置文件,注释 ...

  9. Ubuntu 17.04 编译安装 Nginx 1.9.9 配置 https 免费证书

    Ubuntu 17.04 编译安装 Nginx 1.9.9 配置 https 免费证书 安装 Nginx 安装依赖 $ apt-get update $ apt-get install build-e ...

最新文章

  1. js数组对象的常用方法
  2. python空值赋0_Python中的空值判断
  3. H5与Native交互之JSBridge技术 1
  4. linux 自动安装mysql_Linux安装mysql
  5. java   cxf实现webservice接口方式之不依赖spring
  6. android.mk 强制编译,android.mk文件的编译
  7. 公众服务常用电话号码大全
  8. C++中const使用总结
  9. brep文件在线预览
  10. python编程招生海报_怎么用ps做招生海报
  11. 梦三国服务器每天维护几次,梦三国:都在抱怨策划,可扪心自问玩家数量逐渐减少的原因是这些...
  12. Selenium基于Python web自动化测试框架 —— PO模型
  13. 除了啤酒与尿布 大数据又助电商玩口碑营销
  14. 腾讯云创建二级域名并解析
  15. 体检预约系统项目总结
  16. 陕西延安一男子看钓鱼忘拉手刹,爱车溜进鱼塘:自己都惊呆了
  17. 游戏服务器排队系统,游戏服务器排队功能
  18. JAVA之电话号码加密
  19. 阅读论文Formal verification of smart contracts based on users and blockchain behaviors models
  20. flashback 闪回 (final)

热门文章

  1. 日志采集框架Flume、Flume介绍、概述、运行机制、Flume采集系统结构图(1、简单结构、复杂结构)
  2. Java获取文件大小,文件夹内文件个数的工具类
  3. pythonfor循环100次_在for循环中只打印一次
  4. 网页突然乱码_电脑打开网页出现乱码
  5. 基于深度学习的目标检测算法综述(一)
  6. 命令行下操作MySQL数据库,各种命令的使用入门示例。(附图)
  7. Springboot——HelloWorld
  8. 沉淀2017,勇闯2018
  9. Xcode6.3 怎样使用Leaks查看内存泄露
  10. 怎么写ERP实施方案?