%20%E3%81%A8%E3%81%97%E3%81%A6%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F.png)
ほとんどの人が nginx をリバース プロキシとして使用しているようです。これをプロキシとして使用することは可能ですか? そうすると、ネットワーク内の人々はインターネットにアクセスするために nginx を経由することになります。
答え1
このモードを区別するための通常の用語は「フォワードプロキシ"。
さまざまな情報源によると、Nginxはないフォワードプロキシとして機能するように設計されています。
- https://stackoverflow.com/questions/46060028/how-to-use-nginx-as-forward-proxy-for-any-requested-location
- グーグルでたくさん検索
それでも、それはできたクリアテキスト HTTP クエリの場合も同様に行います。基本的に両方のモードは同様のメカニズムを使用するため、最大の違いは、宛先ホストが構成で設定されるか (リバース プロキシの場合)、クライアント要求から取得されるか (フォワード プロキシの場合) です。
location / {
proxy_pass http://$http_host$uri$is_args$args;
}
(ただし、これはリレーのみであり、Squid のようなキャッシュではありません。)
CONNECT
さらに重要なのは、Nginx は透過的な HTTPS リレー (つまり非 MITM) に必要なHTTP コマンドをサポートしていないことです。これは外部モジュールを通じて提供できます。
答え2
はい。フォワードプロキシ機能を取得するためのモジュール/パッチがあります。https://github.com/chobits/ngx_http_proxy_connect_module
https://www.alibabacloud.com/blog/how-to-use-nginx-as-an-https-forward-proxy-server_595799