今天发现,重启一下nginx居然需要几分钟,往常也就是几秒钟的事儿啊,很奇怪。
随后发现,即使是检查配置
nginx -t
也需要两三分钟,恼了。
于是一步步简化配置nginx.conf试图找出在哪里卡住了。
终于发现,配置中涉及到后端反向代理的时候,就会很慢。
于是ping一下后端的域名或IP,
在发送数据包之前,ping会卡一下,大约十秒钟。
会不会是dns错误导致的呢?
检查下 /etc/resolve.conf
排在第一行的name server,ping一下,完全不通;
第二行的是通的。
遂,删掉第一行的dns服务器。
重新尝试
nginx -t
完全正常了。
总结一下,nginx在重启或者检查配置的时候,会检查后端服务器的网络状况,如果name server/DNS查询阻滞,那nginx就会等待。