nginx -t nginx -T (排查 nginx 进程存在,服务正常,却看不到端口的问题)

如何排查 nginx 进程存在,服务正常,却看不到端口的问题

前言:今天修改了nginx 主配置文件 nginx.conf ,以及其他站点的子配置文件保存后 执行了nginx -t 与法检测也没问题,然后reload服务后,但是网页访问不了。这时候排错的流程是很重要的。

排错截图如下:

 

1.检查nginx 服务状态 ,nginx 进程情况 (服务状态正常。进程存在)

2.既然进程存在,服务启动,根据网页服务器工作原理,建立连接是必要的,如果连接建立不上也会有问题。引出了端口是否存在的问题。(端口确实不存在)

3.端口既然不存在,那么可能的原因有什么。

  • 端口冲突?(但是nginx和httpd 服务端口冲突都会启动失败,并提示报错。并且没修改端口操作可以排除)
  • 端口屏蔽?防火墙? 安全组? (初次配置服务时候的确会遇到这个问题,但是这个设置可以说一次设置成功后不会出现类似问题,可以排除屏蔽问题)
  • 对应服务的端口配置文件设置问题。 

分析:前面两种可能都排查了,定位到原因3(既然是端口问题,就找nginx 端口的配置文件。但是子站点端口配置文件没动啊,既然没动却不好使了,那就是

没加载这些子站点配置文件,nginx.conf中加载子站点配置文件是通过 include xxxx/conf.d/*.conf).检查nginx.conf果然不小心删除了。

通过nginx -T 可以显示已加载的站点文件内容,结果真的没有子站点配置文件信息。

解决:

在 nginx.conf中的http字段里添加 include /usr/local/nginx/con.d/*.conf

成功截图如下:

总结:排除问题一定要有顺序,从外向内逐渐排查从表象最终定位到实质。就像我们网页访问不了,通过日志分析排除了进程以及服务的问题逐渐定位到端口问题。再用端口不存在定位端口起不来的最终原因。并根据原因对症下药。

 

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Loading...