nginx复习006 调试输出+查看响应状态+替换响应内容+网页压缩传输

—–nginx的调试输出

–什么是调试输出
调试输出指通过指令对需要调试的信息进行打印输出
ex:内置变量
–调试输出功能
在nginx中,调式输出主要用于增强对nginx的理解和排错
–配置调试输出
1> nginx本身不具有调试输出模块,因此需要使用第三方提供的echo-nginx-module模块 简称echo模块
2> 获取echo模块
https://github.com/openresty/echo-nginx-module/releases
3> 配置流程
由于echo模块是第三方提供的模块
因此其配置流程即是nginx中配置第三方模块的方式
除了前面学习过的 编译安装方式 之外,还可以通过 重新编译复制 方式实现
(添加第三方模块 –add-module = PATH , 添加自带模块 –with-模块名称)
–查看当前编译选项 nginx -V
1> 原编译选项上添加

./configure \
--prefix=/usr/local/nginx \
--with-http_ssl_module \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/usr/local/src/ngx_cache_purge-2.3 \
--add-module=/usr/local/src/echo-nginx-module-0.61

2> make编译
3> 备份/usr/local/nginx/sbinsbin下的nginx二进制文件
4>复制源码包中objs目录下的nginx文件到/usr/local/nginx/sbin中

–调试输出的使用
1> echo指令(表达式 参数 特殊字符)

location / {
    root html;
    index index.html;
    default_type text/plain;
    echo -n "hello world";
    echo -n \"hello world\";
    echo 23+89;
    echo -- -n;
}

对于nginx,$是特殊符号,echo不能对其进行输出;

2> 分割遍历
涉及的指令echo_foreach_split echo_end
涉及的内置变量 $echo_it

location / {
    default_type text/plain;
    echo_foreach_split "," "php,nginx,c/c++,java,python";
    echo $echo_it;
    echo_end;
}

3> 获取其他location中的内容
涉及的指令 echo_location

location / {
    default_type text/plain;
    echo_location /split;
}
location /split {
    echo "other location";
}

4> 重复输出
涉及的指令 echo_duplicate

location / {
    default_type text/plain;
    echo_duplicate 10 "*";
}

5> 延迟设置
涉及的指令 echo_sleep echo_reset_timer
涉及的内置变量 $echo_timer_elapsed

location / {
    default_type text/plain;
    echo_sleep 3;
    echo "$echo_timer_elapsed s";
    echo_reset_timer;
    echo_sleep 2;
    echo "$echo_timer_elapsed s";
}

6> 指定过滤器输出前后的内容
涉及的指令 echo_exec echo_before_body echo_afer_body

location / {
    default_type text/plain;
    echo_exec @proxy;
}
location @proxy {
    echo_before_body start;
    echo_after_body end;
    proxy_pass http://192.168.152.131;
}

—–查看响应状态和替换响应内容

–涉及的模块
获取响应状态的模块 ngx_http_stub_status_module
替换响应内容模块 ngx_http_sub_module
sub:substitute的简称 替换 代替

–配置流程

./configure \
--prefix=/usr/local/nginx \
--with-http_ssl_module \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/usr/local/src/ngx_cache_purge-2.3 \
--add-module=/usr/local/src/echo-nginx-module-0.61 \
--with-http_stub_status_module \ 
--with-http_sub_module

–查看响应状态
涉及的指令 stub_status
Context: server location

location / {
    root html;
    index index.html;
    stub_status;
}

–替换响应内容
涉及的指令 sub_filter
sub_filter_last_modified
sub_filter_once
sub_filter_types
Context:http, server, location

location / {
    root html;
    index index.html;
    sub_filter "nginx" "baicai";
    sub_filter_once off;
    sub_filter_types *;
}

–详情查看手册

—–网页压缩传输

–gzip
–数据压缩格式
–http协议上的gzip编码是一种用来改进web应用程序性能的技术
–好处 一是减少存储空间 二是通过网络传输文件时,可以减少传输的时间,让用户感受更快是速度

–gzip压缩过程
涉及的请求头与响应头
请求:当浏览器支持gzip解压时,会在请求消息头中包含”Accept-Encoding:gzip”
响应:如果gzip开启,nginx就会向浏览器发送经gzip压缩后的内容,同时在响应消息头中加入”Content-Encoding:gzip”,声明这是gzip内容,告诉浏览器要先解压后才能解析输出.

–网页压缩传输相关指令
Syntax: gzip on | off;
Default:gzip off;
Context:http, server, location, if in location

–网页压缩传输的基本配置
涉及的指令 gzip gzip_types
响应头一般会有:
Content-Encoding: gzip;
Content-Type: text/html;
Transfer-Encoding: chunked;(可能有,表示内容长度不确定)

—-网页压缩传输的详细配置
涉及的指令 gzip_buffers 以什么内存空间去存储压缩结构
gzip_comp_level 压缩等级 越高越消耗CPU
gzip_disable 某种情况下不压缩
gzip_http_version 某个http协议版本下才压缩
gzip_min_length 文件大于某个值时才进行压缩
gzip_proxied 反向代理压缩的方式
gzip_vary 是否启用显示Content-Encoding响应消息头
–详情看手册
–虽然nginx使用gzip压缩内容可以减少传输数据大小,但压缩率越大cpu消耗越高,cpu消耗高会导致nginx能同时处理请求的响应能力下降,因此,在实际应用中,是否开启gzip模块,需要根据实际应用功能决定.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值