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分で理解しましょう

推薦する

mysql5.7.19 解凍版の詳細なインストール チュートリアル (純粋なクラックされた中国語版 SQLYog を使用)

Mysql5.7.19バージョンは今年リリースされた新しいバージョンです。最近のMySQLのバージ...

ミニプログラムカスタムコンポーネントの非効率的なグローバルスタイルの解決策

目次長すぎて読めないコンポーネントスタイルの分離デモテスト優先度ページの分離構成参考文献ネイティブ ...

DockerでVueプロジェクトをデプロイする方法を教えます

1.前面に書きます:軽量仮想化テクノロジーとして、Docker には継続的インテグレーション、バージ...

MySQL マルチテーブルクエリの詳細な説明

よく食べて十分に休息を取るというのは簡単なことのように思えますが、実際に実行するのはそれほど簡単では...

Mysqlリモート接続構成を実装する2つの方法

Mysqlリモート接続構成を実装する2つの方法会社で働いていると、誰かのコンピュータに保存されている...

IDEA は Docker プラグインを使用します (初心者向けチュートリアル)

目次例示する1. Dockerリモートアクセスを有効にする2. Dockerに接続する3. イメージ...

同じ IP のアクセス頻度を制限するように nginx を設定する方法

1. nginx.conf の http{} に次のコードを追加します。 limit_conn_zo...

React Diff Principle の詳細な分析

目次差分アルゴリズムレイヤーごとの比較同じタイプのコンポーネントを比較する同じタイプの要素の比較子ノ...

どのような種類の MYSQL 接続クエリを知っていますか?

序文クエリ情報が複数のテーブルから取得される場合、クエリのためにこれらのテーブルを結合する必要があり...

Jenkins を通じて None のイメージを定期的にクリーンアップする方法

序文継続的なコード配信のプロセスで、Jenkins を利用して Docker イメージを作成すると、...

Workbench を介して MySQL データベースにリモートでアクセスする方法の詳細な説明

序文Workbench が 1 台のコンピューターにインストールされており、別の Ubuntu サー...

Docker のコンテナ データ ボリュームの概要

目次Dockerコンテナのデータ量データボリュームの使用方法1: コマンド-vを使用して直接マウント...

js と jQuery での Ajax の使用例の詳細

目次ネイティブJS GETリクエストの送信方法投稿リクエストの送信方法パラメータ付きのGETリクエス...

Vue3 でパンくず関数コンポーネントをカプセル化するいくつかの方法

目次序文1. パンくずリストはなぜ必要なのでしょうか? 2. 一次包装1. 実装のアイデア2. コー...

JavaScriptのポイントごとのシリーズでこれは何ですか

これを理解するおそらく、他のオブジェクト指向プログラミング言語でもthis見たことがあり、これがコン...