起因#
私が netlify でブログをデプロイした後、速度をテストしたところ、国内製品ではないにもかかわらず、速度はかなり良いと感じました。
そこで、vercel にデプロイした jsd のリバースプロキシを思いつきました。
もしリバースプロキシを netlify にデプロイすれば、cdn の速度が向上するでしょう。
やると決めました。
ps: もし私の話を聞きたくない場合は、コードの場所をクリックして直接コードを確認できます。
需要的东西#
netlify アカウント
github アカウント
查阅文档#
netlify のドキュメントを開いて確認します。
格式#
ルーティング設定に関する内容を見つけたら、これらの内容と形式が表示されます。
Netlify の設定ファイルにリダイレクトルールを指定すると、署名付きプロキシリダイレクトなどの追加機能を持つ、より構造化された設定形式を使用できます。netlify.toml ファイルでは、TOML のテーブルの配列を使用して、各リダイレクトルールを指定します。以下のキーワードが利用可能です:
from
: リダイレクトしたいパス。
to
: リダイレクト先の URL またはパス。
status
: そのリダイレクトで使用したい HTTP ステータスコード;デフォルトは 301。
force
: パス内の既存のコンテンツを上書きするかどうか;デフォルトは false。詳細についてはシャドウイングの指示を参照してください。
query
: リダイレクトに一致するために必要なクエリ文字列パラメータ。詳細についてはクエリパラメータの指示を参照してください。
conditions
: 国、役割、クッキーの存在条件など、リダイレクトに一致する条件。
headers
: プロキシリダイレクトで送信する追加のリクエストヘッダー。
signed
: 署名付きプロキシリダイレクト用の環境変数の名前。
目录反代目录匹配#
jsd のリバースプロキシは、jsd ディレクトリ内のすべてのファイルをリバースプロキシする必要があるため、ここでパスのマッチングが必要です。
原文は以下の通りです。
アスタリスクは、後に続くものに一致するスプラットを示します。
リライトやリダイレクトでスプラットを次のように使用できます:
/news/* /blog/
これにより、/news/2004/01/10/my-story のようなパスが /blog/2004/01/10/my-story にリダイレクトされます。
したがって、from
の / の後に * を追加し、to
の / の後にを追加する必要があります。
实践代码#
ここで、http の返却ステータスコードを 200 にする必要があります。
こうすることで、私の国内サーバーは再び netlify の cdn をリバースプロキシできます。
上記の設定を統合したものは以下の通りです。
ここで、以下のコードを新しく作成したnetlify.toml
という名前のファイルに入れる必要があります。
注意:このファイルはリポジトリのルートディレクトリに置く必要があります。
[[redirects]]
from = "/*"
to = "https://cdn.jsdelivr.net/:splat"
status = 200
force = true
headers = {X-From = "Netlify"}
その後、このリポジトリを github にアップロードします。
次に、こちらをクリックして、netlify で新しいプロジェクトを作成し、アップロードした github リポジトリを選択します。
そして、デプロイが完了するのを待つだけです。
完結撒花👏