前端部署流程详解

news2025/2/24 2:34:57

部署流程

1.打包前端项目成一个dist文件夹

命令:   npm run build

作用:用vue-cli内部集成的webpack,把 .vue, .less, .js 等打包成浏览器可直接执行的代码 html,css,js。

结果:会在项目根目录下创建 /dist目录,在这个目录下产出打包后的结果。

2.在服务器上下载nginx镜像

1.拉取镜像

docker pull nginx   拉取镜像
docker images    查看镜像

2.复制配置文件(为什么以这种方式复制配置文件,详细看下面403问题博客,这个博主写的很清楚)

docker run --name nginx-test -d nginx  # 创建一个容器
mkdir /root/project/nginx  # 在我们的project文件夹中创建一个nginx文件夹用来存放nginx方面的内容
docker cp nginx-test:/etc/nginx/nginx.conf /root/project/nginx/  # 从nginx容器中复制出配置文件 (不需要进入到容器中)
docker cp nginx-test:/etc/nginx/conf.d /root/project/nginx/
docker stop nginx-test  # 停止容器运行
docker rm nginx-test  # 删除测试容器

在这里插入图片描述

3.创建正式的nginx容器

docker run -it --name nginx -p 80:80 -v /root/project/nginx/nginx.conf:/etc/nginx/nginx.conf -v /root/project/nginx/conf.d:/etc/nginx/conf.d -v /root/project/nginx/logs:/var/log/nginx -d nginx

4.配置nginx容器

cd /root/project/nginx/conf.d
vim default.conf

里面的内容

upstream myserver {
    server 172.17.0.3:8085;     #172.17.0.3是我后端项目的容器ip
}

server {
    listen 80;
    listen  [::]:80; 
    server_name 47.98.212.253;  # 你的服务器地址
    location / {
	root   /etc/nginx/conf.d/dist;   #如果你上面容器生成挂载路径和我一样,你就这样写
            	index  index.html index.htm; 
	}
 location /api {
	proxy_pass http://myserver;    # 后端访问端口	
	}
}

5.重启容器

docker restart nginx    #nginx是我的容器名字

3.上传dist文件夹到/root/project/nginx/conf.d

在这里插入图片描述
这样的话你在服务器的这个路径上上传dist之后,你容器里面的 /etc/nginx/conf.d 这个路径下就会同时挂载上dist文件夹

其中可能会遇到的坑

【BUG记录】Nginx 出现 403:forbiden

nginx容器生成自动关闭

这个一般就是nginx的配置文件你写错了

其他问题如果你遇到了你就需要看日志文件然后百度解决就可以

cd /root/project/nginx/logs
cat error.log

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

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

相关文章

UEFI+win7+多系统安装

物理主机先安装的Windows10,同时需要安装Windows7的双系统 1.在https://next.itellyou.cn/下载Windows 7 ISO 2.使用Rufus制作U盘安装盘 注意一定要选择FAT32格式,否则安装过程会卡住 3.由于官方纯净的安装镜像默认不支持UEFI安装,有两种解决…

github的issue最大支持的字符数为65536 characters

Issue templates and forms are currently unavailable. Please try again later. Comment is too long (maximum is 65536 characters) There was an error creating your Issue: body is too long (maximum is 65536 characters). 所以不能存储内容过大的markdown笔记&…

互联网医院|线上医疗平台如何建设运营服务商?

互联网医院平台紧密结合了大数据和人工智能技术,为医疗服务提供了更精准和个性化的解决方案。通过对海量的医疗数据进行分析和挖掘,平台能够为医生提供更多准确可靠的参考依据,辅助医生做出更好的诊断和治疗决策。 在选择互联网医院建设运营服…

Spring kafka源码分析——消息是如何消费的

文章目录 概要端点注册创建监听容器启动监听容器消息拉取与消费小结 概要 本文主要从Spring Kafka的源码来分析,消费端消费流程;从spring容器启动到消息被拉取下来,再到执行客户端自定义的消费逻辑,大致概括为以下4个部分&#x…

直播|深入解析 StarRocks 存算分离—云原生湖仓 Meetup#2

StarRocks 3.0 正式开启极速统一的湖仓新范式,借助云原生存算分离构架、极速数据湖分析、物化视图等重量级特性实现湖仓架构升级,兼具数据仓库查询高性能与数据湖低成本可扩展的优势,让用户更简单地实现极速统一的湖仓分析。 作为 StarRocks…

05-bean工厂的准备工作

入口方法 prepareBeanFactory(beanFactory);protected void prepareBeanFactory(ConfigurableListableBeanFactory beanFactory) {// Tell the internal bean factory to use the contexts class loader etc.// 设置beanFactory的classloader为当前context的classloaderbeanF…

计算机组成原理-笔记-第六章

目录 六、第六章——总线 1、总线(基本概念) (1)总线的定义 & 特性 (2)串行 &并行 (3)总线的分类 (4)总线分类——功能 (4.1&…

分布式数据库视角下的存储过程

存储过程很好呀,那些用不好的人就是自己水平烂,不接受反驳!我就有过这样念头,但分布式数据库,更倾向少用或不用存储过程。 1 我从C/S时代走来 C/S架构时代的末期最流行开发套件是PowerBuilder和Sybase数据库&#xf…

性能测试最佳实践的思考,7个要点缺一不可!

性能测试是软件开发和应用过程中至关重要的环节。它是评估系统性能、稳定性和可扩展性的有效手段,可以确保软件在真实环境中高效运行。在现代技术快速发展的时代,性能测试的重要性愈发显著。 性能测试在软件开发和应用过程中的重要性不可低估。它是保障…

程序员怎么利用ChatGPT解放双手=摸鱼?

目录 1. 当你遇到问题时为你生成代码ChatGPT 最明显的用途是根据查询编写代码。我们都会遇到不知道如何完成任务的情况,而这正是人工智能可以派上用场的时候。例如,假设我不知道如何使用 Python 编写 IP 修改器,只需查询 AI,它就…

模拟实现string类

string类的接口有很多,这里我来梳理一下自己觉得有意思的几个,并模拟实现一下可以凑合用的my_string,话不多说直接开干: 注意事项 为了和库里的string冲突,所以就将自己实现的my_string放在一个命名空间里 namespace …

采用pycharm在虚拟环境使用pyinstaller打包python程序

一年多以前,我写过一篇博客描述了如何虚拟环境打包,这一次有所不同,直接用IDE pycharm构成虚拟环境并运行pyinstaller打包 之前的博文: 虚拟环境venu使用pyinstaller打包python程序_伊玛目的门徒的博客-CSDN博客 第一步&#xf…

明天就要去面试软件测试岗了,现在我能怎么做呢?

首先,时间已经不允许你进行大面积的专业复习,所以你应该做好能够立竿见影的准备工作: 1、整理好自己的仪表 先去理个发,让自己看起来精神一点,尤其是男生,整理头发,修修鬓角能够快速让人对自己…

安卓13不再支持PPTP怎么办?新的连接解决方案分享

随着Android 13的发布,我们迎来了一个令人兴奋的新品时刻。然而,对于一些用户而言,这也意味着必须面对一个重要的问题:Android 13不再支持PPTP协议。如果你是一个习惯使用PPTP协议来连接换地址的用户,那么你可能需要重…

机器学习实战——波士顿房价预测

波士顿房价预测 波士顿房地产市场竞争激烈,而你想成为该地区最好的房地产经纪人。为了更好地与同行竞争,你决定运用机器学习的一些基本概念,帮助客户为自己的房产定下最佳售价。幸运的是,你找到了波士顿房价的数据集,…

tabBar的使用

参考Api:全局配置 | 微信开放文档 (qq.com) 1.使用说明 2.使用详情 3.使用案例 在全局配置的app.json中 "tabBar": {"color": "#333","selectedColor": "#d43c33","backgroundColor": "#fff&qu…

【云原生】Kubernetes控制器中StatefulSet的使用

目录 1 什么是 StatefulSet 2 StatefulSet 特点 3 限制 4 使用 StatefulSet 1 搭建 NFS 服务 2 客户端测试 3 使用 statefulset 1 什么是 StatefulSet 官方地址: StatefulSet | Kubernetes StatefulSet 是用来管理有状态应用的工作负载 API 对象。 无状态应…

半年报增幅超预期,但汤臣倍健还是喂不饱年轻人?

文|琥珀消研社 作者|朱古力 谁也想不到,进入三伏天以后首个运动潮流会是“晒背”。 小红书上近5万条“晒背”相关的笔记里,多数都是对“什么时候晒背”、“晒多久合适”等入门级问题的答疑解惑,微博热搜词条更是针对性地给出了“晒背最佳时…

小程序如何自定义分享内容

小程序项目中遇到门票转增功能&#xff0c;用户可将自己购买的门票分享给好友&#xff0c;好友成功领取即得门票一张 1.自定义分享按钮 通过button里的open-type属性里的share参数即自可定义分享按钮 <button open-type"share">分享</button>2.配置分…

使用 Torchvision 探测器进行实时深度排序

在实际应用中,跟踪是对象检测中最重要的组成部分之一。如果没有跟踪,实时监控和自动驾驶系统等应用就无法充分发挥其潜力。无论是人还是车辆,物体跟踪都起着重要作用。然而,测试大量的检测模型和重新识别模型是很麻烦的。为此,我们将使用 Deep SORT 和 Torchvision 检测器…