同じドメイン名を持つ Nginx プロキシのフロントエンドとバックエンドの分離プロジェクトの完全な手順

同じドメイン名を持つ Nginx プロキシのフロントエンドとバックエンドの分離プロジェクトの完全な手順

フロントエンド プロジェクトとバックエンド プロジェクトは分離されており、フロントエンドとバックエンドはドメイン名を共有します。フロントエンド プロジェクトとバックエンド プロジェクトは、ドメイン名の後の URL プレフィックスによって区別されます。

vue + php プロジェクトを例に挙げます。サーバー モジュールの nginx 構成に直接移動します。

サーバ
 {
 聞く 80;
 #listen [::]:80 default_server ipv6only=on;
 server_name demo.com; #プロジェクトのドメイン名を設定します index index.html index.htm index.php;

 # 1. 処理場所のフロントエンドへの転送 /
 {
  # フロントエンドのパッケージ化後の静的ディレクトリ alias /home/wwwroot/default/vue-demo/dist/;
 }

 # 2. 処理場所 /api/ のバックエンドに転送します {
  try_files $uri $uri/ /index.php?$query_string;
 }

 # 3. 最後に、PHPはここでfpmに転送されます
 場所 ~ [^/]\.php(/|$)
 {
  # バックエンド プロジェクト ディレクトリ ルート /home/wwwroot/default/demo/public/;
  127.0.0.1 のパスは 9000 です。
  fastcgi_pass unix:/tmp/php-cgi.sock;
  fastcgi_index インデックス.php;
  fastcgi.conf をインクルードします。
  pathinfo.conf をインクルードします。
 }

 # 4. バックエンドの静的リソースの処理 location /public/ {
  エイリアス /home/wwwroot/default/demo/public/uploads/;
 }

 #エラーページ 404 /404.html;

 access_log /home/wwwlogs/access.log メイン;
}

簡単な説明

  • ドメイン名の後にプレフィックス /api/ が続く場合、処理のためにバックエンドに転送されます。
  • ドメイン名の後に /uploads/ プレフィックスを追加すると、バックエンドの静的リソースにアクセスします。
  • 正確な位置マッチングの原則により、上記以外のすべての訪問は、フロントエンド ページにアクセスする最初の場所に転送されます。

例えば:

記事リストインターフェースにアクセス

https://demo.com/api/posts を取得します。

アップロードされた画像にアクセスする

アップロード/2022/web/xxx.jpg を取得

フロントエンドのホームページにアクセス

https://demo.com/ から入手

記事ページをご覧ください

https://demo.com/posts を取得

PS: エイリアス パスの最後には / が必要です。

要約する

Nginx プロキシ同一ドメイン名フロントエンドとバックエンド分離プロジェクトに関するこの記事はこれで終わりです。Nginx プロキシ同一ドメイン名フロントエンドとバックエンド分離プロジェクトに関するその他の関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • NodeJS によるフロントエンドとバックエンドの分離の考え方と実践 (VI) Nginx + Node.js + Java のソフトウェアスタック展開実践
  • フロントエンドとバックエンドを分離した nginx 構成を展開するための完全な手順
  • nginx+vue.jsを使用してフロントエンドとバックエンドを分離するサンプルコード
  • Nginxはフロントエンドとバックエンドの分離を実現します
  • VueとNginxをベースにしたフロントエンドとバックエンドのデプロイメントチュートリアルの詳細な説明

<<:  Vue3 でタイマーコンポーネントをカプセル化する方法

>>:  count(1)、count(*)、count(列名)の実行の違いの詳細な説明

推薦する

JSで画面録画機能を作成する

OBS studioかっこいいですが、 JavaScriptもっとかっこいいです。では、 JavaS...

MySQL のデフォルトのストレージ エンジンを変更する方法

mysql ストレージ エンジン: MySQL サーバーはモジュール スタイルを採用しており、特にス...

mysql のファイル mysql-bin.000001 とは何ですか? 削除できますか?

ポートを使用して MySQL をインストールした後、しばらくすると /var の容量が不足しているこ...

Docker インストール tomcat dubbo-admin インスタンス スキル

1. tomcatイメージをダウンロードする docker pull tomcat:8.5.29 2...

ページ内の検索エンジンの呼び出しはBaiduを例に挙げています

今日、突然、自分のウェブページで Google や Baidu のような強力な検索エンジンを呼び出す...

Vueモバイル端末が指のスライド効果を実現

この記事の例では、Vueモバイル端末で指のスライド効果を実現するための具体的なコードを紹介します。具...

Linux サーバーが処理できる接続数をご存知ですか?

序文まず、TCP 接続を識別する方法を見てみましょう。システムは、(src_ip、src_port、...

nginx-ingress-controller ログ永続化ソリューションのソリューション

最近、nginx-ingress-controller のアプリケーションについて説明した公開アカウ...

Vue+echart で 2 列チャートを実現

この記事では、vue+echart を使って二重列チャートを実現するための具体的なコードを参考までに...

SQLのさまざまな結合サマリーの詳細な説明

SQL 左結合、右結合、内部結合、自然結合 さまざまな結合の概要SQL には、左結合、右結合、内部結...

Mac に mysql5.7 をインストールするための完全な手順 (画像とテキスト付き)

最近、Mac システムを使用して、ローカル Web サーバー環境を構築する準備をしていました。 Ma...

MySQLプリコンパイル機能の詳細な説明

この記事では、MySQLのプリコンパイル機能について紹介します。具体的な内容は以下のとおりです。 1...

Alibaba Cloud Ubuntu 16.04でpptpdサービスを構築する方法

1. PPTP VPNを構築するには、ポート1723とGREプロトコルを開く必要があります。 1. ...

JS でシンプルな画像カルーセル効果を実現

この記事では、シンプルな画像カルーセル効果を実現するためのJSの具体的なコードを参考までに紹介します...

Echart Bar の 2 列チャート スタイルの最も完全な詳細な説明

目次序文インストールと設定1. Echartsをインストールする2. Echartsをグローバルに導...