Cloudflare Workersを独自ドメイン・サブドメインで使う方法
公開日: 2020.4.1
無料で使えるエッジサーバー・Cloudflare Workersを独自ドメイン・サブドメインで使う方法をまとめました。Workerと独自ドメインの関係や具体的な設定方法を解説します。
Cloudflare Workersとドメインの関係
まずはじめに、Cloudflare Workersとドメインの関係を知っておくと、この後の設定が理解しやすいでしょう。
Cloudflare Workersとドメイン・サブドメインの連携は、Cloudflareでドメインごとに設定をします。
設定画面がドメインのメニューにあるためWorkerをドメイン個々に作成するような気がしてきますが、ここで設定するのは、
- どのWorkerと連携するか
- 連携したWorkerをどのRoute(どのURLパターン)で使うか
ということだけです。
独自ドメインからCloudflare Workersを呼び出すフローのイメージとしては、
ブラウザ
|
Cloudflare Proxy
|
Cloudflare内のWorker Route
├──> (マッチしたら) 指定したWorker(xxx.yyy.workers.devと同じ)
└──> (マッチしなかったら) CNAME or IPレコード
となります。
Cloudflare Workers自体は独立していて、Workerを作成した際に登録したサブドメインでもアクセスができますし、Cloudflareに登録しているドメインであれば、全てのドメイン・サブドメインと連携ができます。つまり、一つのWorkerを複数ドメインで共用することも可能です。
Cloudflare Workersとドメインを連携する設定
WorkerタブからRouteと連携を設定する
ドメインごとのWorkerの設定は、Workerメニューから「ルートを追加」ボタンで追加します。
ルート追加画面では、
- URLのマッチパターン
- 連携するWorker
を指定します。
URLのマッチパターンについては、CloudflareのPage Ruleと同じ書き方で指定します。「*」を変数にして、URLに一致させる書き方です。
例えば、上記の画像に記入した例(*/hogehoge.com/*)でいうと、
http://hogehoge.com/以下全て
https://hogehoge.com/以下全て
にマッチします。ルートドメインにだけ適用されます。
http://www.hogehoge.com/
https://api.hogehoge.com/
これらのサブドメインにはマッチしません。
マッチパターンについては、下記の公式ドキュメントをどうぞ。
Matching Behavior | Cloudflare
Workerで使うドメイン・サブドメインのDNSレコードに追加する
Cloudflare WorkersにRouteを登録しただけでは、
DNS PROBE FINISHED NXDOMAIN
ERR_NAME_NOT_RESOLVED
というエラーになって表示ができません。
これを回避するため、DNSレコードを追加します。
例えば、api.example.comというサブドメインに対してWorkerをひもづけたいとしたら、
CNAME api example.com
とすればOKです。大事なのは、指定したDNSレコードは「Proxy(雲マーク)」に必ずする必要があります。
仕組みとしては、先ほどのCloudflare Workersとドメインの関係で説明した通り、
- ブラウザがDNSにレコードを確認
- Cloudflareがレコードを返す
- ブラウザリクエストを飛ばす
- CloudflareのCDNを通過する時に、Workerにルートする(DNSレコード先には飛ばさない)
という形式になっています。
つまり、WorkerのRouteのマッチパターンさえ間違わなければ、DNSレコードで設定したドメインやIPに飛ぶことはありません。
逆にいうと、設定間違えるとDNSレコードの通りにリクエストが通ってしまうので、ミスなどを考えるとCNAMEやAレコードの向き先は、自ドメイン(ルートドメインなど)かインターネット上で存在しないIP(192.168.1.1など)にしておくと良いでしょう。
Cloudflare Workersを独自ドメイン・サブドメインで使う方法をみてきました。
仕組みが理解できていないと、どこでどんな設定をすれば良いのか混乱してしまいますが、仕組み自体はシンプルかつ使いやすく作られているので、一度テストで使ってみたらすぐに覚えられる内容になっています。
Cloudflare Workersの使い方については、下記の記事をどうぞ。
無料で使えるエッジコンピューティングサーバー・Cloudflare Workersで簡易APIを立ててみる
無料で使えるエッジコンピューティングサーバー・Cloudflare Workersを使って、簡易APIを立ててみます。登録方法から実際に動かす方法をまとめてみました。
価格は記載がある場合を除き、すべて税込みです。
関連キーワード
サーバレスの新着記事
- サーバレスCloudflare R2の料金体系・無料枠まとめ 2024.8.21
- サーバレスCloudflare R2をCyberduckで使う方法 2024.7.31
- サーバレスAIの学習ボット・クローラーからサイトを守るメリットとブロックする方法 2024.7.19
- サーバレスCloudFlare Pagesのビルド環境の違い 2024.5.9
- サーバレスCloudflare D1の料金体系・無料枠まとめ 2024.3.25
- サーバレスCloudflare PagesでNuxt3のビルド時に「ENOENT: no such file or directory」エラーの対象方法 2024.3.21
- サーバレスGitlab CLIでpush時に「glab auth not found」となった際の対処方法 2024.3.19
- サーバレスCloudFlare Workers AIの料金体系・無料枠まとめ 2024.2.2