美文网首页
多个项目在一个laradocker中出现的互访不同情况解决方案

多个项目在一个laradocker中出现的互访不同情况解决方案

作者: 海里的沙丁鱼 | 来源:发表于2021-09-01 18:12 被阅读0次

    见这篇文章可以使用 Laradock 搭建基于 Docker 的 PHP 开发环境

    通过上面那篇文章就可以成功搭建开发环境。

    一 解决多个项目在一个容器中出现的访问不了的情况:

    在开发过程中遇到了一个问题,在一个容器里运行了两个项目,项目B想要访问项目A的接口,出现访问不通的情况。在容器workspace里用curl http://a.test也访问不了。经过排查后,找到如下的解决方法。

    思路如下:

    1. 在nginx里配置两个conf,a.conf和b.conf。直接把default复制过去也行,然后改端口和项目地址两处,和上篇文章里提到的配置的方式一样。然后在a.conf里监听80端口,在b.conf里监听8009端口。(也可以是其他端口号)

    2.修改docker-compose.yml文件。找到nginx的配置,在ports处添加一个监听- "8009:8009"

    ### NGINX Server #########################################
        nginx:
          build:
            context: ./nginx
          ......
          ports:
            - "${NGINX_HOST_HTTP_PORT}:80"
            - "8009:8009"
            - "${NGINX_HOST_HTTPS_PORT}:443"
            - "${VARNISH_BACKEND_PORT}:81"
          depends_on:
            - php-fpm
          .......
      
    
    1. 在项目B请求项目A的接口地址替换成主机ip访问。例如原来的接口是:http://a.test/api/test。现在换成:http://179.32.11.92/api/test

    此处的179.32.11.92这个ip地址,是查看自己的主机的ip地址。例如主机是mac,直接在终端用ifconfig就可以查看到。

    4.在主机配置/etc/hosts文件。添加

    127.0.0.1  a.test
    127.0.0.1  b.test
    

    5.访问A项目,打开浏览器输入地址:http://a.test。访问B项目,打开浏览器输入地址:http://b.test:8009

    相关文章

      网友评论

          本文标题:多个项目在一个laradocker中出现的互访不同情况解决方案

          本文链接:https://www.haomeiwen.com/subject/ysqfwltx.html