nginx (77) nginx とパッケージ本体の探索

nginx  と本体

说明:本文'不具有'生产意义,只是为了'nginx知识'的闭环,可以'跳过'即可 --> "数据脱敏"

题外话: 对body的'CURD',nginx和openresty处理方式'不同'

强调: 本文是基于'http'演示的,如果是'https'加密我们是'看不到'的

①  コアモジュールが提供する本体命令と変数

描述:客户端和nginx涉及的'body参数'

 1、nginx在'处理'客户端的'请求体'  --> '入'方向  --> 客户端'原始未经过加工'处理

 2、nginx返回给'客户端'的'响应体'  --> '出'方向  --> '经过body_filter'之后的

 client_body_buffer_size
 client_body_in_file_only
 client_body_in_single_buffer
 client_body_temp_path
 client_body_timeout
 client_max_body_size

变量: $body_bytes_sent  $bytes_sent  $request_body  $request_body_file

1、 跟'body'有关的变量名

2、 跟'length'有关的'字节'长度

3、log_format '使用'这些变量即可,建议使用'escape=none'观察

nginx499 body_bytes_sent は 0 です

クライアントソケットが事前にnginxログbody_bytes_sentをクローズしていれば0になるのでしょうか?

需求: nginx中想利用'$request_body'获取post请求的'body'参数,并'落'日志

注意: location中用到proxy_pass,xxx_pass'指令'时,该变量才'有值',否则该变量值为'空'

②  上流モジュールは本体に関する変数を提供します

③  プロキシモジュールは本体に関する命令と変数を提供します。

描述:nginx和上游的'body参数'

1、nginx在'处理'后端的'响应体'  --> '入'方向  --> 后端'原始未经过加工'处理

2、nginx作为代理'处理'转发的'响应体'  

proxy_pass_request_body   

场景1: 第三方'认证鉴权',nginx转发'请求'时,丢弃'客户端的请求体'

备注: 请求体一般和'Content-Length'相关,所以需要修改为'0'或'置空'

涉指令:proxy_pass_request_body "默认是on" 和 proxy_set_header Content-Length ""

プロキシセット本体

proxy_temp_file_write_size

プロキシの一時パス

④ログ  ビュー 

说明:body体的'格式'一般与 'Content-Type'息息相关,尤其是'响应体'

payload  --> '载荷'  --> '请求体'

补充:nginx暂时'获取'不到后端的响应体,但是'openresty'可以

ボディ破棄     ボディ受信     ボディ保存    nginxソースコード解析

Chrome 開発者ツールのネットワーク リクエスト パラメーター情報は、[ペイロード] 列に配置されます。

escape=none 保留'原始'格式, 不存在"双引号"的'\x22'和其它'中文'转义

1) 记录的内容太多,多行'分开'写,最后一个

2) 除了'最后一行',注意每行'末尾'一个空格,避免"串连"日志可读性太差

对比:同一个请求,nginx如果没有'escape=none'呢?

响应体和'default_type',以及Content-Type响应头有关系

遗留:二进制的字节流?

遗留:reset_timedout_connection  --> '444 报错的相关指令'

​遗留:'原始'传输、'压缩'传输 

遗留: Content-Length 与'实际传输'字节的关系  -->'无限大',一直等待'超时'

Supongo que te gusta

Origin blog.csdn.net/wzj_110/article/details/130757808
Recomendado
Clasificación