项目部署文档
申请SSL证书

先申请,用免费的

下载证书


先将下载下来的保存起来

服务器安装JDK:
创建develop目录
mkdir /usr/local/develop/
把JDK压缩包上传到/usr/local/develop/目录

解压安装包 并且将安装到指定目录
tar -zxvf /usr/local/develop/jdk-8u191-linux-x64.tar.gz -C /usr/local/develop/、
进入JDK安装目录
cd /usr/local/develop/jdk1.8.0_191
pwd可以查看当前目录

配置JAVA_HOME环境变量
编辑系统环境
vim /etc/profile
在最下面
export JAVA_HOME=/usr/local/develop/jdk1.8.0_191
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib

保存退出
让环境变量生效
source /etc/profile
java -version 查看jdk版本 至此JDK安装完成

安装Nginx
下载Linux版本的Nginx
把压缩包放到 /usr/local/develop 目录

cd /usr/local/develop/ 进入该目录
tar -zxvf nginx-1.20.2.tar.gz -C /usr/local/develop/ 解压到指定目录
Nginx是C语言写的 需要编译环境 先安装以下4个依赖
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel
yum -y install gd gd-devel
也可以一次安装4个依赖
yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel install gd gd-devel
最好一个一个安装
然后进入解压后 nginx目录


注意 光 ./configure 不会带上ssl模块 如果你需要https可以访问
执行 ./configure 这个命令用于准备软件编译所需的环境。如果不用https 这样也行
执行 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module 因为要配置ssl证书所以初始化时带上了ssl这两个模块
编译完成

执行 make && make install
安装完成之后 /usr/local下会自动创建一个nginx
cd /usr/local/nginx
配置环境变量 不然启动关闭都需要到指定目录
vim /etc/profile
export NGINX_HOME=/usr/local/ngin
看下面图
保存退出
让环境变量生效
source /etc/profile

安装Redis
把redis压缩包拖进来 目录是usr/local/develop

解压redis
tar -zxvf /usr/local/develop/redis-6.0.16.tar.gz -C /usr/local/develop/
进入解压目录
cd /usr/local/develop/redis-6.0.16
安装下面依赖
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
安装
make install PREFIX=/usr/local/redis
将redis解压之后的源码包中的redis.conf文件拷贝到bin目录下
cp /usr/local/develop/redis-6.0.16/redis.conf /usr/local/redis/bin
修改redis.conf文件,将daemonize改为yes
vim /usr/local/redis/bin/redis.conf

进入redis的bin目录
cd /usr/local/redis/bin
启动redis 这里启动redis主要是 后面要部署的若依框架用到了 所以提前启动
./redis-server redis.conf
这里前后端项目用若依示例
后端配置下数据库
文件路径

服务器就不装Tomcat了 直接打成jar
将jar包拖到 /usr/local/develop

直接启动好了
在/usr/local/develop目录下执行
java -jar ruoyi-admin.jar &
显眼的标志


将前端项目也打包


复制到/usr/local/nginx/html

启动nginx
因为已经配置了全局环境变量 直接nginx就可以启动 启动前先配置nginx.conf
配置Nginx 的配置文件 nginx.conf

注意把下载的SSL证书放到正确位置
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream myweb2{
server localhost:8080;
}
server {
listen 443 ssl;
#下方改为自己的域名
server_name www.xxxx.com;
#root html;
#index index.html index.htm;
#下方两行最后面改为两个证书文件的名字
ssl_certificate /usr/local/nginx/www.xxxx.com.pem;
ssl_certificate_key /usr/local/nginx/www.xxxx.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
root html;
#index index.html index.htm;
try_files $uri $uri/ /index.html; #解决页面刷新404
}
location /prod-api/{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://myweb2/; #注意最后加/
proxy_connect_timeout 6000s;
proxy_read_timeout 6000s;
proxy_send_timeout 6000s;
}
}
upstream myweb{
server localhost:8080;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
#index index.html index.htm;
try_files $uri $uri/ /index.html; #解决页面刷新404
#proxy_pass http://myweb;
}
location /dev-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://myweb/;
proxy_connect_timeout 6000s;
proxy_read_timeout 6000s;
proxy_send_timeout 6000s;
}
location /prod-api/{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://myweb/; #注意最后加/
proxy_connect_timeout 6000s;
proxy_read_timeout 6000s;
proxy_send_timeout 6000s;
}
location /profile/{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://myweb/;
client_max_body_size 100m;
client_body_buffer_size 256k;
proxy_connect_timeout 6000s;
proxy_read_timeout 6000s;
proxy_send_timeout 6000s;
proxy_buffer_size 32k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 10m;
}
#location /prod-api/ {
#proxy_set_header Host $http_host;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header REMOTE-HOST $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_pass http://myweb/;
#}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
相关文章:
项目部署文档
申请SSL证书 先申请,用免费的 下载证书 先将下载下来的保存起来 服务器安装JDK: 创建develop目录 mkdir /usr/local/develop/ 把JDK压缩包上传到/usr/local/develop/目录 解压安装包 并且将安装到指定目录 tar -zxvf /usr/local/develop/jdk-8u191-linux-x64.tar.gz -C /us…...
HTML+CSS阶段知识点梳理
目录 一、简单的网页结构 二、常用标签 三、列表 四、CSS引入方式 五、常用选择器 1、标签(元素)选择器 2、id选择器 3、class选择器 4、通配选择器 5、复合选择器 6、关系选择器 7、属性选择器 8、伪类选择器 9、a元素的伪类 10、伪元素…...
网易按照作者批量采集新闻资讯软件说明文档
大家好,我是淘小白~ 今天给大家介绍的爬虫软件是网易按照作者采集的软件 1、软件语言: Python 2、使用到的工具 Python selenium库、谷歌浏览器、谷歌浏览器驱动 3、文件说明: 4、配置文件说明: 5、环境配置 安装Python&am…...
SwiftUI 代码调试之都是“变心”惹的祸
0. 概览 这是一段非常简单的 SwiftUI 代码,我们将 Item 数组传递到子视图并在子视图中对其进行修改,修改的结果会立即在主视图中反映出来。 不幸的是,当我们修改 Item 名称时却发现不能连续输入:每次敲一个字符键盘都会立即收起并…...
u20.04安装slam库
git clone https://github.com/strasdat/Sophus.git // 下载的最新版是模板类的 git checkout a621ff // 切换为非模板类的历史版本 模板类Sophus的依赖库是Eigen(版本为3.3.X)和fmt,需提前安装好Eigen库和fmt库 git clone https://github.c…...
齐纳二极管,肖特基二极管,瞬态电压抑制二极管
普通二极管,齐纳二极管,肖特基二极管的符号: 瞬态电压抑制(TVS)二极管是一种特殊的齐纳二极管,其符号如下: 普通二极管 普通二极管由n类型 的半导体和p类型的半导体结合而成。 硅材料制成的二…...
axios 全局错误处理和请求取消
这两个功能都是用拦截器实现。 前景提要: ts 简易封装 axios,统一 API 实现在 config 中配置开关拦截器 全局错误处理 在构造函数中,添加一个响应拦截器即可。在构造函数中注册拦截器的好处是,无论怎么实例化封装类,…...
无法加载文件 C:\Program Files\nodejs\cnpm.ps1,因为在此系统上禁止运行脚本。有
cnpm : 无法加载文件 C:\Program Files\nodejs\cnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_Execution_Poli cies。 所在位置 行:1 字符: 1 cnpm run debug ~~~~ Categ…...
学电脑编程零基础,计算机编程入门先学什么
学电脑编程零基础,计算机编程入门先学什么,建议先从容易学习的语言入手,比如中文编程。 给大家分享一款中文编程工具,零基础轻松学编程,不需英语基础,编程工具可下载。 这款工具不但可以连接部分硬件&…...
SQL左连接实战案例
要求:用表df1和表df2的数据,得到df3 一、创建表 CREATE TABLE df1 (姓名 varchar(255) DEFAULT NULL,年龄 int DEFAULT NULL,部门 varchar(255) DEFAULT NULL,id int DEFAULT NULL );CREATE TABLE df2 (部门 varchar(255) DEFAULT NULL,年龄 int DEFAU…...
2、Sentinel基本应用限流规则(2)
2.2.1 是什么 Sentinel 是阿里中间件团队开源的,面向分布式服务架构的轻量级高可用流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助用户保护服务的稳定性。 2.2.2 基本概念 • 资源 (需要被保护的东西…...
Qt的事件
2023年11月5日,周日上午 还没写完,不定期更新 目录 事件处理函数的字体特点Qt事件处理的工作原理一些常用的事件处理函数Qt中的事件类型QEvent类的type成员函数可以用来判断事件的类型事件的类型有哪些?有多少种事件类 事件处理函数的字体特…...
MTK联发科天玑9000旗舰5G移动平台处理器_MT6983芯片定制开发
MT6983天玑9000采用台积电4纳米工艺制程,CPU采用“134”三丛集Armv9架构,APU性能提升,ISP处理速度提升,最高支持3.2亿像素摄像头,采用Mali-G710十核GPU,搭载R16 5G调制解调器。 MT6983天玑9000芯片基本概…...
InnoDB中Buffer Pool详解
1. 概念及特点 Buffer Pool 是 MySQL 中 InnoDB 存储引擎用来缓存表数据和索引数据的内存区域。这个内存区域被用来存储磁盘上的数据页的副本,这样常用的数据可以在内存中快速被访问,而不必每次都从磁盘中读取。 以下是 Buffer Pool 的一些重要特点&a…...
3D视觉引导工业机器人上下料,助力汽车制造业实现智能化生产
在工业制造领域,机器人技术一直是推动生产效率和质量提升的重要力量。近年来,随着3D视觉技术的快速发展,工业机器人在处理复杂任务方面迈出了重要的一步。特别是在汽车制造行业,3D视觉引导工业机器人的应用已经取得了令人瞩目的成…...
从Spring说起
一. Spring是什么 在前面的博文中,我们学会了SpringMVC的使用,可以完成一些基本功能的开发了,但是铁子们肯定有很多问题,下面来从Spring开始介绍,第一个问题,什么是Spring? Spring是包含了众多工具方法的IOC容器. Spring有两个核心思想--IOC和AOP,本章先来讲解IOC...... 1.1…...
JavaScript从入门到精通系列第二十九篇:正则表达式初体验
大神链接:作者有幸结识技术大神孙哥为好友,获益匪浅。现在把孙哥视频分享给大家。 孙哥链接:孙哥个人主页 作者简介:一个颜值99分,只比孙哥差一点的程序员 本专栏简介:话不多说,让我们一起干翻J…...
Go语言并发控制:原理与实践
摘要: 本文将深入探讨Go语言的并发控制机制,包括goroutine、channel和sync等关键概念。我们将通过理论阐述和案例分析,揭示Go语言在并发编程中的优势和挑战,并介绍几种常见的并发控制策略。通过本文的学习,你将掌握Go…...
3、Sentinel 动态限流规则
Sentinel 的理念是开发者只需要关注资源的定义,当资源定义成功后可以动态增加各种流控降级规则。Sentinel 提供两种方式修改规则: • 通过 API 直接修改 (loadRules) • 通过 DataSource 适配不同数据源修改 通过 API 修改比较直观,可以通…...
HDU 2648:Shopping ← STL map
【题目来源】http://acm.hdu.edu.cn/showproblem.php?pid2648【题目描述】 Every girl likes shopping,so does dandelion.Now she finds the shop is increasing the price every day because the Spring Festival is coming .She is fond of a shop which is called "m…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
springboot 日志类切面,接口成功记录日志,失败不记录
springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...
