欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

lnmp环境本地2个不同的域名互相调用

程序员文章站 2022-05-02 13:17:44
...
我本地环境是lnmp
现在有2个站点 www.aa.com 另外一个是api.aa.com 主要是提供api接口的
我现在www.aa.com 这个站点要调用api.aa.com 接口。我是通过php的curl模式调用的
但是一直提示www.aa.com 一直加载中,如果我把timeout时间设置为1s中,就是ok的,意思是我现在无法获取到api.aa.com这个域名下面的返回值

我如果把本地的环境全部换为apache , 那么不会遇到上述的问题。。。。。。我预发布测试环境就不会遇到这个问题。。。
初步猜想:是不是nginx里面有一个php进程是不是一直在挂起状态?我本地是win开发环境不看其他进程之类的也不方便,所以求指教这个问题解决办法 3q

回复内容:

我本地环境是lnmp
现在有2个站点 www.aa.com 另外一个是api.aa.com 主要是提供api接口的
我现在www.aa.com 这个站点要调用api.aa.com 接口。我是通过php的curl模式调用的
但是一直提示www.aa.com 一直加载中,如果我把timeout时间设置为1s中,就是ok的,意思是我现在无法获取到api.aa.com这个域名下面的返回值

我如果把本地的环境全部换为apache , 那么不会遇到上述的问题。。。。。。我预发布测试环境就不会遇到这个问题。。。
初步猜想:是不是nginx里面有一个php进程是不是一直在挂起状态?我本地是win开发环境不看其他进程之类的也不方便,所以求指教这个问题解决办法 3q

解决这问题要想做测试.可以在本地使用试用httping 来做单独api.aa.com 相应时间测试。如果不会性能测试的,也可以用php,调用get_content_file来做。打印前后时间戳
如果是 api.aa.com 相应时间慢就测试简单的index.php 页面里面就echo 语句话.做测试。如果不能测试通过过,基本上是服务器配置问题。
如果通过,在找api.aa.com 数据库调用情况,比较简单数据调用,之后再做业务测试。
另外楼主不要怀疑是curl和nginx问题了,如果非要怀疑也做相应测试,注意测试方法。nginx支持搞并发的,除非你并发量设置太小,或者linux系统同时打开文件数量太小。curl 本身是php模块,不属于php内核一部分,是php托管的进程。

看看是不是域名解析问题
尝试做一个host吧
/etc/hosts
127.0.0.1 api.aa.com

今天尝试了一下,代码上到测试环境ok测试环境也是nginx,出错原因应该是本地环境win是没有php-fpm另外本地切换到apache一切ok

相关标签: php