検索
ホームページ運用・保守Nginxnginxプロキシモジュールの使い方

nginx プロキシ モジュール

注: プロキシ モジュールには多くの手順があります。ここでは重要な proxy_pass についてのみ説明します。さらにプロキシの手順を知りたい場合は、を参照してください。中国語の公式ドキュメント。
このモジュールはリクエストを他のサーバーに転送できます。 http/1.0 ではキープアライブを使用できません (バックエンド サーバーはリクエストごとに接続を作成および削除します)。 nginx はブラウザに http/1.1 を送信し、バックエンド サーバーに http/1.0 を送信して、ブラウザがブラウザのキープアライブを処理できるようにします。
以下の例:

location / {
 proxy_pass    http://localhost:8000;
 proxy_set_header x-real-ip $remote_addr;
}

http プロキシ モジュール (fastcgi も含む) を使用する場合、nginx はバックエンド サーバーに送信する前にすべての接続リクエストをキャッシュするため、バックエンドから送信されたデータを測定するときに注意してください。データの進行状況表示が正しくない場合があります。

実験用トポロジ:

nginxプロキシモジュールの使い方

7. http リバース プロキシの構成

[root@nginx ~]# cd /etc/nginx/
[root@nginx nginx]# cp nginx.conf nginx.conf.bak #备份一个原配置文件
[root@nginx nginx]# vim nginx.conf
location / {
        proxy_pass   http://192.168.18.201;
    }

手順の説明: proxy_pass

構文: proxy_pass url

デフォルト値: no

使用フィールド: location、フィールドが location にある場合

このコマンドは、プロキシ サーバーのアドレスとマッピングされた URI を設定します。アドレスは、ホスト名または IP とポート番号の形式で指定できます (例: proxy_pass http://localhost:8000/uri/;
##)

#8. 設定ファイルをリロードします

[root@nginx ~]# service nginx reload
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
重新载入 nginx:                      [确定]

9. テストします

nginxプロキシモジュールの使い方

注: 192.168.18.208 にアクセスすると、リダイレクトされたことがわかります。プロキシ経由で web1 に送信します。


10. Web サーバーのログを確認してください

[root@web1 ~]# tail /var/log/httpd/access_log
192.168.18.208 - - [04/sep/2013:00:14:20 +0800] "get /favicon.ico http/1.0" 404 289 "-" "mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36"
192.168.18.208 - - [04/sep/2013:00:14:20 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36"
192.168.18.208 - - [04/sep/2013:00:14:20 +0800] "get /favicon.ico http/1.0" 404 289 "-" "mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36"
192.168.18.138 - - [04/sep/2013:00:14:45 +0800] "get / http/1.1" 200 23 "-" "mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36"
192.168.18.138 - - [04/sep/2013:00:14:48 +0800] "get /favicon.ico http/1.1" 404 289 "-" "mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36"
192.168.18.208 - - [04/sep/2013:00:14:55 +0800] "get /favicon.ico http/1.0" 404 289 "-" "mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36"
192.168.18.208 - - [04/sep/2013:00:15:05 +0800] "get /favicon.ico http/1.0" 404 289 "-" "mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36"
192.168.18.208 - - [04/sep/2013:00:15:13 +0800] "get /favicon.ico http/1.0" 404 289 "-" "mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36"
192.168.18.208 - - [04/sep/2013:00:15:16 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36"
192.168.18.208 - - [04/sep/2013:00:15:16 +0800] "get /favicon.ico http/1.0" 404 289 "-" "mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36"

ここでの顧客のすべての IP は、実際のクライアント IP ではなく、nginx プロキシ サーバーの IP であることがわかります。 。ログ IP に実際のクライアント IP が表示されるように変更してみましょう。


11. nginx 設定ファイルの変更

location / {
    proxy_pass   http://192.168.18.201;
    proxy_set_header x-real-ip $remote_addr; #加上这一行
}

命令の説明: proxy_set_header


構文: proxy_set_header ヘッダー値


デフォルト値: host および connection

Use フィールド: http、server、location


このディレクティブにより、プロキシ サーバーに送信されるリクエスト ヘッダーを再定義したり、いくつかのフィールドを追加したりできます。この値は、テキスト、変数、またはそれらの組み合わせにすることができます。 proxy_set_header は、指定されたフィールドで定義されていない場合、その親フィールドから継承されます。


12. 設定ファイルをリロードします

[root@nginx ~]# service nginx reload
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
重新载入 nginx:                      [确定]

13. ログをテストして表示します

[root@web1 ~]# tail /var/log/httpd/access_log
192.168.18.208 - - [03/sep/2013:16:26:18 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (compatible; msie 10.0; windows nt 6.1; wow64; trident/6.0)"
192.168.18.208 - - [03/sep/2013:16:26:18 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (compatible; msie 10.0; windows nt 6.1; wow64; trident/6.0)"
192.168.18.208 - - [03/sep/2013:16:26:18 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (compatible; msie 10.0; windows nt 6.1; wow64; trident/6.0)"
192.168.18.208 - - [03/sep/2013:16:26:18 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (compatible; msie 10.0; windows nt 6.1; wow64; trident/6.0)"
192.168.18.208 - - [03/sep/2013:16:26:18 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (compatible; msie 10.0; windows nt 6.1; wow64; trident/6.0)"
192.168.18.208 - - [03/sep/2013:16:26:18 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (compatible; msie 10.0; windows nt 6.1; wow64; trident/6.0)"
192.168.18.208 - - [03/sep/2013:16:26:18 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (compatible; msie 10.0; windows nt 6.1; wow64; trident/6.0)"
192.168.18.208 - - [03/sep/2013:16:26:18 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (compatible; msie 10.0; windows nt 6.1; wow64; trident/6.0)"
192.168.18.208 - - [03/sep/2013:16:26:18 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (compatible; msie 10.0; windows nt 6.1; wow64; trident/6.0)"
192.168.18.208 - - [03/sep/2013:16:26:18 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (compatible; msie 10.0; windows nt 6.1; wow64; trident/6.0)"

注、ログ レコードがまだプロキシ IP であることがわかります。 , 実際のクライアント IP が表示されないのですが、なぜですか? httpd 設定ファイルを見てみましょう。


14. httpd 設定ファイルの表示と変更


[root@web1 ~]# vim /etc/httpd/conf/httpd.conf

nginxプロキシモジュールの使い方

ここでログを記録できるパラメータは % のままであることに注意してください。 h、次のようにパラメータを変更しましょう。


nginxプロキシモジュールの使い方

これは変更されたパラメータであることに注意してください。h% を %{x-real-ip}i に変更します。わかりました。もう一度テストしてみましょう。


15. 再起動してテスト

[root@web1 ~]# service httpd restart
停止 httpd:                        [确定]
正在启动 httpd:                      [确定]
[root@web1 ~]# tail /var/log/httpd/access_log
192.168.18.138 - - [03/sep/2013:17:09:14 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (compatible; msie 10.0; windows nt 6.1; wow64; trident/6.0)"
192.168.18.138 - - [03/sep/2013:17:09:14 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (compatible; msie 10.0; windows nt 6.1; wow64; trident/6.0)"
192.168.18.138 - - [03/sep/2013:17:09:15 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (compatible; msie 10.0; windows nt 6.1; wow64; trident/6.0)"
192.168.18.138 - - [03/sep/2013:17:09:15 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (compatible; msie 10.0; windows nt 6.1; wow64; trident/6.0)"
192.168.18.138 - - [03/sep/2013:17:09:15 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (compatible; msie 10.0; windows nt 6.1; wow64; trident/6.0)"
192.168.18.138 - - [03/sep/2013:17:09:15 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (compatible; msie 10.0; windows nt 6.1; wow64; trident/6.0)"
192.168.18.138 - - [03/sep/2013:17:09:15 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (compatible; msie 10.0; windows nt 6.1; wow64; trident/6.0)"
192.168.18.138 - - [03/sep/2013:17:09:15 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (compatible; msie 10.0; windows nt 6.1; wow64; trident/6.0)"
192.168.18.138 - - [03/sep/2013:17:09:15 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (compatible; msie 10.0; windows nt 6.1; wow64; trident/6.0)"
192.168.18.138 - - [03/sep/2013:17:09:15 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (compatible; msie 10.0; windows nt 6.1; wow64; trident/6.0)"

ログに記録された IP アドレスが実際のクライアント アドレスであることがわかります。

以上がnginxプロキシモジュールの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Nginxの使用:Webサイトのパフォーマンスと信頼性の最適化Nginxの使用:Webサイトのパフォーマンスと信頼性の最適化May 09, 2025 am 12:19 AM

Nginxは、Webサイトのパフォーマンスと信頼性を改善できます。1。Webサーバーとしての静的コンテンツをプロセス。 2。逆プロキシサーバーとしての転送要求。 3。ロードバランサーとしてリクエストを割り当てます。 4.キャッシュサーバーとしてバックエンド圧力を下げます。 NGINXは、GZIP圧縮の有効化や接続プーリングの調整など、構成の最適化を通じてWebサイトのパフォーマンスを大幅に改善できます。

Nginxの目的:Webコンテンツなどの提供Nginxの目的:Webコンテンツなどの提供May 08, 2025 am 12:07 AM

NginxServesWebContentAndActSasaReverseProxy、loadbalancer、andmore.1)itefficientlyServestaticContentlikehtmlandimages.2)ItfunctionsasareSareProxyandloadbalancer、distributing trafficacrosservers.3)

Nginxユニット:アプリケーションの展開を合理化しますNginxユニット:アプリケーションの展開を合理化しますMay 07, 2025 am 12:08 AM

Nginxunitは、動的な構成と多言語サポートを使用して、アプリケーションの展開を簡素化します。 1)動的構成は、サーバーを再起動せずに変更できます。 2)Python、PHP、Javaなどの複数のプログラミング言語をサポートしています。 3)非同期非ブロッキングI/Oモデルを採用して、高い並行性処理パフォーマンスを改善します。

Nginxの影響:WebサーバーなどNginxの影響:WebサーバーなどMay 06, 2025 am 12:05 AM

Nginxは最初にC10Kの問題を解決し、現在、ロードバランス、リバースプロキシ、APIゲートウェイを処理するオールラウンドに発展しています。 1)イベント駆動型のアーキテクチャや非ブロッキングアーキテクチャで有名であり、高い並行性に適しています。 2)Nginxは、IMAP/POP3をサポートするHTTPおよびリバースプロキシサーバーとして使用できます。 3)その作業原則は、イベント駆動型および非同期のI/Oモデルに基づいており、パフォーマンスが向上しています。 4)基本的な使用には、仮想ホストと負荷分散の構成が含まれ、高度な使用には複雑な負荷分散とキャッシュ戦略が含まれます。 5)一般的なエラーには、構成の構文エラーと許可の問題が含まれます。また、デバッグスキルには、nginx-Tコマンドとstub_statusモジュールの使用が含まれます。 6)パフォーマンスの最適化の提案には、GZIP圧縮の使用、ワーカーパラメーターの調整、および

nginxトラブルシューティング:一般的なエラーの診断と解決nginxトラブルシューティング:一般的なエラーの診断と解決May 05, 2025 am 12:09 AM

nginxの一般的なエラーの診断とソリューションには、次のものが含まれます。1。ログファイルの表示、2。構成ファイルの調整、3。パフォーマンスを最適化します。ログを分析し、タイムアウト設定を調整し、キャッシュとロードバランスの最適化により、404、502、504などのエラーを効果的に解決して、ウェブサイトの安定性とパフォーマンスを向上させることができます。

Nginxユニットを使用してアプリケーションの展開:ガイドNginxユニットを使用してアプリケーションの展開:ガイドMay 04, 2025 am 12:03 AM

NGINXUnitischosenfordeployingapplicationsduetoitsflexibility,easeofuse,andabilitytohandledynamicapplications.1)ItsupportsmultipleprogramminglanguageslikePython,PHP,Node.js,andJava.2)Itallowsdynamicreconfigurationwithoutdowntime.3)ItusesJSONforconfigu

NginxおよびWebホスティング:ファイルの提供とトラフィックの管理NginxおよびWebホスティング:ファイルの提供とトラフィックの管理May 03, 2025 am 12:14 AM

Nginxは、ファイルを提供し、トラフィックを管理するために使用できます。 1)nginxサービスの構成静的ファイル:リスニングポートとファイルディレクトリを定義します。 2)ロードバランシングとトラフィック管理を実装します。上流モジュールとキャッシュポリシーを使用して、パフォーマンスを最適化します。

Nginx vs. Apache:Webサーバーテクノロジーの比較Nginx vs. Apache:Webサーバーテクノロジーの比較May 02, 2025 am 12:08 AM

Nginxは、高い並行性と静的コンテンツの処理に適していますが、Apacheは動的な内容と複雑なURL書き換えに適しています。 1.Nginxは、高い並行性に適したイベント駆動型モデルを採用しています。 2。Apacheは、動的なコンテンツに適したプロセスモデルまたはスレッドモデルを使用します。 3。NGINX構成は簡単ですが、Apache構成は複雑ですが、より柔軟です。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。