使用宝塔部署项目在win上

项目部署

注意:
前后端部署项目,需要两个域名(二级域名,就是主域名结尾的域名,需要在主域名下添加就可以了),前端一个,后端一个

思路:访问域名就会浏览器会加载前端的代码在浏览器执行,执行前端代码时会访问域名+路径的形式,访问服务器的jar项目。

这里说明,域名解析就成了ip地址,其实也可以在前端代码中写死ip地址,但是请求访问就是ip+路径的形式访问。但是这里也有不好的地方,比如要更换服务器,那么前端代码要修改ip地址,并重新编译。如何是域名的话,就只需要在主域名下的二级域名管理修改ip地址就可以了

这里使用的宝塔部署的
前端部署:
1.在网站新建创建一个站点,将二级域名填入就可以了,其他的不变。保存即可,后选择该站点进行设置
2.选择申请SSL证书,Let’s Encrypt这个是免费的证书,选择二级域名进行申请。
①如果申请失败,那么二级域名的ip地址有问题,因为这个是二级域名的ip地址是对应着该服务器ip地址,ssl申请会审批二级域名的ip地址和该服务器的地址是否匹配。
②如果申请成功,就在证书夹里(在Let’s Encrypt旁边),找到对应的站点后部署就可以了
注意:需要申请SSL证书,浏览器访问二级域名才会成功,否则会404。因为二级域名访问是https(ipv6)协议,SSL证书是https特征之一,必须要的。否则只能使用http协议(ipv4),ip+端口号访问
3. 使用浏览器访问这个二级域名,就会有成功的页面表示部署已经成功一半了。接下来就可以将前端的代码放到服务器上了
4. 退出这站点的设置,找到该站点的文件,将前端代码解要到这个文件夹就可以了
5. 最后还有个小问题,前端代码部署好,后浏览器访问二级域名,但是一刷新就会报404,这个是要在nginx配置文件里配置:
注意:不要在nginx配置文件中配置,因为以后服务器会建设多个网站,如果都在nginx配置文件中配置,代码耦合度高,不利于修改,而且以后维护的过程寻找这个二级域名的配置会特别困难。
所以在nginx配置文件的最下方有一段代码, inclued vhost/*.conf 这段代码意思是包含vhost文件下的conf结尾的配置文件。当执行到inclued时会继续执行vhost下的.cof文件。
这个文件夹里的.conf文件都是默认以你创建的站点的域名命名的。
在这个.conf文件中添加
在这里插入图片描述

下面两个配置是关键所在!!!!!!

    location / {try_files $uri $uri/ @router;#需要指向下面的@router否则会出现vue的路由在nginx中刷新出现404index  index.html index.htm;}#对应上面的@router,主要原因是路由的路径资源并不是一个真实的路径,所以无法找到具体的文件#因此需要rewrite到index.html中,然后交给路由在处理请求资源location @router {rewrite ^.*$ /index.html last;}

但是我只使用了location这个一个配置,下面的没有使用。也可以不用直接修改.conf文件,可以在站点设置中,配置文件中修改,这个也是修改.conf文件的。

后端代码部署

  1. 在网站中创建一个新的站点,填入二级域名(这个是第二二级域名,不要和前端的二级域名相同)

  2. 申请SSL证书

  3. 进入该站点的文件价,新建一个jar文件夹用于放jar包,并创建bat脚本内容如下
    (1) @echo off
    (2) title 你的窗口的名字
    (3) java -jar 你的jar包的绝对路径,就是哪个盘,比如D:/wwwroot/…
    (4) Pause
    注意:这个代码就卸载txt记事本中,然后修改后缀名未bat文件

  4. 最后进入在站点的设置,在反向代理中,添加代理规则用来代理你的jar项目,端口好就是http:127.0.0.1:6803(6803是jar项目的端口好,根据你的端口号来设置),其他保存不变,确定就可以了

  5. 后端项目启动就可以了

注意

  1. 不要用一个站点来部署前端又部署后端,这是有问题的(这个就是想要省一个域名的想法,只要买了一个主域名,二级域名随便申请,不要钱的)
    (1) 其中答案很简单,就是一个站点里如开启反向代理,那么这个站点就是一个后端的jar项目(其实也就代理jar项目的端口号,通过端口号访问到jar项目),就不是一个前端项目了,如果访问二级域名,那么不会加载前端的index.html文件。那么访问二级域名就等同于访问这个服务器的ip+端口号,没有jar项目的访问路径的,所以报404,资源找不到,而且站点中的响应日志也是记录的资源找不到。

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

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

相关文章

VMware虚拟机Centos操作系统——配置docker,运行本地打包的镜像,进入conda环境(vmware,docker新手小白)

1.docker-centos运行sudo yum install -y yum-utils报错 遇到问题 解决: 进入/etc/yum.repos.d目录下找到 CentOS-Base.repo,执行下面两个命令: cp CentOS-Base.repo CentOS-Base.repo.backupvi CentOS-Base.repo 进入后改成&#x…

恶意Bot流量识别分析实践

1、摘要 随着互联网的发展,自动化工具和脚本(Bots)的使用越来越普遍。虽然一些善意 Bots 对于网站的正常运行和数据采集至关重要,但恶意 Bots 可能会对网站带来负面影响,如爬取敏感信息、恶意注册、刷流量等。因此&am…

11. Map和Set

一、二叉搜索树 1. 概念 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根…

基于JAVA+SpringBoot+Vue的健身房管理系统1

基于JAVASpringBootVue的健身房管理系统1 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接🍅 哈喽…

阿里云kafka消息写入topic失败

1. 问题现象描述 20240918,14:22,测试反馈说kafka有问题,生产者写入消息的时候报错,并发了一张日志截图,主要报错如下: to topic xxxx: org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for x…

Flutter为Android添加签名并打包

前言 我们需要将App进行数字签名才能发布到商店里。在这里就具体描述一下如果给App添加签名 为App签名 创建一个用户上传的秘钥库 如果你已经有一个秘钥库了,可以直接跳到下一步,如果没有则按照下面的指令创建一个 keytool 可能不在我们的系统路径中…

客户端数页面异步填充器-———未来之窗行业应用跨平台架构

一、创生 在前端代码的神秘世界里,jq赋值渲染方法曾被视为法宝。然而,随着数据量增大和应用复杂,它的缺点逐渐显现。 在大数据量的激战中,逐个用 val() 赋值会导致性能骤降,频繁操作 DOM 时,页面重绘和重排…

论文复现我能行:Dynamic Movement Primitives: Volumetric Obstacle Avoidance

一、论文介绍 论文题目:《Dynamic Movement Primitives: Volumetric Obstacle Avoidance Using Dynamic Potential Functions》,Journal of Intelligent & Robotic Systems 该论文在2019年ICRA《Dynamic Movement Primitives: Volumetric Obstacle…

即插即用篇 | DenseNet卷土重来! YOLOv8 引入全新密集连接卷积网络 | ECCV 2024

本改进已同步到YOLO-Magic框架! 本文重新审视了密集连接卷积网络(DenseNets),并揭示了其在主流的ResNet风格架构中被低估的有效性。我们认为,由于未触及的训练方法和传统设计元素没有完全展现其能力,DenseNets的潜力被忽视了。我们的初步研究表明,通过连接实现的密集连接…

R语言中的shiny框架

R语言中的shiny框架 Shiny 的基本概念基本用法示例常见用法示例1. 输入控件2. 输出控件3. 动态 UI4. 数据传递和反应式编程 高级功能1. 使用 shinyjs2. 使用 shinythemes Shiny 是一个 R 语言的框架,用于构建交互式的网页应用,可以让用户以最少的 HTML、…

彻底理解前端模块化

目录 引入历史问题 CommonJSexports导出module.exports导出require导入加载过程缺点 AMD规范(基本不用)require.js使⽤ CMD规范(基本不用)SeaJS的使⽤ ES Module简单使用export关键字import关键字export和import结合default⽤法im…

MySQL多版本并发控制MVCC实现原理

MVCC MVCC 是多版本并发控制方法,用来解决读和写之间的冲突,比如脏读、不可重复读问题,MVCC主要针对读操作做限制,保证每次读取到的数据都是本次读取之前的已经提交事务所修改的。 概述 当一个事务要对数据库中的数据进行selec…

论文不会写怎么办?推荐这5款AI论文工具帮你一键搞定!

在当今的学术研究和写作领域,AI论文工具已经成为不可或缺的助手。这些工具不仅能够提高写作效率,还能帮助研究者生成高质量的论文。本文将推荐五款优秀的AI论文工具,并特别推荐千笔-AIPassPaper,以帮助读者更好地完成学术写作任务…

[笔记]某视觉三维定位系统参数表

表中的参数是彼此关联的,其实是就是视频解算的速度。里面的1秒直接对应1FPS300m秒直接对应3FPS0-20m的识别范围,与摄像头分辨率、视在焦距与摄像头基线有明确的对应关系。它的矩阵非正方。怀疑一组用于远距,一组用于近距,属于固定…

ZYNQ:开发环境搭建

资料下载 http://47.111.11.73/docs/boards/fpga/zdyz_qimxing(V2).html Vivado软件是什么? Vivado软件是Xilinx(赛灵思)公司推出的一款集成设计环境(IDE),主要用于FPGA(现场可编程门阵列&am…

Django5 使用pyinstaller打包成 exe服务

首先:确保当前的django项目可以完美运行,再进行后续操作 python manage.py runserver第一步 安装 pyinstaller pip install pyinstaller第二步 创建spec 文件 pyinstaller --name manage --onefile manage.pypyinstaller:这是调用 PyInsta…

Electron-vue asar 局部打包优化处理方案——绕开每次npm run build 超级慢的打包问题

背景 因为组员对于 Electron 打包过程存在比较迷糊的状态,且自己也没主动探索 Electron-vue 打包细节,导致每次打包过程都消耗 5-6 分钟的时间,在需要测试生产打包时,极其浪费时间,为此针对 Electron-vue 打包的几个环…

Cilium + ebpf 系列文章-什么是ebpf?(一)

前言: 这篇非常非常干,很有可能读不懂。 这里非常非常推荐,建议使用Cilium官网的lab来辅助学习!!!Resources Library - IsovalentExplore Isovalents Resource Library, your one-stop destination for ins…

刷题计划 day10 栈与队列上【用栈实现队列】【用队列实现栈】【有效的括号】【删除字符串中的所有相邻重复项】

⚡刷题计划day10栈与队列继续,可以点个免费的赞哦~ 往期可看专栏,关注不迷路, 您的支持是我的最大动力🌹~ 目录 ⚡刷题计划day10继续,可以点个免费的赞哦~ 往期可看专栏,关注不迷路, 您的…

【中级通信工程师】终端与业务(三):电信业务

【零基础3天通关中级通信工程师】 终端与业务(三):电信业务 本文是中级通信工程师考试《终端与业务》科目第三章《电信业务》的复习资料和真题汇总。终端与业务是通信考试里最简单的科目,有效复习通过率可达90%以上,本文结合了高频考点和近几…