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 タグの紹介

推薦する

左右の幅を固定し、中央の幅を適応させたHTMLレイアウトのソリューションの詳細な説明

この記事では、次のように、誰にでも共有できる左右幅固定のミドルアダプティブ HTML レイアウトソリ...

EChartsマウスイベント処理方法の詳細な説明

イベントとは、クリック、マウスオーバー、ページの読み込み後にトリガーされる読み込みイベントなど、ユー...

JSは検証コードのランダム生成を実装します

この記事の例では、検証コードのランダム生成を実現するためのJSの具体的なコードを参考までに共有してい...

CentOs でノード バージョンを手動でアップグレードする方法

1. 対応するNode.jsパッケージを見つけます。https://nodejs.org/downl...

vue-video-player を使用してライブ放送を実現する方法

目次1. vue-video-playerをインストールする2. vue-video-playerを...

Linux で誤って削除したメッセージ ファイルを復元する方法

プロセスで使用されていて、誤って削除されたファイルがある場合、それらを回復することができます。プロセ...

CSS3は、ズームと回転を実現するためにscale()とrotate()を使用します。

1. scale() メソッドズームとは「縮小」と「拡大」を意味します。 CSS3 では、scal...

CSS スタイルが機能しない (史上最も完全な解決策の概要)

ページを作成するときに、記述した CSS スタイルが有効にならないことがあります。この現象にはさまざ...

Vueバインディングクラスとバインディングインラインスタイルの実装方法

目次バインディングクラスインラインスタイルのバインディングバインディングクラス方法1:オブジェクト構...

シャトルボックス機能を実装するためのVueの詳細なコード

Vue - シャトルボックス機能を実装します。効果図は次のようになります。 CS 。移行{ ディスプ...

aタグ内のテキストを非表示にして画像を表示するには?360モードレンダリングに対応

多くの場合、画像を表示する<a>タグのスタイルに遭遇しますが、タグ内にテキストがあり、そ...

MySQL 8.0 再帰クエリの簡単な使用例

序文この記事では、MySQL 8.0 の新機能を使用して再帰クエリを実装します。詳細なサンプル コー...

vue-router のハッシュモードと履歴モードの違い

vue-routerには2つのモードがありますハッシュモード履歴モード1. シングルページアプリケー...

WINDOWS での MYSQL のインストールに関する詳細なチュートリアル

1. インストールパッケージをダウンロードする- お使いのコンピュータシステムに応じて適切なバージョ...

Vueでデータを読み取るためにこれを悪用しないでください

目次序文1. これを使用してデータ内のデータを読み取るプロセス2. Dep.target はいつ存在...