伺服器搭建靜態部落格

2022-09-11 15:42:21 字數 2223 閱讀 8126

​ 之前在伺服器上搭建了基於halo的動態部落格系統,可以通過網頁後台,方便進行部落格寫作和管理。但苦於資金有限,伺服器效能一般,伺服器除了要處理訪問,還要掛著守護程序。於是就希望能有適於低效能伺服器的解決方案。

​ 同時,自己一直通過githubpage託管一部分部落格,一直沒能統一部署,所以希望能夠尋求到能夠同時部署到伺服器和github.io的方案。

​ 這幾天發現乙個關於此的專欄(見文末引用),於是跟著步驟做了一遍。所以此篇為備忘。

先ssh連線到伺服器,停用halo的守護程序

systemctl disable halo

systemctl stop halo

首先將已經託管在githubpage的倉庫轉殖到nginx的預設靜態資源目錄/var/www/html

cd /var/www/html

git clone ***xx

修改nginx的配置檔案,將剛剛轉殖的資源目錄新增為root欄位的值

server {

listen 80 default_server;

listen [::]:80 default_server;

root /var/www/html/***.github.io;

在瀏覽器輸入伺服器的ip和埠號(一般為80,就是nginx配置檔案中的)

***.***.***.***:80
如果成功載入網頁,就說明之前的配置成功。

但現在無法使用之前的配置進行網域名稱訪問。只需要將之前在/etc/nginx/config.d/下的配置檔案(這是ubuntu的nginx目錄,紅帽系的可能有所不同)裡有root欄位的目錄也改為和上文nginx配置檔案裡的一樣的就好。(halo原來的配置為通過**監聽halo的埠。)

至此,已經可以通過網域名稱訪問從github轉殖到伺服器的靜態資源了。

如果想將本地機裡的靜態資源同時部署到github和伺服器的話,就需要在伺服器也建立乙個git倉庫,並在本地機裡將hexo根目錄下配置檔案裡的deploy項進行修改。

建立倉庫

首先建立乙個git使用者,用m選項新增家目錄,並將其加入root使用者組

useradd git -m -g root
進入git的家目錄並建立裸倉庫hexo.git,並將倉庫所有者和組許可權進行修改

cd /home/git/

git init --bare hexo.git

chown -r git:git hexo.git

cd /var/www/html/

chown -r git:git ***.github.io

配置倉庫儲存位置,在配置檔案/home/git/hexo.git/hooks/post-receive中寫入如下內容:

#!/bin/sh

git --work-tree=/var/www/html/***.github.io --git-dir=/home/git/hexo.git checkout -f

儲存之後,為該檔案新增可執行許可權

chmod +x post-receive
這樣,一會兒部署的靜態資源就會儲存到nginx的預設靜態資源目錄(見前文)。

除此,為了在部署時免除密碼,需要將本地機的ssh公鑰匯入git家目錄下的~/.ssh/authorized_keys檔案中。(如果在root或缺省目錄下有,也可以複製乙份)。

# deployment

## docs:

deploy:

type: git

repo:

github: [email protected]:your_github_name/your_github_name.github.io.git,main

hexo: git@your_server_ip:/home/git/hexo.git,master

至此,使用hexo d就可以同時部署到githubpage和自己的伺服器上了!

references:

利用hexo在伺服器快速搭建靜態部落格

以下操作建立有乙個伺服器 ubuntu 14.04 的基礎上。安裝hexo需要先安裝node.js和git。sudo apt get install git 安裝git wget qo sh nvm install 4 安裝node.js npm install g hexo cli 安裝 hexo...

nodejs 搭建靜態伺服器

伺服器分類 按照請求的資源型別進行分類 搭建靜態伺服器 靜態的意思 瀏覽器請求某個檔案,對應的檔案內容返回給瀏覽器 思路 獲取請求檔案的路徑 根據路徑找到對應的檔案,有則返回,沒有則給出提示。設定對應的頭資訊 頭資訊 檔案的字尾 mime型別 當訪問資料夾的時候,讓其預設訪問該檔案下的index.h...

伺服器上搭建個人部落格

也可以使用ssh來遠端操縱伺服器。安裝好之後,通過使用瀏覽器訪問你的公網ip可以就可以看到lnmp預設的html頁面。wgetlnmp是 nginx php mysql 的乙個整合環境,nginx作為web伺服器預設訪問的目錄是 home wwwroot dedault,因此我們將wordpress...