ECS,搭建阿里云服务器
1.购买阿里云ECS服务器
免费试用:免费试用链接
购买链接有优惠:云服务器ECS_云主机_服务器托管_计算-阿里云
云服务器ECS_云主机_服务器托管_计算-阿里云
根据自己的需要选择相应的配置:
购买链接:云服务器ECS_云主机_服务器托管_计算-阿里云
目前有一个月的服务器免费体验时间,我选择了免费体验,点击后,可以看到你刚才购买的服务器:
也可以通过这里查看你的服务器:
到这里服务器已经购买成功,接下来是通过工具(xshell、Termius等)去连接你自己的服务器,方便安装JDK,Mysql,nginx等。
接下来是如何通过工具连接服务器:
远程登录你需要先设置密码:
设置成功后记住你输入的密码,在你服务器实例中点击远程连接:
点击后出现以下页面:
点击后出现下面页面,输入你的6位密码:
输入正确密码后,输入你的实例账号和密码显示如下代表成功:
要是不确定你的实例账号和密码可在这个地方查看:
点击重置密码后出现如下页面,可查看账号和密码:
至此整个阿里云服务器的申请就算完成了。
2.Xshell 的安装使用
简单测试一下,你会发现网页登陆云服务器的方式有一个弊端,那就是只要一小段时间不操作,服务器就会进入休眠,又得输入连接密码才能激活,很烦。所以我们采用别的方式登录这个云服务器。
2.2 Xshell是一个终端模拟软件,换言之,我们只要在本地Windows系统下安装这个软件,打开输入账号密码,就能登录远程的云服务器
2.3 Xshell下载官网:https://xshell.en.softonic.com/(如果官网下载太慢,可以百度一下Xshell,很多资源,下载最新版的就行,我用的是Xshell 7 )
2.4 下载完了选择安装路径开始安装,这个软件很小,安装也简单,安装过程中不会出现问题(新手的我也一路畅通)
2.5 打开Xshell们可以看到如下界面:
2.6 新建一个会话,拿出之前的笔记,将公网IP输入到主机栏,端口号设置为22(服务器的监听端口,ftp默认为21,sftp为22,如果你设置22连不进去,那就换21试一下)
2.7 点击 ”确定”>>“连接”,继续拿出笔记,把服务器账号填进“登录的用户名”,把服务器密码填进“密码”,如下图。
2.8 登录成功,进入服务器。以后我们就可以通过这个界面对云服务器进行远程操控,在上面进行jdk,mysql安装,springboot部署等操作了。
3、ECS服务器安装JDK步骤:
SpringBoot项目里自带了Tomacat,所以我们不需要再去服务器安装。所需要安装的是JDK(你想要部署项目的JDK版本)。
3.1 先用Xshell 连接到你的云服务器(或者直接在阿里云官网中远程连接也行)
3.2 在你的本地Windows系统中下载 Linux系统下的jdk,jdk下载官网:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html。下载你需要的jdk版本,我用的是 jdk-8u261-linux-x64.tar.gz
在官网上需要Oracle的账号,因为我没有Oracle账号,我在CSDN上找了一个jdk-8u261-linux-x64.tar.gz包。
得到tar包后,你需要在服务器上创建一个存放包的文件夹:
切换到对应目录:
我在对应的包下创建了java包,用来保存jdk:
现在我们需要把tar传到这个目录如图:
然后我们要把这个文件传到云服务器上去。听起来很高端,其实很简单的。在Xshell上执行rz命令就可以实现。首先我们要在云服务器上安装这个命令。在Xshell中执行
yum install lrzsz
我们要把上传的文件放到哪个目录,就要先cd进入那个目录。我们申请的服务器的初始目录结构如下:(cd命令:进入目录)
例如:我现在我想把jdk保存到,/root/user/java这个目录下,这个目录也是刚才我们自己创建的,用cd命令切换到对应目录:
cd /root/user/java/
然后 rz 把安装包上传上去(rz命令:上传文件)
rz
执行rz命令会弹出一个文件选择框,选择安装包上传:
上传中,等待上传完毕:
传输完毕,点击“关闭”
使用ls命令查看目录。可以看到,我们刚才上传的安装包已经存在于目录中了(ls命令:查看当前目录下的文件)
ls
因为我的之前解压过一次,所有会有一个蓝色的包,不必在意:
接下来解压安装包就算安装成功了!使用tar命令解压压缩包,如果你下载的版本跟我不一样,记得把包名改成你自己的版本 。(tar命令:解压)
tar -zxvf jdk-8u261-linux-x64.tar.gz
解压完成后就会有如下蓝色的包:
跟你在windows系统下安装完jdk一样,你还要设置系统环境变量。linux系统中的设置方法为:找到文件 /etc/profile ,向其中添加如下代码:
先cd进目录 /etc ,再使用 vim命令编辑文件profile(vim命令:编写修改文件内容),该文件类似于windows系统下设置系统环境变量。
-
cd /etc
-
vim profile
-
export JAVA_HOME=/root/user/java/jdk1.8.0_261
-
export CLASSPATH=$JAVA_HOME/lib/
-
export PATH=$PATH:$JAVA_HOME/bin
-
export PATH JAVA_HOME CLASSPATH
进来以后是下面这个界面,按i 键入编辑,在文件最后添加如上内容。其中export JAVA_HOME=/root/user/java/jdk1.8.0_261为你解压得到蓝色包名的路径。
在文件的最后把上面的代码打进去,如果你的jdk版本跟我不一样,记得把 export JAVA_HOME=/root/user/java/jdk1.8.0_261 这一行改成你自己的版本。然后按ESC键退出编辑,输入 :wq + 回车键保存退出文件。
查看文件是否保存成功。
cat profile
立即执行profile文件,使之生效,使用source命令(source命令:依次执行文件所有语句)
source /etc/profile
到这一步,jdk的安装就全部完成了。最后,我们再使用java命令验证一下,如果可以看到我们的版本信息就可以了。
java -version
输入命令后,得到一下结果,证明安装成功:
4.linux云服务器安装mysql
4.1 启动Xshell,连接阿里云服务器
4.2 检查系统有没有自带mysql;
rpm -qa | grep mysql
4.3 一般情况是没有的,但如果有,就卸载
rpm -e --nodeps mysql
4.4安装mysql5.*版本,看自己需求安装
MySQL 5.7 Linux安装包
官网下载:https://dev.mysql.com/downloads/mysql/
选择你的镜像版本和目前最新是8.*版本,如果需要其他本部点击右侧如下图:
8.*版本:
以下是其他版本,选择你需要的版本:
将下载的压缩包上传到服务器中,我自己在root目录下user中创建一个mysql包用来保存下载的tar包。
切换到对应目录:
cd /root/user/mysql/
通过rz,把下载的tar包上传到服务器:
rz
成功后,解压刚下回来的tar包,得到rpm包
sudo tar -zvxf mysql-5mysql-5.7.33-1.el7.x86_64.rpm-bundle.tar
查询并卸载系统自带的Mariadb
-
rpm -qa | grep mariadb
-
rpm -e --nodeps 显示出的文件名
查询并卸载系统老旧版本的Mysql
-
rpm -qa | grep mysql
-
rpm -e --nodeps 显示出的文件名
如果这两个都没有则什么都不会显示,这就可以省一半的心了。
开始正式安装:1.找到你解压出来对应包执行Rpm包安装。注意看你的数据库版本。安装的顺序必须如下,因为有的包之间有依赖关系,顺序不一样会报错。
-
rpm -ivh mysql-community-common-5.7.27-1.el7.x86_64.rpm
-
rpm -ivh mysql-community-libs-5.7.27-1.el7.x86_64.rpm
-
rpm -ivh mysql-community-devel-5.7.27-1.el7.x86_64.rpm
-
rpm -ivh mysql-community-libs-compat-5.7.27-1.el7.x86_64.rpm
-
rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64.rpm
-
rpm -ivh mysql-community-server-5.7.27-1.el7.x86_64.rpm
这几步都没错代表安装完成。
在安装时我遇到的错误,安装这个会报缺少依赖:
只要添加如下依赖在安装:
-
解决办法:
-
yum install compat-openssl10
1. 设置开机启动
systemctl start mysqld
2. 启动mysql服务
查看mysql服务是否启动
service mysqld status
3. 重置root密码
MySQL5.7会在安装后为root用户生成一个随机密码,而不是像以往版本的空密码。 可以安全模式修改root登录密码或者用随机密码登录修改密码。下面用随机密码方式
MySQL为root用户生成的随机密码通过mysqld.log文件可以查找到:
sudo grep 'temporary password' /var/log/mysqld.log
4. 修改root用户密码
(MySQL的密码策略比较复杂,要大小写,过于简单的密码会被拒绝
mysql -u root -p
mysql> Enter password: (输入刚才查询到的随机密码)
mysql> SET PASSWORD = PASSWORD('自己设置密码'); /*注意后面一定要加上“;”不然可能无法执行*/
mysql> exit
5、开放远程连接
mysql>use mysql;
mysql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;
6.下一步开放外部网段访问3306端口。
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '自己设置的密码' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
mysql>exit;
7.查看防火墙配置3306端口
查询防火墙状态:
systemctl status firewalld.service
8.开启防火墙mysql 3306端口的外部访问:
-
firewall-cmd --zone=public --add-port=3306/tcp --permanent; /*注意后面都要带分号“;”*/
-
firewall-cmd --reload;
但你执行以上步骤时报如下错是因为没打开防火墙:
打开防火墙即可:
通过 systemctl start firewalld 开启防火墙,没有任何提示即开启成功。
systemctl start firewalld
9.使用数据库软件验证是否正常工作
在连接之前你需要在服务器中给数据库的3306端口添加到安全组中,在实例列表中就可以看到我们购买的云服务器。点进去,我们需要对服务器的安全组进行设置;
安全组中除了自带的规则,我们还需要添加几个新的安全组(这些安全组的具体作用可以看其他博主的文章)
完成这些错误后,可以使用数据库连接工具远程连接数据库。
5.部署SpringBoot项目
5.1 linux云服务器上的环境我们都已经配置好了,但好像差了一个tomcat?因为springboot内置了tomcat,所以后面我们把它打包成jar包就可以免去tomcat的配置了(如果是打包成war包,那还是要配置tomcat的)。
这里我是用的是IDEA工具进行springboot项目的打包:
打开你的项目,在右侧找到maven点开,执行一下操作:
运行完成后,可以在你项目的target包中去找:
把这个jar包传到服务器上:
打开application.properties,设置项目运行端口:
把这个jar复制到桌面,打开Xshell,使用rz指令把它上传到linux云服务器的根目录:
这里我自己创建了一个文件夹用于存放jar包:
上传成功后,我们要想在linux系统上运行这个项目,就要保证他运行所用的端口没有被占用,不然运行就会报错。
查看端口使用情况:
netstat -anp | grep 8099 //netstat -anp | grep <端口号>
可以看到这个端口被占用了(没被占用的时候不显示任何东西),查看占用端口的PID
sudo lsof -i:8099 //sudo lsof -i:<端口号>
我们要把它kill掉,留出空位来运行我们的项目。kill后再次查看端口,可以看到这个端口已经腾出来了(查询为空)
sudo kill -9 26191 //sudo kill -9 <PID>
使用java指令运行项目jar包,这样我们的项目就算部署成功了
java -jar ***.jar //***为你的jar包名
你需要把你的项目的端口的外部访问:
做完之后你需要在服务器的安全组中添加你的项目端口号:
-
firewall-cmd --zone=public --add-port=8099/tcp --permanent; /*注意后面都要带分号“;”*/
-
firewall-cmd --reload;
随便找个浏览器,搜索栏输入http://公网ip:端口号 就可以搜索到你的网站了。
接下来完善一下啊jar包运行:
这种启动方式是一次启动,当我们关掉Xshell的时候,我们的网站又访问不上了,又得重新打开Xshell,执行 java -jar ***.jar。所以我们要使用下面的方法让这个项目在服务器上自动不间断地跑.
关掉重启一下Xshell(这样的话原本的项目就停掉了),创建并编写文件 start.sh,向其中添加字段 : java -jar ***.jar 。按ESC + :wq + 回车键保存退出
touch start.sh
创建完成后查看是否成功:
编辑start.sh文件:
vim start.sh
按ESC + :wq + 回车键保存退出
给这个start.sh 管理员权限,然后用nohup指令不间断地运行(nohup指令:忽略所有挂断(SIGHUP)信号,不挂断地运行命令)
赋予管理员权限:
chmod 777 start.sh
不间断运行文件内的指令
nohup ./start.sh &
操作图片:
查看jar包是否运行:
ps -ef | grep java
如下可以看到时间和后面的jar包名说明成功:
要是浏览器上索栏输入http://公网ip:端口号 搜索不到你的网站,记得执行以下操作以及添加安全组:
-
firewall-cmd --zone=public --add-port=8099/tcp --permanent; /*注意后面都要带分号“;”*/
-
firewall-cmd --reload;
这样我们就能拿到你后台jar包的数据了:
如果需要把前端项目部署在服务器上需要安装一下nginx,关注我持续更新!!!
6.安装nginx
1.安装nginx依赖
Nginx的安装通过源码包编译完成,需要c++支持库,同时在Nginx运行过程中对于一些压缩、路由正则表达式、https支持等相关特性需要其他一些支持库。一般情况下,安装 gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel 这些依赖可满足基本要求,安装指令如下:
yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
安装完成如下图:
2 安装Nginx
2.1 下载源码包
wget http://nginx.org/download/nginx-1.18.0.tar.gz
如下图:
2. 2 解压源码包
tar -zxvf nginx-1.18.0.tar.gz
如图:
2.3 安装配置检查
解压完成后,进入到解压目录
执行安装检查,运行如下指令:
./configure
如图:
检查完成后,默认安装配置信息如下图所示。
2.4 安装
在解压目录下
执行下面指令,默认会安装到/usr/local/
目录下
make && make install
执行完上面命令后:
2.5 配置别名
此步骤可选,目的是为了后续运行nginx操作指令方便。别名配置方式和当前使用的shell类型相关,这里使用zsh
,所以在用户目录的.zshrc
文件中加入如下别名 nginx
替代nginx执行文件的完整路径。
vim ~/.zshrc
alias nginx='/usr/local/nginx/sbin/nginx'
按Esc,输入:wq退出并保存,然后执行下面操作:
source ~/.zshrc
2.6 安装结果验证
安装完成后,会生成nginx默认配置文件 /usr/local/nginx/conf/nginx.conf。
可执行如下命令nginx配置检查,如果配置文件有错误会有相应提示。
nginx -t
如上图,nginx配置正确,下面指令启动nginx、查看nginx进程、并从本机测试可访问性(默认开启80端口,所以使用 localhost
访问即可),如下图:
-
nginx
-
ps -ef|grep nginx
-
curl localhost
如图:
上图中使用 curl
命令访问本机可正常返回页面信息,nginx安装完成。后续可进行其他域名相关的绑定配置。
如需要在浏览器上访问则需要暴露80端口:
-
firewall-cmd --zone=public --add-port=80/tcp --permanent; /*注意后面都要带分号“;”*/
-
firewall-cmd --reload;
如图:
3 阿里云ECS配置
如上面步骤nginx已成功安装,且在本机可访问。但是由于阿里云的安全机制,默认情况下无法使用公网IP进行访问,也就是无法在其他主机通过非域名方式访问。解决方式如下。
3.1 添加安全组
默认情况下,阿里云系统会给每个ESC主机关联一个默认的安全组(每个ECS实例也至少要关联一个安全组),该安全组默认开启了TCP协议中的22 和 3389端口,用于支持 ssh 和 mysql 操作,如下图。所以安装Nginx后,默认使用的 80 端口并未开放,所以无法访问。
3.3 测试公网IP访问
完成上面步骤后,在浏览器中,直接输入ECS的公网IP,可成功访问,如下图:
到此服务器部署JDK、mysql、Nginx、运行jar结束!!