【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
相關文章
相關標籤/搜索