Nginx线上请求故障分析

Nginx线上请求故障分析

   点关注不迷路,欢迎再访!	

精简博客内容,尽量已行业术语来分享。
努力做到对每一位认可自己的读者负责。
帮助别人的同时更是丰富自己的良机。

目录

    • Nginx线上请求故障分析
        • 一.配置参数
        • 二.工作问题案例分析
        • 三.解决方案

一.配置参数

配置参数:

​ 1)配置请求体缓存区大小
​ client_body_buffer_size 10m;

​ 2)配置客户端上传限制最大值
​ client_max_body_size 20m;

3)配置客户端下载限制最大值
proxy_max_temp_file_size 5000m;

​ 4)设置临时文件存放路径(可选配置)
​ client_body_temp_path /data/temp;

​ ps:设置临时文件存放路径。只有当上传的请求体超出缓存区大小时,才会写到临时文件中,注意临时路径要有写入权限

配置设置:

​ 1)在http{ }中设置:client_max_body_size 20m;

​ 2)选择在server{ }中设置:client_max_body_size 20m;

​ 3)选择在location{ }中设置:client_max_body_size 20m;

​ 区别:http{} 中控制着所有nginx收到的请求;而报文大小限制设置在server{}中,则控制该 server收到的请求报文大小,同理,如果配置在location中,则报文大小限制,只对匹 配了location 路由规则的请求生效。

二.工作问题案例分析

在前端发起一个post请求,当body数据量较多时发现请求失败,后端无法获取请求流量日志,F12监控请求发现head请求异常,错误如下:

<body>
<h1>An error occurred.</h1> 
<p>Sorry, the page you are looking for is currently unavailable.<br/>Please try again later.</p > 
<p>If you are the system administrator of this resource then you should check the error log for details.</p >
<p><em>Faithfully yours, nginx.</em></p > 
</body>

通过日志分析可以看出是请求中间层nginx异常导致请求失败,查看nginx日志发现请求失败,失败原因请求body超出缓存区大小,没有写入临时文件权限导致异常;

三.解决方案

开启临时路径文件写入权限即可

你可能感兴趣的:(Nginx,nginx,运维,前端)