Nginx で同じドメイン名を持つ複数のプロジェクトを構成する方法

Nginx で同じドメイン名を持つ複数のプロジェクトを構成する方法

Nginx を使用して同じドメイン名で複数のプロジェクトを構成するには、次の 2 つの方法があります。

  • nginxは異なるディレクトリに応じて異なるプロジェクトに配布されます
  • セカンドレベルドメイン名を有効にし、異なるプロジェクトに異なるセカンドレベルドメイン名を割り当てる

1. nginx は、異なるディレクトリに応じて異なるプロジェクトに配布されます。

サーバー{
  聞く 80;
  サーバー名 example.com;
 
  場所 ^~ /project1 {
    proxy_pass http://localhost:8081;
    proxy_set_header ホスト $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
 
  場所 ^~ /project2 {
    proxy_pass http://localhost:8082;
    proxy_set_header ホスト $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
 
  位置 / {
    proxy_pass http://localhost:8080;
    proxy_set_header ホスト $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

ここでは 3 つのプロジェクトが構成されています。

  • http://example.com/project1 は http://localhost:8081 に配布されます
  • パス http://example.com/project2 は http://localhost:8082 に配布されます。
  • その他のパスはhttp://localhost:8080に配布されます

2. セカンドレベルドメイン名を有効にし、異なるプロジェクトに異なるセカンドレベルドメイン名を割り当てる

注: 多くの学生は、最初にセカンダリ ドメイン名に A レコードをホストに追加する必要があるため無効だと言います。同じドメイン名で、同じホストに N 個のセカンダリ ドメイン名を追加できます。

サーバー{
  聞く 80;
  サーバー名 example.com;
  位置 / {
    proxy_pass http://localhost:8080;
    proxy_set_header ホスト $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

プロジェクト1

サーバー{
  聞く 80;
  サーバー名 project1.example.com;
  位置 / {
    proxy_pass http://localhost:8081;
    proxy_set_header ホスト $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

プロジェクト2

サーバー{
  聞く 80;
  サーバー名 project2.example.com;
  位置 / {
    proxy_pass http://localhost:8082;
    proxy_set_header ホスト $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

注意: これら 3 つのプロジェクトは異なるドメイン名に属しており、http 経由でプロジェクトにアクセスするとクロスドメインの問題が発生します。

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

以下もご興味があるかもしれません:
  • 同じドメイン名を持つ Nginx プロキシのフロントエンドとバックエンドの分離プロジェクトの完全な手順
  • nginx を使用して同じドメイン名で複数の Vue プロジェクトをデプロイし、リバース プロキシを使用する方法

<<:  CSS3 を使用して入力複数選択ボックスのスタイルをカスタマイズする例

>>:  折りたたまれたテーブル行要素のバグ

推薦する

VMware12 で Ubuntu19.04 デスクトップ版をインストールする (インストール チュートリアル)

1. 実験の説明仮想マシンに、 Ubuntu 19.04オペレーティングシステムを手動でインストー...

VUE v-for の :key の詳細な説明

v-for タグにキーが追加されていない場合。 <!DOCTYPE html> <...

Mac で MySQL バージョン 5.6 のパスワードを設定する方法

MySQLはインストール時に設定できますが、それより低いバージョンは設定できないようで、インストール...

リモートホスト上でスクリプトや命令を実行する Zabbix の詳細な説明

シナリオ要件1. zabbix_server Web インターフェースのスクリプト機能を使用すると、...

Docker を使用してスタンドアロン Pulsar とクラスター化された Redis をデプロイする方法 (開発アーティファクト)

目次1. はじめに: 2. ドッカー: 1 カスタムネットワーク2 展開を開始する3 ネットワークを...

CentOS7.x のアンインストールとインストール MySQL5.7 の操作手順とエンコード形式の変更方法

1. MySQL 5.7 のアンインストール1.1查看yum是否安裝過mysql CD yum li...

MySQLはデータ復旧を実装するためにbinlogログを使用する

MySQL binlog は MySQL ログの中で非常に重要なログであり、データベースのすべての ...

uniappがインターフェースドメイン名を動的に取得する方法を分析する

背景インターフェイス ドメイン名はハードコードされておらず、動的に取得されます。具体的な実装は、静的...

Windows 7 で MySQL 8.0.16 をインストールして使用する場合、パスワードの変更と Navicat への接続に関する問題が発生する

MySQL のインストール時にいくつかの問題が発生しました。オンラインで見つけた回答は似たようなもの...

テキストエリアのテキスト入力領域に改行を実装する方法

textarea 入力領域でテキストを折り返す場合は、<br/> と入力すると <...

Docker は 2003 年の問題を解決するために MySQL リモート接続を導入しました

MySQLへの接続ここでは、リモート接続に navicat を使用します。MySQL に接続する前に...

MySQL sql_mode の分析と設定の説明

昨夜、MySQL データベースにデータセットを挿入したときにエラーが発生しました。データベースは容赦...

ブラインドの特殊効果を実現するネイティブJS

この記事では、ネイティブ JS で実装されたブラインドの特殊効果を紹介します。効果は次のとおりです。...

JavaScriptはフォームデータの非同期送信を実装します

この記事では、フォームデータの非同期送信を実装するためのJavaScriptの具体的なコードを参考ま...