一次冗长繁琐的排错经历

本文记录了一次耗时的排错过程,涉及Nginx HTTPS连接失败的问题。通过检查编译选项、配置文件、系统依赖,最终发现是openssl的libcrypto.so导致的segfault,通过寻找旧版本的动态库并创建软链接解决问题。排错过程中使用了dmesg、ldd等命令,并提供了一些相关参考文档。
摘要由CSDN通过智能技术生成

一次冗长繁琐的排错经历

白白忙活了一个下午+半个早饭的时间。感慨一下, 解决问题的思路很重要啊,否者就会像无头苍蝇一样,到处乱撞。

因项目关系,需要在测试环境中开启https,悲剧的是,在经过了机器迁移之后,之前可用的https连接失败了:

 

而Nginx中也只有寥寥几行的错误日志:

 

这里首先说明一下,Nginx对HTTPs的支持是通过Module ngx_http_ssl_module来实现的。而这需要保证几点:

  1. 编译nginx的时候启动了ngx_http_ssl_module模块。(nginx –V查看编译选项 包含--with-http_ssl_module)
  2. 在配置文件中开启了SSl并且配置正确(详情查看:http://nginx.org/en/docs/http/ngx_http_ssl_module.html)。
  3. 系统安装了openssl(yum list install / rpm –qa, openssl version)

在确认以上三点无误后,再次将目标锁定到nginx的错误日志上。需要注意的是alert的worker process xxx exit on signal 11,也就是说,nginx的worker进程由于"某种原因"退出了,对于退出的原因,却没有丝毫的线索。而"没有线索"恰恰是调试的最大障碍,就好比是你只告诉119起火了,却没有告知事故地址,你让消防队员如何救火?木有core dump,错误日志又一头雾水,各种度娘、谷哥无果…..但,战斗还是要继续,烽火不会因为你的放弃而停止燃烧。</

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值