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

推薦する

スプライトとフォントアイコンを実装するためのCSS

スプライト:以前は、各画像リソースは独立した画像でした。ブラウザが Web サイト内のさまざまな W...

ウェブサイトのパフォーマンスを向上させるために画像を最適化する方法

目次概要画像圧縮とはJPEG/JPG JPGの利点JPGの使用シナリオJPGの欠点MozJPEG を...

mysql 5.7.11 winx64 初期パスワード変更

公式サイトからMySQL-5.7.11-winx64の圧縮版をダウンロード。インストール後、パスワー...

MySQL 入門 - 概念

1. それは何ですか? MySQL は最も人気のあるリレーショナル データベース管理システムです。W...

フォーム入力ボックスに関するWebデザインのヒント

1. キャンセル ボタンが押されたときの破線ボックス<br /> 入力に属性値 hide...

nginx 設定ファイルパスとリソースファイルパスを表示する方法

nginx 設定ファイルのパスを表示する nginx -t 経由nginx -t コマンドの本来の機...

Ubuntu 16.04 64ビット版を3つのステップで32ビットプログラムと互換性を持たせる

ステップ1: システムのアーキテクチャを確認する dpkg --print-architecture...

CentOS6 アップグレード glibc 操作手順

目次背景glibc 2.14をコンパイルするソフトリンクを変更するやっと背景テスト環境には Cent...

NODE.JS を使用して WEBSERVER を作成する手順

目次Node.jsとはNodeJSをインストールするNode を使用して Hello World を...

Linux の運用と保守で netstat の代わりに ss コマンドを使用する方法

序文Linux サーバーを操作および管理するときに、最もよく使用されるコマンドの 1 つが nets...

Vueページの初回読み込み最適化の全プロセス

目次序文1. 画像の最適化2. .mapファイルの生成を無効にする3. ルーティングの遅延読み込み4...

一般的なフロントエンドJavaScriptメソッドのカプセル化

目次1. 値を入力し、そのデータ型を返す** 2. アレイ重複排除3. 文字列の重複排除4. ディー...

JavaScript ベースの Web 計算機の実装

この記事では、ウェブ計算機のマインスイーパゲームを実装するためのJavaScriptの具体的なコード...

適応分析と応答分析の違いを専門用語で詳しく説明

日々の開発経験と関連するオンライン情報に基づいて、アダプティブとレスポンシブの違いをシンプルでわかり...

jQueryはフェードインとフェードアウト効果を実現します

jQuery を使用してフェードインとフェードアウト効果を完成させる前に、まずいくつかのコードを理解...