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。

解决过程:php

  1. 第一时间的想法就是nginx的配置问题,网上找了缘由,说是由于fastcgi_pass 127.0.0.1:9000的端口问题:咱们请求A项目的时候占用了9000的端口,请求B项目时,要等待9000端口释放才能请求,可是A项目也等待B项目请求返回,致使请求超时。linux

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

    缘由是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,发现仍是没有解决问题!!curl

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

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

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

  5. 再从A项目请求B项目,缤购!!能够了!!!vagrant

小结: 在vagrant虚拟机(无论什么虚拟机)安装了linux服务器,就不会出现A项目访问B项目由于fastcgi端口的问题致使访问超时!!端口的问题致使超时只会出如今window系统!!进程

相关文章
相关标签/搜索