You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laradock中配置Node.js微服务容器?尝试后未生效

在Laradock中整合Node.js微服务并实现Laravel调用

关键问题修正步骤

1. 容器间通信:用服务名替代域名

Docker Compose同一网络内的服务可以直接通过服务名互相访问,你的Laravel和Node容器都在backend网络,所以Laravel调用Node服务时,直接用http://nodejs:3003即可,无需解析外部域名。

2. Node.js容器配置调整

docker-compose.yml 优化

  • 若需要本地调试访问Node服务,添加端口映射(内部通信可省略,外部访问需配置):
nodejs:
  # 原有配置保留
  ports:
    - "3003:3003"  # 宿主端口:容器端口
  • 卷映射确保本地Node代码挂载到容器工作目录:
    如果你的Node服务代码在宿主机器的./node-service目录,调整卷配置:
volumes:
  - ./node-service:/var/www/hotelszone_node_partner  # 本地代码目录:容器工作目录

若和Laravel代码共用宿主目录,需确保容器内路径对应正确,避免代码覆盖。

Dockerfile 简化

pm2启动命令无需额外加node,直接指定脚本即可:

CMD ["pm2-runtime", "hello.js"]

同时确保hello.js存在于容器的/var/www/hotelszone_node_partner目录(通过卷挂载同步本地代码)。

3. Nginx代理配置修正

Nginx容器和Node容器在同一网络,代理目标改为Node服务名nodejs,而非域名:

location / {
    proxy_pass http://nodejs:3003;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_cache_bypass $http_upgrade;
}

同时在本地hosts文件添加127.0.0.1 node_partner_app.test,即可通过该域名在浏览器访问Node服务。

4. Laravel中调用Node服务的代码示例

用Laravel自带的HTTP门面发送GET请求:

use Illuminate\Support\Facades\Http;

// 调用Node服务的示例接口
$response = Http::get('http://nodejs:3003/your-endpoint');
if ($response->successful()) {
    $data = $response->json();
    // 处理返回数据
}

或使用Guzzle客户端(需先安装guzzlehttp/guzzle):

use GuzzleHttp\Client;

$client = new Client();
$response = $client->get('http://nodejs:3003/your-endpoint');
$data = json_decode($response->getBody()->getContents(), true);

5. 启动与验证

  1. 构建并启动Node和Nginx容器:
docker-compose build nodejs
docker-compose up -d nodejs nginx
  1. 查看Node容器日志,确认服务正常启动:
docker-compose logs nodejs
  1. 进入Laravel的workspace容器,测试连通性:
docker-compose exec workspace bash
curl http://nodejs:3003

若返回预期响应,说明容器间通信正常。

内容的提问来源于stack exchange,提问作者Rahat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 05:05:19