换了个新服务器soap接口出错导致服务异常了,接口报了以下错误

SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://www.test.com/api/soap/?wsdl' : failed to load external entity "https://www.test.com/api/soap/?wsdl"

想了想能出现这问题,估计也是服务器的问题了(因为代码没动过,而且模拟测试机的接口也是正常),唯一能解释异常原因,就只有被服务限制访问或其它原因了,这种问题也好定位,先看看服务日志。

cd /var/log/nginx

#对日志进行实现监听
tail -f access.log | grep "本机外网ip"

再模拟soap请求接口,进行指定接口进行请求,请求完成看access日志,发现了status:403拒绝访问记录,如下图

至此,已经初步定位到问题所在,应该是运维人员对服务器做了些许安全加固,导致请求被403了。

因为nginx服务器403是返回类似于forbidden提示文字而已,而soap接口因为接收到的数据并非xml结构,无法解析,而抛出failed to load external entity的错误提示。