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

推薦する

親要素に対する CSS 子要素の固定配置ソリューションの詳細な説明

基本概念絶対配置: 絶対配置に設定された要素ボックスはドキュメント フローから完全に削除され、その包...

SQL GROUP BYの詳細な説明と簡単な例

GROUP BY ステートメントは、Aggregate 関数と組み合わせて使用​​され、1 つ以上の...

シンプルな虫眼鏡効果を実現するJavaScript

大きな箱の中に写真があります。マウスをその上に置くと、半透明のマスク レイヤーが表示されます。マウス...

Linux カーネル デバイス ドライバー仮想ファイル システムに関する注意事項

/******************** * 仮想ファイルシステム VFS **********...

HTML で入力テキスト入力キャッシュのクリアを禁止する 2 つの方法

ほとんどのブラウザはデフォルトで入力値をキャッシュし、ctl+F5 を使用して強制的に更新することに...

Linux で MySQL をインストールする簡単な方法

Linux に MySQL をインストールする方法をオンラインで検索すると、多くの方法が表示されまし...

選択ドロップダウンメニューのテキストを左右にスクロールするように設定する

marquee タグを使用してフォントのスクロールを設定したいです。コードは次のように記述しましたが...

Linux でのスケジュールされたタスクと遅延タスクの詳細な説明

で+ 時間 17:23に at> touch /mnt/file{1..9} ##アクションを...

フォーム要素の垂直方向の中央揃えに最適なソリューション

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

MySQLの基本を素早く学ぶ

目次SQLを理解するSELECTを理解するエイリアス定数をクエリし、固定定数列を追加します。重複行を...

CentOS7.4 起動時の緊急モードへようこそメッセージに対する解決策

今日は仮想マシンを使って実験をしました。システムをインストールし、いくつかのオプションを最適化した後...

NginxはGzipアルゴリズムを使用してメッセージを圧縮します

HTTP圧縮とは場合によっては、比較的大きなメッセージ データがクライアントとサーバー間で送信され、...

Vue3.0はvue-grid-layoutプラグインを使用してドラッグレイアウトを実装します。

目次1. プラグイン2. 幕間3. 実装4. 検証機能1. プラグインまず、私たちが選んだプラグイン...

CentOS SVN サーバーで複数のプロジェクトを管理する方法

一つの要求一般的に、企業には複数のプロジェクトがあります。SVN サーバーを設定した後は、プロジェク...