如何内部调用 docker-compose 的 nginx 服务

问题描述:我用docker-compose搭建了三个nginx服务,在宿主机都能正常访问它们的接口,但是其中一个服务访问其他两个服务的时候接口就报错了。

Github仓库

# docker-compose.yml
# nginx
  nginx:
    image: nginx:alpine
    ports: 
      - "8080:80"
      - "9999:8888"
    expose: 
      - "8888"
      - "80"
    volumes: 
      # nginx配置
      - ./nginx/conf.d/equip.conf:/etc/nginx/conf.d/equip.conf
      - ./nginx/conf.d/org.conf:/etc/nginx/conf.d/org.conf
      - ./nginx/conf.d/portal.conf:/etc/nginx/conf.d/portal.conf
      # 代码
      - ../saas-equipment:/app/saas-equipment
      - ../saas-organization:/app/saas-organization
      - ../saas-portal:/app/saas-portal
    networks:
      - saas-webserver
  # php
  php:
    build: ./php
    volumes: 
      - ../saas-equipment:/app/saas-equipment
      - ../saas-organization:/app/saas-organization
      - ../saas-portal:/app/saas-portal
    networks: 
      - saas-webserver

注意,三个服务都是在同一个nginx容器里面

三个服务互相关系如下

如何内部调用 docker-compose 的 nginx 服务

各位大佬有什么解决办法吗

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

就是一个 nginx 容器里的不同项目互通互相访问呗. 看下这个方法,docker-compose.yml 里 nginx 容器配置 alias 参数,这样 nginx 容器里a.com,b.com域名就会指向 nginx 容器的ip

4年前 评论
Lolioy (楼主) 4年前
Lolioy (楼主) 4年前
lchola (作者) 4年前
讨论数量: 7

端口写对了吗?

4年前 评论
Lolioy (楼主) 4年前

file
需要在同一网络中

4年前 评论
Lolioy (楼主) 4年前

三个nginx networks 要一致不然容器是不能访问的,

4年前 评论
Lolioy (楼主) 4年前
QiYangXy (作者) 4年前
QiYangXy (作者) 4年前
Lolioy (楼主) 4年前
QiYangXy (作者) 4年前
Lolioy (楼主) 4年前
QiYangXy (作者) 4年前
Lolioy (楼主) 4年前
QiYangXy (作者) 4年前
Lolioy (楼主) 4年前

可以给每个配置文件分配不同的端口,访问 {nginx 容器名}:{端口} 这样的可以在容器内访问

4年前 评论
Lolioy (楼主) 4年前

虚拟域名需要配置host,域名指向nginx容器的ip,所以需要进去nginx容器查到IP,然后配置在extra_hosts

4年前 评论
Lolioy (楼主) 4年前
伍同学 (作者) 4年前
Lolioy (楼主) 4年前

就是一个 nginx 容器里的不同项目互通互相访问呗. 看下这个方法,docker-compose.yml 里 nginx 容器配置 alias 参数,这样 nginx 容器里a.com,b.com域名就会指向 nginx 容器的ip

4年前 评论
Lolioy (楼主) 4年前
Lolioy (楼主) 4年前
lchola (作者) 4年前

是curl的时候错误吗

4年前 评论
Lolioy (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!