迁移时同时装了两种 web 服务,其中一个启动失败提示端口占用,站点时好时坏。
真正麻烦的地方在于,几个原因的现象几乎一样。两个服务都监听同一个端口。还有一种是随镜像预装的服务自启动没人注意。
不容易想到的是,反向代理与源站配置混在同一台机器。
动手时先查端口占用者
ss -lntp | grep ':80 '
然后停用不需要的服务
systemctl disable --now httpd
再往下改成只保留一层对外
systemctl status nginx httpd
剩下的就是确认监听与访问正常
curl -I http://127.0.0.1
同样的操作我在测试机上先走了一遍,线上只做验证过的部分。
这台环境是别人交接的,不少默认值被动过,只能一项项核。
恢复的判定其实很直接。只有一个服务监听八十端口,站点访问稳定,重启后不再抢占。
这里还有个坑。自启动项比进程更隐蔽,停进程不等于停服务;装完系统先列一遍开机自启的服务更省事。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。