天天看点

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

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

文章目录

    • 一、域名解析
    • 二、服务器操作系统置空
    • 三、部署方式
    • 四、需安装环境配置
    • 五、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,用来添加本地仓库路径;

切换镜像源

# 修改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安装包有两种方式:

  • wget 或 curl
  • 还可以在官网下载然后手动上传**(不建议手动上传)**
# 官网下载地址(下载完上传即可)
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默认必须修改密码之后才能操作数据库:

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

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

然后再输入下面两行命令

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
           
阿里云服务器部署前后端分离项目

如果是

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 --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 [email protected]
           

Nginx问题

  1. server 配置问题
  2. Vue打包之后路径跳转不到“location /”问题,需要单独指向一个路径
  3. 前后端分离项目,要写两个location,不要影响到业务的跨域
阿里云服务器部署前后端分离项目
若依解决登录页面验证码不出现检查思路

① Redis没启动

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

到此为止

继续阅读