nginx をプロキシ (リバース プロキシではない) として使用するにはどうすればよいでしょうか?

nginx をプロキシ (リバース プロキシではない) として使用するにはどうすればよいでしょうか?

ほとんどの人が nginx をリバース プロキシとして使用しているようです。これをプロキシとして使用することは可能ですか? そうすると、ネットワーク内の人々はインターネットにアクセスするために nginx を経由することになります。

答え1

このモードを区別するための通常の用語は「フォワードプロキシ"。

さまざまな情報源によると、Nginxはないフォワードプロキシとして機能するように設計されています。

それでも、それはできたクリアテキスト 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

関連情報