検索
ホームページ運用・保守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 vs. Apache究極の対決:Nginx vs. ApacheApr 18, 2025 am 12:02 AM

Nginxは、高い並行リクエストの処理に適していますが、Apacheは複雑な構成と機能的拡張が必要な​​シナリオに適しています。 1.Nginxは、イベント駆動型の非ブロッキングアーキテクチャを採用しており、高電流環境に適しています。 2。Apacheはプロセスまたはスレッドモデルを採用して、複雑な構成のニーズに適したリッチモジュールエコシステムを提供します。

Nginx in Action:例と現実世界のアプリケーションNginx in Action:例と現実世界のアプリケーションApr 17, 2025 am 12:18 AM

Nginxは、Webサイトのパフォーマンス、セキュリティ、およびスケーラビリティを改善するために使用できます。 1)逆プロキシおよびロードバランサーとして、Nginxはバックエンドサービスを最適化し、トラフィックを共有できます。 2)イベント駆動型および非同期アーキテクチャを通じて、nginxは高い並行接続を効率的に処理します。 3)構成ファイルでは、静的ファイルサービスやロードバランシングなどのルールの柔軟な定義を可能にします。 4)最適化の提案には、GZIP圧縮の有効化、キャッシュの使用、およびワーカープロセスの調整が含まれます。

Nginxユニット:さまざまなプログラミング言語をサポートしますNginxユニット:さまざまなプログラミング言語をサポートしますApr 16, 2025 am 12:15 AM

Nginxunitは複数のプログラミング言語をサポートし、モジュラー設計を通じて実装されています。 1。言語モジュールの読み込み:構成ファイルに従って対応するモジュールをロードします。 2。アプリケーションの起動:呼び出し言語が実行されたときにアプリケーションコードを実行します。 3。リクエスト処理:リクエストをアプリケーションインスタンスに転送します。 4。応答返品:処理された応答をクライアントに返します。

nginxとapacheを選択する:あなたのニーズに合った適切nginxとapacheを選択する:あなたのニーズに合った適切Apr 15, 2025 am 12:04 AM

NginxとApacheには独自の利点と短所があり、さまざまなシナリオに適しています。 1.Nginxは、高い並行性と低リソース消費シナリオに適しています。 2。Apacheは、複雑な構成とリッチモジュールが必要なシナリオに適しています。コア機能、パフォーマンスの違い、ベストプラクティスを比較することで、ニーズに最適なサーバーソフトウェアを選択するのに役立ちます。

nginxを開始する方法nginxを開始する方法Apr 14, 2025 pm 01:06 PM

質問:nginxを開始する方法は?回答:nginxスタートアップnginx検証nginxはnginxを開始しました他のスタートアップオプションを自動的に開始

Nginxが開始されるかどうかを確認する方法Nginxが開始されるかどうかを確認する方法Apr 14, 2025 pm 01:03 PM

nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

nginxを閉じる方法nginxを閉じる方法Apr 14, 2025 pm 01:00 PM

NGINXサービスをシャットダウンするには、次の手順に従ってください。インストールタイプを決定します:Red Hat/Centos(SystemCtl Status Nginx)またはDebian/Ubuntu(Service Nginx Status)サービスを停止します:Red Hat/Centos(SystemCtl Stop Nginx)またはDebian/Ubuntu(Service Nginx Stop)無効自動起動(オプション):Debuntos/Centos/Centos/Centos/Centos/Centos (syst

Windowsでnginxを構成する方法Windowsでnginxを構成する方法Apr 14, 2025 pm 12:57 PM

Windowsでnginxを構成する方法は? nginxをインストールし、仮想ホスト構成を作成します。メイン構成ファイルを変更し、仮想ホスト構成を含めます。 nginxを起動またはリロードします。構成をテストし、Webサイトを表示します。 SSLを選択的に有効にし、SSL証明書を構成します。ファイアウォールを選択的に設定して、ポート80および443のトラフィックを許可します。

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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

DVWA

DVWA

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

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール