Nginx プロキシを使用してインターネットを閲覧する方法

Nginx プロキシを使用してインターネットを閲覧する方法

私は通常、Tomcatや他のアプリケーションのリバースプロキシとしてnginxを使用しています。実際、nginxはフォワードプロキシもサポートしています。

いわゆるフォワード プロキシとは、イントラネット ユーザーがゲートウェイを介して外部リソースにアクセスすることです。つまり、コンピューターがインターネットを閲覧しているとき、ブラウザーは http プロキシ アドレスを介してインターネットにアクセスするように設定されます。

リバース プロキシとは、外部ユーザーがゲートウェイを介してイントラネット リソースにアクセスすることです。簡単に言えば、Web サイトはイントラネットのポート 8080 で実行され、他のユーザーはポート 80 を介してアクセスできます。

http プロキシ設定

# フォワードプロキシインターネットアクセスサーバー {
  聞く 38080;

  # ドメイン名リゾルバ 8.8.8.8 を解決します。

  位置 / {
    proxy_pass $scheme://$http_host$request_uri;
  }
}

ブラウザでプロキシ IP とポートを設定し、http://www.ip138.com にアクセスすると、IP が変更され、プロキシが有効になっていることがわかります。

ただし、httpsウェブサイトを開くことはできません。これは、ネイティブnginxがhttpフォワードプロキシのみをサポートしているためです。nginxのhttpsフォワードプロキシをサポートするには、ngx_http_proxy_connect_moduleパッチ+ sslモジュールサポートをインストールします。

httpsプロキシモジュールを追加する

ここで nginx を再コンパイルする必要があります。現在の nginx のバージョンとコンパイル オプションを確認し、公式 Web サイトにアクセスして、再コンパイル用の同じバージョンの nginx ソース コードをダウンロードする必要があります。

nginx の sbin ディレクトリに nginx の sbin ディレクトリを作成します。
http://nginx.org/download/nginx-1.15.12.tar.gz をダウンロードしてください
tar -zxvf nginx-1.15.12.tar.gz

モジュール ngx_http_proxy_connect_module をダウンロード

git クローン https://github.com/chobits/ngx_http_proxy_connect_module

パッチを適用し、nginx ソース コードを変更します。この手順は非常に重要です。そうしないと、後続の make が成功しなくなります。

パッチ -d /root/nginx-1.15.12/ -p 1 < /root/ngx_http_proxy_connect_module/patch/proxy_connect_rewrite

元の設定の後にモジュールを追加し、make後にインストールしないように注意してください。

/root/nginx-1.15.12/ をコピーします
./configure --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module --add-module=/root/ngx_http_proxy_connect_module/
作る
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp /root/nginx-1.15.12/objs/nginx /usr/local/nginx/sbin/

設定ファイルを以下のように変更し、サービスを開始します。

# フォワードプロキシインターネットアクセスサーバー {
  聞く 38080;

  # ドメイン名リゾルバ 8.8.8.8 を解決します。

  # ngx_http_proxy_connect_module
  プロキシ接続;
  プロキシ接続許可 443 563;
  proxy_connect_connect_timeout 10秒;
  proxy_connect_read_timeout 10秒;
  proxy_connect_send_timeout 10秒;

  位置 / {
    proxy_pass $scheme://$http_host$request_uri;
  }
}

要約する

プロキシはあまり安定していないようで、特に https ウェブサイトでは開けないことがあります。海外のウェブサイトを訪問するときにはこれを行わないでください。これは、nginx のフォワード プロキシ機能に慣れるためのものです。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • nginx 設定ファイルで環境変数を使用する方法
  • nginx を使用して分散電流制限を実装する方法
  • Nginx を使用して静的ページを展開する方法
  • Nginx で CDN サーバーを構築する方法の詳細な説明 (画像とテキスト)
  • Nginx の動作モードとプロキシ設定の使用の詳細

<<:  Reactでpropsを使用する方法と制限する方法

>>:  MySQLの文字セット設定を5分で理解しましょう

推薦する

JS デコレータ パターンと TypeScript デコレータ

目次デコレータパターンの紹介TypeScript のデコレータデコレータの使用デコレーターファクトリ...

JavaScript 文字列オブジェクトメソッド

目次文字列オブジェクトのメソッド方法 1: indexOf() (推奨)方法 2: search()...

MySQLシリーズのMariaDBサーバーのインストール

目次チュートリアルシリーズ1. yumパッケージマネージャーを使用してMariaDBサーバーをインス...

MySQL の文字セットの不一致によって発生する異常な接続テーブルの解決方法

目次1. 解決策2. MySQLの文字セット文字セット検証ルール次のように簡単なテーブルクエリを実行...

require loaderの実装原理の深い理解

序文Node は新しいプログラミング言語ではなく、JavaScript のランタイムに過ぎないとよく...

実際のプロジェクトでElementUIを使用する手順の詳細な説明

目次1. テーブル自動ソート2. ページング機能3.el-checkbox-group 複数選択ボッ...

HTML ではスペースはどのように表現されますか (どのような意味ですか)?

Web 開発では、次のような文字によく遭遇します: &nbsp;これは実際には HTML が...

Docker 構成 Alibaba Cloud イメージアクセラレーション プル実装

今日はdockerを使ってイメージをpullしたのですが、速度が悪くて見れず最後まで待ち続けました。...

InnoDB ロック (レコード、ギャップ、Next-Key ロック) の詳細な説明

レコード ロックは、単一のインデックス レコードをロックします。レコード ロックは常にインデックスを...

js はランダムロールコールを実装します

この記事では、ランダムロールコールを実装するためのjsの具体的なコードを参考までに共有します。具体的...

XHTML 入門チュートリアル: テキストの書式設定と特殊文字

<br />このセクションでは、XHTML でテキストの書式設定と特殊文字を実装する方法...

仮想スクロールを簡単に実装するためのVueサンプルコード

目次序文ローリング原理成し遂げるソースコード参照する序文モバイル Web ページの日常的な開発では、...

歴史的な Linux 画像処理および修復ソリューション

従来の Linux イメージで作成された ECS クラウド サーバーには、NTP と YUM が設定...

Antdesign-vueとsortablejsを組み合わせて、2つのテーブルをドラッグして並べ替える機能を実現

目次成果を達成するsortablejs の紹介具体的な実装成果を達成する最初は、antdesign ...

VMware で Centos7 ブリッジ ネットワークを構成する手順の詳細な説明

VMware仮想マシンでのCentos7ブリッジネットワーク構成の完全な手順は参考用です。具体的な内...