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

阿里云服务器部署前后端分离项目

阿里云服务器部署 【若依】 前后端分离项目


文章目录

    • 一、域名解析
    • 二、服务器操作系统置空
    • 三、部署方式
    • 四、需安装环境配置
    • 五、Linux服务器安装相应内容(具体安装步骤)
      • (一)安装JDK(3种方式)
        • 使用Yum安装(推荐)
        • 使用rpm包安装
        • 使用JDK压缩包(相对复杂,容易出错)
      • (二)安装Maven
        • 安装(推荐方式)
        • 解压Maven
        • 添加一对localRepository,用来添加本地仓库路径;
        • 切换镜像源
        • 配置环境变量
      • (三)安装Mysql
        • 安装
        • 安装5个rpm,有安装顺序,依赖嵌套
        • 修改密码
        • 为防火墙添加开放端口
        • 更改mysql语言
      • (四)安装Nginx
        • 安装前环境检测
        • 下载nginx
        • 安装nginx
        • 配置防火墙
        • 配置开机自启动
      • (五)安装Redis
        • 环境确认
        • 下载redis
        • 解压redis
        • 安装redis
        • 启动redis
          • 1、直接启动
          • 2、指定redis.conf文件启动
        • 查看Redis是否正在运行
        • 设置开机自启动
        • redis-cli
        • 操作命令总结
    • 六、启动后端
      • 首次启动
      • 重启后端
        • 方式一:(传统方式)
        • 方式二:(如果会的话,建议此方式)
    • 七、可能出现的问题
      • 防火墙问题
      • Nginx问题

一、域名解析

  • 详情参考:阿里云官网

二、服务器操作系统置空

  • 此处选择的是CentOS 7.5 + 版本
  • 详情参考阿里云官网

三、部署方式

  • 使用Redis + Nginx

四、需安装环境配置

  • JDK1.8+
  • Maven3.6+
  • Mysql(5.5.62+)
  • Nginx(1.19.8)
  • Redis(6.2.1)
  • Tomcat

五、Linux服务器安装相应内容(具体安装步骤)

(一)安装JDK(3种方式)

使用Yum安装(推荐)

# 查看是否有JDK环境
java -version# 卸载现有环境
# (如果java -version出现-bash: /usr/local/java: No such file or directory可以省略此步骤)
rpm -qa | grep java
# .noarch文件可以不用管,卸载下面四个
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.322.b06-1.el7_9.x86_64# 这里以openjdk8为例
yum install java-1.8.0-openjdk
#不想确认的带上 -y
yum install -y java-1.8.0-openjdk# 安装完之后重新检查一下环境

使用rpm包安装

  • Oracle JDK所有版本下载
  • OracleJDK8下载
  • Oracle官方站点下载需要登录【百度一个】
    在这里插入图片描述

将下载的rpm包上传到服务器上

# rpm包的安装命令
rpm -ivh 包全名
选项:-i(install)    安装-v(verbose)    显示详细信息-h(hash)       显示进度--nodeps       不检测依赖性# 执行下面的命令安装 (jdk-8u311-linux-x64.rpm替换成你当前要安装的文件名)
rpm -ivh jdk-8u311-linux-x64.rpm
# 安装完检查环境配置
java -version

使用JDK压缩包(相对复杂,容易出错)

  • 清华大学镜像源,好多内容可以从这里面下载,自行查看
# 这里使用wget命令下载
wget -c https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/8/jdk/x64/linux/OpenJDK8U-jdk_x64_linux_hotspot_8u322b06.tar.gz

下载Oralce JDK(方式2 中有下载地址)

# 解压gz压缩包  jdk-8u311-linux-x64.tar.gz替换为你当前实际的文件名
tar -zxvf jdk-8u311-linux-x64.tar.gz# 创建文件夹 (你可以自己定义)
mkdir -p /usr/local/java/jdk1.8.0_311# 复制jdk到上一步创建的文件夹
cp -r ./jdk1.8.0_311/ /usr/local/java/

配置环境变量

# 编辑全局变量文件
vim /etc/profile# 将下载的gz压缩包上传到服务器并解压
(PS:JAVA_HOME的 “/usr/local/java/jdk1.8.0_311” 为上一步创建的目录,使用你当时创建的目录名。)export JAVA_HOME=/usr/local/java/jdk1.8.0_311
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin# 配置完之后保存退出,重启一下文件
source /etc/profile

(二)安装Maven

安装(推荐方式)

wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

解压Maven

tar -zxvf apache-maven-3.6.3-bin.tar.gz

添加一对localRepository,用来添加本地仓库路径;

<localRepository>/soft/maven/repo</localRepository>

切换镜像源

# 修改settings.xml文件(匹配你自己的路径)
vi /soft/apache-maven-3.6.3/conf/settings.xml # 找到【mirrors】标签对,【添加】一下代码
<mirror>       <!--阿里云仓库--><id>alimaven</id><mirrorOf>central</mirrorOf><name>aliyun maven</name><url>https://maven.aliyun.com/repository/central</url>
</mirror>
<mirror>    <!--maven国内镜像--><id>nexus-aliyun</id><mirrorOf>*</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

配置环境变量

vi /etc/profile#你的maven路径
MAVEN_HOME=/usr/local/maven/apache-maven-3.6.1
export PATH=${MAVEN_HOME}/bin:${PATH}# 重启
source /etc/profile# 查看结果
mvn -version

(三)安装Mysql

安装

Centos7默认安装 mariadb,为防止和MySQL冲突,需要先卸载。

# 查看mariadb版本信息
rpm -qa | grep mariadb# 卸载(mariadb-libs-5.5.65-2.el7.x86_64这一个是根据你查到的版本信息填写,每个系统有差异)
sudo rpm -e mariadb-libs-5.5.65-2.el7.x86_64 --nodeps

在云服务器里下载MySQL安装包有两种方式:

  • wgetcurl
  • 还可以在官网下载然后手动上传**(不建议手动上传)**
# 官网下载地址(下载完上传即可)
https://dev.mysql.com/downloads/mysql/
# 下载完,上传,解压
例:tar -xvf mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar# wget方式下载
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar
# curl方式下载
curl -O https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar

安装5个rpm,有安装顺序,依赖嵌套

# 3个依赖包
rpm -ivh mysql-community-common-5.7.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.40-1.el7.x86_64.rpm# 客户端和服务端
rpm -ivh mysql-community-client-5.7.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.40-1.el7.x86_64.rpm# 此步骤一般情况不用管,当前yum仓库没有包含mysql-server相关包时,才需要安装。其实前面步骤只要正确部署,就不存在yum仓库没有包含mysql-server相关包的情况。
(1)查看yum仓库有没有包含mysql-server相关包:
yum whatprovides mysql-server(2)没有就安装 mysql-server:
yum -y install mysql-server
  1. 在安装第三个的时候如果出现

【libcrypto.so.10()(64bit) 被 mysql-community-libs-8.0.11-1.el7.x86_64 需要】类似的错误,要改变一下命令:

安装的时候最好在root权限下安装,需要在rpm包后面添加 --nodeps --force

  1. 在安装第五个之前要先安装 yum install libaio

修改密码

MySQL刚安装是没有密码的,需要初始化一个临时密码,再去修改。

# 生成临时密码
sudo mysqld --initialize

启动mysql

systemctl start  mysqld.service

查看MySQL运行状态,运行状态如图:

systemctl status mysqld.service

检查一个叫 Active 的参数,如果状态是 loaded,代表启动成功

不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:

切记:一定要把临时密码保存下来

grep "password" /var/log/mysqld.log

如下命令进入数据库:

mysql -uroot -p

输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';

其中‘new password’替换成你要设置的密码,注意:密码设置必须要大小写字母数字和特殊符号(,/';:等),不然不能配置成功

执行以下命令开启远程访问限制(注意:下面命令开启的IP是 192.168.1.1,如要开启所有的,用%代替IP):

mysql> grant all privileges on *.* to 'root'@'192.168.1.1' identified by 'password' with grant option;

然后再输入下面两行命令

mysql> flush privileges; 
mysql> exit

为防火墙添加开放端口

# 添加mysql端口3306和Tomcat端口8080
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent# 重新加载
firewall-cmd --reload

更改mysql语言

mysql -uroot -p
# 登陆之后,输入:
status

mysql
如果是utf8,就代表没问题

如果是latin1,就到 /etc 目录下的my.cnf文件下修改一下文件内容

[client]
default-character-set=utf8[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

保存文件后,重启mysql

service mysqld restart

安装完成

(四)安装Nginx

安装前环境检测

安装之前先检查有没有C++,没有的话安装先安装

安装C++

//安装c++
yum install gcc-c++ -y
//查看版本
gcc -v

安装ssl

yum install -y openssl openssl-devel

安装zlib

yum install -y zlib zlib-devel
//查看信息
cat /usr/lib64/pkgconfig/zlib.pc

安装pcre

yum install -y pcre pcre-devel
//查看版本号
pcre-config --version

下载nginx

nginx下载地址
在这里插入图片描述
下载解压

tar -xvf nginx-1.20.2.tar.gz

安装nginx

# 进入目录
cd nginx-1.20.2
# 执行命令
./configure
# 执行make命令
make
# 执行make install命令
make install

查看目录

cd /usr/local/nginx
ls

启动、关闭、重启nginx

cd /usr/local/nginx/sbin
# 启动    
./nginx
# 关闭
./nginx -s stop
# 重启
./nginx -s reload

配置防火墙

开放nginx所需的80端口

firewall-cmd --zone=public --add-port=80/tcp --permanent

重启防火墙

firewall-cmd --reload

验证端口是否开放成功

firewall-cmd --zone=public --query-port=80/tcp

在浏览器输入你的服务器IP地址,nginx默认端口是80,只需要输入IP地址即可!

在这里插入图片描述

配置开机自启动

即在rc.local增加启动代码就可以了。

vi /etc/rc.local增加一行 /usr/local/nginx/sbin/nginx

设置执行权限:

chmod 755 rc.local

(五)安装Redis

环境确认

由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装

yum install -y gcc

下载redis

都知道服务器可以使用 wget 命令直接联网下载 但是这个下载路径也很重要 所以一定要自己进入官网复制 网上很多教程都是直接给的一个下载命令,但是那个命令里面的版本不一定还在,所以必须要自己去复制一下这个下载路径,然后输入wget + 复制的下载路径 回车进行下载

wget https://download.redis.io/releases/redis-7.0.8.tar.gz

如果报错提示 Connecting to download.redis.io (download.redis.io)...Permission denied,没有权限,那就需要切换root用户下载

解压redis

下载完后使用解压命令进行解压

tar -zvxf redis-7.0.8.tar.gz

因为 redis一般放在 /usr/local/redis 路径下 所以要使用命令将文件移动过去 这里我的文件在opt下

mv /opt/redis-7.0.8 /usr/local/redis

cd/usr/local目录下可以查看到当前目录已经多了一个 redis 子目录

安装redis

进入到redis目录输入make执行编译命令

cd /usr/local/redis
make
make PREFIX=/usr/local/redis install

启动redis

1、直接启动
cd bin
./redis-server
2、指定redis.conf文件启动

从 redis 的源码目录中复制 redis.conf 到 redis 的安装目录

cp /opt/redis-6.2.5/redis.conf /usr/local/redis/bin/

修改 redis.conf 文件,把 daemonize no 改为 daemonize yes

vi redis.conf

运行

./redis-server redis.conf

查看Redis是否正在运行

ps -ef | grep redis或者
ps -aux | grep redis# 杀掉redis进程
kill 15376

设置开机自启动

/etc目录下新建redis目录

mkdir redis

/usr/local/redis/redis.conf 文件复制一份到 /etc/redis目录下,并命名为6379.conf

cp /usr/local/redis/redis.conf /etc/redis/6379.conf

将redis的启动脚本复制一份放到 /etc/init.d 目录下

cp /usr/local/redis/utils/redis_init_script /etc/init.d/redisd

设置redis开机自启动, 先切换到/etc/init.d目录下, 然后执行自启命令

cd /etc/init.d
# 执行自启命令
chkconfig redisd on

redis-cli

./redis-cli是连接本地redis服务的一个命令,通过该命令后可以既可控制redis的脚本控制台

如果 Redis报错:-bash: redis-cli: command not found

将redis-cli拷贝到bin下,让redis-cli指令可以在任意目录下直接使用

cp /opt/redis-7.0.8/src/redis-cli.c /usr/local/redis/bin

操作命令总结

systemctl start redis.service   #启动redis服务
systemctl stop redis.service   #停止redis服务
systemctl restart redis.service   #重新启动服务
systemctl status redis.service   #查看服务当前状态
systemctl enable redis.service   #设置开机自启动
systemctl disable redis.service   #停止开机自启动

六、启动后端

首次启动

前端
新建一个文件夹web,把项目打包,解压,放到服务器上即可

后端

  1. 在服务器中新建一个文件夹,把jar包传进去
  2. 新建一个文件,存放日志记录 ruoyi_log.out
  3. 新建一个脚本,方便启停项目(此步骤可选,可以不操作)
  4. 启动项目即可;

服务器参考目录

# 启动的是你的jar包名称,
nohup java -jar ruoyi-admin.jar > ruoyi_log.out 2>&1 &

重启后端

方式一:(传统方式)

  1. 过滤端口号 netstat -tnlp | grep :8090或者使用 ps -ef | grep java 查看正在运行的进程号,重启服务的时候直接杀掉。
  2. 然后执行Kill -9 进程号 杀掉进程,重新启动。

方式二:(如果会的话,建议此方式)

使用脚本。

大概设计思路就是在脚本里面执行外层的逻辑,先查询进程号kill,在重新启动

七、可能出现的问题

防火墙问题

通常情况下,CentOS 系统部署完成后,关闭并禁用防火墙。但有些特殊情况需要保持防火墙的启用。

  1. 检查防火墙开启的端口
# 查看开放端口
firewall-cmd --list-ports
  1. 参考命令
# 打开防火墙
systemctl start firewalld# 启用防火墙
systemctl enable firewalld# 查看已经开放的端口
firewall-cmd --list-ports# 开启指定端口
firewall-cmd --zone=public --add-port=[端口号]/[协议] --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent--zone=<zone> # 指定 zone--add-port=<portid>]/<protocol> # 端口id / 协议--permanent # 永久开启,不添加则重启失效# 关闭指定端口
firewall-cmd --zone=public –remove-port=[端口号]/[协议] --permanent
firewall-cmd --zone=public –remove-port=80/tcp --permanent# 查看所有 zone ,默认有9个 zone
firewall-cmd --get-default-zones# 重新加载防火墙 *重新加载过后才能生效
systemctl reload firewalld# 测试端口是否开放成功
ssh -v -p [端口] [用户名]@[ip]
ssh -v -p 8080 root@47.128.209.xx

Nginx问题

  1. server 配置问题
  2. Vue打包之后路径跳转不到“location /”问题,需要单独指向一个路径
  3. 前后端分离项目,要写两个location,不要影响到业务的跨域

在这里插入图片描述

若依解决登录页面验证码不出现检查思路

① Redis没启动
② 看一下浏览器或者日志,有没有调到接口,没有的话检查一下nginx反向代理,能不能跳转过去,以及防火墙有没有开相应的端口



到此为止

相关文章:

阿里云服务器部署前后端分离项目

阿里云服务器部署 【若依】 前后端分离项目 文章目录一、域名解析二、服务器操作系统置空三、部署方式四、需安装环境配置五、Linux服务器安装相应内容&#xff08;具体安装步骤&#xff09;&#xff08;一&#xff09;安装JDK&#xff08;3种方式&#xff09;使用Yum安装&…...

内核经典数据结构list 剖析

前言&#xff1a;linux内核中有很多经典的数据结构&#xff0c;list(也称list_head)为其中之一&#xff0c;这些数据结构都是使用C语言实&#xff0c;并且定义和实现都在单独的头文件list.h中。可以随时拿出来使用。list.h的定义不同linux发行版本路径不同,我们可以在/usr/incl…...

华为OD机试 - 考优选核酸检测点(Python)| 真题+思路+考点+代码+岗位

优选核酸检测点 题目 张三要去外地出差,需要做核酸,需要在指定时间点前做完核酸, 请帮他找到满足条件的核酸检测点。 给出一组核酸检测点的距离和每个核酸检测点当前的人数给出张三要去做核酸的出发时间 出发时间是 10 分钟的倍数 同时给出张三做核酸的最晚结束时间题目中…...

在魔改PLUS-F5280开发板上使用合封qsp iflash

文章目录引言硬件调整软件调整总结引言 由于目前灵动官网暂未发布正式版的PLUS-F5280开发板&#xff0c;可以使用现有的PLUS-F5270 v1.2开发板&#xff08;下文简称PLUS-F5270开发版&#xff09;替换为MM32F5280微控制器芯片&#xff0c;改装为PLUS-F5280开发板。本文记录了使…...

uni-app 瀑布流

效果图 一、组件 components/u-myWaterfall.vue <template><view class"u-waterfall"><view id"u-left-column" class"u-column"><slot name"left" :leftList"leftList"></slot></view&…...

华为OD机试 - 去除多余空格(Python)| 真题+思路+考点+代码+岗位

去除多余空格 题目 去除文本多余空格,但不去除配对单引号之间的多余空格。给出关键词的起始和结束下标,去除多余空格后刷新关键词的起始和结束下标。 条件约束: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oQABYuJD-1676475739950)(https://…...

MyBatis 二级缓存简单使用步骤

1、二级缓存使用 在 MyBatis 中默认二级缓存是不开启的&#xff0c;如果要使用需手动开启。在 mybatis-config.xml 配置文件中设置 cacheEnabled true &#xff0c;配置如下&#xff1a; <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE c…...

kubeadmin kube-apiserver Exited 始终起不来查因记录

kubeadmin kube-apiserver Exited 始终起不来查因记录 [rootk8s-master01 log]# crictl ps -a CONTAINER IMAGE CREATED STATE NAME ATTEMPT POD ID POD b7af23a98302e …...

论文投稿指南——中文核心期刊推荐(工程材料学)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…...

【动态规划】背包问题题型及方法归纳

背包问题的种类 背包问题是在规定背包容量为j的前提下&#xff0c;每个物品对应的体积为v[i]&#xff0c;价值为w[i]&#xff0c;从物品0到物品i中选择物品放入背包中&#xff0c;找出符合某种要求的价值。 &#xff08;1&#xff09;背包问题种类 01背包&#xff1a;每种物…...

全球十大资质正规外汇期货平台排行榜(最新版汇总)

外汇期货简称为FxFut&#xff0c;是“Forex Futures”的缩写&#xff0c;是在集中形式的期货交易所内&#xff0c;交易双方通过公开叫价&#xff0c;以某种非本国货币买进或卖出另一种非本国货币&#xff0c;并签订一个在未来的某一日期根据协议价格交割标准数量外汇的合约。 …...

使用Paramiko时遇到的一些问题

目录 1.背景 2.问题合集 1&#xff09;“bash: command not found” 2&#xff09;Paramiko中正常的输入&#xff0c;却到了stderr&#xff0c;而stdout是空 3&#xff09;命令实际是alias 1.背景 在自动化脚本中&#xff0c;使用了库Paramiko&#xff0c;远程SSH到后台服…...

数据预处理(无量纲化、缺失值、分类特征、连续特征)

文章目录1. 无量纲化1.1 sklearn.preprocessing.MinMaxScaler1.2 sklearn.preprocessing.StandardScaler2. 缺失值3. 分类型特征4. 连续型特征数据挖掘的五大流程包括&#xff1a;获取数据数据预处理特征工程建模上线 其中&#xff0c;数据预处理中常用的方法包括数据标准化和归…...

【C#基础】C# 运算符总结

序号系列文章2【C#基础】C# 基础语法解析3【C#基础】C# 数据类型总结4【C#基础】C# 变量和常量的使用文章目录前言运算符1&#xff0c;算术运算符2&#xff0c;布尔逻辑运算符3&#xff0c;位运算符4&#xff0c;关系运算符5&#xff0c;赋值运算符6&#xff0c;其他运算符7&am…...

存储性能软件加速库(SPDK)

存储性能软件加速库SPDK存储加速存储性能软件加速库&#xff08;SPDK&#xff09;SPDK NVMe驱动1.用户态驱动1&#xff09;UIO2&#xff09;VFIOIOMMU&#xff08;I/O Memory Management Unit&#xff09;3&#xff09;用户态DMA4&#xff09;大页&#xff08;Hugepage&#xf…...

微服务(五)—— 服务注册中心Consul

一、引入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-discovery</artifactId></dependency>二、配置yml文件 server:port: 8006spring:application:name: cloud-payment-con…...

冷冻电镜 - ChimeraX Density Map 密度图 操作

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/129055160 由冷冻电镜所生成的Volume,需要观察其内部结构,使用ChimeraX进行操作。 加载Volumes,例如my_volume.mrc 效果如下: 高斯滤波 在命令行(Co…...

Matlab 点云旋转之轴角式

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 三维空间中表示旋转的方法有很多种,轴角式是其中非常经典的一种表示方式。虽然欧拉角表示旋转的方法很是常用,但欧拉角存在着万向锁这个问题,因此轴角式旋转在旋转使用中更为合适。其原理也很是明了,如下所述:…...

2023美赛数学建模资料思路模型

美赛我们为大家准备了大量的资料&#xff0c;我们会在比赛期间给大家分析美题目和相关的思路 全文都是干货&#xff0c;大家仔细阅读&#xff0c;资料文末自取&#xff01; 首先我们来看美赛23年题型的一个变化&#xff1a; 美赛23年题目变化&#xff1a; A题&#xff1a;连…...

Nginx配置HTTP强制跳转到HTTPS

https 访问我们的测试域名 https://www.xxx.com 站点&#xff0c;但是当我们直接在浏览器地址栏中直接输入 www.xxx.com 的时候却发现进入的是 http 协议的网站&#xff0c;这与我们的初衷不一致。由于浏览器默认访问域名使用的是80端口&#xff0c;而当我们使用SSL证书后&…...

从实现到原理,聊聊Java中的SPI动态扩展

原创&#xff1a;微信公众号 码农参上&#xff0c;欢迎分享&#xff0c;转载请保留出处。 八股文背多了&#xff0c;相信大家都听说过一个词&#xff0c;SPI扩展。 有的面试官就很喜欢问这个问题&#xff0c;SpringBoot的自动装配是如何实现的&#xff1f; 基本上&#xff0c…...

3、MySQL字符集

1.MySQL字符集和校验规则 字符集:是一套符号和编码的规则校验规则:是对该套符号和编码的校验,定义字符的排序和比较规则,其中是否区分大小写,跟校验规则有关。2.查看字符集方法 netstat -lntup |grep 3306 tcp6 0 0 :::3306 :::* …...

大漠插件最新中文易语言模块7.2302

模块名称:大漠插件中文模块最新通用7.2302模块简介:大漠插件中文模块最新通用7.2302模块特色:原翻译:花老板完善命令备注:易生易世本人花费一个月时间才将命令完善了插件的备注说明.且用且珍惜去掉了大漠插件定制版类.因为没用.模块特色:什么是中文模块?大漠插件模块是由大漠类…...

极客大挑战 2021

题量很大&#xff0c;收获挺多&#xff0c;持续时间也长&#xff0c;据说结束之后会再持续一段时间&#xff0c;然后题目会开源。 WEB Dark 暗网签到&#xff0c;难以置信 Welcome2021 改个请求方法会提示你文件&#xff0c;再进去就好了 babysql 直接把请求包扔sqlmap里&…...

C#开发的OpenRA加载文件的管理

C#开发的OpenRA加载文件的管理 在前面我们分析了mod.yaml文件,发现里面有很多文件列表, 比如下像下面的文件: Packages: ~^SupportDir|Content/cnc ~^SupportDir|Content/cnc/movies ^EngineDir $cnc: cnc ^EngineDir|mods/common: common ~speech.mix ~conquer.mix ~sounds…...

SSM实现文件上传

目录 SSM实现文件上传 1、修改from表单请求方式改为post&#xff0c;添加属性 2、修改springmvc配置文件&#xff0c;添加一下配置 3、后端方法 SSM实现文件上传 1、修改from表单请求方式改为post&#xff0c;添加属性&#xff1a; enctype"multipart/form-data"…...

OPENCV计算机视觉开发实践-图像的基本概念

1.图像与图形: 图像->客观世界的反映,图与像之结合 图->物体透射光与反射光的分布 像->人的视觉得对图的认识 图像->通过照相,摄像,扫描产生. 图形->通过数学规则产生,或者具有一定规则的图案.用一组符号或线条表示性质. 2.数字图像: 数字图像->称数码图像或…...

Android 9.0 ResolverActivity.java多个app选择界面去掉始终保留仅有一次

1.前言 在9.0的系统rom定制化开发过程中,在系统中安装同类型多个app的时候,在系统启动的过程中,会在启动launcher或播放器的过程中,在启动的过程中都是弹出选择框的,然后在选择启动哪个app,这些选择都是在ResolverActivity.java中完成的,所以需要在ResolverActivity.java…...

【算法 | 例题简答】相关例题讲解

目录 简答题 计算题 时间复杂度的计算 递归算法计算 背包问题&#xff08;0-1背包问题&#xff09; 回溯法 动态规划法 编程题 用回溯法解方程 动态规划法解决蜘蛛吃蚊子 用分治法解决抛硬币问题 用二分法分两边求最大值 简答题 1、什么是算法&#xff1f;算法有哪…...

浅谈AQS

1.前言 AQS是AbstractQueuedSynchronizer&#xff08;抽象同步队列&#xff09;的简写&#xff0c;它是实现同步器的基础组件&#xff0c;并发包下的锁就是通过AQS实现的。作为开发者可能并不会直接用到AQS&#xff0c;但是知道其原理对于架构设计还是很有帮助的。 那为什么说…...

网站商城建设的维度/百度知道免费提问

wget&#xff1a;使用yum安装文件之前&#xff0c;要先确定一下/etc/yum.repos.d下的文件是否改变 在使用yum安装wget inotify&#xff1a;yum -y install inotify-tools scp&#xff1a;可以在有scp命令的电脑上查询一下scp的包名 # which scp # rpm -qf /usr/bin/scp scp的安…...

成立公司需要多少注册资金/seo企业站收录

用了两天时间,查找资料,不断的测试,终于实现想要的小应用.通过aiohttp实现的C/S架构的收发JSON数据的应用 前文实测基础,请参考:python小技巧大应用--实测aiohttp可正常运行的写法 在此直接上代码,希望与大家分享结果 1)服务端模块test_aiohttp_HTTPServer.py #!/usr/bin/e…...

网站防劫持怎么做/网络营销的认知

正如大家所知&#xff0c;配置防火墙的方法有两种&#xff0c;第一种是链接console线输命令的方法&#xff0c;第二种是在网页上进行试图化配置&#xff0c;更加的直观&#xff0c;明了。今天我们就简单的讲一下华为防火墙视图化的配置。首先在华为模拟器中搭建个个环境如下&am…...

党校网站建设栏目内容/怎么做一个网页

本篇文章的主要内容是用PHP实现插入排序&#xff0c;简单却经典的一道算法题&#xff0c;不知你是否记得了&#xff0c;快随小编一起回顾一下吧。插入排序基本思路&#xff1a;将数组分为两个区(已排序区和未排序区)&#xff0c;假定数组的第一个元素处于已排序区&#xff0c; …...

wordpress多图片/在线推广企业网站的方法有哪些

在这篇文章里讲述了历史数据的使用。在实际使用时&#xff0c;有时会发现历史数据有个边界问题。下面进行讲解&#xff0c; 一 问题 下面是带历史数据功能的server代码&#xff0c; #include <signal.h> #include <stdlib.h> #include <unistd.h>#include &…...

网站建设公司论坛/百度推广优化是什么?

前言 在实际js开发中对数组操作频率非常高&#xff0c;看过一些小伙伴的一些用法&#xff0c;挺有意思&#xff0c;在这里小记&#xff08;不全&#xff09;一下&#xff0c;备忘。 5个迭代方法&#xff1a;every、filter、forEach、map和some every()&#xff1a;对数组中的每…...