2.6 Docker部署多个前端项目

news2025/1/22 16:07:58

2.6 Docker部署多个项目

三. 部署前端项目

1.将前端项目打包到同一目录下(tcm-ui)
2. 部署nginx容器
docker run --name=nginx -p 9090:9090 -p 9091:9091 -d nginx
3. 复制nginx.conf文件到主机目录
docker cp nginx:/etc/nginx/nginx.conf /root/java_project/tcm/tcm-service/conf/nginx.conf 

原因:以防nginx.conf格式是文件夹导致挂载失败

4. 修改配置nginx.conf文件

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/json;

    sendfile        on;
    
    keepalive_timeout  65;

    server {
        listen       9090;
        # 指定nginx中前端项目所在的位置
        location / {
            root /usr/share/nginx/html/tcm-front;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        # 反向代理
        location /api {
            rewrite /api/(.*)  /$1 break;
            # 对应后端接口路径
            proxy_pass http://47.120.15.23:8888;
        }
    }
    server {
        listen       9091;
        # 指定前端项目所在的位置
        location / {
            root /usr/share/nginx/html/tcm-back;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location /prod-api {
            rewrite /prodapi/(.*)  /$1 break;
            proxy_pass http://47.120.15.23:8880;
        }
    }
}

注意:

  • conf和tcm-ui文件夹放在同一目录下
  • 在开启反向代理中的/api和/prod-api分别为前台后台中.env文件(生产环境)中的base api,如下:
image-20240417010825403 image-20240417010056495
5. 删除之前安装的nginx
docker rm -f nginx
6. 部署nginx容器
docker run -d \
  --name nginx \
  -p 9090:9090 \
  -p 9091:9091 \
  -v /root/java_project/tcm/tcm-service/tcm-ui:/usr/share/nginx/html \
  -v /root/java_project/tcm/tcm-service/conf/nginx.conf:/etc/nginx/nginx.conf \
  --network tcm \
  nginx
7. 测试

前台网页:47.120.15.23:9090

后台网页:47.120.15.23:9091

8. 常见问题
  • 报错403:反向代理配置错误(一般为base api错误)
  • 页面无法访问:配置文件中前端路径错误

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1719134.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【R基础】如何开始学习R-从下载R及Rstudio开始

文章目录 概要下载R流程下载Rstudio流程下载完成-打开 概要 提示:如何开始学习R-从下载R及Rstudio开始,此处我只是想下载指定版本R4.3.3 下载R流程 链接: R官网 文件下载到本地 下载文件展示 按照向导指示安装 下载Rstudio流程 链接: Rstudio官网…

C语言 指针——指针变量做函数参数:错误案例分析

目录 计算最高分及其学号 计算最高分及其学号

大量path计算优化方案

1.影响path基础属性数据做key缓存,缓存的path应去除坐标变换,归一化。基础属性应满足CAB, BC-A 2.高频path操作以(keykey操作)做新key缓存。 3.高频修改高级属性,以新key属性变更做新key缓存。 4.key与id做中转映射&am…

uniapp 添加字体ttf

效果图如下 一、逻辑概述 在uniapp中使用字体,一共分成两种情况,一种是普通vue页面,一种是nvue页面引入字体。。 1.vue页面引入字体需要如下步骤 1. 先选择下载一种字体:字体格式一般为 ttf后缀名 黄凯桦律师手写体免费下载和在线…

抖音 UG 社招一面算法原题

史上最严热点新机制 或许是受到前段时间「巴黎丢作业」的影响,抖音近日(5月27日)实施了新的热点内容核实机制。 具体来说,若用户在抖音以热点事件当事人身份发声,抖音将联系当事人进行身份认证。 逾期未认证的用户&…

13.优化界面化的游戏辅助

12.使用mfc实现游戏辅助的界面 在它的代码上进行修改 12.使用mfc实现游戏辅助的界面它的代码是频繁读写游戏的内存,这样不是很好,下面的代码是在它的基础上进行了封装,控制无敌的逻辑在我们申请的内存中实现(也就是在一个全局中实…

连锁收银系统的五大功能 会员营销是核心

连锁企业的收银系统是其经营管理的关键工具之一,具备多种功能可以帮助企业提高效率、优化服务并实现会员营销。以下是连锁收银系统的五大功能,其中会员营销作为核心功能将在最后详细讨论。 首先,收银系统应具备高效的销售管理功能。这包括商品…

为了新来的扫地机器人,我差点把自家狗子给扔了

文 | 螳螂观察 作者 | 凯乐 作为一个大龄未婚男青年,我承认,我很懒。 有多懒?就连用来偷懒的扫地机器人我也一直懒得去买。 要不是朋友实在看不下去,在前不久生日时送了我一台二手扫地机器人(没错,是他…

重发布——重分布——重分发

作用: 在两种路由协议间,或者同种协议的不同进程间;构建一台ASBR,同时工作在两种协议或两个进程中,学习到两端所有的路由条目后,进行路由共享,实现全网可达; 条件: 1、必须存在ASBR--ASBR自治系统边界路…

tinycudann安装

在安装完torch等 直接运行下面的指令会出现错误 pip install githttps://github.com/NVlabs/tiny-cuda-nn/#subdirectorybindings/torch大部分错误是下面的 大概看了一下都是因为虚拟环境里面的include文件下缺少文件,将之前的一些.h文件全部复制过来在执行上面的…

基础—SQL—DQL(数据查询语言)分组查询

一、引言 分组查询的关键字是:GROUP BY。 二、DQL—分组查询 1、语法 SELECT 字段列表 FROM 表名 [ WHERE 条件 ] GROUP BY 分组字段名 [ HAVING 分组后过滤条件 ]; 注意: 1、[ ] 里的内容可以有可以没有。 2、这条SQL语句有两块指定条件的地方&#…

Playwright 自动化操作

之前有见同事用过playwright进行浏览器模拟操作,但是没有仔细了解,今天去详细看了下,发现playwright着实比selenium牛逼多了 Playwright 相对于selenium优点 1、自动下载chromnium, 无需担心chrome升级对应版本问题; 2、支持录屏操…

【UE5.1 角色练习】09-物体抬升、抛出技能 - part1

前言 在上一篇(【UE5.1 角色练习】08-传送技能)的基础上继续实现控制物体抬升、抛出的功能。 效果 步骤 一、准备技能动画 1. 在项目设置中新建一个操作映射,这里命名为“Skill_GravityControl”,用按键4触发 2. 通过IK重定向…

【UE5:CesiumForUnreal】——加载无高度地形数据

目录 1.实现目的 2.数据准备 2.1下载数据 2.2 数据切片 3.加载无地形数据 1.实现目的 在CesiumForUnreal插件中,我们加载地图和地形图层之后,默认都是加载的带有高程信息的地形数据,在实际的项目和开发中,有时候我们需要加载无…

使用QtCreator C++编写串口调试助手

100编程书屋_孔夫子旧书网 1.首先看一下我设计的界面(我这里比较简单,大家可根据自己的需求进行设计) (界面设计的过程中,每一个控件的名称最好进行修改,便于后续控件太多不好区分,给控件命名的…

《中国科技纵横》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答: 问:《中国科技纵横》期刊是核心吗? 答:不是,是万方维普收录的正规期刊。 问:《中国科技纵横》知网收录吗? 答:知网不收录,万方维普收录。主管单位&#xf…

leetcode及牛客网二叉树相关题、单值二叉树、相同的树、二叉树的前序、中序、后序遍历、另一棵树的子树、二叉树的遍历等的介绍

文章目录 前言一、单值二叉树二、相同的树三、二叉树的前序遍历四、二叉树的中序遍历五、二叉树的后序遍历六、另一棵树的子树七、二叉树的遍历总结 前言 leetcode及牛客网二叉树相关题、单值二叉树、相同的树、二叉树的前序、中序、后序遍历、另一棵树的子树、二叉树的遍历等…

21 厂商考证介绍(华为 华三 锐键 深信服)+AI 解析

一 认识考证体系 二 明确考证的大致方向 锐键 职业资格证书等级介绍 职业资格证书是由国家职业资格鉴定机构或相关行业主管部门颁发的,用于证明一个人在特定职业领域具备一定技能和知识水平的证明文件。职业资格证书的等级分为初级、中级、高级、技师、高级技师、…

一个HL7的模拟工具

这个模拟器是为了过( NIST美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)的电子病历住院部分的认证而写的。 用途说明 inpatient中的lab order信息通过该工具向实验室转发该信息。并将实验室…

算法(二)二分查找

文章目录 二分查找简介实现方式循环方式递归方式 经典例子 二分查找简介 二分查找(binary search)算法,也叫折半算法。二分查找是针对有序的数据集合的查找办法,如果是无序的数据结合就使用遍历。二分查找之所以快速,…