VPS に Next.js をデプロイ: ビルドから HTTPS まで
運用サーバー、systemd、リバース プロキシを備えた Next.js アプリケーションを Linux VPS にデプロイし、トラフィックを切り替える前にチェックします。
Vercel がなくても Next.js アプリケーションをホストできます。選択は主に、必要なサーバー機能と必要な運用作業によって決まります。
静的ファイルとしてエクスポート可能なサイト、認証された SaaS 製品、およびオンデマンドでページを再生成するアプリケーションには、異なるホスティング契約があります。プロバイダーを選択したりフレームワークを変更したりする前に、これらのニーズから始めてください。
リクエストによってレンダリングされたページ、アクション、API、Cookie、画像、および再検証を特定します。長期間の接続、バックグラウンド作業、ストレージのニーズが含まれます。これらは、ホスティング プロバイダーの名前よりも確実に制約を決定します。
実行環境をプラットフォーム統合から分離します。ストレージ、認証、またはワークキューは、独自のコントラクトを持つことができます。ページを展開しても、それらのサービスは自動的に移行されません。
これらのモデルは、意思決定を構造化するのに役立ちます。コンテナーはパッケージ化と実行を記述し、VPS または管理されたプラットフォーム上で実行できます。これらのオプションはすべて相互に排他的ではありません。
小さな画面では、表を水平にスクロールします。
| モデル | いつでもフィット | 責任を負う仕事 |
|---|---|---|
| VPS 上のノードサーバー | 永続的なサーバープロセスが必要な場合 | プロキシ、TLS、モニタリング、アップデート、バックアップ |
| 容器 | 再現可能なリリース環境が必要な場合 | イメージ、シークレット、ボリューム、展開ライフサイクル |
| 静的エクスポート | 必要なページと機能はエクスポート可能です | ファイルホスティングと外部サービス |
| マネージドプラットフォーム | 業務の一部を委託したい | 制限、Next.js の適応、および使用量に応じたコスト |
ノード サーバーの実行は、Next.js によって文書化されたセルフホスティング パスです。プロセス、予算、リバース プロキシを管理するのはあなたです。この制御には、メモリ、エラー、証明書、ストレージの監視も含まれます。
スタンドアロン ビルドでは、トレースされた依存関係と生成されたエントリポイントを通じて、デプロイメント ファイルを削減できます。ノードの必要性がなくなるわけでも、アプリケーションのメモリ使用量が決定されるわけでもありません。ターゲット システム、ネイティブ モジュール、静的アセットを確認します。
必要なすべてのページをビルド時に生成できる場合、静的エクスポートにより操作を簡素化できます。ホストは生成されたファイルを配布します。リクエスト時の処理を必要とする機能には、別の設計または別のサービスが必要です。
このモードを選択する前に、バージョンの制限を確認してください。 Cookie に依存するプライベート ページ、サーバー アクション、またはビルド時に不明な動的ルートは、ファイル ホストでは使用できません。フォームは外部 API を呼び出すことができますが、その API は引き続き動作するサービスです。
マネージド ホスティングの場合は、サポートされている Next.js 機能、実行制限、キャッシュ動作、および地域制限を確認してください。ホームページだけではなく、アプリケーションを表すサンプルをデプロイします。
コンピューティング、帯域幅、ストレージ、維持される運用作業を比較します。交通量やピーク時の情報がなければ、あるモデルが常に安いと主張するのは誤解を招くでしょう。現在の価格と条件をプロバイダーに直接確認してください。
PRNext は、Next.js 規則に準拠したアプリケーション用の実験的なランタイムであり、部分的な互換性があります。インフラストラクチャ上で評価できます。これによりランタイムが変更され、独自のチェックが必要になります。 VPS 上のセルフホスティング Next.js も Next.js を保持できます。
PRNext Host は別個のマネージド サービスです。専用のページで可用性、条件、機能を確認してください。ランタイムを選択するには、アプリケーションの機能要件から始めて、同じワークロードを使用してリソースを測定します。