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

如何为Docker Compose部署的应用配置本地路径式访问URL?

用Docker Compose实现路径式URL访问多应用的方案

核心思路是通过反向代理服务器(比如Nginx)转发请求,把不同路径的访问映射到对应的容器端口,同时把所有服务整合到同一个Docker Compose配置里,方便统一管理。

具体实现步骤

1. 调整Docker Compose配置

在原有应用配置的基础上,新增Nginx代理服务,不需要再把应用端口暴露到宿主机(容器间通过内部网络通信即可)。

示例docker-compose.yml配置:

version: '3.8'

services:
  # 你的应用1
  app1:
    image: 你的应用1镜像名
    # 注释掉原有对外暴露端口的配置,容器内部端口保持不变
    # ports:
    #   - "8081:8080"

  # 你的应用2
  app2:
    image: 你的应用2镜像名

  # 你的应用3
  app3:
    image: 你的应用3镜像名

  # Nginx反向代理服务
  nginx-proxy:
    image: nginx:alpine
    ports:
      - "80:80"  # 宿主机80端口对外提供服务
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf  # 挂载自定义配置文件
    depends_on:
      - app1
      - app2
      - app3

2. 编写Nginx转发配置

在docker-compose.yml同目录下创建nginx.conf,配置路径与应用的映射规则:

server {
    listen 80;
    server_name localhost;

    # 转发/application1/路径到app1容器
    location /application1/ {
        proxy_pass http://app1:8080/;  # 末尾斜杠要保留,确保路径正确传递
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    # 转发/application2/路径到app2容器
    location /application2/ {
        proxy_pass http://app2:8080/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    # 转发/application3/路径到app3容器
    location /application3/ {
        proxy_pass http://app3:8080/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

注意:把配置里的8080换成你的应用容器实际监听的端口,app1/app2/app3要和Docker Compose里的服务名完全一致。

3. 启动服务

执行以下命令启动所有服务:

docker-compose up -d

之后就能通过以下路径访问对应应用:

  • http://localhost/application1/
  • http://localhost/application2/
  • http://localhost/application3/

额外提示

  • 局域网内分享时,直接把localhost换成宿主机的IP地址即可,比如http://192.168.1.100/application1/
  • 如果应用本身依赖固定路径跳转,需要在应用配置里添加路径前缀支持,或者在Nginx中补充路径重写规则
  • 如需HTTPS访问,可以给Nginx配置SSL证书,或者用nginx-proxy搭配letsencrypt-nginx-proxy-companion自动生成证书

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:05:20