プロジェクト

全般

プロフィール

機能 #584

完了

静的ウェブサイトを楽にホストする

nop_thread さんが3ヶ月前に追加. 3ヶ月前に更新.

ステータス:
終了
優先度:
通常
担当者:
開始日:
2024/12/23
期日:
進捗率:

100%

一時中断:
いいえ
pinned:
いいえ
リマインド予定日:
前回確認日:
2024/12/25
管理外残件あり:

説明

CI/CD とかをどう使うか (そもそも使うのか) まで含めて、複数ドメインでの静的サイトの公開を楽にする方法を考えたい。


関連するチケット 1 (1件未完了0件完了)

関連している 鯖缶 - 機能 #342: 旧 VLAN のホスト群 (VM/CT 含む) を新 VLAN へ移行する進行中nop_thread2024/05/11

操作

nop_thread さんが3ヶ月前に更新

今のところ思い付くもので一番楽そうなのは、 rrsync (not typo) を使って rsync over SSH で直接ファイルを転送できるようにして、そこから nginx なり Caddy なりでファイルを公開し、 Cloudflare Tunnel に繋ぐという仕組み。

欠点は以下のとおり:

  • サイトごとに SSH 鍵対が必要
    • authorized_keys で鍵ごとに command= を指定する都合。
    • もし複数サイトまとめてアクセス可能にするならそれでも良いが、代償に CI/CD でミスしたとき他サイトまでまとめて破壊するリスクが発生する。
  • レプリカを用意するのは面倒そう
    • rsync は1コマンドで destination はひとつなので、複数サーバへの転送はサーバの数だけ rsync を実行する必要があるし、サーバの数や名前が動的になると push 型では扱いづらい。
    • Cloudflare Tunnel や reverse proxy ではバックエンドのサーバを複数用意して可用性を確保したり負荷分散できるが、これを活用しづらい。

nop_thread さんが3ヶ月前に更新 · 編集済み

動的なレプリカを使うつもりがあるなら、 push 型よりも pull 型にした方が良さそう。
それこそ中央リポジトリに rsync で同期して各ノードがそこから自前で pull してくるとかでも良いが、それならいっそ NAS とかを使うのも良いのかもしれない。
(ところで同期頻度はどうすればいいのだろう…… rsync 外で last modified 情報を監視しておくとかが無難か?)

nop_thread さんが3ヶ月前に更新

pull 型にするなら同期途中の状態を引っ張ってこないよう制御が必要になる。
本質的な困難ではないが、考えることが多少増える。

nop_thread さんが3ヶ月前に更新

MinIO と rclone でリポジトリを用意して reverse proxy から直接 HTTP リクエストを転送するなどの荒技もあるにはあるが、オーバーキルなうえ普通の HTTP サーバより負荷の高そうな MinIO を後ろに置いても仕方がないので、これは却下。
データサイズが巨大だと意味もあるかもしれないが、今回はそのような想定は (今のところ) ない。

nop_thread さんが3ヶ月前に更新

  • ステータス新規 から 進行中 に変更

nop_thread さんが3ヶ月前に更新

  • 関連している 機能 #342: 旧 VLAN のホスト群 (VM/CT 含む) を新 VLAN へ移行する を追加

nop_thread さんが3ヶ月前に更新 · 編集済み

pages ブランチのようなものを作って git-sync とかで同期するか rsync (rrsync) で同期するかの二択で悩んでいる。
何かあったときのための版管理を考えるとブランチを作る方が楽だが、メディアが大量にあるとかの状況だとリポジトリ外にファイルを置いて rsync できる方が嬉しいのではないかという懸念もある。

nop_thread さんが3ヶ月前に更新

  • ステータス進行中 から 終了 に変更
  • 進捗率0 から 100 に変更
  • 前回確認日2024/12/23 から 2024/12/25 に変更

とりあえず rrsync で用意した。
当面は手動で rsync を叩いてデプロイすることにする。
これ以上のことは必要を感じてから別途検討する。

他の形式にエクスポート: Atom PDF