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アルゴリズムの詳細な説明

推薦する

MySqlのインストールとアンインストールに関する詳細なチュートリアル

この記事では、MySqlのインストールとアンインストールのチュートリアルを参考までに紹介します。具体...

HTML ページに SVG を挿入する複数の方法

SVG (Scalable Vector Graphics)は、XML 構文に基づいた画像形式です。...

CentOSはローカルyumソース/Alibaba Cloud yumソース/163yuanソースを設定し、yumソースの優先順位を設定します。

1. Centosイメージを使用してローカルのyumソースをビルドするCentOS をインストール...

HTML ウェブページ作成のための 8 つの強力なテクニック

<br />作業を簡単に完了できる Web ページ作成ツールは数多くありますが、HTML...

docker コンペ応募でよく使われるコマンドのまとめ

アカウントにログイン DOCKER_REGISTRY=registry.cn-hangzhou.al...

クリックイメージ反転効果を実現するJavaScript

最近、顔コレクションに関するプロジェクトに取り組んでいましたが、フロントエンドモジュールを書いている...

MySQL の 10 進数データ型の小数点埋め込み問題の詳細な説明

序文開発プロセスでは、10 進データ型がよく使用されます。 MySQL では、小数点は正確なデータ型...

Dockerカスタムネットワークコンテナ相互接続

目次序文-リンクカスタムネットワーク質問する序文前回は、 -Linkパラメータを使用してコンテナ間の...

React Router で履歴リダイレクトを使用する方法

react-routerでは、コンポーネント内のジャンプは<Link>で使用できます。し...

ドキュメントの場所の比較

<br />2 年前に PPK が投稿した素晴らしいブログ記事では、contains()...

Vue で $attrs と $listeners を使用するチュートリアル

目次導入例要約する導入$属性すべての親コンポーネントのプロパティを継承します (props を通じて...

JavaScript での正規表現の使用について詳しく学ぶ

目次1. 正規表現とは何か1. 正規表現の特徴2. 正規表現の使用2. 正規表現における特殊文字1....

1つの記事でJSONPの原理と応用を理解する

目次JSONPとはJSONP 原則JSONP実装1. Ajaxでクロスドメインリクエストが行われると...

JSでよく使われるデータ処理方法

目次DOM処理配列方法要約するDOM処理DOM はドキュメントの構造化された表現を提供し、スクリプト...

MySQLの使い方の詳細な説明

目次1. はじめに2. 本文2.1 Where句の位置2.2 演算子2.3 NULL値1. はじめに...