2.6 Docker部署多个前端项目

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.mzph.cn/diannao/21337.shtml

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

相关文章

[学习笔记](b站视频)PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】(ing)

视频来源:PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】 前面P1-P5属于环境安装,略过。 5-6.Pytorch加载数据初认识 数据文件: hymenoptera_data # read_data.py文件from torch.utils.data import Dataset …

数据结构与算法05-链表

介绍 基于结点的数据结构拥有独特的存取方式,因此在某些时候具有性能上的优势。 本章我们会探讨链表,它是最简单的一种基于结点的数据结构,而且也是后续内容的基础。 你会发现,虽然链表和数组看上去差不多,但在性能上…

Go 1.23新特性前瞻

2024年5月22日,Go 1.23版本[1]功能特性正式冻结,后续将只改bug,不增加新feature。 对Go团队来说,这意味着开始了Go 1.23rc1的冲刺,对我们普通Gopher而言,这意味着是时候对Go 1.23新增的功能做一些前瞻了&am…

SAP PP学习笔记15 - MTS(Make-to-Stock) 按库存生产(策略11,策略30)

上一章学习了MTS(Make-to-Stock)按库存生产(策略10)。 SAP PP学习笔记14 - MTS(Make-to-Stock) 按库存生产(策略10),以及生产计划的概要-CSDN博客 本章继续讲MTS(Make-t…

革新风暴来袭:报事报修系统小程序如何重塑报事报修体验?

随着数字化、智能化的发展,已经应用在我们日常生活和工作的方方面面。那么,你还在为物业报修而头疼吗?想象一下,家里的水管突然爆裂,你急忙联系物业,时常面临物业电话忙音、接听后才进行登记繁琐的报修单、…

Vue.js 与 TypeScript(1) :项目配置、props标注类型、emits标注类型

像 TypeScript 这样的类型系统可以在编译时通过静态分析检测出很多常见错误。这减少了生产环境中的运行时错误,也让我们在重构大型项目的时候更有信心。通过 IDE 中基于类型的自动补全,TypeScript 还改善了开发体验和效率。 一、项目配置 在使用 npm cr…

2024后端服务架构升级

文章目录 背景改造方案新架构图技术选型思考 服务拆分公共组件设计自部署算法服务排期计划 全球多活改造背景架构图分布式ID 背景 1、xx业务经过多轮的业务决策和调整,存在非常多技术包袱,带了不好的用户体验和极高的维护成本 2、多套机房部署&#xf…

简单、免费、强大的高效率截图工具神器——Snipaste(下载安装+常用快捷键教学)

一、简介 Snipaste是一款功能强大的截图和贴图工具,它允许用户快速截取屏幕上的任意区域,并将截图以浮窗形式显示在屏幕上。用户可以自由调整浮窗的位置和大小,甚至将浮窗设置为半透明,以便在查看屏幕内容时不会遮挡视线。此外&a…

[数据结构]字典树

概念: 字典树是一种数据结构,常用于统计,排序和保存大量的字符串(但不仅限于字符串)。主要思想是利用字符串的公共前缀来节约存储空间。 实现原理: 在开发的过程中如果需要使用字典树,不必自己…

图的创建和遍历

孤勇者探险(图的遍历) 作者 YJ 单位 西南石油大学 一款名为“孤勇者探险”的游戏,游戏中共有若干个小岛,每个岛上均有怪兽,闯关者打倒岛上的怪兽则可获得该岛对应的游戏积分(每个岛的积分根据难度可能不相…

【recast-navigation-js】使用three.js辅助绘制Agent

目录 说在前面使用Tweakpane添加CrowAgent其他 说在前面 操作系统&#xff1a;windows 11浏览器&#xff1a;edge版本 124.0.2478.97recast-navigation-js版本&#xff1a;0.29.0golang版本&#xff1a;1.21.5 使用Tweakpane fps面板interface FPSGraph extends BladeApi<B…

JAVA流程控制--For循环

1.虽然所有循环都可以用while或do...while表示&#xff0c;但Java提供了另外一种语句——for循环&#xff0c;使一些循环结构变得简单 2.for循环语句是支持迭代的一种通用结构&#xff0c;是最有效&#xff0c;最灵活的循环&#xff0c;结构 3.for循环执行的次数是在…

单元测试的心法分享

大家好&#xff0c;我是G探险者&#xff01; 今天我们简单聊聊单元测试的哪些事儿~ 两天时间我玩明白了单元测试的套路。 这里我分享一下思路。 在我眼里单元测试室什么&#xff1f; 请看这张草图&#xff1a; 单元测试主要关注单个代码单元&#xff08;通常是类或方法&am…

Docker成功启动Rabbitmq却访问不了管理页面问题解决

目录 启动步骤&#xff1a; 无法访问问题总结&#xff1a; 启动步骤&#xff1a; 拉取镜像&#xff1a; docker pull rabbitmq 运行&#xff1a; docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq进入容器&#xff1a; docker exec -it 容器id /bin/…

python基础知识点总结(第二节判断与循环)

一、判断语句 1、if判断语句 ~if语句的基本格式 if 要判断的条件&#xff1a; 条件成立时&#xff0c;要做的事情 ~if语句的注意事项&#xff1a; 判断语句的结果一定要是布尔类型不要忘记判断条件后的&#xff1a;冒号归属于if语句的代码块&#xff0c;需要在前方填…

【操作与配置】VS2017与MFC环境配置

【操作与配置】VS2017与MFC环境配置 概述 Visual Studio 是一款强大且多功能的集成开发环境&#xff08;IDE&#xff09;&#xff0c;适用于软件开发人员和团队。使用此应用程序&#xff0c;您可以构建和调试现代Web应用程序&#xff0c;并利用扩展帮助探索几乎任何编程语言。…

PySide6在VScode中提示:vscode module not found error: no module named ‘pyside6‘解决方案

最近在B站学习PySide6&#xff1a;PySide6百炼成真&#xff0c;带你系统性入门Qt https://www.bilibili.com/video/BV1c84y1N7iL?p3&vd_source256724e7f8bba144c62a17f9fa758a04 学习到第3节&#xff1a;003基础框架 003基础框架 from PySide6.QtWidgets import QApplicat…

【讲解下常见的分类算法,什么是分类算法?】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

千锋教育大优惠

IT全学科自学至尊卡&#xff08;3年卡&#xff09; Linux云计算运维、Python全栈、数据分析、人工智能、Java、大前端、网络安全、物联网、全媒体、影视剪辑等14大主流方向&#xff0c;300精品视频课程免费学。课程持续更新&#xff0c;电脑端手机APP小程序多平台无忧畅学&…

Android 输入法框架流程

输入法框架流程梳理 输入法框架构成 输入法管理端&#xff08;IMMS/InputMethodManagerService&#xff09; 主要负责输入法服务端与客户端的绑定&#xff1b;输入法的切换/显示/隐藏/启用/关闭。输入法服务端&#xff08;IMS/InputMethodService&#xff09; 输入法服务&…