先週、遊びでVPSを購入しました。BandwagonHostから購入したもので、年間19ドルです。コストパフォーマンスはまずまずだと思います。設定は以下の通りです。
10 GB SSD RAID-10 Disk Space
256 MB RAM
500 GB Transfer
Gigabit port
Multiple locations
こちらが購入リンクです。
購入後、まずSSをセットアップして、インターネット規制の問題を解決しました。その後、ブログも移行してしまおうかと考えました。SSだけではそれほどトラフィックを消費しないからです。そこで、すぐに取り掛かり、いくつかの検索と調査を経て、目標を達成しました。
操作手順を簡単に記録しておきます。
クライアント側:
- sshの設定
- ローカルでのhexoデプロイ
サーバー側:
- 必要なソフトウェアのインストール a. Git b. Nginx
- セキュリティと利便性のため、hexoデプロイ専用ユーザー
git
を新規作成し、適切な権限を付与します。 - sshを設定し、クライアントとの通信経路を確立します。
- Git hooksを設定します。これにより、ローカルでhexoをサーバーの
git
ユーザーの対応するリポジトリにデプロイした後、アクセス用のウェブサイトフォルダにコピーする必要がなくなります。
#!/bin/bash
GIT_REPO=/home/git/hexo.git #git仓库
TMP_GIT_CLONE=/tmp/hexo
PUBLIC_WWW=/var/www/hexo #网站目录
rm -rf ${TMP_GIT_CLONE}
git clone ${GIT_REPO} ${TMP_GIT_CLONE}
rm -rf ${PUBLIC_WWW}/*
cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}
- Nginxを設定し、Nginxサービスを起動します。
遭遇した問題
- VPSアドレスにアクセスすると、直接
403 forbidden
が表示されました。権限の問題かと思い、インターネットで長時間調べましたが解決しませんでした。最終的に、ウェブサイト用のディレクトリが空であることが判明しました。 - 問題1から、Git hooksが全く機能していないと推測しました。ウェブサイトを置くフォルダがずっと空だったからです。そこで、Git hooks内のコマンドを手動で試したところ、
rm -rf ${PUBLIC_WWW}
を実行した際に、システムから操作拒否のメッセージが表示されました。これは権限の問題だと判明し、git
ユーザーにウェブサイトを置くwww/hexo
の権限を付与しました。 - サーバー再起動後、sshに問題が発生しました。様々な調査の結果、これも権限の問題であることが判明し、
git
ユーザーの.ssh
ファイルに700
の権限を付与しました。
www.kisnows.com
を入力すると、アクセスに成功しました。やったー、嬉しい!しかも、国内からのアクセス速度も以前より少しだけ速くなりました。ほんの少しですが。
SSLも導入しようと思いました。そうしないと時代遅れですし、最近は通信事業者のハイジャックが深刻だからです。大きなコストをかけたくなかったので、CloudFlareが提供する無料SSLを利用することにしました。ブラウザからCloudFlareの間だけが暗号化されますが、何もないよりはマシです。
そこで、DNSサービスをDNSPodからCloudFlareに切り替え、CloudFlareの助けを借りてサイト全体でHTTPSを有効にしました。同時に、トップドメインをwww
付きのサブドメインにリダイレクトしました。方法は以下の通りです。
HTTPSの有効化
CloudFlare管理センターの「Crypto」セクションに入ります。
非HTTPSアクセスをHTTPSに強制リダイレクト
「Page Rules」モジュール内にあります。
上図1のように、「always use https」を選択し、図の最初のルールを設定します。
http://*.kisnows.com/*
これで、一致するすべてのアクセスがHTTPS経由になります。
トップドメインをwww
付きのサブドメインにリダイレクト
これもPage Rulesを使用します。上図2のように、「Forwarding」を選択し、以下のように設定すればOKです。
Forwardingの
$1
は、kisnows.com/*
の *
にマッチした要素です。
これで、2日間にわたる試行錯誤が終わり、サイト全体がVPSに移行され、全面的にHTTPSが有効になりました。 まさに、人生は挑戦の連続ですね!
参考記事: http://tiktoking.github.io/2016/01/26/hexo/ http://www.hansoncoder.com/2016/03/02/VPS%20building%20Hexo/ http://hejun.me/2015/01/05/deploy-hexo-on-cloud/
この記事は 2016年3月11日 に公開され、2016年3月11日 に最終更新されました。3496 日が経過しており、内容が古くなっている可能性があります。