目標:帶你瞭解靜態資源怎麼對映到域名,利用 git 很簡單!順便教你普通的二級域名配置方法。
前言
伺服器部署後最簡單的功能就是對映靜態資源到域名,而 Hexo 本身就是直接把你寫的 Markdown 處理成靜態檔案,所以這裡就用 Hexo 做演示。點此瞭解Hexo
進行到這一步我假設你已經搭建好了 Hexo 部落格系統並已經部署到了 github page 上,我們進入對應的 github 倉庫。
顯而易見,所有的靜態檔案都在這裡,而且不需要做任何處理就能部署到伺服器。
部署
首先當然是連線主機了,還是用 ssh 連線。
ssh ubuntu@123.206.55.207
進入對應的目錄,我直接放在 blog 目錄下,對映的是 blog.admin.com
。
cd /usr/share/nginx/html/
將靜態檔案 clone 並重新命名專案為 blog,記得加上 sudo執行。
sudo git clone https://github.com/ouxu/ouxu.github.io.git blog
如果用的是通配法配置的二級域名,這時候訪問 blog.admin.com 既能看到已經部署成功。
以後每次寫了新的東西,並更新到了 github 上,我們只需要在 blog 目錄下執行 git pull
指令就能同步檔案。
除了利用 git 進行檔案部署外,我們還能用 scp 指令進行操作,下面我們動手試試吧。
假如我要把我本地的 hexo 靜態檔案傳輸到伺服器上,我們需要先進入本地hexo的目錄下。
然後執行 scp 指令。需要注意的是伺服器對應的路徑需要開放許可權,我們把目標目錄許可權改成 777。
在伺服器中修改:
sudo chmod -R 777 /usr/share/nginx/html/temp
然後在本地執行:
scp -r ./public ubuntu@123.206.55.207:/usr/share/nginx/html/temp
好了然後把檔案從 temp 中複製或移動到 blog 目錄下:
sudo cp -r /usr/share/nginx/html/temp /usr/share/nginx/html/blog
這樣也能把檔案傳輸到伺服器上。
附加 配置檔案說明
首先是主配置檔案 檔案位置/etc/nginx/nginx.conf
此檔案中是nginx的核心配置項(比如最大連線數等等),其實整個nginx的配置項都是通過這個檔案確定的,其中的虛擬主機部分(即server)是在該檔案中通過include實現的。
兩個虛擬主機的配置目錄,一個是sites-available 一個是sites-enabled ,兩者內部都預設有一個default檔案,是預設的虛擬主機配置,注意這兩個檔案其實就是一個檔案,enabled中的default只是一個連結而已。所以在nginx.conf中,只是include了enabled目錄裡的所有檔案,按照這個預設的邏輯,如果想要增加一個虛擬主機的配置,那麼你應該單獨寫一個配置檔案放在enabled目錄下即可,或者可以寫到 conf.d 目錄,這些全看個人習慣吧。
明白了這些,我們進入 nginx 配置目錄。
cd /etc/nginx/conf.d
新建服務的 conf 檔案。
sudo touch blog.conf
寫入自定義的 server 資訊,我這直接寫的配置好了 php 的,你也可以自己修改。
server {
listen 80;
server_name blog.mycollagelife.com;
root /usr/share/nginx/html/blog;
index index.html index.htm index.nginx-debian.html index.php;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
# With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
複製程式碼
然後重啟 nginx 服務,就能見到效果啦~