当前位置:   article > 正文

安装echo模块调试Nginx变量_nginx echo变量

nginx echo变量

问题来源

(1)看到nginx.conf里面的变量头都大了,因为我完全不知道那个变量表示的到底是什么,一脸懵逼。。。

(2)有的时候我们需要根据不同的 if 条件自定义变量,并对这些自定义的变量进行调试

解决方法

令人感动到哭的解决方法就是 echo-nginx-module 模块来调试变量。然而这个模块默认情况下并不存在于nginx的正式发行包中,因此我们需要在编译安装nginx的时候手动添加

echo-nginx-module模块的github地址是:
https://github.com/openresty/echo-nginx-module

安装方法如下:

  1. $ wget 'http://nginx.org/download/nginx-1.11.2.tar.gz'
  2. $ tar -xzvf nginx-1.11.2.tar.gz
  3. $ cd nginx-1.11.2/
  4. # Here we assume you would install you nginx under /opt/nginx/.
  5. $ ./configure --prefix=/opt/nginx \
  6. --add-module=/path/to/echo-nginx-module
  7. $ make -j2
  8. $ make install

调试案例

为了输出nginx中的各种变量,我通过在/etc/hosts文件中添加了如下记录:

  1. server{
  2. listen 80;
  3. server_name www.test.com;
  4. location / {
  5. echo 'query_string: $query_string';
  6. echo 'request_method: $request_method';
  7. echo 'content_type: $content_type';
  8. echo 'content_length: $content_length';
  9. echo 'fastcgi_script_name: $fastcgi_script_name';
  10. echo 'request_uri: $request_uri';
  11. echo 'document_uri: $document_uri';
  12. echo 'document_root: $document_root';
  13. echo 'server_protocol: $server_protocol';
  14. echo 'https: $https';
  15. echo 'nginx_version: $nginx_version';
  16. echo 'remote_addr: $remote_addr';
  17. echo 'remote_port: $remote_port';
  18. echo 'server_addr: $server_addr';
  19. echo 'server_port: $server_port';
  20. echo 'server_name: $server_name';
  21. echo 'uri: $uri';
  22. }
  23. }

然后使用curl命令向www.test.com进行请求:

curl -L www.test.com/index.php?from=siguoya --header "content-type:text/html;" -H "content-length:200"

即达到了调试各种变量的效果:

  1. query_string: from=siguoya
  2. request_method: GET
  3. content_type: text/html;
  4. content_length: 200
  5. fastcgi_script_name: /index.php
  6. request_uri: /index.php?from=siguoya
  7. document_uri: /index.php
  8. document_root: /usr/local/nginx/1.10.1/html
  9. server_protocol: HTTP/1.1
  10. https:
  11. nginx_version: 1.10.1
  12. remote_addr: 127.0.0.1
  13. remote_port: 61376
  14. server_addr: 127.0.0.1
  15. server_port: 80
  16. server_name: www.test.com
  17. uri: /index.php
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/629739
推荐阅读
相关标签
  

闽ICP备14008679号