細かい設定
Aug 10, 2020
blog
howto
homepage
Purpose
前回の記事で最低限のサイトの作成方法を記したが,より細かい設定についてここに記す. どちらかというとHugoというよりホームページとしての作業なので記事を分けた.
作業内容
- ファビコンを設定する
- サーバの準備
- ドメインの取得
- SSL証明書の取得
ファビコンを設定する
ファビコンとはブラウザのタブや検索エンジンで表示されるあの(皆さんご存知の)アイコンである. しかし,様々なデバイス,OS,ブラウザに対応するためには複数の画像や設定ファイルを用意し htmlファイルを編集しなければならない. これじゃ、俺…ファビコンを設定したくなくなっちまうよ…
ところがこのRealFaviconGenerator を使うと,色んな環境に対応したファビコンファイル群が簡単に作成できちゃうんです! Hugoのテーマにもよるが,筆者の環境ではこのサイトで生成さしたファイルをstaticディレクトリ内に 置くだけで適用された.
サーバの準備
ここから本格的にHugoと関係ない話になっていく. サーバと言っても,自分でサーバを立てる人やレンタルサーバを借りる人など 十人十色だと思うので一般的なふわっとした話を書く.
自分でサーバを立てる
自分でサーバを立てる場合は
- グローバルIPアドレスの取得
- ドメインの取得
- DNSサーバの設置
- Webサーバの設置
といったことを全て自分でやらなければならない. 筆者はレンタルサーバを借りたのであまりアドバイス出来ないがわかる範囲で…お話します.
まず,グローバルIPアドレスとドメインの取得は業者に頼むことになる. グローバルIPアドレスについては自身のプロパイダにお願いし,ドメインは ムームードメインのような専門業者と契約しよう.
DNSサーバについては,様々なアプリがあるが,nsdやPowerDNSを使おう. 外部サイトの名前解決だけなら深い知識も要求されない.Dockerイメージを使えば すぐにサーバを建てられる.
version: "3"
services:
nsd:
image: hardware/nsd-dnssec:latest
container_name: nsd
restart: always
ports:
- "53:53"
- "53:53/udp"
volumes:
- ./conf/nsd:/etc/nsd
- ./zones:/zones
- ./db:/var/db/nsd
一応docker composeでdnsサーバを建てられるdocker-compose.yamlを貼っておく. ただし,nsdは権威サーバの機能しかないため,キャッシュサーバは別で建てなければならない. その時は
ports:
- "10053:53"
- "10053:53/udp"
のようにnsdのポートを直接公開せずに,キャッシュサーバのアプリをポート53に繋げよう. もっとも,あまりアクセスがない前提であれば権威サーバだけでもいいのかもしれない…のか?…
Webサーバを立てるのは非常に簡単である.Dockerを使えば
version: '3'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./site:/var/www/html:cached
- ./web/default.conf:/etc/nginx/conf.d/default.conf:cached
restart: always
で完了する.カレントディレクトリのsite/内にページを置いて/web/default.confにnginxの設定ファイルを置こう. 静的サイトの公開だけならコンフィグファイルもほとんどsampleどうりで済むと思われる.
レンタルサーバを借りる
上記の手順を全てすっ飛ばし,サーバを立てたという『結果』だけが残る!!
筆者はさくらインターネットのライトプラン(131円/月)を借りた. このプランは静的サイトしか公開出来ないといういぶし銀なサービスである. 逆に言えば,必然的に静的サイトを作る能力が磨かれる.
ドメインの取得
上の項でちょろっと書いたがドメインを扱う業者と契約するのが一般的である. もっともレンタルサーバなら初めからドメインが与えられるが, こんなドメインじゃ……満足できないぜ…… というひとは自分で契約しよう.
なお,無料でドメインが持てるサービスも有るが,海外のよくわからない国のドメインしか取得できなかったり, しばらくアクセスがなければ勝手にドメインを抹消されたりと制約が多いためおすすめできない.
そもそも安いドメインなら数十円〜数百円/年で契約できるのでケチケチせずに有料で契約しよう.
SSL証明書の取得
自分でサーバを立てた場合は各種コマンドでssl証明書を発行できる. レンタルサーバならそもそもサービスとして組み込まれている. どちらの場合でもLet’s Encryptという神みたいな非営利団体のおかげで無料で取得できる.
いかがだったでしょうか?(言ってみたかった)
とりあえずこれらの手順通りにやればそれっぽいサイトができるはずである.
SEO対策や広告挿入について
このホームページはあくまでも勉強のために作ったもので,いまのところ こういったものを導入する予定はない.
この先は君の目で確かめてくれ!