抹桥的博客
Language
Home
Archive
About
GitHub
Language
主题色
250
1017 文字
5 分
HexoをVPSにデプロイし、HTTPSを有効にする

先週、遊びでVPSを購入しました。BandwagonHostから購入したもので、年間19ドルです。コストパフォーマンスはまずまずだと思います。設定は以下の通りです。

10 GB SSD RAID-10 Disk Space
256 MB RAM
500 GB Transfer
Gigabit port
Multiple locations

こちらが購入リンクです。

購入後、まずSSをセットアップして、インターネット規制の問題を解決しました。その後、ブログも移行してしまおうかと考えました。SSだけではそれほどトラフィックを消費しないからです。そこで、すぐに取り掛かり、いくつかの検索と調査を経て、目標を達成しました。

操作手順を簡単に記録しておきます。

クライアント側:#

  1. sshの設定
  2. ローカルでのhexoデプロイ

サーバー側:#

  1. 必要なソフトウェアのインストール a. Git b. Nginx
  2. セキュリティと利便性のため、hexoデプロイ専用ユーザー git を新規作成し、適切な権限を付与します。
  3. sshを設定し、クライアントとの通信経路を確立します。
  4. 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}
  1. Nginxを設定し、Nginxサービスを起動します。

遭遇した問題#

  1. VPSアドレスにアクセスすると、直接 403 forbidden が表示されました。権限の問題かと思い、インターネットで長時間調べましたが解決しませんでした。最終的に、ウェブサイト用のディレクトリが空であることが判明しました。
  2. 問題1から、Git hooksが全く機能していないと推測しました。ウェブサイトを置くフォルダがずっと空だったからです。そこで、Git hooks内のコマンドを手動で試したところ、rm -rf ${PUBLIC_WWW} を実行した際に、システムから操作拒否のメッセージが表示されました。これは権限の問題だと判明し、gitユーザーにウェブサイトを置く www/hexo の権限を付与しました。
  3. サーバー再起動後、sshに問題が発生しました。様々な調査の結果、これも権限の問題であることが判明し、gitユーザーの.sshファイルに 700 の権限を付与しました。

www.kisnows.com を入力すると、アクセスに成功しました。やったー、嬉しい!しかも、国内からのアクセス速度も以前より少しだけ速くなりました。ほんの少しですが。

SSLも導入しようと思いました。そうしないと時代遅れですし、最近は通信事業者のハイジャックが深刻だからです。大きなコストをかけたくなかったので、CloudFlareが提供する無料SSLを利用することにしました。ブラウザからCloudFlareの間だけが暗号化されますが、何もないよりはマシです。 そこで、DNSサービスをDNSPodからCloudFlareに切り替え、CloudFlareの助けを借りてサイト全体でHTTPSを有効にしました。同時に、トップドメインをwww付きのサブドメインにリダイレクトしました。方法は以下の通りです。

HTTPSの有効化#

CloudFlare管理センターの「Crypto」セクションに入ります。 ssl

非HTTPSアクセスをHTTPSに強制リダイレクト#

「Page Rules」モジュール内にあります。 ssl 上図1のように、「always use https」を選択し、図の最初のルールを設定します。

http://*.kisnows.com/*

これで、一致するすべてのアクセスがHTTPS経由になります。

トップドメインをwww付きのサブドメインにリダイレクト#

これもPage Rulesを使用します。上図2のように、「Forwarding」を選択し、以下のように設定すればOKです。 redirect 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 日が経過しており、内容が古くなっている可能性があります。

HexoをVPSにデプロイし、HTTPSを有効にする
https://blog.kisnows.com/ja-JP/2016/03/11/hexo部署到vps并启用https/
作者
Kisnows
公開日
2016-03-11
ライセンス
CC BY-NC-ND 4.0