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

推薦する

Ubuntu の空き容量を増やす 5 つの簡単な方法

序文ほとんどの人は、システム ディスク ストレージが少ないときにこの操作を実行するか、Linux シ...

HTML シンプルショッピング数量アプレット

この記事では、参考までにシンプルなHTMLショッピング数量アプレットを紹介します。具体的な内容は次の...

vue3 を使用したジグソーパズルゲームのリファクタリングの例

序文プロジェクト内のパズルゲーム(デジタル華容路とも呼ばれる)を再構築するのに 2 日かかりました。...

MySQLのExcelへのエクスポート方法の分析

この記事では、MySQL を使用してデータを Excel にエクスポートする方法について説明します。...

CocosCreator の新しいリソース管理システムの分析

目次1. 資源と建設1.1 クリエイターリソースファイルの基本1.2 リソースの構築2. アセットバ...

jsは、州、市、地区の3レベルのリンクの非選択ドロップダウンボックスバージョンを実現します。

インターネットで3レベルリンクを検索したところ、すべてオプションで書かれていました。突然、別の方法で...

MySQL では UTF-8 が推奨されないのはなぜですか?

最近、Rails 経由で「utf8」でエンコードされた UTF-8 文字列を MariaDB に保存...

VMWare仮想マシンのcentosの時間が現地時間と矛盾する問題を解決する

VM Ware 仮想マシン CentOS の時刻は、次の図に示すように、現地時間と一致しません。おそ...

CSS の position 属性の値に関する研究 (概要)

CSS の位​​置属性は要素の配置タイプを指定し、上、下、左、右を使用して要素を具体的に配置します...

Flash が HTML div 要素を覆わないようにする方法

今日、フラッシュ広告のコードを書いていたとき、フラッシュに付属するリンクはポップアップ広告と間違われ...

mysql: [エラー] 不明なオプション '--skip-grant-tables'

MySQL データベースがエラー 1045 (28000): ユーザー 'ODBC'...

Docker swarm の簡単なチュートリアル

3つの仮想マシン132、133、134を群がらせる1. クラスターを初期化し、自分自身をクラスターに...

ハイパーリンクの幅と高さを直接設定できない問題の解決策

幅と高さを直接使用することはできません。 display:block; または display:in...

Windows 8 での MySQL 5.6.15 のインストールと設定方法のグラフィック チュートリアル

MySQLは私がとても気に入っているデータベースです。今日はWindows 8システムでインストール...

React の国際化 react-intl の使用

React で国際化を実現するにはどうすればよいでしょうか? react-intlプラグインは、Re...