nginx で複数のフロントエンド プロジェクトをデプロイするいくつかの方法

nginx で複数のフロントエンド プロジェクトをデプロイするいくつかの方法

nginx を使用して 1 つのサーバーに複数のフロントエンド プロジェクトをデプロイする 3 つの方法をまとめました。

  • ドメイン名ベースの構成
  • ポートベースの構成
  • 場所の設定に基づいて

始める前に、nginxインストールのデフォルト設定ファイルを見てみましょう: /etc/nginx/nginx.confファイル

図からわかるように、 include /usr/nginx/modules/*.conf 、この文の目的は、nginx の起動時に /usr/nginx/modules/ ディレクトリ内のすべての *.conf ファイルをロードすることです。 したがって、管理の便宜上、このディレクトリの下に独自の xx.conf ファイルを定義することができます。ただし、.conf で終わる必要があることに注意してください。

前置きはここまでにして、多くの企業がオンラインで使用している最も一般的な方法についてお話ししましょう。

ドメイン名ベースの構成

ドメイン名の設定に基づいて、まずドメイン名の解決が設定されていることが前提となります。たとえば、www.fly.com というドメイン名を購入したとします。 次に、バックグラウンドで 2 つの第 2 レベル ドメイン名 (a.fly.com と b.fly.com) を構成しました。

設定ファイルは次のとおりです。

a.fly.com の設定ファイルを設定します。

vim /usr/nginx/modules/a.conf

サーバー{
        聞く 80;
        サーバー名 a.fly.com;
        
        位置 / { 
                ルート /data/web-a/dist;
                インデックス index.html;
        }
}

b.fly.com の設定ファイルを設定します。

vim /usr/nginx/modules/b.conf

サーバー{
        聞く 80;
        サーバー名 b.fly.com;
        
        位置 / { 
                ルート /data/web-b/dist;
                インデックス index.html;
        }
}

この方法の利点は、ホストがポート 80 を開くだけで済むことです。その後、第 2 レベルのドメイン名に直接アクセスすることでアクセスできるようになります。

ポートベースの構成

設定ファイルは次のとおりです。

a.fly.com の設定ファイルを設定します。

vim /usr/nginx/modules/a.conf

サーバー{
        8000を聴く;
        
        位置 / { 
                ルート /data/web-a/dist;
                インデックス index.html;
        }
}

# nginx ポート 80 の設定 (セカンダリドメイン名 a をリッスン)
サーバー{
        聞く 80;
        サーバー名 a.fly.com;
        
        位置 / {
                proxy_pass http://localhost:8000; #転送}
}

b.fly.com の設定ファイルを設定します。

vim /usr/nginx/modules/b.conf

サーバー{
        8001を聴く;
        
        位置 / { 
                ルート /data/web-b/dist;
                インデックス index.html;
        }
}

# nginx ポート 80 の設定 (b セカンダリドメイン名をリッスン)
サーバー{
        聞く 80;
        サーバー名 b.fly.com;
        
        位置 / {
                proxy_pass http://localhost:8001; #転送}
}

ご覧のとおり、この方法では合計 4 台のサーバーが起動し、構成は最初の方法よりもはるかに複雑になるため、お勧めできません。

場所の設定に基づいて

設定ファイルは次のとおりです。

a.fly.com の設定ファイルを設定します。

vim /usr/nginx/modules/ab.conf

サーバー{
        聞く 80;
        
        位置 / { 
                ルート /data/web-a/dist;
                インデックス index.html;
        }
        
        場所 /web-b { 
                エイリアス /data/web-b/dist;
                インデックス index.html;
        }
}

注: このように構成すると、場所/ディレクトリがルートになり、その他はエイリアスを使用する必要があります。

ご覧のとおり、この方法の利点は、サーバーが 1 つだけであり、セカンダリ ドメイン名を構成する必要がないことです。二級目錄はフロントエンドプロジェクトで設定する必要があります

React の設定については、https://blog.csdn.net/mollerlala/article/details/96427751 を参照してください。

vue の設定については、https://blog.csdn.net/weixin_33868027/article/details/92139392 を参照してください。

nginx で複数のフロントエンド プロジェクトをデプロイするいくつかの方法についての記事はこれで終わりです。nginx で複数のフロントエンド プロジェクトをデプロイする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • フロントエンドに必要なNginx設定の詳細な説明
  • Nginx を使用してフロントエンドのクロスドメイン問題を解決する方法
  • フロントエンド開発のための Nginx 構成 (シナリオ)
  • $remote_addr に基づく nginx フロントエンド配布方法の詳細な説明
  • Nginx がフロントエンド リソースへのクロスドメイン アクセスの問題をどのように解決するかの詳細な説明
  • フロントエンドでnginxが何ができるかの詳細な説明

<<:  MySQL の最適化: 高品質の SQL 文を書く方法

>>:  セマンティック HTML タグの紹介

推薦する

CSS3 アニメーション ボールローリング JS コントロールアニメーション一時停止

CSS3 はアニメーションを作成でき、多くの Web ページのアニメーション画像、Flash アニメ...

ffmpeg 中国語パラメータの説明と使用例

1. ffmpeg がビデオ ファイルをプッシュする場合、オーディオとビデオのエンコード形式は H2...

VUE 入門 イベント処理の学習

目次1. 関数バインディング2. パラメータと$eventを使用する3. 1つのイベントに複数の関数...

React を使って小さなプログラムを書くための Remax フレームワークのコンパイル プロセス分析 (推奨)

Remax は、実行時に構文制限のないソリューションを採用した React を使用して小規模なプロ...

HTML要素のID属性とName属性の違い

今日、私は <a href="#13"></a> につい...

Win7 インストール MySQL 5.6 チュートリアル図

目次1. ダウンロード2. インストール3. my.ini ファイルを設定する(デフォルトのエンコー...

Linux カーネルプログラミングにおけるコンテナの of() 関数の紹介

序文Linux カーネルプログラミングでは、マクロ関数 container_of(ptr, type...

MySQLのスペースをクリーンアップするいくつかの具体的な方法

目次序文1. ファイルのディスク使用量を確認する1.1 ディスク容量の使用状況を確認する1.2 ディ...

Vueのカスタムイベントコンテンツ配信の詳細な説明

1. これは理解するのが少し複雑なので、原理を注意深く読んで自分で入力していただければ幸いです。 &...

カスタムスクロールバー効果を実現するJavaScript

実際のプロジェクトでは、上下のスクロール バーと左右のスクロール バーは DIV 内にないため、右の...

Vue の基本 MVVM、テンプレート構文、データバインディング

目次1. Vueの概要Vue公式サイトMVVM アーキテクチャ パターンVue の紹介2. Vueを...

MySQL 8.0.18 のインストールと設定方法のグラフィック チュートリアル (Linux)

この記事では、Linux MySQL 8.0.18のインストールと設定のグラフィックチュートリアルを...

Vue3 がデータ監視を実装するためにプロキシを使用する理由の分析

Vue データの双方向バインディング原則ですが、この方法には欠点があり、配列とオブジェクトの部分的な...