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を立ててみます。登録方法から実際に動かす方法をまとめてみました。
価格は記載がある場合を除き、すべて税込みです。
関連キーワード
サーバレスの新着記事
サーバレス複数サイト運営をする際の無料サーバー使いこなし術 2022.9.5
サーバレスHerokuの無料プランが終了へ。移行するならどこがいい? 2022.8.26
サーバレスCloudflare Pages Functionsをローカルでテストする方法 2022.8.12
サーバレスCloudfalre Pagesでリダイレクトを使う方法 2022.8.11
サーバレスCloudflare WorkersとCloudflare Pages Functionの違いと使い分け 2022.8.10
サーバレスCloudinaryの自分のデータを自動でバックアップさせる方法 2022.8.1
サーバレスいまさら聞けないレンタルサーバーとHerokuの違い 2022.5.10
サーバレスCloudflare Pagesでアクセス制限を実装する 2022.4.26