nginx echo 输出 检查配置正确性

在上篇文章中,我们有用到变量去控制该域名是否允许访问,在配置过程中,其实变量的值一直是我们想象的,无法确认具体步骤的变量值,因此我希望能在每个步骤中将变量的值打印出来,这是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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在nginx配置upstream健康检查,可以按照以下步骤进行操作: 1. 首先,确保你已经安装了nginx的源码,并且进入到nginx的源码目录。 2. 下载并打补丁:使用命令`patch -p1 < ../nginx_upstream_check_module-master/check_1.5.12.patch`来为nginx打上健康检查的补丁。这个补丁可以从引用提供的链接中获得。 3. 运行`./configure`命令来配置nginx的编译参数。你需要确保添加了`--add-module`选项,并指定了健康检查模块的路径。例如:`./configure --user=nginx --group=nginx --prefix=/usr/local/nginx-1.6.0 --with-http_ssl_module --with-openssl=/usr/local/src/openssl-0.9.8q --with-pcre=/usr/local/src/pcre-8.32 --add-module=/usr/local/src/nginx_concat_module/ --add-module=../nginx_upstream_check_module-master`。 4. 运行`make`命令来编译nginx,编译参数需要和之前的一样。 5. 备份原始的nginx可执行文件:运行`mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx-1.6.0.bak`。 6. 将编译后的新nginx可执行文件复制到指定目录:运行`cp ./objs/nginx /usr/local/nginx/sbin/`。 7. 运行`/usr/local/nginx/sbin/nginx -t`命令来检查nginx配置是否正确。 8. 使用信号USR2重启nginx:运行`kill -USR2 `cat /usr/local/nginx/logs/nginx.pid``。 9. 配置完毕后,重启nginx服务即可生效。 通过上述步骤,你可以成功地配置nginx的upstream健康检查。请确保按照步骤正确操作,并注意备份原始文件以防万一。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [nginx upstream 健康检查](https://blog.csdn.net/JineD/article/details/113728663)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值