【SpringBoot搭建個人博客】- 線上部署(十三)


博客地址:ONESTARの客棧

源碼領取方式一:

  • 掃一掃文末二維碼,關注公眾號【編程日刊】,后台回復【博客】,即可領取源碼

源碼領取方式二:

歡迎給star以鼓勵(^_−)☆


本文將從服務器購買后遠程連接,環境搭建,項目部署運行和域名訪問來講述SpringBoot搭建個人博客的線上部署

一、服務器購買

博主是在618購買的騰訊雲服務器,優惠力度比較大,入手了一個三年的,至於是選擇騰訊雲還是阿里雲,感覺對於個人博客而言都差不多,由於之前用過騰訊雲,所以又買了騰訊的,這里給個連接:

image

博主買的就是這個,新用戶288三年,八塊錢一個月,比學生價還便宜

二、遠程連接服務器

1. 修改用戶名密碼

博主購買服務器后直接就給我默認安裝了CentOS 7.5 64位系統,用戶名和密碼也都默認了,可能是我有些選項沒有選擇吧,不過不影響,進入實例控制台修改密碼,點擊更多操作,選擇重置密碼,驗證后進行重置,密碼盡量復雜些!

image

2.下載安裝FinalShell

別問我為什么使用FinalShell, 用了你就知道,好用!給個下載地址:http://www.hostbuf.com/

下載后進行安裝,安裝后打開如下,點擊文件夾

image

新建SSH遠程連接,填寫服務器信息:

  • 名稱:可隨意,方便辨識用
  • 主機:復制服務器的公網IP
  • 端口:服務器端口,默認是22
  • 用戶名:沒修改就是root
  • 密碼:重置時設置的密碼

點擊確定即可遠程連接服務器

image

三、環境搭建

這里主要是搭建博客所需要的環境,只需要安裝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端口給關了,用的時候再打開

四、項目部署

服務器環境搭建好后,就可以將項目打包部署到服務器了,這里采用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

五、配置域名訪問(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

重啟后服務就生效,可以使用域名進行訪問了:http://onestar.newstar.net.cn/

至此,整個博客開發完成,可以進行域名訪問了,本來打算將https訪問也講述一下,但是要想把文章寫好,我一般會進行實操一遍,這樣的話就要將我的博客項目給停掉,再重新部署https,現在我的博客每天幾百上千的請求量,所以也就沒這樣做,https訪問大家可以查詢相關資料,也是用NGINX,這里就不講了。

好了,好不容易搭建好的博客,大家就盡情的寫文章吧!

【點關注,不迷路,歡迎持續關注本站】


image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM