vagrant搭建nginx、php环境,两个项目间使用curl请求问题

vagrant搭建nginx、php环境,两个项目间使用curl请求问题

  1. 场景:vagrant搭建两个项目,A项目生成订单,B项目完成支付,再回到A项目返回支付成功信息。
  2. 问题:从A项目发送一条支付请求到B项目,curl返回false,file_get_contents返回failed to open stream。

解决过程:

  1. 第一时间的想法就是nginx的配置问题,网上找了原因,说是因为fastcgi_pass 127.0.0.1:9000的端口问题:我们请求A项目的时候占用了9000的端口,请求B项目时,要等待9000端口释放才能请求,但是A项目也等待B项目请求返回,导致请求超时。

  2. 配置B项目为fastcgi_pass 127.0.0.1:9001,重启nginx,直接postman请求B项目发现报502?

    原因是php-fpm只监听了9000端口!fastcgi_pass去找9001端口时,没有响应。

    找到php-fpm.conf,最后一行 include /usr/local/etc/php-fpm.d/*.conf 看到该目录下只有一个www.conf,cp一份叫9001.conf的,修改文件内容 listen = 127.0.0.1:9001,重启nginx,发现还是没有解决问题!!

    好像就算php-fom.conf引入多少个.conf配置文件,只监听一个端口!因为使用的是systemctl管理nginx,于是用命令 /usr/local/sbin/php-fpm -y /usr/local/etc/php-fpm.d/9100.conf 再打开一个php-fpm进程,postman请求B项目,可以访问了!!

配好9001端口后,再从A项目请求B项目,还是一样的问题!!curl返回false,file_get_contents返回failed to open stream。好神奇,百思不得其解。

突然,灵光一闪。想到了请求的过程:从我们的本地请求A项目,绑定了hosts,没问题!从A项目请求B项目?请求访问的hosts是本地的hosts还是vagrant上的hosts??天啊!赶紧去vagrant看一下hosts,果然空空如也!!直接绑定hosts 127.0.0.1 my.localhost.com

再从A项目请求B项目,缤购!!可以了!!!

小结: 在vagrant虚拟机(不管什么虚拟机)安装了linux服务器,就不会出现A项目访问B项目因为fastcgi端口的问题导致访问超时!!端口的问题导致超时只会出现在window系统!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值