nginxとバックエンドポート間の競合の解決策

nginxとバックエンドポート間の競合の解決策

質問:

Alice 管理システムを開発しているときに、すべてのバックエンド インターフェイスが最初のリクエスト時に 404 エラーを生成したが、2 回目には成功したことがわかりました。

位置決めの問題

nginx のエラーログを確認したところ、以下のエラーが見つかりましたhtmlフォルダの権限が不十分で、ファイルを書き込めないためにエラーが発生したと勘違いしていました。権限を開いても、まだ動作しないことがわかりました。Google で検索しましたが、解決策が見つかりません。とりあえず置いておきました。翌日またエラーを探していたら、誤ってポート8081を開けてしまいました。localhost localhost:8081127.0.0.1:8081にアクセスすると内容が違っていました。

その時、ポートの競合があるのではないかと思い、ファイルを開いてみると、 nginxの設定ファイルと私たちのプロジェクトの設定ファイルがありました。ポートの競合があることがわかりました。バックエンドにアクセスすると、リクエストが nginx の静的ファイルに送信されるため、404 エラーが生成されます。

サーバー{
  聞く 8081;
  サーバー名 127.0.0.1;

  #文字セット koi8-r;

  #access_log ログ/host.access.log メイン;

  位置 / {
    ルートhtml;
    インデックス index.html index.htm;
  }
サーバー{
  # プラットフォームポート listen 8100;
  server_name ローカルホスト;

  位置 / {
    proxy_pass http://localhost:4200/;
  }

  場所 /api/ {
    proxy_pass http://localhost:8081/;
  }
  #エラーページ 404 /404.html;

  # サーバーのエラーページを静的ページ /50x.html にリダイレクトします
  #
  エラーページ 500 502 503 504 /50x.html;
  場所 = /50x.html {
    ルート /usr/share/nginx/html;
  }
}

回避策

プロジェクトのバックエンド ポートと nginx 構成を変更します。

残る問題:

バックグラウンドを起動すると、 localhost:8081にアクセスした場合と127.0.0.1:8081バックグラウンドを閉じると、同じ内容が表示されます。

理由は次の通りです。
localhost: システムは、このマシン上の現在のユーザーの権限を使用してアクセスします
127.0.0.1: これは、ローカルマシンがネットワーク経由でアクセスされることを意味します

nginx がバックエンドと競合する場合、なぜ奇数で nginx 内部ファイルにアクセスし、偶数でバックエンドにアクセスするのでしょうか (なぜ同じインターフェースを占有できるのでしょうか)?

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Nginx リバース プロキシと負荷分散の実践
  • Nginx におけるサーバーとロケーションのマッチングロジックの詳細な理解
  • Nginx のアクセス制御とパラメータ調整方法
  • Django+uwsgi+Nginxのベストプラクティスをオンラインで詳細に解説
  • Nginx のパラメータをオンにして Web パフォーマンスを 3 倍向上させる方法
  • PHP を使用して Nginx ログのユーザーエージェント データをカウントする方法
  • CentOS7 のシステム サービスに Nginx を追加する方法
  • nginx を使用して同じドメイン名で複数の Vue プロジェクトをデプロイし、リバース プロキシを使用する方法
  • Nginx 設定ファイルの差異を監視し、電子メールアラートを送信する Python 実装例
  • Nginx サーバーで Web クローラーをブロックおよび禁止する方法

<<:  MySQLインデックスの簡単な分析

>>:  Reactの仮想DOMとdiffアルゴリズムの詳細な説明

推薦する

クールな花火効果を実現するjs

この記事では、jsを使用してクールな花火効果を実現するための具体的なコードを参考までに共有します。具...

さまざまな Tomcat ログと catalina.out ファイルのセグメンテーションの関係についての簡単な分析

Tomcatログの関係一枚の写真は千の言葉に値する! localhost.{yyyy-MM-dd}....

JavaScript の数値および数学オブジェクトの概要

目次1. JavaScript における数値2. Javascript の Math オブジェクト1...

Docker 大規模プロジェクトのコンテナ化変革

仮想化とコンテナ化は、クラウドベースのプロジェクトでは避けられない 2 つの問題です。仮想化は純粋な...

MySQLの高可用性と高パフォーマンスのクラスタを構築する方法

目次MySQL NDB Clusterとはクラスター構築のための準備作業クラスターのデプロイを開始す...

ViteでReactプロジェクトを構築する方法

目次序文Viteプロジェクトを作成する改修プロジェクトディレクトリの規則その他の構成序文毎日鳩、火ば...

TypeScriptの基本型の詳細な説明

目次ブール型数値型文字列型文字列と数値を連結する未定義およびnull配列型タプル型列挙型あらゆるタイ...

Reactのコンポーネント共同利用実装

目次ネスティング親子コンポーネント通信ブラザーコンポーネント通信撤回するReact の Linked...

Innodb で MySQL の 2T テーブルをすばやく削除する方法の例

序文この記事は主に、MySQL の Innodb で 2T の大きなテーブルをすばやく削除する方法に...

SQL における distinct と row_number() over() の違いと使い方

1 はじめにデータベース内のデータを操作するための SQL 文を記述するときに、いくつかの不快な問題...

Linux FTP匿名アップロードとダウンロードが自動的に開始される問題を解決する

勉強や仕事で FTP サーバーを頻繁に使用する場合は、起動時に自動的に起動するように設定できます。設...

ReactでのsetStateの使用と同期と非同期の使用

React では、this.state を使用して状態を直接変更しても、コンポーネントは再レンダリン...

UDP シンプル サーバー クライアント コード例

UDP の理論については詳しく説明しません。UDP に関する HelloWorld プログラムを紹介...

ファイルのアップロードの進行状況を示す React の例

目次React アップロードファイル表示の進行状況デモフロントエンドにReactアプリケーションを素...

Linux で open-vswitch をインストールおよびアンインストールする方法

1. ソースコードからovsをコンパイルしてインストールします。依存関係をインストールします: # ...