Nginx Nginx详解

Nginx 出现大量 TIME_WAIT

检测TIME_WAIT状态的语句

$ netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'  
SYN_RECV 7
ESTABLISHED 756
FIN_WAIT1 21
SYN_SENT 3
TIME_WAIT 2000

状态解析:

解决方法

执行 vim /etc/sysctl.conf,并添加下面字段

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30

执行 /sbin/sysctl -p 让修改生效。

上传文件大小限制

问题现象

显示错误信息:413 Request Entity Too Large

意思是请求的内容过大,浏览器不能正确显示。常见的情况是发送 POST 请求来上传大文件。

解决方法

  • 可以在 http 模块中设置:client_max_body_size 20m;
  • 可以在 server 模块中设置:client_max_body_size 20m;
  • 可以在 location 模块中设置:client_max_body_size 20m;

三者区别是:

  • 如果文大小限制设置在 http 模块中,则对所有 Nginx 收到的请求。
  • 如果文大小限制设置在 server 模块中,则只对该 server 收到的请求生效。
  • 如果文大小限制设置在 location 模块中,则只对匹配了 location 路由规则的请求生效。

请求时间限制

问题现象

请求时间较长,链接被重置页面刷新。常见的情况是:上传、下载大文件。

解决方法

修改超时时间

教程来源于Github,感谢大佬的无私奉献,致敬!

技术教程推荐

软件测试52讲 -〔茹炳晟〕

移动端自动化测试实战 -〔思寒〕

安全攻防技能30讲 -〔何为舟〕

说透敏捷 -〔宋宁〕

手把手教你玩音乐 -〔邓柯〕

郭东白的架构课 -〔郭东白〕

Vue 3 企业级项目实战课 -〔杨文坚〕

互联网人的数字化企业生存指南 -〔沈欣〕

工程师个人发展指南 -〔李云〕