伺服器配置(二)

虛竹子發表於2019-04-15

目標:帶你瞭解靜態資源怎麼對映到域名,利用 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 服務,就能見到效果啦~

相關文章