多個(gè)項(xiàng)目在一個(gè)laradocker中出現(xiàn)的互訪不同情況解決方案

見這篇文章可以使用 Laradock 搭建基于 Docker 的 PHP 開發(fā)環(huán)境

通過上面那篇文章就可以成功搭建開發(fā)環(huán)境。

一 解決多個(gè)項(xiàng)目在一個(gè)容器中出現(xiàn)的訪問不了的情況:

在開發(fā)過程中遇到了一個(gè)問題,在一個(gè)容器里運(yùn)行了兩個(gè)項(xiàng)目,項(xiàng)目B想要訪問項(xiàng)目A的接口,出現(xiàn)訪問不通的情況。在容器workspace里用curl http://a.test也訪問不了。經(jīng)過排查后,找到如下的解決方法。

思路如下:

  1. 在nginx里配置兩個(gè)conf,a.conf和b.conf。直接把default復(fù)制過去也行,然后改端口和項(xiàng)目地址兩處,和上篇文章里提到的配置的方式一樣。然后在a.conf里監(jiān)聽80端口,在b.conf里監(jiān)聽8009端口。(也可以是其他端口號(hào))

2.修改docker-compose.yml文件。找到nginx的配置,在ports處添加一個(gè)監(jiān)聽- "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. 在項(xiàng)目B請(qǐng)求項(xiàng)目A的接口地址替換成主機(jī)ip訪問。例如原來(lái)的接口是:http://a.test/api/test?,F(xiàn)在換成:http://179.32.11.92/api/test。

此處的179.32.11.92這個(gè)ip地址,是查看自己的主機(jī)的ip地址。例如主機(jī)是mac,直接在終端用ifconfig就可以查看到。

4.在主機(jī)配置/etc/hosts文件。添加

127.0.0.1  a.test
127.0.0.1  b.test

5.訪問A項(xiàng)目,打開瀏覽器輸入地址:http://a.test。訪問B項(xiàng)目,打開瀏覽器輸入地址:http://b.test:8009。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容