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はタイトルと説明のキーワードを検出し、見つかった場合は置換するか他のページにジャンプします。

キーワード 一般タイトルには、クラック、キー、シリアル番号、キージェネレータなどの単語を含めることは...

CSS の複数行テキストがオーバーフローする場合の省略記号の例

複数行のテキストがオーバーフローすると省略記号が表示されますこの記事では 2 つの方法を推奨します。...

Tencent Cloud Serverをゼロから導入する方法

初めての投稿ですので、間違いや問題点などありましたら、コメント欄で指摘していただければ、今後改善させ...

シングルサインオン制御を実装するためのVueの完全なコード

参考までに、Vue シングル サインオンのデモをご紹介します。詳細を知りたい方のお役に立てれば幸いで...

Jenkins初心者のためのDockerデプロイメントチュートリアルの詳細な説明

この記事では、docker 経由で Jenkins+Maven+SVN+Tomcat をデプロイし、...

CentOS7環境にMySQL5.5データベースをインストールする

目次1. 現在のシステムにMySQLがインストールされているかどうかを確認する2. インストールされ...

MySQL トランザクション分析

取引トランザクションはビジネス ロジックの基本単位です。各トランザクションは一連の SQL ステート...

iframe の src を about:blank に設定した後の詳細

iframe の src を 'about:blank' に設定した後、"...

HTML テーブル マークアップ チュートリアル (28): セルの境界線の色属性 BORDERCOLOR

テーブルを美しくするために、セルごとに異なる境界線の色を設定できます。基本的な構文<TD 境界...

WeChatアプレットは画像コントロールを選択します

この記事の例では、WeChatアプレットで画像コントロールを選択するための具体的なコードを参考までに...

MySQL データ定義言語 DDL の基本ステートメント

MySQL DDL ステートメントDDL、DMLとは何ですか。 DDL はデータ定義言語であり、CR...

Vue: メモリリークの詳細な説明

メモリリークとは何ですか?メモリ リークとは、新しいメモリが作成されたが、解放またはガベージ コレ...

dockerでマウントされたディレクトリが読み書きできない問題を解決する

次のコマンドを使用してコンテナを作成し、ローカルの /home/dock/Downloads ディレ...

HiveメタデータをMySQLに設定するプロセス全体

Hiveのインストールディレクトリで、confディレクトリに入り、hive-site.xmlファイル...

MAC+PyCharm+Flask+Vue.js ビルドシステム

目次node.js+nvm+npm を設定するnpmスイッチタオバオミラーVue.jsをインストール...