ネットワーキングパブリックネットワーキング

パブリックネットワーキング

「パブリックネットワーキング」では、サービスをインターネットに公開することができます。

Zeabur は、サービスにアクセスするための 2 つの方法を提供しています:

  • HTTP サービス:Zeabur が提供するドメイン名またはカスタムドメイン名を使用してサービスにアクセスします。
  • 非 HTTP サービス:割り当てられたホスト名とポートを使用してサービスにアクセスします。

ドメインのバインディング

ドメイン は、サービスがインターネットからアクセス可能になるための一意の識別子です。たとえば、このウェブサイトのドメイン名は zeabur.com です。

サービスにドメインをバインドするには、まず Zeabur ダッシュボードのサービスに移動し、ドメイン タブを展開します。サービスにドメインを作成するための2つのオプションが表示されます。

2つのドメインバインディングオプション

ドメインの生成

ドメインの生成」オプションでは、利用可能であれば zeabur.app サフィックス付きのドメイン名(例:your-service.zeabur.app)を作成できます。これは、サービスを公開するための最も簡単な方法です。

zeabur.app ドメインのバインディング

zeabur.app ドメインが設定されると、Zeabur が提供するドメイン名を使用してサービスにアクセスできます。

バインディングされた zeabur.app ドメイン

カスタムドメイン

自分のドメイン名を使用する場合は、「カスタムドメイン」オプションを選択します。

まず、入力ボックスにドメイン名を入力し、「ドメインを作成」ボタンをクリックします。

カスタムドメインのバインディング

ドメイン名を追加すると、ドメインの DNS 情報が表示されます。

DNS 設定

ドメインの DNS レコードを手動で設定する必要があります。たとえば、Cloudflare を使用している場合は、「DNS」→「レコード」セクションで、Zeabur が提供する設定を使用して必要なレコードを追加できます。別の DNS プロバイダを使用している場合は、CNAME レコードの追加手順については、そのプロバイダのドキュメントを参照してください。

Cloudflare での DNS 設定

トラフィックコストを削減し閲覧速度を向上させるために、Cloudflare の CDN(オレンジのクラウドを有効化)を使用できます。ただし、Cloudflare の SSL/TLS 暗号化モード では、Full (Strict) を選択することはできません。自己署名証明書により接続エラーが発生する可能性があるためです。また、Cloudflare は第 3 レベル以上のカスタムドメインの SSL 証明書発行をサポートしていません(*.example.com はサポートされていますが、*.sub.example.com はサポートされていません)。この場合、Zeabur サーバーへの直接接続に戻すことができます(オレンジのクラウドを無効化)。

DNS レコードを設定した後、変更が反映されるまで数分かかる場合があります。完了すると、カスタムドメインを使用してサービスにアクセスできるようになります。

バインディングされたカスタムドメイン

ルートドメインの DNS 設定

ルートドメイン(example.com)をサブドメイン(www.example.com)の代わりに使用したい場合、つまり Zone apex レコード を設定する場合、Zeabur が提供する DNS レコードを修正する必要があるかもしれません。

Cloudflare をご利用の場合、Cloudflare には CNAME Flattening 機能が組み込まれており、CNAME をルートドメインで使用可能な A レコードに自動的に変換します。そのため、このセクションはスキップしていただいて構いません

他の DNS プロバイダーを使用しており、Zeabur が CNAME レコードを提供している場合、その CNAME レコードを A レコードに変換する必要があるかもしれません。

  1. Zeabur はドメインをバインドする際、hkg1.clusters.zeabur.com などのホスト名を指す CNAME を提供します。

  2. Google Admin Toolbox - Dig を開き、このホスト名を入力します。

    Google Admin Toolbox - Dig


  3. A レコードの IP アドレスが表示されます。この IP アドレスを対応する DNS フィールドに入力してください。

注意:Zeabur は CNAME が指す A レコードのアドレスを更新する可能性があります。この方法で設定を行った場合、IP アドレスの更新予定の通知や、何らかの理由で IP アドレスが変更された際に、DNS レコードの更新にご協力いただく必要が生じる可能性があります。

リダイレクトの設定

ドメインを別の URL にリダイレクトするには、「別のドメインにリダイレクト」機能を使用します。これにより、ドメインが指定されたターゲットドメインに一時的に(307)リダイレクトされます。

リダイレクト用にカスタムドメインをバインド

ドメインの削除

ドメインを削除するには、ドメイン名の横にあるゴミ箱アイコンをクリックします。

削除ボタン

次に、入力ボックスにドメイン名を入力し、「削除」ボタンをクリックして確認します。

ドメイン削除の確認ダイアログ

割り当てられたホスト名とポートの使用

非 HTTP サービスの場合、割り当てられたホスト名とポート(ポートフォワーディングとも呼ばれます)を使用してアクセスできます。たとえば、ポート 25565 で実行されている Minecraft サーバーがある場合、hkg1.clusters.zeabur.com:34567 のように割り当てられたホスト名とポートを使用してアクセスできます。

割り当てられたホスト名とポート

ホスト名とポートは通常は固定されていますが、変更される可能性もあります。そのため、これらが永久に固定されていると仮定しないことをお勧めします。また、サービス内で独自のポートフォワーディングを設定することも可能です。

ポート設定

Git サービス

Git サービスは 1 つのポートしかリッスンできません。それは Dockerfile に定義されているポートか、未定義の場合(または Dockerfile を使用しない場合)は 8080 です。ポート番号が将来変更される可能性を考慮して、コードに 8080 を直接記述することは推奨されません。代わりに、$PORT 環境変数を使用することをお勧めします。

以下は、$PORT 環境変数を使用するコード例です:

server.js
const port = process.env.PORT || 8080;
 
app.listen(port, () => {
  console.log(`Server is running on port ${port}`);
});
main.go
package main
 
import (
    "fmt"
    "net/http"
    "os"
)
 
func main() {
    port := os.Getenv("PORT")
    if port == "" {
        port = "8080"
    }
 
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello, World!")
    })
 
    http.ListenAndServe(":"+port, nil)
}

Docker サービス

Docker サービスの設定 時にポートを設定できます。詳細については、Docker サービス設定ドキュメントの「Ports」セクションを参照してください。