nginx を介してローカルでリバースプロキシを構成するプロセス全体

nginx を介してローカルでリバースプロキシを構成するプロセス全体

序文

Nginx は、イベント駆動型の非同期非ブロッキング処理フレームワークを使用する軽量 HTTP サーバーであり、優れた IO パフォーマンスを実現します。私たちは日常の開発において、次のようなシナリオで Nginx を使用しています。

  • http サーバーとしての Nginx
  • クロスオリジンリクエスト
  • 負荷分散
  • 静的ネットワークリソースと動的ネットワークリソースの分離

フロントエンドとして、私たちは主に最初の2つのシナリオに焦点を当てています

1.ダウンロードしてインストールする

ここをクリックしてダウンロードし、ダウンロード後に解凍すると、解凍されたファイルは次のようになります。

解凍します (nginx.exe をダブルクリックします。ダブルクリックすると黒いポップアップ ウィンドウが点滅します)

nginx が解凍されているディレクトリを見つけて右クリックし、git bash を見つけて開き、コマンド start ./nginx.exe を入力して Enter キーを押して nginx サービスを開始します。

**起動が成功したかどうかを確認します: **ブラウザのアドレスバーにURL http://localhostを直接入力し、Enterキーを押すと、起動が成功したことを示す次のページが表示されます。

2. nginxの設定

nginx の下にある conf/nginx.conf ファイルを見つけて、server{} の内容に焦点を当ててプロキシ関連の情報を設定します。

#ユーザーnobody;
ワーカープロセス 1;

#error_log ログ/error.log;
#error_log ログ/error.log 通知;
#error_log ログ/error.log 情報;

#pid ログ/nginx.pid;


イベント {
 ワーカー接続 1024;
}


http {
 mime.types を含めます。
 デフォルトタイプ アプリケーション/オクテットストリーム;

 #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
 # '$status $body_bytes_sent "$http_referer" '
 # '"$http_user_agent" "$http_x_forwarded_for"';

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

 ファイル送信オン;
 #tcp_nopush オン;

 #キープアライブタイムアウト 0;
 キープアライブタイムアウト65;

 #gzip オン;
 サーバー名ハッシュバケットサイズ 128;
 サーバー{
 聞く 80;
 server_name ローカルホスト;
 位置 / {
  ルートhtml;
  インデックス index.html index.htm;
 }
 エラーページ 500 502 503 504 /50x.html;
 場所 = /50x.html {
  ルートhtml;
 }
 }

 サーバー{
 聞く 80;
 サーバー名 test-local.juejin.com;
 # プロキシするテスト環境のドメイン名と -local を指定します
 # たとえば、プロジェクトのテスト環境が a.test.com の場合、a-local.test.com に設定できます。もちろん、場所は好きなように設定できます /{
  add_header 'Access-Control-Allow-Origin' '*';
  add_header 'Access-Control-Allow-Credentials' 'true';
  add_header 'アクセス制御許可メソッド' 'GET、POST、OPTIONS';
  add_header 'Access-Control-Allow-Headers' 'DNT、web-token、app-token、Authorization、Accept、Origin、Keep-Alive、User-Agent、X-Mx-ReqToken、X-Data-Type、X-Auth-Token、X-Requested-With、If-Modified-Since、Cache-Control、Content-Type、Range';
  add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
  # ここで 8091 はローカルで実行中のプロジェクトのポート番号です。ローカル サービスのポート番号と同じに設定します。 proxy_pass http://127.0.0.1:8091/;
 }
 }
}

3. ローカルDNS設定

**ローカルホストファイルの構成を変更します。**ディレクトリC:\Windows\System32\drivers\etcを探し、hostsファイルを開いてファイルを変更し、127.0.0.1 a-local.test.comを追加します。

4. 操作

まず、./nginx.exe -t と入力して、nginx の設定が正しいかどうかを確認します。正しい設定は次のとおりです。

引き続き nginx -s reload と入力して再起動します (nginx 設定ファイルの変更後、有効にするには nginx を再起動する必要があります)

DNSを更新: ipconfig /flushdns

ブラウザに http://a-local.test.com と入力すると、ローカルで実行しているコード インターフェイスが表示されます。

5. よく使われるnginxコマンド

  • ヘルプコマンド: nginx -h
  • Nginxサーバーを起動します: start nginx
  • 設定ファイルのパス: /usr/local/nginx/conf/nginx.conf
  • 設定ファイルを確認します: nginx -t
  • サービスを停止します: nginx -s stop
  • サービスを終了します(すべてのリクエストを処理した後、サービスを停止します):nginx -s quit
  • 設定ファイルを再読み込みします: nginx -s reload
  • バージョン情報を表示して終了する nginx -v
  • すべての nginx プロセスを強制終了します killall nginx

6. クロスドメインリクエスト

フロントエンドとバックエンドが分離されたプロジェクトでは、フロントエンド プロジェクトとバックエンド プロジェクトがそれぞれ異なるサーバーにデプロイされるため、最初に遭遇する問題はクロスドメインです。このシナリオでは、nginx を使用すると、この問題をうまく解決できます。

#クロスドメインリクエストサーバー
サーバ{
	9000を聴く;
	server_name 127.0.0.1; # またはローカルIPに設定
	ルート /app/crossDomain/;
	インデックス index.html;
	
	location /douban/ { #アクセスディレクトリのプロキシ設定を追加 /api rewrite ^/api/(.*)$ /$1 break;
		proxy_pass http://a.test.com;
 }
}

要約する

nginx を介してローカルでリバース プロキシを構成する方法に関するこの記事はこれで終わりです。nginx を介してローカルでリバース プロキシを構成する方法に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • プレフィックスケースを削除する Nginx リバース プロキシ構成のチュートリアル
  • grpc のリバース プロキシとして nginx を使用する場合の落とし穴の概要
  • Nginx リバース プロキシ構成の完全なプロセス記録
  • 複数のサーバーにNginxリバースプロキシを実装する方法
  • nginx リバース プロキシでの proxy_pass の実装
  • nginxリバースプロキシを使用するときに長時間接続を維持する方法
  • Nginx リバースプロキシの例の詳細な説明
  • Nginx リバース プロキシから go-fastdfs へのケースの説明

<<:  XHTML CSS ページをプリンタ ページに変換する

>>:  純粋な CSS を使用して脈動するローダー効果のソースコードを作成する

推薦する

Vueの自己ネストツリーコンポーネントの使い方の詳細な説明

この記事では、Vueの自己ネストツリーコンポーネントの使い方を参考までに紹介します。具体的な内容は次...

WeChatアプレットトラック再生の実装と遭遇した落とし穴の詳細な説明

WeChat アプレットの軌跡再生では、主に線描画操作にポリラインを使用し、車の移動操作にマーカーを...

dockerでifconfigが利用できない問題を解決する

最近、docker を学習していたときに、docker コンテナ内のネットワーク状態を照会するために...

Vueの使用に関する深い理解

目次Vueのコアコンセプトを理解するVueの双方向バインディングの原理と実装を探るVue 双方向バイ...

MYSQL スロークエリとログ設定とテスト

1. はじめにスロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメン...

IE のテキストモード! DOCTYPE の役割の紹介

前の記事で説明したフォームの自動入力の問題を解決した後、新しい問題が発生しました。ページの一部のスタ...

CSS で「プラス記号」効果を実装するためのサンプルコード

以下に示すプラス記号の効果を実現するには: この効果を実現するには、div 要素だけが必要です。 b...

Docker 入門インストールチュートリアル (初心者版)

ドクター紹介: Docker はコンテナ関連の技術です。簡単に言うと、さまざまなソフトウェアを実行で...

Vue3 の SetUp 関数のプロパティとコンテキスト パラメータの詳細な説明

1. setUp関数の最初のパラメータpropsセットアップ(プロパティ、コンテキスト){}最初のパ...

MySQLの半同期の詳細な説明

目次序文MySQL マスタースレーブレプリケーションMySQL でサポートされているレプリケーション...

MySQL で誕生日から年齢を計算する複数の方法

以前はMySQLをあまり使用していなかったため、MySQLの機能にあまり詳しくありませんでした。この...

React.FCとReact.Componentの使用に関する簡単な説明

目次1. React.FC<> 2. クラスxxはReact.Componentを拡張し...

Vueはタブを切り替えてデータの状態を維持する3つの方法を実装します

Vue でタブ切り替えを実装する 3 つの方法1. v-showはコンテンツの切り替えを制御します1...

Vuex環境の詳細な説明

目次Vuex環境を構築する要約するVuex環境を構築するsrcディレクトリにフォルダstoreを作成...