首頁 >後端開發 >php教程 >lnmp环境本地2个不同的域名互相调用

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

WBOY
WBOY原創
2016-06-06 20:09:51967瀏覽

我本地环境是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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn