【SpringBoot搭建我的博客】- 线上部署(十三)

博客地址:ONESTARの客栈html

源码领取方式一:前端

  • 扫一扫文末二维码,关注公众号【编程日刊】,后台回复【博客】,便可领取源码

源码领取方式二:java

欢迎给star以鼓励(^_−)☆github


本文将从服务器购买后远程链接,环境搭建,项目部署运行和域名访问来说述SpringBoot搭建我的博客的线上部署sql

1、服务器购买

博主是在618购买的腾讯云服务器,优惠力度比较大,入手了一个三年的,至因而选择腾讯云仍是阿里云,感受对于我的博客而言都差很少,因为以前用过腾讯云,因此又买了腾讯的,这里给个链接:数据库

image

博主买的就是这个,新用户288三年,八块钱一个月,比学生价还便宜编程

2、远程链接服务器

1. 修改用户名密码

博主购买服务器后直接就给我默认安装了CentOS 7.5 64位系统,用户名和密码也都默认了,多是我有些选项没有选择吧,不过不影响,进入实例控制台修改密码,点击更多操做,选择重置密码,验证后进行重置,密码尽可能复杂些!

image

2.下载安装FinalShell

别问我为何使用FinalShell, 用了你就知道,好用!给个下载地址:www.hostbuf.com/

下载后进行安装,安装后打开以下,点击文件夹

image

新建SSH远程链接,填写服务器信息:

  • 名称:可随意,方便辨识用
  • 主机:复制服务器的公网IP
  • 端口:服务器端口,默认是22
  • 用户名:没修改就是root
  • 密码:重置时设置的密码

点击肯定便可远程链接服务器

image

3、环境搭建

这里主要是搭建博客所须要的环境,只须要安装jdk和MySQL数据库,为了保证开发环境和部署环境一致,这里安装jdk1.8,MySQL5.7

1. jdk安装

1.1 yum安装

Linux上使用yum命令后,会将OpenJDK安装到/usr/lib/jvm/目录下

# 安装OpenJDK
yum install java-1.8.0-openjdk java-1.8.0openjdk-devel
复制代码

1.2 配置jdk环境变量

# 打开配置文件
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保存退出

1.3 让环境变量生效

source /etc/profile
复制代码

1.4 检查JDK是否安装成功

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)
复制代码

2. MySQL5.7安装

2.1 下载MySQL

#下载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
复制代码

2.2 启动MySQL服务

#启动MySQL服务
systemctl start mysqld 

#查看MySQL启动状态
systemctl status mysqld

#设置开机启动
systemctl enable mysqld
systemctl daemon-reload
复制代码

2.3 登陆重置密码

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’,这里只是示范,可别弄这么简单的密码,要否则数据怎么丢的都不知道==

到这里数据库就安装完成了,已经能够知足部署项目的基本需求了,这里再另外多讲两点:数据库配置、数据库受权

2.4 数据库配置

数据库配置是经过/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

2.5 数据库受权

为了方便对数据库进行操做,通常都是使用可视化软件对数据库进行远程链接,但若是任何一台机子均可以对你的服务器数据库进行远程链接,那就不安全了,这里就须要对数据库进行受权,指定能够远程链接的数据库,没有受权就只能支持localhost本地访问了。

# 登录数据库
mysql -uroot -p

# 使用数据库
use mysql;

# 设置权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

# 刷新权限
flush privileges;

#退出,重启服务器
service mysqld restart
复制代码

设置权限那一句:

  • *. *:表示 全部库.全部表
  • 'root'@'%' identified by 'root':
    • 前一个root:表示用户名,
    • %:是指全部访问ip
    • 后一个root:表示数据库密码

经过这一句能够配置远程访问的数据库和访问的IP,博主通常是直接配置'%'全部IP都能访问,由于有时候开发需求会改变IP,若是指定IP的话就不方便,因此配置了'%',通常状况下是将3306端口给关闭,须要远程链接的时候再把3306端口打开,用完就关闭,这样安全些

为了方便操做,这里能够将服务器的安全组进行修改,我们打开服务器的实例控制台,找到安全组规则,点开编辑入站规则,能够看到服务器有两条默认规则,能够看到第一条是将全部服务端口都开放了,这样不太安全,因此这里将它关闭,而后打开须要配置的端口

image

2.5.1 拒绝全部协议端口

点击第一条的编辑,将容许改成拒绝,而后保存

2.5.2 添加22端口和3306端口

22端口是SSH远程链接用的,3306是数据库远程链接用的

点击添加规则,添加以下两条,点击完成,便可远程链接数据库

image

==注:平时不用远程链接数据库的时候能够将3306端口给关了,用的时候再打开==

4、项目部署

服务器环境搭建好后,就能够将项目打包部署到服务器了,这里采用jar包的方式部署,使用idea打成jar包,而后将jar包上传到服务器在后台运行,就能够用IP进行访问了

1. 打包

点击idea右边的Maven Projects,双击clean,执行完后再双击package

image

不出意外,控制台会显示BUILD SUCCESS,并有jar包文件的大小,在target文件夹下面会生成一个myblog-0.0.1-SNAPSHOT.jar的jar包,这个就是要上传到服务器进行部署的jar包。

image

2. 部署

将刚生成的jar包上传到服务器上,进行部署,这里要注意上传以前要将项目的数据库配置换成服务器的数据库

2.1 上传

这里使用FinalShell上传,先用FinalShell登录服务器,在服务器中建立一个文件夹用来存放项目的

# 建立文件夹
mkdir myblog

# 进入目录
cd myblog
复制代码

在FinalShell下方有可视化的目录结构,点进刚建立的文件夹,右击空白处,点击上传,选择myblog-0.0.1-SNAPSHOT.jar包,将jar包上传

image

2.2 关闭防火墙,开放8080端口

服务器须要将防火墙关闭才能访问;咱们的博客项目配置的是8080端口,在以前将全部端口都关闭了,因此这里要将8080端口开放

  • 防火墙相关
# 查看防火墙状态
systemctl status firewalld

# 打开防火墙
systemctl start firewalld

# 关闭防火墙
systemctl stop firewalld
复制代码
  • 开放8080端口

进入服务器控制台安全组规则,添加规则,开放8080端口,开放后以下:

image

3 运行jar包

这里让jar包在服务器后台运行,进入jar包文件夹,执行命令运行jar包

# 进入jar包文件夹
cd /home/myblog

# 后台运行jar包
nohup java -jar myblog-0.0.1-SNAPSHOT.jar &
复制代码

3.1 访问

在浏览器中访问服务器的8080端口,Bingo!!!

image

5、配置域名访问(http)

这里默认读者已经购买了域名,并成功备案

通常来讲,一个服务器不止跑一个服务(看本身需求,固然也能够只跑一个),每一个服务都是使用一个二级域名来进行访问,因此这里配置二级域名进行访问

1 添加解析

登陆云服务器,在云服务器的控制台找到DNS解析,腾讯云能够在上面的云产品中搜DNS,以下

image

点进去后以下,能够看到这里是空的,由于没有添加任何解析,我们点击添加解析,而后添加本身的域名

image

image

添加后会有一条添加域名信息,点击域名,这里要添加三条记录,如下三条:

注:若是只是要配置本身的网站可以经过域名访问,那就只须要配置下满截图中的第三条二级域名就能够了,可是通常来讲,一个服务器不仅是经过二级域名访问,还会有直接访问和经过www访问。

  • @:表示直接解析域名
  • www:解析域名经过www访问
  • xxxx(二级域名):解析经过二级域名访问,我这里配置的是onestar二级域名

这里添加后以下,记录值为本身服务器的公网IP

image

添加完成后就可使用域名进行访问了,But,这样直接访问的话,访问的是服务器默认访问的80端口,而咱们项目用的端口是8080,因此这里要将端口进行转发,将8080端口转发到域名,这里就要用到反向代理的技术了。

2 反向代理

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的链接请求,而后将请求转发给内部网络上的服务器,并将从服务器上获得的结果返回给internet上请求链接的客户端,此时代理服务器对外就表现为一个服务器。这里使用NGINX反向代理,将80端口转发到8080端口,须要对NGINX进行配置,因此要先下载NGINX

2.1 下载安装NGINX

# 下载NGINX:
yum install nginx

# 启动nginx:
systemctl start nginx

# 加入开机启动:
systemctl enable nginx

# 查看nginx的状态:
systemctl status nginx
复制代码

2.2 配置NGINX

下载后须要对NGINX进行配置,这里的配置文件是nginx.conf,可使用命令 find / -name "nginx.conf" 进行查找,默认是在 /etc/nginx/nginx.conf,我们来进行配置:

# 打开nginx.conf配置文件
vim /etc/nginx/nginx.conf
复制代码

能够看到以下配置,这里只讲解两个地方,也就是框出的部分

image

  • include:这是头文件包含,能够看到这里配置了 /etc/nginx/conf.d/*.conf,意思是包含/etc/nginx/conf.d/目录下的全部.conf配置文件,我们能够在/etc/nginx/conf.d/ 文件夹下建立后缀为.conf 的文件来添加配置,等会就要用到
  • sever:要修改的就是这个部分了,也就是服务配置,可是通常咱们不直接在这里修改,由于一个服务器通常会有不少个服务要跑,若是直接在这里修改的话就不方便拓展,能够看到我这里将server注释了,也就是不用这个server,而是在include另外添加配置文件

==注:我们能够理解为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;
}
复制代码

这里咱们了解一下几点就能够了:

  • listen:监听80端口
  • server_name:转发到哪一个地址,也就是前面配置的二级域名地址
  • proxy_pass:代理到哪一个地址,也就是要访问的服务器端口地址
  • access_log:表示记录日志信息,会在根目录下建立onestar.newstar.net.cn.access.log日志文件,打印项目的日志信息

2.3 重启NGINX

# 重启:
nginx -s reload
复制代码

重启后服务就生效,可使用域名进行访问了:onestar.newstar.net.cn/

至此,整个博客开发完成,能够进行域名访问了,原本打算将https访问也讲述一下,可是要想把文章写好,我通常会进行实操一遍,这样的话就要将个人博客项目给停掉,再从新部署https,如今个人博客天天几百上千的请求量,因此也就没这样作,https访问你们能够查询相关资料,也是用NGINX,这里就不讲了。

好了,好不容易搭建好的博客,你们就尽情的写文章吧!

【点关注,不迷路,欢迎持续关注本站】


image
相关文章
相关标签/搜索