当前位置: 首页 > article >正文

使用宝塔部署项目在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中刷新出现404
        index  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.kler.cn/news/319432.html

相关文章:

  • MySQL数据库脚本转化成sqlite数据库脚本的修改点
  • 动态规划day38|322. 零钱兑换(背包满了吗?最小值怎么表示?)、279. 完全平方数、139. 单词拆分、多重背包要点、背包问题大总结
  • 網路本地連接沒有有效的IP配置:原因與解決方法
  • 匈牙利算法详解与实现
  • 【Tomcat】常见面试题整理 共34题
  • 跨站请求伪造(CSRF)漏洞详解
  • 【MySQL】知识总结——索引的类型分类和性质
  • 2023国赛C题 蔬菜类商品的自动定价与补货决策(上)
  • Spring Boot 中实现动态列导入讲解和案例示范
  • element plus上传文件 点击确认后文件上传到接口
  • Java项目实战II基于Java+Spring Boot+MySQL的车辆管理系统(开发文档+源码+数据库)
  • 【Java】将一个List拆分使用线程池多线程运行
  • linux进程间通信——消息队列、信号量、ipc设计原理
  • 梧桐数据库(WuTongDB):向量化查询优化器的一些实现细节
  • 傅里叶变换及其应用笔记
  • 使用dom-to-image截图html区域为一张图
  • Redis --- redis事务和分布式事务锁
  • 全栈杂谈第三期 我们用的网络协议是什么
  • 前端css样式覆盖
  • 我的AI工具箱Tauri版-MicrosoftTTS文本转语音
  • 24.9.23学习笔记
  • “永辉优品”会是中国零售的答案吗?
  • 通信工程学习:什么是WLAN无线局域网
  • Python 从入门到实战28(文件的读操作)
  • 从王卫在全球可持续交通高峰论坛上的发言,透视顺丰的变革逻辑
  • [Unity Demo]从零开始制作空洞骑士Hollow Knight第十集:制作后坐力系统Recoil和小骑士的生命系统和受伤系统
  • docker容器安装nginx
  • 如何在 Linux 中管理和清理日志文件( `find` 命令按时间批量删除日志)
  • Unity DOTS系列之Struct Change核心机制分析
  • 大模型-模型预训练-训练过程优化配置