Docker使用Nginx一个端口启动多个前端项目

 更新时间:2025年10月27日 08:22:57   作者:cg_ssh  
本文介绍了使用Docker Compose部署Nginx服务的详细流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1.pull image

docker pull nginx

2.创建docker-compose

services:
  nginx:
    image: nginx:latest
    container_name: nginx
    ports:
      - "1234:80"
      - "1235:443"
    volumes:
      - ./conf:/etc/nginx/conf.d
      - ./html:/usr/share/nginx/html
      - ./logs:/var/log/nginx
    restart: unless-stopped

3.目录挂载准备

目录结构如下:

conf/
├── default.conf    #nginx配置文件
html/
├── app1/           # 应用1
│   ├── index.html
│   └── ...
├── app2/           # 应用2
│   ├── index.html
│   └── ...
├── app3/           # 应用3
│   ├── index.html
│   └── ...
└── index.html      # 默认首页
log/                # 日志目录
docker-compose.yml  # docker-compose 配置信息

4.创建 default.conf  监听80端口同时启动多个前端

server {
    listen       80;
    server_name  localhost;
    client_max_body_size 1000M;
    add_header X-Frame-Options SAMEORIGIN;
    
    # 全局 CORS 配置
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
    add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';

    # 处理 OPTIONS 预检请求
    if ($request_method = 'OPTIONS') {
        add_header Access-Control-Max-Age 1728000;
        add_header Content-Type 'text/plain; charset=utf-8';
        add_header Content-Length 0;
        return 204;
    }

    #-------------------------------------------------------------------------🚀

    # app1前端配置
    location /app1/ {
        alias /usr/share/nginx/html/app1/;
        index index.html index.htm;
        try_files $uri $uri/ /app1/index.html;
    }
        
    # app1 后端服务配置
    location /app1/api/ {
        proxy_pass http://www.sol_china.cn/app1/;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    #-------------------------------------------------------------------------🚀

    # app2前端配置
    location /app2/ {
        alias /usr/share/nginx/html/app2/;
        index index.html index.htm;
        try_files $uri $uri/ /app2/index.html;
    }
        
    # app1 后端服务配置
    location /app2/app-api/ {
        proxy_pass http://192.168.0.100:4567/;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    #-------------------------------------------------------------------------🚀
    
    # others server config....

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
}

5.构建服务

在对应的目录(见3小节),执行构建命令:

docker-compose -p dockernginx up -d

6.Vue项目注意点(如果你徘徊在404的漩涡中请检查以下内容是否和配置路径匹配)

1.路由部分 base 属性

2.vue.config.js  publicPath

3.env.production  中 API_BASE_URL

说明:其中1、2对应 对应 location /${appName}/ (前端)       3 对应服务访问 location  /${API_BASE_URL }/ (后端)

到此这篇关于Docker使用Nginx一个端口启动多个前端项目的文章就介绍到这了,更多相关Docker Nginx端口启动内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker部署Node.js的实现示例

    Docker部署Node.js的实现示例

    本文介绍了在服务器上使用Docker部署Node.js项目,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-12-12
  • Docker和Kubernetes中使用代理IP的操作方法

    Docker和Kubernetes中使用代理IP的操作方法

    在Docker和Kubernetes中使用代理IP很容易,只需要在Docker守护进程和容器运行时添加相应的配置即可,这篇文章主要介绍了如何在Docker和Kubernetes中使用代理IP,需要的朋友可以参考下
    2023-07-07
  • Docker部署MySQL镜像的保姆级教程

    Docker部署MySQL镜像的保姆级教程

    docker是一种容器化技术,可以将应用程序及其依赖项打包成一个独立的可移植容器,mysql是一个流行的关系型数据库管理系统,在Docker中部署MySQL镜像可以方便地创建和管理MySQL数据库实例,本文给大家介绍了Docker部署MySQL镜像的教程,需要的朋友可以参考下
    2025-06-06
  • docker 实现容器与宿主机无缝调用shell命令

    docker 实现容器与宿主机无缝调用shell命令

    这篇文章主要介绍了docker 实现容器与宿主机无缝调用shell命令的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随想过来看看吧
    2021-03-03
  • 云原生Docker容器自定义DNS解析

    云原生Docker容器自定义DNS解析

    Docker没有为每个容器专门定制镜像,那么怎么自定义配置容器的DNS配置呢?这篇文章主要给大家介绍了关于云原生Docker容器自定义DNS的相关资料,需要的朋友可以参考下
    2023-02-02
  • docker安装minio及实现文件上传、删除、下载方式

    docker安装minio及实现文件上传、删除、下载方式

    这篇文章主要介绍了docker安装minio及实现文件上传、删除、下载方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 使用docker build kit构建树莓派上可用的Docker镜像

    使用docker build kit构建树莓派上可用的Docker镜像

    这篇文章主要介绍了使用docker build kit构建树莓派上可用的Docker镜像,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Docker Compose从安装到使用详细过程

    Docker Compose从安装到使用详细过程

    Docker Compose是Docker官方提供的一个工具,用于定义和运行多容器 Docker应用程序,本文给大家介绍Docker Compose从安装到使用详细过程,感兴趣的朋友跟随小编一起看看吧
    2025-09-09
  • Docker方式安装gitlab--ARM64平台安装详解

    Docker方式安装gitlab--ARM64平台安装详解

    这篇文章主要介绍了Docker方式安装gitlab--ARM64平台安装,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • centOS中安装docker-composer时报错问题及解决

    centOS中安装docker-composer时报错问题及解决

    这篇文章主要介绍了centOS中安装docker-composer时报错问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05

最新评论