博客地址 :ONESTARの客栈
源码领取方式一:
源码领取方式二:
前端页面源码地址: github.com/oneStarLR/m…
以jpa为持久层源码地址: github.com/oneStarLR/m…
以mybatis为持久层源码地址: github.com/oneStarLR/m…
欢迎给star以鼓励(^_−)☆
本文将从服务器购买后远程连接,环境搭建,项目部署运行和域名访问来讲述SpringBoot搭建个人博客的线上部署
博主是在618购买的腾讯云服务器,优惠力度比较大,入手了一个三年的,至于是选择腾讯云还是阿里云,感觉对于个人博客而言都差不多,由于之前用过腾讯云,所以又买了腾讯的,这里给个连接:
博主买的就是这个,新用户288三年,八块钱一个月,比学生价还便宜
博主购买服务器后直接就给我默认安装了CentOS 7.5 64位系统,用户名和密码也都默认了,可能是我有些选项没有选择吧,不过不影响,进入实例控制台修改密码,点击更多操作,选择重置密码,验证后进行重置,密码尽量复杂些!
别问我为什么使用FinalShell, 用了你就知道,好用!给个下载地址: www.hostbuf.com/
下载后进行安装,安装后打开如下,点击文件夹
新建SSH远程连接,填写服务器信息:
点击确定即可远程连接服务器
这里主要是搭建博客所需要的环境,只需要安装jdk和MySQL数据库,为了保证开发环境和部署环境一致,这里安装jdk1.8,MySQL5.7
Linux上使用yum命令后,会将OpenJDK安装到/usr/lib/jvm/目录下
# 安装OpenJDK yum install java-1.8.0-openjdk java-1.8.0openjdk-devel 复制代码
# 打开配置文件 vim /etc/profile 复制代码
进入文本编辑状态下,光标走到文件最后一行末尾(shift+g 快速定位到文件的最下方),键盘按下:i(英文状态)
插入下面四行语句
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0.171 export JRE_HOME=/$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin 复制代码
:wq保存退出
source /etc/profile 复制代码
java -version 复制代码
可以看到jdk版本信息,安装成功
openjdk version "1.8.0_252" OpenJDK Runtime Environment (build 1.8.0_252-b09) OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode) 复制代码
#下载MySQL安装包 wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm #安装yum源 rpm -Uvh mysql57-community-release-el7-11.noarch.rpm #查看yum仓库MySQL的启动列表 yum repolist enabled | grep mysql #安装MySQL数据库 yum install mysql-community-server 复制代码
#启动MySQL服务 systemctl start mysqld #查看MySQL启动状态 systemctl status mysqld #设置开机启动 systemctl enable mysqld systemctl daemon-reload 复制代码
MySQL安装完成后,在/var/log/mysqld.log文件中给root生成了一个默认密码,可以通过命令查看密码:
grep "temporary password" /var/log/mysqld.log 复制代码
然后可以使用这个密码登陆MySQL
mysql -uroot -p 复制代码
回车输入密码登陆数据库,第一次登陆需要重置密码,以下命令重置:
ALTER user 'root'@'localhost' identified by '123456'; 复制代码
重置后使用新密码可以登陆,操作数据库
==注:这里是将密码修改为‘123456’,这里只是示范,可别弄这么简单的密码,要不然数据怎么丢的都不知道==
到这里数据库就安装完成了,已经可以满足部署项目的基本需求了,这里再另外多讲两点:数据库配置、数据库授权
数据库配置是通过/etc/my.cnf文件进行配置,这里配置一下字符集为utf8mb4,打开my.cnf文件:vim /etc/my.cnf ,在文件末尾添加:
# 设置数据库字符集为utf8mb4 [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect = 'SET NAMES utf8mb4' lower_case_table_names = 1 # 表名不区分大小写 复制代码
修改完成后,重启MySQL服务:
# 重启MySQL systemctl restart mysqld 复制代码
通过配置my.cnf可以对数据库进行配置,有一些基本的配置,这里给一篇文章进行参考 :mysql数据库配置 my.cnf
为了方便对数据库进行操作,一般都是使用可视化软件对数据库进行远程连接,但如果任何一台机子都可以对你的服务器数据库进行远程连接,那就不安全了,这里就需要对数据库进行授权,指定可以远程连接的数据库,没有授权就只能支持localhost本地访问了。
# 登陆数据库 mysql -uroot -p # 使用数据库 use mysql; # 设置权限 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; # 刷新权限 flush privileges; #退出,重启服务器 service mysqld restart 复制代码
设置权限那一句:
通过这一句可以配置远程访问的数据库和访问的IP,博主一般是直接配置'%'所有IP都能访问,因为有时候开发需求会改变IP,如果指定IP的话就不方便,所以配置了'%',一般情况下是将3306端口给关闭,需要远程连接的时候再把3306端口打开,用完就关闭,这样安全些
为了方便操作,这里可以将服务器的安全组进行修改,咱们打开服务器的实例控制台,找到安全组规则,点开编辑入站规则,可以看到服务器有两条默认规则,可以看到第一条是将所有服务端口都开放了,这样不太安全,所以这里将它关闭,然后打开需要配置的端口
点击第一条的编辑,将允许改为拒绝,然后保存
22端口是SSH远程连接用的,3306是数据库远程连接用的
点击添加规则,添加如下两条,点击完成,即可远程连接数据库
==注:平时不用远程连接数据库的时候可以将3306端口给关了,用的时候再打开==
服务器环境搭建好后,就可以将项目打包部署到服务器了,这里采用jar包的方式部署,使用idea打成jar包,然后将jar包上传到服务器在后台运行,就可以用IP进行访问了
点击idea右边的Maven Projects,双击clean,执行完后再双击package
不出意外,控制台会显示BUILD SUCCESS,并有jar包文件的大小,在target文件夹下面会生成一个myblog-0.0.1-SNAPSHOT.jar的jar包,这个就是要上传到服务器进行部署的jar包。
将刚生成的jar包上传到服务器上,进行部署,这里要注意上传之前要将项目的数据库配置换成服务器的数据库
这里使用FinalShell上传,先用FinalShell登陆服务器,在服务器中创建一个文件夹用来存放项目的
# 创建文件夹 mkdir myblog # 进入目录 cd myblog 复制代码
在FinalShell下方有可视化的目录结构,点进刚创建的文件夹,右击空白处,点击上传,选择myblog-0.0.1-SNAPSHOT.jar包,将jar包上传
服务器需要将防火墙关闭才能访问;我们的博客项目配置的是8080端口,在之前将所有端口都关闭了,所以这里要将8080端口开放
# 查看防火墙状态 systemctl status firewalld # 打开防火墙 systemctl start firewalld # 关闭防火墙 systemctl stop firewalld 复制代码
进入服务器控制台安全组规则,添加规则,开放8080端口,开放后如下:
这里让jar包在服务器后台运行,进入jar包文件夹,执行命令运行jar包
# 进入jar包文件夹 cd /home/myblog # 后台运行jar包 nohup java -jar myblog-0.0.1-SNAPSHOT.jar & 复制代码
在浏览器中访问服务器的8080端口,Bingo!!!
这里默认读者已经购买了域名,并成功备案
一般来说,一个服务器不止跑一个服务(看自己需求,当然也可以只跑一个),每个服务都是使用一个二级域名来进行访问,所以这里配置二级域名进行访问
登录云服务器,在云服务器的控制台找到DNS解析,腾讯云可以在上面的云产品中搜DNS,如下
点进去后如下,可以看到这里是空的,因为没有添加任何解析,咱们点击添加解析,然后添加自己的域名
添加后会有一条添加域名信息,点击域名,这里要添加三条记录,以下三条:
注:如果只是要配置自己的网站能够通过域名访问,那就只需要配置下满截图中的第三条二级域名就可以了,但是一般来说,一个服务器不只是通过二级域名访问,还会有直接访问和通过www访问。
这里添加后如下,记录值为自己服务器的公网IP
添加完成后就可以使用域名进行访问了,But,这样直接访问的话,访问的是服务器默认访问的80端口,而我们项目用的端口是8080,所以这里要将端口进行转发,将8080端口转发到域名,这里就要用到反向代理的技术了。
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。这里使用NGINX反向代理,将80端口转发到8080端口,需要对NGINX进行配置,所以要先下载NGINX
# 下载NGINX: yum install nginx # 启动nginx: systemctl start nginx # 加入开机启动: systemctl enable nginx # 查看nginx的状态: systemctl status nginx 复制代码
下载后需要对NGINX进行配置,这里的配置文件是nginx.conf,可以使用命令 find / -name "nginx.conf" 进行查找,默认是在 /etc/nginx/nginx.conf,咱们来进行配置:
# 打开nginx.conf配置文件 vim /etc/nginx/nginx.conf 复制代码
可以看到如下配置,这里只讲解两个地方,也就是框出的部分
==注:咱们可以理解为nginx.conf是一个总配置文件,include所包含的是子配置文件,如果要添加一个服务,就可以再/etc/nginx/conf.d/目录下去添加一个子配置文件,这里也是用的这种方式==
在/etc/nginx/conf.d/目录下创建*.conf文件,我这里命名为onestar.conf
# 创建打开onestar.conf vim /etc/nginx/conf.d/onestar.conf 复制代码
添加如下配置:
server { listen 80; server_name onestar.newstar.net.cn; location / { proxy_pass http://81.68.734.422:8080; index index.html index.htm; proxy_set_header Host $host; proxy_set_header X-Real-Ip $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; } access_log /logs/onestar.newstar.net.cn.access.log; } 复制代码
这里我们了解一下几点就可以了:
# 重启: nginx -s reload 复制代码
重启后服务就生效,可以使用域名进行访问了: onestar.newstar.net.cn/
至此,整个博客开发完成,可以进行域名访问了,本来打算将https访问也讲述一下,但是要想把文章写好,我一般会进行实操一遍,这样的话就要将我的博客项目给停掉,再重新部署https,现在我的博客每天几百上千的请求量,所以也就没这样做,https访问大家可以查询相关资料,也是用NGINX,这里就不讲了。
好了,好不容易搭建好的博客,大家就尽情的写文章吧!
【点关注,不迷路,欢迎持续关注本站】