hexoアプリケーションのWebサーバ・SSLの設定

前回までのまとめ

前回、hexoアプリケーションのテーマを決めました。今回は細かい設定とサーバー側の設定を行っていきます。

ドメインの設定

リクエストを受け付けるサブドメインを作成します。一旦、business.book-reviews.blogとします。サブドメインの設定は契約しているバリュードメインの管理画面で行います。

久々見ると忘れてしまっていて、どこからDNS設定を行っていいかわかりません…しばらく探したあと、左メニューのドメインをクリックするとページが遷移します(フォーカスをあてた後のメニューではありません)。その中にドメインの設定操作があり、その中にDNSレコード/URL転送の設定があります。対象のドメインを選択すると、大きなテキストボックスがあり、その中にDNSレコードを入力します。

現状、

1
a * 18.182.54.190

となっているため、どのサブドメインでもアクセスできます。これを機に限定して設定します。

1
2
a book-reviews.blog. 18.182.54.190
a business.book-reviews.blog. 18.182.54.190

TTLが切れた後にdigコマンドで確認します。

1
2
3
4
5
6
7
8
$ dig book-reviews.blog a
(省略)
;; QUESTION SECTION:
;book-reviews.blog. IN A

;; ANSWER SECTION:
book-reviews.blog. 113 IN A 18.182.54.190
(省略)

ちゃんと名前は引けています。新しく追加したドメインも確認します。

1
2
3
4
5
6
7
8
$ dig business.book-reviews.blog a
(省略)
;; QUESTION SECTION:
;business.book-reviews.blog. IN A

;; ANSWER SECTION:
business.book-reviews.blog. 152 IN A 18.182.54.190
(省略)

大丈夫そうですね。念のため、設定していないドメインで名前が引けないことも確認しておきます。

1
2
3
4
5
6
7
8
$ dig test.book-reviews.blog a
(省略)
;; QUESTION SECTION:
;test.book-reviews.blog. IN A

;; AUTHORITY SECTION:
book-reviews.blog. 120 IN SOA ns1.value-domain.com. hostmaster.book-reviews.blog. 2020120716 3600 900 604800 120
(省略)

名前が引けないことを確認しました。

これでドメインの設定は完了です。

nginxの設定

次にnginxの設定を行います。
最低限の設定のみ行います。

1
2
3
4
5
6
7
server {
server_name business.book-reviews.blog;

location / {
proxy_pass http://localhost:8081/;
}
}

設定を繁栄します。

1
$ sudo systemctl reload nginx

反映されたことを確認します。ブラウザでhttp://business.book-reviews.blogにアクセスして、502 BadGatewayがかえってくることを確認します。

確認できたので、次はSSLの設定を行います。

SSLの設定

以前let’s encryptの導入を行ったページを参考に設定を行っていきます。

インストールはされているので、CertBotの実行から行います。

1
2
3
4
5
6
7
8
9
10
11
$ sudo certbot --nginx
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: book-reviews.blog
2: business.book-reviews.blog
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 2

今回はドメインが2つあるので、選択肢が2つ出てきます。2を選んで実行します。

1
2
Congratulations! You have successfully enabled
https://business.book-reviews.blog

無事HTTPSが有効になりました。

nginxの設定で、proxy_set_headerがまるっと抜けていたので追記してリロードします。

追記した内容

1
2
3
4
5
proxy_set_header    Host    $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

ブラウザでhttps://business.book-reviews.blogにアクセスし、同じように502 BadRequestが返ってくることが確認できました。

まとめ

新しいhexoアプリケーションのWebサーバ、SSLの設定を行いました。

次回は、新しくインストールするhexoアプリケーションと既存のhexoアプリケーションのバージョンの差が機になるので、既存のhexoのバージョンアップを行いたいと思います。