JavaCove部署文档

news2024/11/26 10:50:01

1. 基础配置

1.1服务器: 2 核 2G

1.2. 一个域名

1.3. 项目地址:

gitee:https://gitee.com/guo-_jun/JavaCove
github:https://github.com/nansheng1212/JavaCove

2. CentOS 安装 Docker

官方网站上有各种环境下的 安装指南,这里主要介绍 Docker CE 在 CentOS 上的安装。

2.1 卸载(可选)

如果之前安装过旧版本的 Docker,可以使用下面命令卸载:

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2.2 安装 Docker

  1. 安装 yum 工具

    yum install -y yum-utils
    
  2. 设置镜像仓库

    yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  3. 更新 yum 软件包索引

    yum makecache fast
    
  4. 安装 Docker CE

    yum install docker-ce docker-ce-cli containerd.io
    

2.3 启动 Docker

  1. 启动 Docker

    systemctl start docker
    
  2. 查看 Docker 版本

    docker version
    

3. CentOS 安装 DockerCompose

3.1 安装 DockerCompose

curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

如果下载速度较慢或者下载失败,去Release 1.29.2 · docker/compose (github.com)选择相应版本,下载 docker-compose-Linux-x86_64 到本地,更名为docker-compose,上传到服务器的/usr/local/bin目录下

3.2 修改文件权限

chmod +x /usr/local/bin/docker-compose

4. nginx 配置 https

  1. 先去腾讯云或者阿里云申请免费 SSL 证书,然后选择 Nginx 服务器类型下载

  2. 证书下载之后上传到/etc/ssl/certs目录下

  3. /usr/local目录下新建nginx文件夹

    cd /usr/local
    mkdir nginx
    
  4. 创建目录/usr/local/upload作为本地文件存储路径

  5. 将以下的nginx.conf改好后上传到/usr/local/nginx下,我的直接贴进来了,仅供参考

    events {
    worker_connections  1024;
    }
    
    http {
    
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
    
        client_max_body_size     50m;
        client_body_buffer_size  10m;
        client_header_timeout    1m;
        client_body_timeout      1m;
    
        gzip on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_comp_level  4;
        gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
        gzip_vary on;
    
    server {
    listen  443 ssl;
    server_name  www.junlty.top;
    
            ssl_certificate    /etc/ssl/certs/www.junlty.top.pem;
            ssl_certificate_key  /etc/ssl/certs/www.junlty.top.key;
            ssl_session_timeout 5m;
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            ssl_prefer_server_ciphers on;
    
           location / {
                root   /usr/local/vue/blog;
                index  index.html index.htm;
                try_files $uri $uri/ /index.html;
            }
    
            location ^~ /api/ {
                proxy_pass http://121.40.246.82:8080/;
                proxy_set_header   Host             $host;
                proxy_set_header   X-Real-IP        $remote_addr;
                proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            }
    
        }
    
    server {
    listen  443 ssl;
    server_name  admin.junlty.top;
    
            ssl_certificate    /etc/ssl/certs/admin.junlty.top.pem;
            ssl_certificate_key  /etc/ssl/certs/admin.junlty.top.key;
            ssl_session_timeout 5m;
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            ssl_prefer_server_ciphers on;
    
           location / {
                root   /usr/local/vue/admin;
                index  index.html index.htm;
                try_files $uri $uri/ /index.html;
            }
    
            location ^~ /api/ {
                proxy_pass http://121.40.246.82:8080/;
                proxy_set_header   Host             $host;
                proxy_set_header   X-Real-IP        $remote_addr;
                proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            }
    
        }
    
    server {
    listen       80;
    server_name  www.junlty.top;
    
            rewrite ^(.*)$	https://$host$1	permanent;
    
        }
    
    server {
    listen       80;
    server_name  admin.junlty.top;
    
            rewrite ^(.*)$	https://$host$1	permanent;
    
        }
    
    }
    

5. 打包前端

  1. npm install

  2. 修改shoka-adminshoka-blog的 utils 文件下的 token.ts,将 domain 改成自己的所在域

  3. 接着修改前端的vite.config.ts代理地址,改成自己的 ip

  4. 申请了 Gitee 和 Github 的第三方登录,记得修改前端的应用 id 和回调地址

  1. npm run build

  2. 打包之后将博客前台和后台的dist分别重命名为blogadmin,然后上传到服务器的/usr/local/vue目录下(没有就创建)

6. 打包后端

  1. 修改application.yml信息后,执行 maven 的 package 命令选择 jar 方式打包

  1. 在服务器创建/usr/local/docker目录,并将target中的 jar 包上传到该目录
  2. 修改doc文件夹中的.env配置文件中的信息,一定确认docker-compose.yml中挂载的目录和文件是否存在
  3. doc文件夹中的文件上传到/usr/local/docker目录中

7. 执行 sh 脚本

服务器的防火墙端口一定要放开

cd /usr/local/docker
sh blog-start.sh

项目就部署完成了,用docker ps查看正在运行的容器。

8. 最后

有什么问题的话,可以在下方评论区评论。不方便评论的话,可以加我联系方式私聊。写的不对的地方欢迎大家在评论区指出

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

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

相关文章

webpack自定义插件 ChangeScriptSrcPlugin

插件文件 class ChangeScriptSrcPlugin {apply(compiler) {const pluginName "ChangeScriptSrcPlugin";compiler.hooks.compilation.tap(pluginName, (compilation, callback) > {compilation.hooks.htmlWebpackPluginAlterAssetTags.tapAsync(pluginName,(html…

SpringCloudStream使用StreamBridge实现延时队列

利用RabbitMQ实现消息的延迟队列 一、安装RabbitMQ 1、安装rabbitmq 安装可以看https://blog.csdn.net/qq_38618691/article/details/118223851,进行安装。 2、安装插件 安装完毕后,exchange是不支持延迟类型的,需要手动安装插件,需要和安装的rabbitmq版本一致 https:…

动态规划:17.简单多状态 dp 问题_买卖股票的最佳时机III_C++

题目链接: 一、题目解析 题目:123. 买卖股票的最佳时机 III - 力扣(LeetCode) 解析: 拿示例1举例: 我们可以如图所示买入卖出股票,以求得最大利润,并且交易次数不超过2次 拿示…

基于SpringBoot设计模式之结构型设计模式·组合模式

文章目录 介绍开始架构图定义条目定义文件定义文件夹 测试样例 总结 介绍 能够使容器与内容具有一致性,创造出递归结构的模式就是 Composite 模式。Composite 在英文中是“混合物”“复合物”的意思。   以目录为例,在计算机中,某个目录下有…

在海外留学/工作,如何报考微软mos认证?

重点首先得强调的是,即使在海外也可以顺利地在国内获取微软MOS认证! 01 微软mos认证简介 Microsoft Office Specialist 简称MOS。是微软公司和第三方国际认证机构、全球三大IT测验与教学中心之一的思递波/Certiport公司于1997年联合推出的,…

2009年国赛高教杯数学建模A题制动器试验台的控制方法分析解题全过程文档及程序

2009年国赛高教杯数学建模 A题 制动器试验台的控制方法分析 汽车的行车制动器(以下简称制动器)联接在车轮上,它的作用是在行驶时使车辆减速或者停止。制动器的设计是车辆设计中最重要的环节之一,直接影响着人身和车辆的安全。为了…

分享一个IDEA里面的Debug调试设置

1.问题来源 其实我们在这个IDEA里面的这个进行调试的时候,这个是只有步入,出去的选项的; 之前学习这个sort的底层源码的时候,进不去,我们是设置了一个取消java*什么的选项,然后使用这个step into就可以进…

计算机网络易混知识点

1.以太网采用曼彻斯特编码;以太网帧最短为64B,其中14个B首部(目的MAC-6B,源MAC-6B,类型-2B)4B尾部 2.OSI协议中,每一层为上一层提供服务,为下一层提供接口 3.帧序号的比特数表示的是发送窗口的大小&#…

java逻辑运算符 C语言结构体定义

1. public static void main(String[] args) {System.out.println(true&true);//&两者均为true才trueSystem.out.println(false|false);// | 两边都是false才是falseSystem.out.println(true^false);//^ 相同为false,不同为trueSystem.out.println(!false)…

(38)MATLAB分析带噪信号的频谱

文章目录 前言一、MATLAB仿真代码二、仿真结果画图总结 前言 本文给出带噪信号的时域和频域分析,指出频域分析在处理带噪信号时的优势。 首先使用MATLAB生成一段信号,并在信号上叠加高斯白噪声得到带噪信号,然后对带噪信号对其进行FFT变换&…

Java面试指南:Java基础介绍

这是《Java面试指南》系列的第1篇,本篇主要是介绍Java的一些基础内容: 1、Java语言的起源 2、Java EE、Java SE、Java ME介绍 3、Java语言的特点 4、Java和C的区别和联系? 5、面向对象和面向过程的比较 6、Java面向对象的三大特性&#xff1a…

云计算-----单机LNMP结构WordPress网站

LNMP结构 博客网站 day1 小伙伴们,LNMP结构在第一二阶段浅浅的学习过,这里我们可以离线部署该结构。L指(虚拟机)服务器,nginx(前端代理服务器)mysql数据库,最后基于php建设动态…

AlDente Pro for Mac电脑 充电限制保护工具 安装教程【简单,轻松上手】

Mac分享吧 文章目录 AlDente Pro for Mac 充电限制保护工具 安装完成,软件打开效果一、AlDente Pro for Mac 充电限制保护工具 Mac电脑版——v1.28.41️⃣:下载软件2️⃣:安装软件,将安装包从左侧拖入右侧文件夹中,等…

Halcon实战——基于NCC模板匹配的芯片检测(附源码)

Halcon实战——基于NCC模板匹配的芯片检测(附源码) 关于作者 作者:小白熊 作者简介:精通python、matlab、c#语言,擅长机器学习,深度学习,机器视觉,目标检测,图像分类&am…

Java | Leetcode Java题解之第493题翻转对

题目&#xff1a; 题解&#xff1a; class Solution {public int reversePairs(int[] nums) {Set<Long> allNumbers new TreeSet<Long>();for (int x : nums) {allNumbers.add((long) x);allNumbers.add((long) x * 2);}// 利用哈希表进行离散化Map<Long, Int…

linux 效率化 - 输入法 - fcitx5

安装 Fcitx5 1. 卸载 ibus 框架 由于 ibus 和 fcitx 可能会冲突&#xff0c;先卸载 ibus&#xff08;暂未确认原因&#xff09; sudo apt remove --purge ibus2. 安装 fcitx5 输入法框架 sudo apt update sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk…

深入理解Nest的REQUEST范围和TRANSIENT范围

深入理解Nest的REQUEST范围和TRANSIENT范围 单例模式REQUEST范围控制器的REQUEST范围REQUEST范围的冒泡特性场景 TRANSIENT范围例外场景 总结 单例模式 单例模式是指在整个程序执行期间&#xff0c;程序内的类都会实例化&#xff0c;且与应用程序生命周期直接相关&#xff0c;…

javax.el.PropertyNotFoundException: Property ‘XXX‘ not found on type XXX(类的路径)

捣鼓了半小时的bug 在网上找了好多方案,都没有解决 其中一个佬的解决方案:异常&#xff1a;javax.el.PropertyNotFoundException: Property xxx not found on type java.lang.String-CSDN博客 但是还是没有解决我的问题 最终解决方法,在jsp文件头部导入了类包(第三行我导入…

【Nginx系列】Nginx配置超时时间

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

MySQL日期类型选择建议

我们平时开发中不可避免的就是要存储时间&#xff0c;比如我们要记录操作表中这条记录的时间、记录转账的交易时间、记录出发时间、用户下单时间等等。你会发现时间这个东西与我们开发的联系还是非常紧密的&#xff0c;用的好与不好会给我们的业务甚至功能带来很大的影响。所以…