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 を使用して脈動するローダー効果のソースコードを作成する

推薦する

よくある Linux 英語エラーの中国語翻訳 (初心者必見)

1.コマンドが見つかりません コマンドが見つかりません2. そのようなファイルまたはディレクトリは...

mysql5.7.19 winx64 解凍版のインストールと設定のチュートリアル

mysql 5.7.19 winx64解凍版のインストールチュートリアルを収録しました。具体的な内容...

HTMLの基本構文は、HTMLを学び始めたばかりの人にとって便利です。

1.1 一般的なマーキング一般的なタグは開始タグと終了タグで構成されます。構文は次のとおりです: ...

HTMLを使用して、IPを制限する投票ウェブサイトの不正行為スキームを実装する

これは、IP アドレスが制限されている投票 Web サイトの不正行為の手口です。この方法は、投票 W...

ウェブフォーム送信方法の詳細な概要

まず、フォームを送信するいくつかの方法を見てみましょう。 1. <!--一般的な送信ボタン--...

MySQL DML言語操作例

追加説明、外部キー: 外部キーを使用しないでください。すべての外部キーの概念はアプリケーション層で解...

プロキシはVue3データの双方向バインディングの原理を実現します

目次1. proxy と Object.defineProperty の利点2. プロキシ監視オブジ...

Vueユーザーが長時間操作せずにログインページからログアウトするように実装する2つの方法

目次問題の説明フロントエンド制御(方法1)アイデアコードバックエンド制御(方法2)アイデアコード要約...

Vue3.0 エラーの解決策: モジュール 'worker_threads' が見つかりません

vue3.0 への最初の試みを記録します。プロジェクトを開始したときに、「モジュール 'wo...

Docker による Oracle 11g イメージ構成のプルに関する詳細なチュートリアル

さっそくAlibaba の oracle11g イメージをプルして構成する docker の記録を開...

Linux でファイル内の特定の文字の数を数える方法

ファイル内の文字列の数を数えることは、実際には砂の中の石を探すようなものです。ある人は、石を見た後に...

単一の MySQL テーブルで数千万のデータを処理するアイデアを共有する

目次プロジェクトの背景改善案データ特性を観察するマルチプロセスアイデアの要約データ処理スキルプロジェ...

Pythonで書かれたWebアプリケーションをDockerでデプロイする実践

目次1. Dockerをインストールする2. コードを書く3. Dockerfileを書く4. 画像...

nginx proxy_cache バッチキャッシュクリアスクリプトの紹介

前書き: 以前、公式の nginx proxy_cache を CDN 静的キャッシュとして使用して...